Two cypresses?

Are we allowed to use two cypresses on the control board so we get more connection ports for our controls?

The Driver Station software will only talk to one Cypress PSoC.

If you need more switch inputs, consider a Custom Control Interface board from eStop Robotics. Or you can use multiple switches with a simple resistor circuit into a single analog input on the Cypress board, giving you many more potential switches.

What do you need so many inputs for? There might be another way to do it that’s more efficient.

I’m working with the team with this question. In our case, we have too many DI (digital inputs) causing us problems. with the Cypress having 8-DI, 8-DO and 8-AI - we’ve run out of space on DI’s. We’re thinking of doing a grid for the preset scoring positions and in placing 6 buttons on the board, along with ‘other stuff’ - we’ve run out of DI’s.

Can you explain more about the ‘simple resistor circuit…’ idea above?

-Ted Dressel, Mentor Team 1111

The operator controls for this years game easily exceed
8 digital inputs. If you have a 1 of N selection, you can
do this with a pot on an analog input. You can emulate
the same thing with switches and resistors.

As an alternative to another Cypress board, you could use
the hardware from a USB game stick. eStop Robotics
had one, the CCI, but it is already out of stock. This is
not a surprise as more than 8 digital inputs will likely
be common this year.

If you get another logitech joystick you
will find that the actual USB interface is a small card
that you can carefully extract, reverse engineer the
wiring for and use for 11 more digital inputs, 9 of
which will be accessible by splicing the fine wires,
and the the last two by removing and soldering wires
for two surface mount switches.

The Cypress card/driver does have its gremlins, but it
does not appear that the joystick driver shares them.

Eugene

If you have a bunch of buttons with only one needing to be pressed at a time, it’s simple. Wire up a string of resistors between power and common, putting a button from each resistor-resistor connection to the analog input. You’ll present a different voltage when you press different buttons.

If you need to be able to sense more than one switch simultaneously, use a simple D-to-A circuit. Depending on how many switches there are, I would suggest either a “powers of two” scheme (which either takes many different resistor values or a whole lot of identical resistors) or an “R-2R ladder” (which can be made with a smaller bunch of identical resistors but requires double-throw switches).

If you use the cypress board in enhanced mode, you can configure the digital pins to be either inputs or outputs, so you can have up to 16 digital ins.

The Custom Control Interface (CCI) from eStop Robotics LLC would be a good alternative for those teams looking for an easy to use source for 12 digital inputs and 4 analog inputs. Multiple CCI devices can be connected to create even more buttons. :smiley:

The Custom Control Interface is currently back in stock, however, with as quickly as we are selling them we do expect to be sold out this season.

The CCIs that are currently in stock have been fully tested with Windows XP and Windows 7.
Teams that ordered the original CCI should contact us to have their CCI replaced for free with the new version.

I’ve looked through the Enhanced Driver Station IO VIs and saw that you can configure the DIOs to give 16 inputs. But I don’t know how to use them from that point on. I figured I’d configure them that way in the Begin VI, but then I don’t know how to use those later in Teleop. Do I have to use two ‘Get Digital Input’ VI’s? And do I need to use the ‘Enhanced IO Config Get’ VI anywhere?

I am not a programmer and am finding this quite difficult. Thank you in advance for your help.

To read the enhanced I/O, use one of the Enhanced Get VIs. The one shown returns sixteen digital inputs.

To configure, you can do this interactively using the DS dialog, and the settings will be saved into the ini file and used for future DS execution.

OR

You can configure the DS programmatically using the VI shown. This lets you specify the direction of each line.

You don’t need to use the Get Config VI unless you want to determine how the DS I/O is currently configured.

Greg McKaskle

Screen shot 2011-02-07 at 4.25.41 AM.png


Screen shot 2011-02-07 at 4.25.41 AM.png

I’ve configured the IOs in the begin VI. I use the Get Enhanced Digital IO VI and wire it into an array to cluster funtion, which I then unbundle by name into my digital outputs which I can take boolean values from. What I really don’t understand is why when I unbundle by name, the names suggest that there are 16 DIOs, but they’re numbered from 0 to 8. 9 IOs? If I create anything more, [8] just repeats. So I don’t know what [0] is for, and I don’t know why no [9] shows up for wiring. Let alone a [10] or a [16].

The Array to Cluster doesn’t know how many elements are in the array. The “hover help” tells you how to fix it:

“Right-click the function and select Cluster Size from the shortcut menu to set the number of elements in the cluster.”

But I wouldn’t do it that way. I would use an Index Array function, which can pull out multiple items from the array at once.