Audio Dingo Synth
Ein kleiner Synthesizer mit Akku, gebaut mit einem Arduino Uno R4 Minima und der Audio-Bibliothek Mozzi. Sieben Tasten spielen Töne oder Akkorde, zwei Drehencoder stellen Hüllkurve, Lautstärke und Presets ein, und der Joystick bringt Vibrato, Wah-Filter, Bitcrush und Glide ins Spiel. Der eingebaute Lautsprecher reicht zum Spielen allein, über die Klinkenbuchse lässt er sich mit anderen Synths verbinden.
Über den Entwicklungsprozess habe ich in einem Blogbeitrag geschrieben; Firmware und Gehäusedateien liegen im öffentlichen GitHub-Repository.
- Art
- Elektronik
- Jahr
- 2026
- Details
- Prototyp · Audio

01 — Steckbrief
- Rolle
- Soloprojekt im Kurs Become a Maker (opencampus.sh, FabLab Kiel): Konzept, Schaltung, Firmware, Sounddesign und Gehäuse
- Zeitraum
- April bis September 2026 (Sommersemester)
- Werkzeuge
- C++ (Arduino IDE)
- Mozzi 2.0
- Adafruit SSD1306 / GFX
- Wokwi
- Fusion 360
- Claude (AI assistant)
- Hardware
- Arduino Uno R4 Minima, Ton über den eingebauten 12-Bit-DAC
- 7 Tontasten und 3 Funktionstasten (MODE, WAVE, CHORD)
- 2 Drehencoder und ein analoger Joystick
- SSD1306-OLED-Display, 128 × 32 px
- Kleiner Class-D-Verstärker, Lautsprecher und Kopfhörer-/Line-Buchse
- Akku mit 1800 mAh, 3D-gedrucktes Gehäuse
02 — Anforderungen
Ziel war ein kleiner Synthesizer, der eigene Klänge erzeugt und sich in mein bestehendes Setup aus anderen Synths einfügt. Er sollte auch allein funktionieren und läuft deshalb mit Akku und eingebautem Lautsprecher, außerdem sollte man das Gerät ohne großen Aufwand mal eben kurz nutzen können.
- Spielen: 7 Tontasten, weil eine Tonleiter aus 7 Tönen besteht, dazu 3 Funktionstasten.
- Klang formen: 2 Drehencoder und ein Joystick, damit sich der Klang beim Spielen verändern lässt.
- Rückmeldung: ein kleines Display, das die aktuellen Einstellungen und den gerade bearbeiteten Wert zeigt.
- Ausgang: ein Lautsprecher zum Spielen allein und eine Buchse, um ihn mit anderen Synths zu verbinden.
03 — Von der Simulation zum Breadboard
Bevor ich etwas bestellt habe, habe ich eine erste Schaltung auf Wokwi simuliert und getestet. Ich wollte mir erstmal einen Überblick verschaffen weil das Projekt mein erster Kontakt mit Mikrocontrollern war. Danach kam die Recherche: Welche Bauteile eignen sich, welche arbeiten zuverlässig zusammen, und wo bekomme ich sie her?
Als alles angekommen war, habe ich den ersten Hardware-Prototyp auf einem Breadboard aufgebaut und eine erste Grundversion des Codes geschrieben. Alle Tasten liegen zwischen Pin und Masse; die Firmware schaltet die internen Pull-up-Widerstände ein, zusätzliche Widerstände braucht es deshalb nicht.

04 — So entsteht der Klang
Jede Note läuft durch dieselbe Kette: Oszillatoren, etwas Rauschen, ein Tiefpassfilter mit Resonanz, die Lautstärke-Hüllkurve, die Gesamtlautstärke und zuletzt der Bitcrusher. Danach geht das Sample an den DAC an Pin A0 und von dort zum Verstärker.
- Oszillatoren: Jede Stimme hat zwei. Bei Sägezahn, Puls und Dreieck ist der zweite leicht verstimmt, ausgegeben wird die Differenz beider. Weil sie dabei gegeneinander wandern, verändert sich die Wellenform ständig. Bei FM moduliert der zweite Oszillator die Phase des ersten, das ergibt glockige und metallische Klänge.
- Zwei Geschwindigkeiten: Mozzi ruft
updateControl()128-mal pro Sekunde für alles Langsame auf – Tasten, Encoder, Hüllkurven, Display.updateAudio()läuft 32.768-mal pro Sekunde und berechnet bei jedem Aufruf genau ein Sample. Dort hat deshalb nur schnelle Ganzzahl-Rechnung Platz. - Presets als Daten: Wellenform, Filter, Hüllkurven, LFO und Bitcrush der 5 Presets sind Felder einer Struktur in
presets.h. Ein neuer Klang ist eine neue Tabellenzeile, kein neuer Code.

