how to build a VEX programming module

After spending a good deal of time playing with the VEX kit and the people from Radio Shack over the past week, I’d like to try to build a cable to program the VEX microcontroller.

The board is basically the same as the IFI board that used to be dubbed “Isac” from what I hear. I’m not familiar with the IFI boards, but there’s software out there to program them. From what I hear, that software can be used to program the VEX board. All you really need is the right pinout for the connector (and possibly a telephone chord with all 6 wires in it).

With a brief time using a DMM, I’ve found that the red telephone wire goes to the Vss pins of th the PIC chips. Other than that, there were no obvious (not run through a capacitor or resistor) connections to the pins of the PIC chip.

I’m sure that there’s interest out there in producing this cable, so if anyone out there has any thoughts that would help, I’d really appreciate it. Thanks guys.

~Ben

I intend on getting a VEX kit in the near future, and as it is driven by two PIC microcontrollor chips, the ability to create our own periphials should be easy. I too will join you in the quest for unlocking the secrets of VEX.

I found that pins 1-3 are Tx1, Rx1, and Gnd, respectively, for UART 1 on the user uP. The only major difference between the Vex controller’s serial port and that of the Edu controller is that there is no onboard TTL - RS232 converter. All I did to build a module is convert the TTL signals to RS232 signals with a MAX232 chip from TI and then use IFI Loader to communicate with the Vex controller. The other pins on the Vex’s serial port are control lines RTS and CTS, and the actual line that puts the controller in program state (similar to what the program button does for the other IFI controllers. I used a 25’ 6-conductor telethone cable from RadioShack (part #279-422) and then put a button on the module that will put the controller in program state.

I have a max 232 chip already from another project I am working on. It was my PDA Bot project that seems to just be kinda stuck in limbo. Perhaps I’ll find a way to merge the two projects. The goal for PDA bot was to be able to feed it exact positions, and to use a gps, and onboard navigation sensors, to get to that position. Well, the ideas are growing and I am still unable to afford the kit (will take me about two weeks before i’ll have enough). So, soon, very soon, I’ll have the kit, and I will be building. Soon after that I should have the resources to have a VEX team started, and start teaching some kids.

Pinout for the Vex serial port is as follows:

1 - Tx for UART 1 on the user uP - White
2 - Rx for UART 1 on the user uP - Black
3 - Gnd - Red
4 - RB0 on the master uP - Green
5 - +5v - Yellow
6 - RJ3 on the master uP - Blue

Sweet, that’ll save me some time. Good information to have.

If you don’t mind, what pins did you use for the program button? I assume you tied either pin 4 or pin 6 to either ground or +5. Also, does the switch need to be a constant on/off or does it need a momentary switch similar to the “hotsync” button on a PalmOS pda?

I’m obviously not very familiar with the hardware, so I appreciate your help. Now that you have a working programmer, could you post a schematic of some sort?

~Ben

Additional realizations:
The color / pin number correlation depends on which end of the phone cord you’re looking at. In the above pinout, looking at the end of the phone cable with the little springy catch on top, which side is the white wire?

Assuming pin one is on the left and is white, I’m also seeing +5v on pins 1, 4 and 6. Also, the “program” LED on my board is on. Is that normal?

Standard telco RJ11 Connectors use is as follows:


Pin     Color   Name    Description
1       /       nc      not connected
2       yellow  ?       Telco Ground
3       red     ?       Ring
4       green   ?       Tip
5       black   ?       Aux power -48v DC
6       /       nc      not connected

   clip
1 2 3 4 5 6

Also RJ11 cables are rollover by default so what you get is:
  y - b
  r - g
  g - r
  b - y

Working at at telco has a few perks after all.

Nice. However, that doesn’t clear up whether the above pinout assumes pin one is white or blue…or more clearly whether pin one is to the left or right with the little catch mechanism at the top or bottom.

Regardless, it’s nice to know what color actually lines up with what pin. Thanks!

~Ben

Has anyone put any kind of more simple howto tutorial on this up? Maybe with some pictures and the tools used? Also, has anayone tried figuring out the signals to send to Rx1 and Rx2 to control the robot? I’m not really too interested in programming the microcontroller. I’d just like to hook it up so that my laptop can control its movements and be notified of the interupts.

ok. i’ve gotten a 7 foot six conductor straight through rj11 cable from jameco, a max232 and a couple of jacks with wires hanging handily out the back, all for considerably less than the 25 foot monstrosity available at radio shack would have cost. 'til you factor in the shipping of course. but i would have had to order the max232 and the jacks anyway.

so here’s my question. which pin does the program button use? i’m guessing rb3, since that port, assuming i’ve pulled up the right data sheet, can trigger interrupts. also i’m guessing i should connect the switch to ground since port b has internal pull ups.

another question might be has anyone figured out the function of the pin that connects to rj3?

lastly, has anyone got a clue about the api? is it too much to hope that libraries from the other ifi controllers, (with none of which have i any experience), would work?

well, that’s it for now. time to hit the shower and head to work.

thanks.

thanks, fowlerm.

now i’ve got something to read this weekend.

just wondering… is it cool to distribute this code? haven’t come across licensing information, yet.

ouch. should have checked out the cost of the compiler before i bought the robot.

let’s see.

$299.00
  • $595.00

    $894.00

suddenly i don’t feel so good. if the bite for the vex programming kit is going to be anything like this i can see why they released the hardware four months ahead of the development tools.

just for suckers like me.

You can use the Student Edition C18 compiler from Microchip which is free. The only difference is that the Extended Instuction set optimizations are disabled after 60 days, but the compiler is still completely functional with the standard PIC18 instruction set beyond the 60 day mark.

The download link to the Vex default code should be on vexlabs.com when it is released, or you can email info@innovationfirst.com to get it now if you really want it.

Thanks, that’s a big help.
The starter kit is a little underwhelming without programming capability

i sent an email to info@ etc. the other day and the word was that the default code would be posted on vexlabs.com next week and that programming kit prototypes would be available as well at that time.

the default code has been released!! You can find it here

This also contains the ifi loader you will need, but no luck on the prototype programming modules…

Have fun!

What is the REV on your VEX board? I am not finding the pinouts like you described. I find that

1- RB1 (master)
2- RJ3 (master)
3- GND
4- C1OUT
5- +5v
6- can’t find where it traces to yet

My VEX board has this printed on it:
RS-TALOS
REV NC3

This is on the serial port and not the RX1 or RX2 ports.

Thanks,
Bronson

Does anyone know what the ‘default’ program module will contain? Does it come in both USB and rs232 port versions? Losts of laptops today don’t have serial ports.

The programming “cable” that will be shipped contains the level converter for serial ports. The idea of the extra hardware is to make it more immune to serial port and laptop performance differences. The original IFI controllers were very sensitive to laptop speeds and USB-serial adapters and would often fail loading the program.

Brad