Nisbeth
Headphoneus Supremus
- Joined
- Oct 20, 2001
- Posts
- 1,828
- Likes
- 23
Since I finally realised that even I could probably benefit from incorporating a little bit of software in my otherwise purely hardware-based projects, I have been toying with the idea of building a more generic controller that could be used for many different audio projects. Obviously this is very much inspired by the LCDuino, the HiFiDuino and other similar projects, but I have tried to give it my own flavour anyway
The AmpDuino is a dedicated shield for an Arduino Nano v3 board. It incorporates most of the connections that would be necessary for audio-based projects while hopefully being expandable enough to be used for other things as well. The standard “breakouts” available are:
- Two I2C connections (display and one spare)
- Dedicated port for rotary encoder w/ push button.
- Two “trigger” outputs designed to be isolated via a PC827 optocoupler (which is of course optional)
- Three “general purpose” digital inputs/outputs (for IR receiver, IR transmitter or similar)
- Dedicated ports for interfacing with a motor driver for volume pots and sensing the position of the pot (shamelessly copied from the LCDuino…)
- SPI port for controlling DACs or PGA23xx type devices
- Power LED (if there is no Arduino mounted to indicate power)
- Reset terminal broken out to connector (although the Nano onboard RST can be used as well)
- 5VDC input with a another smaller connector that can be used for output.
The board measures 1.95″x2.3″ and is two layers.
I wanted this to be as compact as possible, but I have also deliberately based this on the Arduino nano instead of just the microcontroller on its own. The Nano boards are very cheap and having a “complete” Arduino available should make tinkering and tweaking much easier than having to mess with in-circuit programming etc. (ok, this may just be my irrational fears at play here
) I have also deliberately moved away from the LCDuino form factor, because a “normal” board can be positioned in many different enclosures. Using I2C for the display driver gives more options than just a standard 16×2 LCD. The I2C display connection also makes it possible to get rid of the LCduino’s port expander and still have enough digital pins for most applications (I think).
Discarded ideas:
- Onboard PSU (not really enough space, probably easier to add an external regulator depending what voltages are available already and how much current is needed)
- Dedicated port for IR sensor (could be done, but he current D1-D3 ports are more usable and will allow other usages as well (real-time clock etc.))
- Onboard components for the IR receiver. Could be done, but would mean the sensor would have to be mounted closer to the board, so probably easier done with an expansion module which has the sensor and the external components on the same board.
- Onboard SSR for power connections: Could be done (with something like a Sharp S202), but again it is more versatile if kept offboard.
- Onboard motor driver for volume pots: Not really enough space and would not always be needed. Instead, I have retained the basic connections and I am working on a dedicated board that can be soldered straight to the terminals of the motor on Alps pots (or at least that’s the plan)
- Real time clock: This is obviously a very nifty feature in the LCDuino, but I can’t see myself using it in many applications.
- Input selection: This is a tricky one, but initially I’ll keep it offboard. Anyway, for relay-based selection you can always “cheat” and send pulses to a 4017 instead. (hmm, probably should make a breakout board for this one…)
Any comments/suggestions? Is this a lousy idea?




The AmpDuino is a dedicated shield for an Arduino Nano v3 board. It incorporates most of the connections that would be necessary for audio-based projects while hopefully being expandable enough to be used for other things as well. The standard “breakouts” available are:
- Two I2C connections (display and one spare)
- Dedicated port for rotary encoder w/ push button.
- Two “trigger” outputs designed to be isolated via a PC827 optocoupler (which is of course optional)
- Three “general purpose” digital inputs/outputs (for IR receiver, IR transmitter or similar)
- Dedicated ports for interfacing with a motor driver for volume pots and sensing the position of the pot (shamelessly copied from the LCDuino…)
- SPI port for controlling DACs or PGA23xx type devices
- Power LED (if there is no Arduino mounted to indicate power)
- Reset terminal broken out to connector (although the Nano onboard RST can be used as well)
- 5VDC input with a another smaller connector that can be used for output.
The board measures 1.95″x2.3″ and is two layers.
I wanted this to be as compact as possible, but I have also deliberately based this on the Arduino nano instead of just the microcontroller on its own. The Nano boards are very cheap and having a “complete” Arduino available should make tinkering and tweaking much easier than having to mess with in-circuit programming etc. (ok, this may just be my irrational fears at play here

Discarded ideas:
- Onboard PSU (not really enough space, probably easier to add an external regulator depending what voltages are available already and how much current is needed)
- Dedicated port for IR sensor (could be done, but he current D1-D3 ports are more usable and will allow other usages as well (real-time clock etc.))
- Onboard components for the IR receiver. Could be done, but would mean the sensor would have to be mounted closer to the board, so probably easier done with an expansion module which has the sensor and the external components on the same board.
- Onboard SSR for power connections: Could be done (with something like a Sharp S202), but again it is more versatile if kept offboard.
- Onboard motor driver for volume pots: Not really enough space and would not always be needed. Instead, I have retained the basic connections and I am working on a dedicated board that can be soldered straight to the terminals of the motor on Alps pots (or at least that’s the plan)
- Real time clock: This is obviously a very nifty feature in the LCDuino, but I can’t see myself using it in many applications.
- Input selection: This is a tricky one, but initially I’ll keep it offboard. Anyway, for relay-based selection you can always “cheat” and send pulses to a 4017 instead. (hmm, probably should make a breakout board for this one…)
Any comments/suggestions? Is this a lousy idea?
