Adding Bluetooth to Vex

I’m working on a personal project…I’m an Telecomm. engineering student @ Egypt.

I got the kit,still building it, and had the idea of interfacing VEX byPC via bluetooth…

I’m totally new to the robotics scene…
I’ve gone through loads of Bluetooth modules and am not sure how to program them and connect them to the microcontroller?!

Any help would be much obliged, I’m a bit lost in this…

thanx

I believe this is possible.

#1 You will have to get the programmer for the VEX kit or build your own.

#2 I would get a bluetooth module that you could hook up to the outputs of the VEX – I am not sure but I think THIS RADIO from Sparkfun.com may be something like what you’d want to use (look herefor pricing) . I like this radio made by Smart Modular and sold by ZBAUSA.com, but it used RS-232 voltage levels which would require a MAX232 chip or some such to get the VEX board to communicate with it (another possible down side is that the Smart Modular radio is BTClass 2.0 – 10m range – while the Sparkfun one is BT Class 1 – 100m range).

#3 You will have to get Bluetooth on your PC somehow either built in or from a UBS-Bluetooth Dongle – very cheap – or some other way. Once you have that set up the remote BT looks like a standard PC comm port. You will not have to manage the BT stack or any of that non-sense. It is pretty straightforward actually. Sparkfun.com has a “Bluetooth Primer”](http://www.sparkfun.com/tutorial/BlueTooth/bluetooth_primer.htm) that shows how easy the BT bit is.

#4 I would get the code from Kevin Watson Kevin.org HERE
where he publishes his code to make a serial port out a standard I/O pin of the PIC chip. From what I have gathered there are some differences between the FRC and the VEX boards so you will have to port the code somewhat but they use the same micro so you should be able to muddle through pretty easily.

#5 You will have to modify the VEX default code to get messages from the serial port rather than from the Rx radios. Not too complicated I would guess because the VEX machines are supposed to be easily used in autonomous mode. This would look just like an automonomous mode only with information coming in from the serial port.

Finally, one more thing. This document and the related discussion may help you (thanks to dez250 for sharing the paper and starting the thread).

Good luck.

Joe J.

Thank You So Much - Joe!!
The info supplied seem so useful already!
I can see I have alot to read, and alot to order too :slight_smile:

Making the programming module would be a toughy though…
components are not easy to find here in Egypt, So I’m wondering what’s the easiest way to make one ( easiest as in one would least components to look for)?

Is it possible to conenct the bluetooth module to Rx1 instead of the serial of the microcontroller ??

Im not that familliar with VEX but maybe a gumstix (www.gumstix.com). They have built in bluetooth and I know they work fine with the IFI controller.

i sent a message to the manufacturers of the bluetooth module and they told me it can only be connected to any UART .

so i don’t know if the Rx1 on Vex is UART or not ?

yes, rx1 and tx1 are connected to rg1 and rg2 on the user processor. these are the receive and transmit pins respectively of usart2.

thanks for the info
do u know the pinout of Rx1 ?
i am also trying to get the schematic of the circuit that has the micrcontroller on in , because i want to know how is the microcontroller is connected to Rx1 or Serial .
Anyone knows how these are connected ??

i made a little chart. i was planning to add more info, but got sidetracked. the functions of the various pins on the 18f8520 can be determined from the datasheet. as i mentioned rx1 and tx1 are connected to rg1 and rg2 which are also known as rx2 and tx2. the transmit and receive lines on the serial port are connected to rx1 and tx1. very confusing, eh?

anyway, i got the information from the example code at vexlabs.

i’m a bit confused …
if i can connect the bluetooth module ( which has 4 pins : TX , RX , PWR , GND ) to Rx1 , do i connect it to Rx1 which was used for the RF Module that came with the robot ? or do i connect it to RX & TX that are on the Analod/Digital section of the microcontroller ?

if it’s the 1st option then i need to know the pinouts of the Rx1 input ,
if it’s the 2nd option then i need to know where to connect the PWR & GND pins of the bluetooth module ?

Something else i’m thinking of doing it … which is replacing the RF Module on the Remote Control Unit with a bluetooth module . Is it possible ??

Why use the serial input although i can use Rx1 ??

ok. i have been confused.

my controller is still sandwiched in the middle of my squarebot so i was unable to actually look at it and see the labels on anything. i was under the impression that you were referring to the i/o pins labelled rx and tx on the top side of the controller. connect your blue tooth module to them.

rx1 and rx2 on the back, (?), side of the controller are not serial ports. they are for connecting the vex radio receivers. they wouldn’t know an rs232 protocol if it jumped up and bit them on the… well, you know. they expect six channels of pwm data which your bluetooth module will be unlikely to produce.

sorry for the confusion.

mea culpa.

I wouldn’t say they aren’t serial - they are somehow modulated as there are only 4 conductors there and you have 6 chans of PWM there, so something has to happen to squeeze that onto 4 pins. I would guess, however, that it isn’t RS232 but rather some proprietary protocol. If you knew the protocol that was sent there you could use another PIC to convert RS232 to that protocol, but that would be pretty pointless and a lot more work, unless you didn’t want to spend $100 on a Vex programming kit and already had a PIC programmer.

I think what foobert is referring to are the TX/RX TTL pins on the same header as the Analog In/Digital IO ports. Note that to do full RS232 you likely need a level converter as well, as I’m pretty sure they are only TTL level.

ok, last things first. the bluetooth modules these guys are considering are ttl, so no level converter is required.

that was pretty easy, so on to the first thing. the inputs to rx1 and rx2 are ppm which is a sort of multiplexed pwm signal.

the way i understand it is this. for the six channels on the vex radio, you get seven short pulses. the time from the beginning of the first pulse to the beginning of the second pulse is the duty cycle for the 1st channel pwm, the time from the beginning of the second pulse to the beginning of the third pulse is the duty cycle for the 2nd channel pwm, etc.

so the data for the six channels take anywhere from 6 to 12 ms depending on the sum of their duty cycles. these are followed by the seventh pulse and a lengthy pause of say six to twelve ms before the next data frame is sent. the long pause allows the receiver to synchronize the data frames.

hope that makes sense.

The easiest way to do it would be to use the “programming” port on the vex as opposed to the radio port.

Does the programming port on the VEX use RS-232 voltage levels (<-5V = 1, >5V = 0) or TTL voltage levels (<1.4V = 1, >1.4V=0)?

Sorry for the silly question. I am out of the loop on VEX stuff.

If the Programming Port uses RS-232 voltages, then you could use an off the shelf Blue Tooth radio like this one.

Otherwise, I would use the TTL voltage level serial port and use one of the modules that is compatible with that voltage level.

Joe J.

programming port is ttl. programming dongle, however, has level shifter in it and since you need one anyway to program the controller to listen to the serial port, there’s no point in not using it with an rs-232 level radio if that’s what you’ve got. otherwise a ttl level radio could be used on either the programming port or the rx and tx connectors up top.

This Radio, by AirCables, is an RS-232 radio that have used a lot and that I love. It has only 10M range, but it is beautiful in terms of its performance. I have not done it myself, but the engineer at AirCables tells me that if you crack the case it has the ttl signals easily available on pins. Highly recommended.

Joe J.

Ok I am new to the vex world but I have been in programing (C, C++, java, assembler, etc.) for a while now and I want to add bluetooth to my vex robot for control, I assume this is done easiest over the serial port connection and i have rad this entire thread. Has anyone successful done this? If so would you be willing to help me get figured out where to start and what radios work best? I would like to stay with the 100m range bluetooth.

AJBelayer

I can’t really speak to whether this is entirely “doable”, however you should post this question on the vexlabs.com forums.