Cypress Layout (over wires?)

I’m not sure if I got this right. We have the Cypress board attached to the breadboard like a DIP package. However, that leaves one row of pins under it, so are we suppossed to run wires under it? I don’t feel that it’s right, but it looks like what the beta teams displayed.

I would like to confirm that this is right, that the Cypress board covers up the breadboard connections for one line of pins.

Thank you.

Yes, if you use the breadboard you’ll have to run wires out from under one side just so you can get at the pinouts.

Think about something a little more robust for competition use though.

Joe Ross of Team 330 put together a presentation on the 2010 control system. In it was a diagram of how they installed jumpers on the breadboard in order to bring the connections out to the open areas.

You can see it at I highly recommend this presentation as something you should show your team so they are up to speed on the new drivers station.

Also, AndyMark is carrying a breakout board and protective case from EStop Robotics I’m not endorsing it or anything, but it’s another solution to making connections to the Cypress board.

Where can I find I/O pin assignments for this board?

Here’s a slide I made up.
The Analog’s and Digital’s may start counting at 0 in Java /C++, but I haven’t checked.
I will, I will,…

Thank you – I had no clue about that.

I’m still remembering facts I probably knew about last year. I was going to wire up a switch that will act as an active-stop mechanism, which will drive the motors so as to bring the robot to a much quicker stop that coasting them (as disabling does.) However, I’ll have to try Jaguars – it was brought up that they have an electomagnetic stop. Hopefully, this will be effective enough to bring it to a stop within three feet.

I’m sure I’ll find a use for this if the Jaguars are effective at stopping it. Of course, I’ll have to check if the electomagnetic braking works when the PWM output is disabled (we would like to avoid CAN until the offseason.)

I hope other teams will find this helpful, too.

Thank you very much. This info is in the driver station, though not laid out in a easy to read manner. It uses the Cypress pin labels, which when the board in mounted on the proto board are on the UNDER side. So you need to have this I/O table figured out before mounting the Cypress.

Not sure why this is not easily available on the First site???

It appears that something more robust for the competition
is not allowed. See

I think this is in the running for “boneheaded ruling of the year” by the GDC, and may even eclipse last year’s “lawyering of the bumper rules” in ridiculousness. Have they ever looked at how some teams carry around and practically abuse their driver station boards? And they expect the wires to all stay in place by nothing more than the friction of a breadboard hole?

From Webster:
breadboard (transitive verb)
Main Entry: breadboard
Function: transitive verb
Date: 1956
: to make an experimental arrangement of (as an electronic circuit or a mechanical system) to test feasibility

(Emphasis is mine)

I wonder if Andy will now refund the money I just paid for this little gem?
“This circuit board is designed to be the breakout board for the Cypress circuit board used in the 2010 FIRST Robotics Competition driver control system.”


Sounds like “something a little more robust for competition use” will have to be an epoxy or conformal coat of some kind over everything.

At least the whole Rube Goldberg IO contraption can be enclosed in a very large protective project box.

I must be either incredibly tired or amazingly stupid, or both…we have the manual that Joe Ross provided at our kickoff and quickbuild session, so I dont think the problem is in the paperwork but in me! For the life of me I cant tell where the jumper wires go! I cant see them well enough in the pictures and you cant see the bottom of the cypress board ( DUH ) so theres a hesitation to just install a wire to each pin on the cypress board and just take them out to …nowhere? Is it really that simple? Do we just attach a jumper wire to each pin of the cypress board where it attaches to the breadboard and rely on friction to hold it all together? I like the little board that was mentioned earlier, is it going to be legal to use?

Well the bigger question is the physical layout and attachment of the wiring. I think in my case, too many years of doing avionics and other such work has just made me leery of randomly attaching leads without knowing their destination!

Thanks much in advance, Ive spent 3 hours now trying to find this here on the net, keep coming back to the same materials.


I think the version of my presentation that was distributed by RQBS and also the one posted by Doc Wu is older, and doesn’t have a lot of the material I developed later about the Cypress layout, including one possible layout on the breadboard. You can get the latest version at the end of this thread: and should be dated 12/19.


I believe you’ve got the Digital Outputs backward… that or you’ve discovered a bug in the indicators / API. They should all count up as you move down the board.

Also, probably the most complete documentation about the EnhancedIO features is at C:\WindRiver\docs\extensions\FRC\C++ Reference.chm and then look at the DriverStationEnhancedIO class documentation.

It doesn’t have the pinout for J2 and J3 (can’t believe that’s not somewhere in the documentation… can anyone confirm it’s nowhere?), but it describes all the features and the connections to P2 (the “((((Wireless” connector).


I’ll go through test and correct my chart for the Digital Outputs, as well as, checkout that hidden documentation too.
Once everything calms down a bit maybe I’ll have time to go through the various environment-specific documentation.
So far I’ve been pretty much skimming everything.

It’s hard to confirm that something is “nowhere,” only that we can’t find it “anywhere,” and even that’s suspect…:slight_smile:

My mistake is confirmed. The Digital Outputs were reversed.
In the LabVIEW code the I/O counts begin at 0 not 1, so just be aware that Digital Output 1 is referenced in the code by “0”. In C++ the reference matches as 1-8.
These labels are how the Driver Station sees them.

Here is the corrected chart:

The pinout you show is accurate for the compatibility mode. However, if you click “Configure…” on the I/O tab, you can switch to enhanced mode at the bottom and then you can make all 16 digital lines input, or all 16 digital lines outputs or any mixture in between (in addition to a ton of other features).

I’m not sure what LabVIEW code you are referring to. If you mean that the array index is 0 for digital input 1, for instance, then you are correct, but that is simply because the index array primitive in LabVIEW is 0-based. Nothing in the API (compatibility or enhanced) is “0-based”.

The way I read the <R82> rule change in Team Update #4, posted yesterday, it appears that we are no longer required to use the breadboard with the Cypress PSoC 3 FirstTouch Kit I/O module, and we can now use the eStop Cypress Carrier and Enclosure available from AndyMark for more safe and robust mounting and I/O pin access. It would also appear that the Jan. 18 posting by the Game Design Committee on the FIRST Q&A Forum, saying that we can only use the breadboard, is now out of date. Does anyone disagree? (I am hoping to post this question also to the FIRST Q&A Forum through our Team Rules Expert, who has access.)

Please let me know if you read this rule change differently. Many thanks!

I believe that does obsolete the posting on Q&A.

It does appear that they have drawn a line through
“the breadboard,” removing it as a requirement,
and refer to “carrier board” now. Clarification via
QandA would be important, but the plain English of
the reworded rules is what it is.