Skip to main content

Aciduino

A cheap Roland TB-303 step sequencer clone with basslines generator and MIDI controller aimed at live interaction. Your acid lines for a very low cost.

Build it on a protoboard or use the MK2 PCB designed by community contributors.

Aciduino on protoboard


Features

303 Step Sequencer

  • 2 tracks of classic TB-303 sequencing
  • 14 non-volatile pattern memory slots
  • Rest, tie, glide, and accent per step
  • Per-track pattern length — 1 to 16 steps

Generative Engine

Generate harmonized acid lines at the press of a button:

  • Pick a harmonic mode (scale)
  • Set low/high note range
  • Press generate for infinite fresh sequences
  • Shift steps left/right

MIDI Controller

Control up to 6 synth parameters per track with CC messages. Two banks (A/B) per knob expand your reach.

MIDI Clock

Tight, solid internal MIDI clock — or receive external sync as a slave.


User Interface

Aciduino has 3 page modes plus a page select screen. The controls are 4 knobs (potentiometers) and 6 buttons with LEDs.

Page Select

Press button 1 + button 2 together at any time to enter page select. The page LEDs blink to indicate you're in this mode.

ControlFunction
knob 1-4
button 1Track 1 (LED = selected)
button 2Track 2 (LED = selected)
button 3Live mode
button 4Generative mode
button 5Step edit
button 6Play / Stop

Use track 1 / track 2 to choose which track to edit or play. The active track has its LED on.


Page 1 — Live Mode

ControlFunction
knob 1Ctrl 1 (CC A/B)
knob 2Ctrl 2 (CC A/B)
knob 3Ctrl 3 (CC A/B)
knob 4Pattern length / Global tuning
button 1<< Pattern
button 2Pattern >>
button 3Ctrl A/B toggle bank
button 4<< Tempo
button 5Tempo >>
button 6Play / Stop
hold button 1Save pattern (hold until LED blinks)
hold button 2Delete pattern (hold until LED blinks)
  • Pattern buttons 1 & 2: LED on at navigation boundaries (first pattern → LED 1, last pattern → LED 2)
  • Ctrl A/B: toggle between two CC banks per knob. LED off = bank A, LED on = bank B
  • Global tuning: transpose from -12 to +12 semitones

Page 2 — Generative Mode

ControlFunction
knob 1Low note range
knob 2High note range
knob 3Number of tones
knob 4Number of notes
button 1<< Scale (harmonic mode —)
button 2Scale >> (harmonic mode +)
button 3Generate fresh sequence
button 4<< Shift (steps left)
button 5Shift >> (steps right)
button 6Play / Stop
  • Turning knobs does not modify the current sequence — it sets parameters for the next generation
  • Navigate scales: Ionian, Dorian, Phrygian, etc. LED on for scale — means no harmonic context
  • Default harmonize is off; press Scale >> once to enter Ionian

Page 3 — Step Edit

Program step by step, just like the original TB-303, using knobs instead of a keypad.

ControlFunction
knob 1Octave selection
knob 2Note selection
knob 3Tuning / slide time
knob 4Step length (1–16)
button 1<< Step (previous)
button 2Step >> (next)
button 3Rest toggle
button 4Glide / Tie toggle
button 5Accent toggle
button 6Play / Stop
  • LED 1 on = first step selected. LED 2 on = last step selected
  • Rest, glide/tie, and accent buttons toggle the state of the selected step
  • Step length sets sequence length from 1 to 16 steps

Slave Mode

Press and hold Play / Stop until its LED turns ON to sync to an external master clock (MIDI input required).

Press and hold again until the LED turns OFF to return to master mode.


MK2 PCB

ijnekenamay designed a purpose-built PCB for the Aciduino, adding MIDI input for slave sync.

Aciduino MK2 PCB

Fabrication

Download the Gerber files from the aciduino hardware folder and submit to any PCB fab house (JLCPCB, PCBWay, etc.) — typically comes in batches of 5.

MK2 BOM

PartQuantity
Arduino Nano1
220Ω resistors10
4.7kΩ resistor1
1N4148 diode1
6N138 optocoupler1
Key switches (or 6mm tactile)6
3mm diffused LEDs6
10k linear potentiometers4
5-pin DIN MIDI connectors2

Protoboard BOM

For the original solderless breadboard build:

PartQuantity
Arduino Nano1
Solderless breadboard (830 tie points, 2 buses)1
Jumper wire kit1
220Ω resistors6
6mm tactile switches6
3mm diffused LEDs6
10k linear potentiometers4

MIDI Connection

Add 2 × 220Ω resistors and choose one:

  • 5-pin DIN female connector (standard MIDI, requires soldering)
  • Cut MIDI cable — strip and connect directly to protoboard (tin the tips first)

USB Connection

  1. Open config.h and set MIDI_MODE to 1
  2. Install Hairless MIDI Serial Bridge
  3. Open your DAW, route MIDI to the serial bridge port
  4. You may need a virtual MIDI port driver depending on your OS

Configuration

Edit config.h to adapt the firmware to your setup — pin mappings, MIDI mode, clock source, and more.

Dependencies

Built on the uClock library for precise BPM clock generation — included in the project for easy compilation.