Skip to content

11lein/Soundboard

Repository files navigation

🚗 Soundboard für den Carbage Run

🎯 Motivation

Beim Carbage Run – einer Rallye mit Schrottautos – haben viele Teilnehmer Fanfaren, Megafone oder lustige Sounds abgespielt.
Wir hatten zwar bereits ein Megafon mit Line-In und Bluetooth, aber:

🎛️ "Wenn ich hupen will, will ich auf einen Knopf hauen – nicht erst das Handy entsperren!"

Deshalb: ein eigenständiges Soundboard mit 25 Tasten, SD-Karte und Sofortreaktion.


📸 Vorschau

Gehäuse (3D-gedruckt)

Soundboard Gehäuse Soundboard Gehäuse Soundboard Gehäuse Soundboard Gehäuse Soundboard Gehäuse Soundboard Gehäuse Soundboard Gehäuse

Innenleben

Soundboard Elektronik Soundboard Elektronik

Alle Bilder findest du im Ordner docu/. Der aktuelle Verdrahtungsplan steht weiter unten im Abschnitt Schaltung.


⚙️ Features

  • 🎵 24 Soundtasten (A–X) in 5×5 Matrix für direkte Soundauswahl
  • 🔁 Sechsfachbelegung: Y = Mode-Taste + Halten → 144 Sounds (6 Bänke)
  • 💾 DFPlayer Mini spielt MP3s direkt von SD-Karte
  • 📡 Bluetooth-Steuerung per Smartphone-App oder Terminal (alle 144 Tracks)
  • 🧠 ESP32 mit frei programmierbarer Logik
  • 🧰 3D-gedrucktes Gehäuse

🧠 Schaltung

Verkabelung

Aktueller Verdrahtungsplan mit DFPlayer Mini (inkl. BUSY → GPIO4) und der 5×5-Tastenmatrix. Quelle als SVG (docu/wiring_diagram.svg) bzw. zum Neuerzeugen docu/gen_wiring.py (rendert das SVG aus den Pin-Belegungen in src/main.cpp). Der frühere Wokwi-Entwurf (docu/wokwi/) nutzte ein SD-Kartenmodul als Platzhalter und ist nicht mehr aktuell.

🔘 Tastenanschlüsse

Zeile (row) ESP32 Pin
R1 D19
R2 D18
R3 D5
R4 D17
R5 D16
Spalte (col) ESP32 Pin
C1 D32
C2 D33
C3 D25
C4 D26
C5 D27

🎧 DFPlayer Mini Anschluss

Für die korrekte Verkabelung siehe DFPlayer Mini Dokumentation

DFPlayer Pin ESP32 Pin
TX GPIO22
RX GPIO23 (über 1 kΩ in Reihe)
BUSY GPIO4
VCC 5V
GND GND
---- Endstufe
SPK1 Left Audio
GND GND Audio
SPK2 Right Audio

Der 1 kΩ-Widerstand in der RX-Leitung (ESP-TX → DFPlayer-RX) dämpft Störungen und schützt den DFPlayer-Eingang – eine gängige Empfehlung für stabile UART-Kommunikation.

💾 SD-Karte:
MP3-Dateien im MP3-Verzeichnis, benannt nach Bank*100 + Position: Bank 1 = 01010124, Bank 2 = 02010224, … Bank 6 = 06010624 (24 pro Bank).


🎮 Bedienung

Tasten (A–X) + Mode-Taste Y

Y spielt keinen Sound, sondern wählt die Bank-Gruppe. Eine Soundtaste kurz drücken oder halten wählt innerhalb der Gruppe die Bank:

Y-Status Soundtaste kurz Soundtaste halten
– (Standard) Bank 1 (01010124) Bank 2 (02010224)
Y kurz tippen Bank 3 (03010324) Bank 4 (04010424)
Y halten Bank 5 (05010524) Bank 6 (06010624)
  • Tracknummer = Bank × 100 + Position. Taste A = Position 1, … X = Position 24.
  • Der gewählte Mode gilt für den nächsten Sound und springt danach sofort auf Standard (Bank 1 & 2) zurück. Ohne Tastendruck resettet er automatisch nach 10 s; erneutes Y schaltet ebenfalls zurück.
  • Dieselbe Taste während der Wiedergabe erneut drücken = Stop.

📡 Bluetooth-Befehle

Zahl (mit \n) an das Gerät das_11lein senden. Die Tracknummer enthält die Bank direkt – einfach die Nummer senden.

Eingabe Aktion
101624 Track direkt abspielen (z. B. 305 = Bank 3, Taste E)
7006999 Zusatz-/Parkplatz-Track (0700…), nur über die App, kein Hardware-Knopf
70007100 Lautstärke auf (Wert−7000) Prozent setzen (0–100 %)
9999 Stop
9998 / 9997 / 9996 Lautstärke 33 / 67 / 100 % (Kompatibilität)
9995 Neustart

Die Befehlscodes liegen bei 9999 absteigend – weit über jeder Tracknummer, daher keine Kollision.

Die zuletzt gesetzte Lautstärke wird im Flash (NVS) gespeichert und beim Booten wiederhergestellt. Beim Verbinden sendet der ESP einmal READY vol=<n>, damit die App den aktuellen Stand kennt. WiFi ist deaktiviert (das Gerät nutzt nur Bluetooth).


📂 Projektstruktur

/
├── src/
│   ├── MP3/                # Arduino-Quellcode
│   └── main.cpp
├── printfiles/         # STL-Dateien für 3D-Druck
├── docu/               # Fotos, Schaltpläne, Screenshots
└── README.md

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors