Skip to main content

Aciduino V2

A multi-architecture Roland TB-303 and TR-808 step sequencer clone built for live performance. Up to 16 tracks, OLED display, pattern/mute grid, and a modular design that lets you plug in more controls, MIDI, or CV/Gate interfaces.

Aciduino V2 is the first official uMODULAR app, leveraging uCtrl drivers and uClock for precise timing.

Aciduino V2 on protoboard


Features

  • Up to 16 tracks — mix TB-303 and TR-808 tracks freely
  • 303 step sequencer with rest, tie, glide, accent, per-step pitch/octave
  • 808 drum sequencer with voice, note, roll per step
  • OLED display — real-time access to all parameters
  • Generative engine — harmonized 303 lines + Euclidean algorithm for drums
  • MIDI controller — 16 assignable CCs per track
  • Pattern grid — mute/unmute tracks or voices, save/load scenes
  • Multi-architecture — Arduino Mega, Teensy ≥ 3.2, ESP32
  • Modular I/O — extend with more pots, buttons, MIDI, or CV/Gate

Supported Platforms

PlatformPort file to uncomment
Arduino Mega#include "src/ports/avr/mega.h"
Teensy (protoboard)#include "src/ports/teensy/protoboard.h"
Teensy (uOne)#include "src/ports/teensy/uone.h"
ESP32 WROOM#include "src/ports/esp32/wroom.h"
ESP32 + Ext1#include "src/ports/esp32/wroom-ext1.h"
Midilab Mega#include "src/ports/avr/midilab_mega.h"

Aciduino V2 Mega Aciduino V2 ESP32


Download

Recommended: Download the latest release pack named aciduino-v2_xxx.zip from the Releases page.

For the latest development version, clone the repository with submodules:

git clone https://github.com/midilab/aciduino.git
cd aciduino/
git submodule update --init --recursive

Open v2/AciduinoV2/AciduinoV2.ino and uncomment the port file for your platform.

Getting Started

  1. Build your device following the assembly guide
  2. Download the latest software release
  3. Configure your hardware in AciduinoV2/0_hardware_setup.ino
  4. Tweak sequencer defaults in AciduinoV2/src/sequencer/setup.h

User Interface

Aciduino V2 interface

Controls

ControlDescription
Nav buttons (4 rightmost)UP, DOWN, LEFT, RIGHT — navigate page elements. Selected element blinks
Function buttons (2 upper)Context-sensitive actions shown at the bottom of the display
Generic buttons (2 lower)Decrement / increment the selected element's value
PotValue changer — works on most elements alongside generic buttons
Shift (bottom left)Hold while pressing another button for alternate functions
Transport (middle left)Start / stop the sequencer
CommandAction
Shift + Nav UP/DOWNChange page
Shift + Nav LEFT/RIGHTChange subpage
Shift + Generic 1Previous track
Shift + Generic 2Next track
PotChange notes
Shift + PotChange octave (303) or voice config (808)

OLED Layout

  • Header bar — Track number (T1–T5) and type (303/808), page name + subpage, clock source, tempo (40–180)
  • Subpage display — the active editing grid
  • Function labels — shows the action for each function button

System Page

Common parameters that apply to all tracks.

ParameterDescriptionControls
TempouClock BPM from 40 to 180pot = coarse, F1 = rec, F2 = play, generic = fine
ClockClock source: internal, MIDI1, or MIDI2pot / generic
ShuffleGroove on/offpot / generic
Sig.Swing signature (54, 58, 62, 68, 71%)pot / generic
RecRecord input source: MIDI1 or MIDI2pot / generic
ModeRecord mode: real-time or steppot / generic
SessionSave/load to EEPROM or SD cardpot = storage, F1 = load, F2 = save
Track outMIDI output port per trackpot / generic

Sequencer Page

Edit the track's sequence step by step. Parameters differ between 303 and 808 tracks.

Common

ParameterDescription
LengthNumber of steps (303: 0–max from setup.h, 808: 0–64, each voice can have different length)
ShiftOffset the entire sequence forward or backward

303 Sequencer

303 Sequencer

ElementDescription
TuneSet the tonic note (off, C1–B1)
TransposeTranspose the entire sequence
Bar selectorTop bar — each division is a 16-step bar. Bold = playing, blinking = editing
Step selectorGrid of steps. Rest (small square) or gated (bold). Label shows step note/octave. Blinking outline = editing, moving outline = playing
  • Default velocity: 70, accent velocity: 127 (configurable in setup.h)
  • Pot = select pitch, Shift + pot = select octave
  • F1 = accent, F2 = slide (gated) or tie (rest)
  • Generic buttons = trigger step on/off

808 Sequencer

808 Sequencer

ParameterDescription
VoiceSet the drum voice
NoteSet the drum part MIDI note number
RollSet the roll type
  • Pot = change note, Shift + pot = change drum voice

Generator Page

Generate automatic sequences. Fill percentage affects the next generated sequence only.

ParameterDescription
FillPercentage of activated steps (affects next generation only)

303 Generator

303 Generator

  • Tune — set the tonic note
  • Transpose — transpose the generated sequence

808 Generator

808 Generator

  • Pot = change voice
  • Shift + pot = change voice config (MIDI CC or CV port)

Pattern Page

Performance-oriented page for muting, saving, and loading patterns.

Pattern Page

ControlAction
F1Copy pattern
F2Select all
Shift + F1Save pattern as
Shift + F2Save pattern
Generic 1Play selected pattern
Generic 2Play selected scene

MIDI Page

Assign and tweak up to 16 MIDI CCs per track. Labels and CC numbers vary between 303 and 808 tracks.

MIDI 303 MIDI 808

CCs are sent on the selected track's MIDI channel. To change CC mappings, edit AciduinoV2/page_midi.ino:

midiControllerComponent.set303Control("filter", 74);

Assembly

Build on a solderless breadboard. Key steps:

  1. Place buttons, knobs, and power lines
  2. Enlarge two holes for pot base support on the (+) power rail
  3. Run signal lines for buttons

Assembly step 1 Assembly step 2

For detailed instructions, see the assembly guide.


uMODULAR uOne

A dedicated uMODULAR hardware board for Aciduino V2, coming soon.

uOne front uOne back


Configuration

  • AciduinoV2/0_hardware_setup.ino — select your microcontroller and pin mappings
  • AciduinoV2/src/sequencer/setup.h — adjust sequencer defaults (max steps, velocity, accent, etc.)

Dependencies

  • uClock — BPM clock generator
  • uCtrl — hardware abstraction and interface library
  • uMODULAR — modular app framework

All included as git submodules — run git submodule update --init --recursive after cloning.

Cheatsheet

Cheatsheet

Support