io: /design/circuits

Circuitry in IO was designed to convert signals from the user (in the form of knobs and buttons) into digital data that PD (see programming) uses in its sound algorithm.

We used a total of 29 knobs, 12 on/off switches, and 12 momentary buttons as user-controlled input into the installation. These inputs were connected to a set of breakout boards which we used to make each station on the control top modular and somewhat interchangeable. Signals sent from the inputs through the breakout boards converge at a control board comprised with a Basic Stamp micro controller and four Analog-to-Digital Converters (ADC) and bus transcivers which codeify the identity and positions of the controls and send them on to the software program.

The control board's only job is to convert all of the knob and button positions manipulated by the users into digital values then and send these digital values to the PC. At the heart of the control board is the Basic Stamp 2SX micro controller from Parallax Inc.. A micro controller is an entire small computer on a chip. However, micro controllers are really small, slow computers, which run at about 50MHz, but which is ok because they don't have to do much.

There are two kinds of signals that our board needs to handle: analog signals relating the position of the knobs, and position of the buttons and switches.

The basic stamp micro controller is programmed VIA a serial cable to interface with Analog-to-Digital Converters (ADC). The ADCs we used on are control board are the TLC0838IN from Texas Instruments. These ADCs have 8 channels that can be selected for converting an analog signal to a 1 byte digital value (0-255). We use four of these ADCs on the control board giving us up to 32 analog channels. We currently only use 29 of the 32 available channels for converting signals send by potentiometers (knobs) giving us 7 knobs per station, with one knob in the middle used to change the soundscape (set of available samples).

For the buttons and switches there is a different system of chips called bus transceivers. The part number that we use is SN74HC645. Bus transceivers are a standard part that many companies make so the manufacturer doesn't really matter. The chips don't do any conversions, rather they just allow for disconnection of a whole set of 8 channels all at once. That means that all 4 chips can be connected to the same traces on the board since only one of them is on at any one time.

In each cycle of processing all of the controls, the basic stamp probes a control for its position, and then compares the current position to the previous recorded position. If the control value has changed by more than 1, the stamp will transmit over the serial port a two-byte code. The reason for waiting for a change of greater than 1 is that if a knob is very close to the edge between two different values it has a tendency to flip back and forth or oscillate between the two.

The first byte in the sequence sent to the computer is the control ID number with the highest bit set. Setting the high bit tells the computer that this byte is a control ID controlling for the instance where if the computer misses a byte it won't get out of sync. The next byte sent over the serial line is the value (position) for the knob or button that has changed states or value.


-- - - -- -- -- --- -- - - - ---- - -- - - - - - - -- - - - -- - --- - -- - - - - -- - - - --

If you are interested in IO for an art show, festival, or private party, please contact info@xiphoidprocess.com.