I was looking at the microcontroller circuit board and noticed that the connector used to plug in motors and interrupts has 12 holes that are not accessible unless the cover is removed.
Before I go to the trouble to try to trace out these connections, has anybody else investigated these pins?
My first guess would be that they would be the connections for in-circuit programming and debugging which, if true, would open up some very interesting possibilities.
If you’re talking about the holes between the interrupts and the motor ports, I would guess that they are just there because it’s easier to get a bigger plate-with-all-the-holes-in-it than two smaller ones. Less different inventory, etc. Are the pins even connected to anything? I might guess they’d be soldered in, but maybe not actually wired in.
OK - The Vex people didn’t answer (I understand why) so :
As I suspected, the hidden connector pins give you access to the in-circuit programming and debugging pins on both the master and user processors.
This is huge. It means you can -
[LIST=1]
*]Program the both the master and the user programmer using any pic programmer. You don’t have to have the Vex programmer.
*]Use an in-circuit debugger to load and run code, single step through your code, and look at variables in memory.
*]Have a couple more I/O pins available (B6&B7), in case you run out.
[/LIST]
Using the pin designators on the silkscreen of the pc board, here is the pinout:
J1-17 PGD on the Master Processor
J1-18 MCLR on the Master Processor
J1-19 +5v
J1-20 no connect
J1-21 Port B7 and PGD on the User Processor
J1-22 MCLR on the User Processor
J1-23 RX2 on the Master Processor
J1-24 GND
J2-9 PGC on the Master Processor
J2-10 GND
J2-11 Port B6 and PGC on the User processor
J2-12 TX2 on the Master Processor
Heres a hint to why the the Mods wont tell you what they are… the mods don’t know EVERYTHING, they are just in charge of operating and running the site, they aren’t necessarily here to answer all of our questions, because no one really knows for sure, they are here to make sure that no one is doing things they shouldn’t be doing on the site, they don’t have to answer all of your question because they don’t know, so stop saying they wont answer us because they don’t want to tell us, because they aren’t answering you probably because they don’t know.
So go ahead and reveal to us what they are ITK and you may just enliten the Mods as well as the rest of us…
I don’t believe that the Vex engineers that frequent this site are ignorant of the system architecture. In my work, I often have to decide whether disclosing a hidden feature to a customer will cause more problems than it solves. Such features are included for factory use, but in the hands of an uneducated user, they can wreak havok with the product.
The engineers at Vex have done an incredible job in designing the Vex system. I continue to be impressed with the thought that has gone into this system. They have produced a product that is flexible and usable, but that is also very robust and tolerant of abuse. They put electrical protection on every exposed signal, and they put physical protection around the entire controller with a well-designed case. In so doing, they have created a product that can withstand the abuse that is bound to occur with the type of inexperienced user for whom the product is targeted. Because of this protection, you have to work pretty hard to damage this controller. By necessity, the In-Circuit Programming pins cannot be protected in the same way, so it makes sense to not expose those pins. And to publish the existence of those pins opens the possibility of inviting unqualified users to try to use those pins, undermining the protection and robustness of the product.
There are also support issues that arise with multiple programming methods. The IFI loader works quite well at programming both processors from a single serial connection, so why muddy the water with an alternative, more complicated programming method. By exclusively using their own software and programming hardware, they don’t have to try to support every user trying to use whatever programmer they might have bought or built. Makes support a lot simpler.
I invited the engineers to disclose the use of those pins because their existence was now pulbic knowledge and it could save a lot of potential misinformation being put out about the circuit.
i have abused my microcontroller in probably every way imaginably. Dropped it, it came very close to high heat (flamethrower robot) and it’s recieved so much shock from the climbing robots i made. I even had a 20 mph robot (with high speed motors, of course) smack dead center into a wall, and my micro still works. Vex does make very robust pieces of equipment, i have to say.
Anyway, as to the extra ports, I don’t think you could get much out of them. In order to have individual control of each port, you’d probably have to build your own circuit. For power for more motors but still have the likeness of 4WD mode, you could connect those pins to the existing ports and get power from there, but you could already do that which Y cables. And then you’d have to take the cover off, which is a huge risk for the amount of abuse i put into it. Nevertheless, i’ll try it.
I don’t think it’ll be very useful flashing the master processor due to the low number of pins its exposed to… but having a programming cable which hooks it up directly to the ISP would be great. No more expensive orange cable required.