CICCS is Custom Interface for Computer Controlled Serge.
It is a collaboration project for Timm Mason (Mood Organ) of Seattle, WA.




CICCS utilizes an Arduino Pro (ATmega328 microcontroller) to produce a number of computational possibilities for composing music on a Serge modular.             Depending on the types of Arduino sketches that are created, CICCS can perform a vast amount of functions based around CV generation and manipulation.

Banana jacks are coded the same as a Serge modular: Blue is DC coupled, Red is trigger I/O, and the top red/black jacks are for +5V and GND.


I was initially interested to take on this project without much prior introduction to Arduino or C/C++.  It was desirable to explore what can be done easier and more creatively through digital paths, but made for analog synthesis.  Further excited by the idea of creating an interface that both contextualizes the systems of analog-digital hybrid synthesis and one that works quite musically, I began a conversation with Timm and we started designing.  Several months went by.  Timm was instrumental in the design decisions for CICCS– discussing basic Arduino sketches to make utility modules (S & H, clock generation, boolean logic) quickly led to examples of more elaborate, internally patched systems with software modules that interact with each other.  Around this time, I finished the analog boards, added MIDI and hardware connections  and we’ve now started on what is the proof of concept stage.  This stage is where some of Timm’s future solo music will dwell and evolve, where the ideas on paper will make their way to music.  There is no real end to this stage until a possible Rev 2 is made. (?)

CICCS can easily be modified to use with an Arduino Uno with the same pinouts.  Yes there can be more input/outputs and a better resolution with an Arduino Due.  Although for this version, we have made the most functionality out of a rather basic Arduino board to get us started.

In the end, it turned out to be quite a beast of its own.




 This video quickly demonstrates the “Ring buffer”- create a sequence of any size by manually storing voltages, then scroll forward or back through the sequence. Here he has assigned the switches to Record, Previous, Next, and Reset Buffer. Step through the new sequence by patching “Next” Input to the clock.


CICCS Features and pin configuration are as follows:

6 ANALOG INPUTS (A0, A1, A2, A3, A4, A5) 

0V-5V offset (left knob) feeds a constant voltage when there is nothing in the jack Input

-5 to +5 Inverter/Attenuator will invert or attenuate your CV Input

Input voltage is clamped to GND and +5V.

Say you feed it +4V, offset is at 0V, and Inverter/Attenuator is at 0V, Arduino will receive +4V. If you feed it +4V, your offset is at +2.5V (halfway up), and Inverter/Attenuator is at 0V, Arduino pin will read +5.  If you feed it +4V, offset is at 0V and Inverter/Attenuator is at +1V, Arduino will receive +5V. If you feed it +4V, offset is at 0V and Inverter/Attenuator is at -4V, Arduino will receive 0V.


6 DIGITAL I/O    (D2, D4, D7, D8, D12, D13)

Operates at 0 or +5V. Can provide or receive a trigger with maximum of 40mA



Utilizes RX and TX serial data and an opto-isolator.



The switches are a three way configuration with a spring on one side, so it functions ON (hold), OFF, and ON (momentary).

The manually gated +5V is routed to the red switch output jacks, which then can be routed externally or Digital I/O.

This particular placement is traced from Timm’s hand.


ANALOG OUTPUTS (D3, D5, D6, D9, D10, D11)

These are filtered, steady outputs from the 8-bit PWM pins. Rather than using up all of the digital pins and a DAC to create two outputs, there is a third order low pass filter to take out the noisy artifacts and smooth out the CV.  It was an exercise to prove how much of a useable CV one can produce once it goes beyond a simple RC filter.

Outputs 1, 4, 5, and 6 (D3, D9, D10, D11) have a slightly more recognizable step between values, but has faster settling time. The steps can also be smoothed out with an external slew generator.

Outputs 2 and 3 (D5 and D6) are fed through a filter with an even lower cutoff frequency.  You can hear the steps less through this output, but it has a higher settling time when jumping from one value to the next.

All outputs hold a steady value.



LED readout field for visual monitoring


CICCS runs on 12V power with a 1A rating. I wouldn’t recommend any less than that, especially when running all of the I/O.  There is an onboard 5V regulator that also powers the Arduino without Micro USB.  Recessed RESET button also on the rear panel.


More documentation to come.


(early drafts)