Introducing the Arduino and related devices
Disclaimer: I’m not an engineer, and some of this material approaches the speculative. Hope it is as useful to you as it is to me, and please feel free to comment on any errors or omissions you find.
Over the last few months I’ve been studying the
features of different microprocessor families to determine which are most suited to electronic music and synthesis. The big winner so far is the $19.00 Teensy 3.2: But that’s not what this post is about.
The Teensy 3.2 (It is, in fact pretty teensy)
This post is going to be about the Arduino, and that is for a couple of good reasons. The Arduino is built from the ground up as an educational environment for learning about microcontrollers, and it has become, by orders of magnitude the most popular microcontroller platform for hobbyists and amateur engineers. This popularity means that it is often the first thing that comes to mind when creating a new project.
There is a lot to like about the Arduino:
- The boards are inexpensive
- Very well documented, both for hardware and for software
- Supported by a huge community of other users
- Supported by a huge number of libraries to do just about anything (within reason)
- The tools needed to write and program the device are simple and free
And there are some weaknesses to the platform:
- The device runs slowly (typically 16 MHz)
- The device is 8 bit, which means that it is limited in the numerical processing it can do
- The device could have more memory to store programs and data
- The tools are best for simple, small programs and can fail when doing something complex
- It is difficult to get high quality analog signals out of the device
In fact, the device is so popular that there is even a EuroRack synthesizer module that is built just so that you can add the device to your synthesizer rack.
This is Circuit Abbey’s Euroduino module. The main board comes as an easy to assemble kit, and is supported by an extra module that will let you program the device while it is bolted into your rack. It features:
- Two generic knobs that can be used to change program settings
- Two 5 volt digital inputs and outputs
- Two 5 volt analog inputs and outputs
- Two general purpose switches
The processor inside the module is the Arduino Pro Mini, made by SparkFun.
This board has all the functionality of the normal Arduino Uno in a very small package which fits in the narrow Euroduino module pictured above.
The Euroduino exposes a subset of the functions that the device is capable of:
- The 2 knobs and the two analog inputs connect to 4 of the 6 analog input pins
- The 2 switches, the two digital ins and the two digital outs connect to 6 of the 14 digital I/O pins
- The 2 analog outs connect to 2 more of the digital I/O pins which are set to Pulse Width Modulation (PWM) analog output.
To evaluate the practicality of the Arduino ecosystem (both hardware and software), we need to do some background research into the various signals used in Eurorack, and how much resolution they require, both in bit depth and in sample rate. Some limitations are obvious, and some require further research, particularly when using control voltage to represent loudness and 1 volt per octave pitch.
This is discussed in these two pages:
Once you understand those things, you can evaluate how close the Arduino comes to meeting the needs of modular synthesis, which is discussed in the second part of this post: