Friday, 14 June 2019

i2c bus and synths

A little bit of info re the I2C protocol and how it relates to midi and synths.
It's also called  rather confusingly IIC or i2c or the I²C (Inter-Integrated Circuit) interface.

It was originally developed in 1982 by Philips to allow integrated circuits in televisions to communicate
it has since evolved into a standard communications method used by a myriad of devices.
It's a digital communication protocol and it looks like it's becoming more common in the synthesizer world.

Buchla used this back in 2005 when Don developed the 200e.

He used this on the 200e's internal "power" bus (obviously it distributed more than just power):
Pin 8 = Yellow: i2c clock
Pin 9 = Green: i2c data
This is how the modules talked to each other without the need of patch cables... how internal midi, preset management, clocks, etc were distributed within the 200e environment.

It appears that i2c uses just 2 "wires" to transmit the necessary data.
They are:
SDA (Serial Data) – The bi-directional line for the master and slave to send and receive data.
SCL (Serial Clock) – The line that carries the clock signal.

Actually a i2c bus has two signals, along with a power and ground connection.
There are two pull-up resistors attached to each signal line, they pull the bus up to the supply voltage when it is inactive.

I2C works with the concept of “Master” and “Slave” devices. The master device provides the clock signal and initiates communications with the slaves. It requests data from the slaves individually. An I2C bus can have multiple masters and slaves, but only one master can be active at any given time.

Interestingly the Monome Aleph and the Teletype also use i2c.

The Aleph ingeniously use a simple 3.5mm stereo jack. It's just labeled  "ii"

According to their website:
" the bus is addressable (multiple devices on a chain), fast (400k), and easy to implement on various platforms (ie, an arduino)."

I'm in the process of building a Eurorack Faderbank which uses this protocol.
The Faderbank uses a Monome stype i2c connector TRS jack (tip is SDA, ring is SCL).
"It can be used either as a master device, which could connect directly to (e.g.) an ER-301 or monome Ansible, or as a bus device for a monome Teletype".
The Faderbank uses a Teensy 3.2 microcontroller

I understand that the ER-301 from Orthagonal Devices, SSR labs MATRIXARCHATE, Just Friends, the  Monome Teletype, Ansible & TXo (just like the other Monome trilogy modules (White Whale, Earthsea, Meadowphysics) also use i2c.

The I2C bus is a standard bidirectional interface that uses a controller, known as the master, to communicate with slave devices. A slave may not transmit data unless it has been addressed by the master. Each device on the I2C bus has a specific device address to differentiate between other devices that are on the sameI2C bus. Many slave devices will require configuration upon start up to set the behavior of the device.

Teensy 3.x
The Wire library allows you to communicate with I2C devices.
Pins 19 & 18.

MidiBox Hardware
Monome Aleph
ER 301
Circuit basics
Arduino and i2c
Monome teletype iiheader

I'll add to this page over time.
I'm not a Buchla technician so please let me know if there are any mistakes or BS.

No comments:

Post a Comment