Saturday, October 06, 2012

Overview
The Vernus V110 pressure-sensitive floor is a historical controller unit from the era of analog synthesis. The unit itself is a large wooden triangle structure, with a sturdy frame and a single pressure sensor in the centre of the platform. Four such triangles can be pushed together in various configurations to form different shapes for a performance context.

The aim of this blog post is demonstrate a simple, efficient, cost-effective method of using these floor sensors with modern studio equipment. This is achieved by digitising the control signals, thereby affording the ability to map the state of the floor sensors to a wide range of parameters - and encouraging their use in the modern age of computer and laptop music. This is done via a hardware layer, a firmware layer and a software layer.

Pressure Sensor
The pressure sensor itself is very simple in design, consisting of what appears to be two conductive plates- perhaps separated by a non-conductive material such as foam - combined with a passive resistor to form a voltage divider. In practice, the sensor is actually very sensitive, and is suited to the task perfectly.

Control Voltage Conditioning
Each unit features a single cable, which carries the output of the sensor back to a control voltage box that conditions the control signal.

The role of the control voltage box is two fold:
• To provide a voltage to drive the pressure sensor;
• And to scale and offset the output signal control voltage so that it is suitable for analog synthesiser use

The box includes four inputs (one for each of the V110 units), four outputs (representing the control voltage outputs) and two sets of four knobs (controlling the voltage offset and voltage output scaling).

The signal measured from the control voltage output lines measure from -6.8V to +6.8V, depending on the offset and output scaling controls and the particular floor unit that is measured.

Cable Connection Pin Designations
The connection that carries the signal from each floor sensor to the control voltage unit is a five pin-DIN cable. The positioning of the pins is not identical to a standard MIDI cable. Only the outer two and middle pins are used. The middle pin is the signal pin, while the outer two pins carry the positive and negative voltage supply. The control voltage box unit supplies -7.5V and +7.5V.

Of course, the aim of this post is to basically bypass the control voltage box and to be able to read the pressure sensors directly into the digital realm. The male pins of the cable connector can be easily accessed via a set of three alligator clips for breadboarding and prototyping purposes. However, for a more permanent solution, a DIN female connector is required.

Hardware Layer
An Arduino Uno was used to measure and convert the control signals from the four floor pressure units for use in the digital realm. The positive pin from each floor unit cable was connected to 5V on the Arduino board. The negative pin from each floor unit cable was connected to ground on the Arduino board. The signal pin from each of the floor units was connected to analog inputs 0, 1, 2 and 3 respectively.

Thus, the 5V supply voltage from the Arduino board is divided by the pressure sensor circuit, the output of which is connected to the analog to digital converters for digitisation.

The onboard analog to digital converters of the Arduino board (accessed via the analog inputs as described above) have a resolution of 10 bits. Data is then sent via a USB cable to a host computer for sonic mapping. A software layer was used in this instance to visually represent the incoming data as well as allow for the muting and unmuting of each floor sensor individually.

Firmware Layer
The Arduino code was written in the Arduino 1.0 IDE for the Uno board. The program is straight forward and every line is commented.

The data is formatted as MIDI data but is sent via a serial connection. A Max patch or similar is required to convert the data from serial / com port to an actual MIDI-useable stream.

Software Layer
A Max patch was used read a serial stream of values from the Arduino Uno board, and route them to a virtual MIDI device. This patch includes a visual representation of the data via two sets of multislider objects. The data from each sensor can be muted, as this may make mapping easier (depending on the DAW or software used for sound generation).