Programming the PSoC

Does anyone have any idea how to program the PSoC from the kit of parts. Or how to use it? If anyone has any information on the matter, please post.

You can use it in one of two ways (or both I guess if you buy another one)…

It can be used on the classmate Driver Station to provide access to custom I/O such as buttons, knobs, LEDs, etc on your driver console. You must use the official provided firmware if you wish to use it this way.

It can also be used on the robot in any custom way you choose (i.e. a sensor interface for any special sensors you decide to use). You must make your own design and firmware for it in this use case. The easiest way to interface it with the cRIO is probably with I2C, though there are many other ways that are possible.

custom firmware??? Umm, can you put that in plain english?

The PSoC board has a processor and some reconfigurable mixed-signal logic fabric on board. Basically, you would need to write your own code to run on the board if you use it on the robot.

The expected use case for 99% of teams is that it will be used with the driver station to wire up buttons.

Are we allowed to write our own code for it? I was under the impression that we had firmware given to use by FIRST that we had to use. Didn’t see anything in the rules about it.

See <R60N>

…How can the FirstTouch NOT be used as a part of the Operator Console?

It can be used on the robot as a piece of custom electronics. In that case, you are allowed to reprogram it as you see fit.

Didn’t I say all this yesterday? …in the second post?

BTW, how would I connect it via I2C?

If using it on the robot, you just pick two of the pins, map them to an I2C peripheral in the PSoC and then wire it up to a digital sidecar.

Wha???
:confused: :confused: :confused:

If you didn’t understand any of that, you probably shouldn’t try anything so advanced just yet. You can work on programming the board in the off-season if you like.

Thanks for the encouragement. |(

Hi -

From the past few posts, I am under the impression that I do not need to connect or do anything with the PSoC board if we choose not to use it for any of the above things. Is that correct? In other words, I am asking if it is required to be used and connected to the Classmate PC. I read the control system documentation and did not see anywhere that it said that I needed it. Please tell me if my interpretation of these things are correct.

Thanks.

It’s not required.
It’s only necessary if you want to do something non-game controller-ish.

you only have to attach the PSoC to the classmate if you want to program in extra buttons. You can, however, use it on the robot with custom circutry and software, if you want.

Teams are not required to use the I/O board. In fact the new DS now allows for virtual inputs to autonomous and virtual LEDs without using a soldering iron and electronics. On the other hand, the I/O board is very functional and actually very fun to play with. You can use a breadboard or other breakout board to make some very cool custom driving circuits.

The I/O tab on the DS can be used in several ways. If the I/O board is not connected, it is virtual. Numeric and digital values will be sent to the robot code simply by entering them onscreen. Digital output values will be displayed onscreen.

If the I/O board is attached, reprogrammed, and connected to switches and knobs, the HW values will be displayed on the I/O tab to assist with debugging, and the HW values will be sent to the robot code.

When plugged into the computer, there are actually two modes to choose between. The I/O board can be used in compatibility mode which will work pretty well with the API used last year, and which will give you four analogs and either digital inputs and eight digital outputs. This should allow it to work pretty well with code written for last year’s robot, or to be used by teams already familiar with the system who want something familiar.

Or, the I/O board can be Configured to be in enhanced mode. This opens up a lot of additional types of I/O as well as just having more I/O. I won’t repeat everything in the manuals, but this is certainly worth exploring even if just to learn about sensors and circuits.

Greg McKaskle

I don’t really think there is any need for it. It’s unimportant enough to wait until the season is over to program unless you’ve managed to use up all the buttons on whatever controller you’re going to use.

Thanks for all the replies… Looks like I’ll wait until the offseason before attempting this. Thanks again for everyone’s help.