05 — Herausforderungen
- Knacken durch das Display: Ein Bild über I²C zum OLED zu schicken dauert einige Millisekunden. In dieser Zeit wird der Audiopuffer nicht nachgefüllt, und gehaltene Töne knacken. Die Firmware fasst deshalb alle angezeigten Werte zu einer Prüfsumme zusammen und zeichnet nur neu, wenn sie sich ändert.
- Fester Audio-Pin: Auf dem Uno R4 gibt Mozzi den Ton immer über den internen DAC an A0 aus. Die Pinbelegung musste darum herum geplant werden.
- Geteilte Pins: Beim R4 Minima sind A4 und A5 dieselben Pins wie SDA und SCL des Displays. In diesem Aufbau teilen sich die Tasten WAVE und CHORD diese Leitungen mit dem Display. In einer zweiten Version würde ich beide Tasten auf freie Pins legen.
06 — Gehäuse in zwei Iterationen
Mit einem groben Plan der Schaltung im Kopf habe ich das Gehäuse in Fusion 360 entworfen. Der erste Druck war nur der schwarze Grundkörper um alle Bauteile einzusetzen und ein Gefühl für Form und Anordnung zu bekommen.
In der zweiten Iteration wurde das Gehäuse deutlich breiter und tiefer weil die Kabel mehr Platz brauchten und ich habe die Aussparungen für Tasten und Anschlüsse angepasst. Dieser Druck passte. Das fertige Gehäuse ist aus mehreren Teilen gedruckt: grauer Körper, orange Akzente und schwarze Kappen. Die Druckdateien liegen im Repository.

07 — Ergebnis
Audio Dingo ist ein spielbares Instrument mit rund 1.100 Zeilen Firmware, aufgeteilt in Hauptprogramm, Pinbelegung, Presets und einen Encoder-Decoder.
- 6 Wellenformen: Sägezahn, Puls, Dreieck, Sinus, 2-Operator-FM und Rauschen
- Akkordmodus: Jede Taste spielt drei Stimmen – Dur, Moll, sus4 oder Oktaven
- 5 Presets – Lead, Bass, FM-Glocke, Sub und eine Kickdrum – dazu eine Taste, die einen Zufallsklang würfelt
- Tiefpassfilter mit Resonanz und eigener Hüllkurve, ADSR live mit dem Encoder einstellbar
- Joystick: Vibrato, Wah-Filter, Bitcrush und Glide
- OLED: Statusanzeige und ein animierter Visualizer
Firmware, Gehäusedateien und Dokumentation sind unter MIT-Lizenz offen.
08 — Was ich gelernt habe und ändern würde
- Funktionen streichen: Aufnahme und Wiedergabe waren geplant. Mit den wenigen Eingabemöglichkeiten des Geräts ließen sie sich nicht gut synchronisieren, und das Projekt wäre zu umfangreich geworden. Deshalb habe ich sie herausgenommen.
- Das Gehäuse hat am längsten gedauert: Von allen Teilen des Projekts hat das Gehäusedesign die meiste Zeit gekostet.
- Ein stärkeres Board: Beim nächsten Mal würde ich ein leistungsfähigeres Board als den Arduino Uno nehmen und darauf achten, dass es einen digitalen Audioausgang hat statt des DAC an A0.
09 — Medien
Das Video wird erst nach dem Klick von YouTube geladen.
10 — Galerie (02)
Fragen, Ideen oder Feedback? Ich freue mich über eine Nachricht.
Schreib mir
