Microcontrollers for Guitarists
Embracing That Brave, New Digital World
We guitarists are creatures of tradition. We like vintage guitars, old amps, classic rock, old growth wood in our instruments, analog circuits, and so on. For many of us, the term "digital" produces a negative response owing to experience with digital effects and the like back in the 90's. However, digital has gotten steadily better over the years and, best of all, I'm not here to debate digital versus analog.
​
As computing power has grown, we are now able to fit a surprising amount of it into small, cheap micro chips that are available to anyone who wants one. One particular class of these that I want to talk about today is microcontrollers (MCU). As the name implies, they are microchips that control things. MCU's are at the heart of things like TheGigRig QuarterMaster, Subdecay Proteus, and many more.
What is a Microcontroller?
​
The easiest way to think of an MCU is that it is able to read voltages from and write voltages to the pins it has available. The number of pins that an MCU can use for reading and writing is called the number of I/O (input/output) pins. One of the most ubiquitous MCU's today is the ATTiny85. It is an 8-pin chip that has up to 6 inputs/outputs. This allows us to do all sorts of tasks, from controlling relays to running sophisticated algorithms.
ATTiny85 Microcontroller
One example of a microcontroller doing something useful is the Big Littler. Here, all the MCU does is monitor the voltage on two pins: one for the big switch and one for the littler switch. When it detects a voltage change, it changes the voltage on the appropriate output pin. Specifically, when one switch allows a high voltage to hit the input pin, the MCU changes the state (high to low or low to high voltage) of the corresponding output pin.
​
If we want to start pushing the envelope a little more, we can even have the MCU do calculations for us. This allows us to do things like tap tempo, random number generation, or keeping track of multiple things simultaneously. With the DiSH, an MCU is in charge of generating the voltage that determines the filter frequency response. So the functions that is performs thousands of times a second include:
-
Monitor for tap tempo input
-
Monitor for manual speed adjustment
-
Monitor for multiplier changes
-
Blink the LED in time with the voltage output
-
Generate random voltage values
​
MCU's can do other amazing things, too. They can send and receive serial data, like MIDI. They can do complex calculations. They can interface with all kinds of sensors.
​
Where Should I Start?
​
Perhaps the most popular MCU platform in the world is the Arduino. They are open source, cheap, readily available, and rather powerful, all for the cost of a decent op amp. I like to use the Arduino nano, a board measuring about 1.5" long and .7" wide with onboard USB. The nano has 13 digital inputs, 8 analog inputs (that can also double as digital), all kinds of serial data support, and more. The community is also super responsive and helpful. In addition, they have a dedicated integrated development environment (IDE) which is basically a software program that helps you write code more quickly and easily. The Arduino is what I started with and it is the heart of the MLS-5 loop switcher.
The Venerable Arduino Nano
In addition to being a great platform in and of itself, the Arduino supports programming ATTiny-family chips in the IDE. This makes it super simple to put less complex code into a very small package. ATTiny chips are available with 6-12 I/O's and cost about $1.25 USD/each for single quantities.
​
Arduino makes a great introductory MCU project and comes with several ready-to-run examples. If you do decide to give it a try, here are some suggestions:
​
-
For a first Arduino, a genuine one is strongly recommended. I didn't do that and spent a couple hours figuring out how to get things talking right. Genuine Arduino's will say they are genuine. The generics will simply say "compatible".
-
Try out the "blink" sketch first just to make sure you can push code to it
-
Get involved in the forum
-
Brush up on your C++ code. Don't be scared, Arduino IDE makes it much simpler than you might think.
-
Go here to get all the info you need to get up and running
​
What Will You Do With It?
​
With so many possibilities, what will you do with microcontrollers? Will you create a loop switcher, update an vintage effect? Create something totally new? There are a whole world of possibilities awaiting. My only real advice is to not be intimidated, but to give it a shot and ask questions when needed.