ROLF MEURER / ELEKTRONIK
Arduino-Projekt / Audio & Recording

Ein Taster.
Eine Aufnahme.
Ogg Vorbis.

Ein kompakter Audiorecorder mit dem VS1053 und einem Arduino mit ATmega328. Mikrofonaufnahmen direkt auf die SD-Karte – mit Anschlussplan, Quellcode und den passenden Dateien.

Projekt von Rolf Meurer · Sketch vom 16. Oktober 2022

VS1053 / OGG VORBIS01 — HARDWARE
Vorder- und Rückseite des roten VS1053-Moduls mit SD-Kartenslot, Mikrofon und Anschlussleiste. Die Pin-Zuordnung steht in der Tabelle unten.
MIC → VS1053 → SDATmega328
8 kHzAbtastrate des Profils
MonoMikrofonmodus im Sketch
Ogg VorbisAufnahmeformat
Ein TasterStart & Stopp an D7

Vom Versuch zum Recorder.

Der Weg zur funktionierenden Aufnahme war länger als erwartet: Beim ursprünglichen Versuch mit der Adafruit-Bibliothek und dem oggRecorder-Beispiel entstanden beschädigte Dateien. Dieses Projekt dokumentiert die anschließend verwendete Lösung, die Verdrahtung und die Besonderheiten des abgebildeten Moduls.

Das wird benötigt

  • Arduino mit ATmega328 und passender Pinbelegung; die beiliegenden Binärdateien sind mit dem Variantennamen eightanaloginputs bezeichnet.
  • VS1053-Modul wie abgebildet, einschließlich Mikrofon und SD-Slot.
  • Eine mit der Arduino-SD-Bibliothek nutzbare SD-Karte.
  • Ein Taster, Verbindungsleitungen und eine zur Platine passende Versorgung.
  • Arduino IDE mit SPI- und SD-Bibliothek sowie die Dateien aus dem Projektdownload.

Was im Projekt enthalten ist

Der Sketch Recorder.ino, die lokalen Dateien VS1053.cpp/.h und SPIDevice.cpp/.h, vorgefertigte HEX-Dateien, eine PDF und das Encoder-Profil für die SD-Karte.

Die Dokumentation wurde mit dem gelieferten Quellcode abgeglichen. Ein erneuter Aufbau- oder Aufnahmetest an echter Hardware ist damit nicht verbunden.

Read the English summary →

Alle Anschlüsse auf einen Blick.

Pinbelegung aus dem mitgelieferten Sketch. MOSI, MISO und SCK bilden den gemeinsamen SPI-Bus; SD-Karte und VS1053 besitzen eigene Select-Leitungen.

Arduino ↔ VS1053-Modul
ArduinoModul / SignalFunktion
A0CSChip Select der SD-Karte
D9XRESETReset des VS1053
D10XCSChip Select für das Steuerinterface
D8XDCSChip Select für das Dateninterface
D3DREQDatenanforderung vom VS1053
D11SI / MOSIDaten vom Arduino zum Modul
D12SO / MISODaten vom Modul zum Arduino
D13SCKSPI-Takt
D7Taster → GNDAufnahme starten / stoppen; interner Pull-up im Sketch
GNDGNDGemeinsame Masse
Versorgung5V / VCCNach Spezifikation der konkreten Modulplatine anschließen

Originalfoto in voller Auflösung öffnen ↗

In fünf Schritten zur Aufnahme.

Die Anleitung bezieht sich auf den beigefügten Sketch und sein Mikrofonprofil.

  1. Projekt entpacken und öffnen

    Vollständiges Projekt herunterladen und entpacken. Recorder/Recorder.ino in der Arduino IDE öffnen. Die vier lokalen .cpp- und .h-Dateien müssen im selben Sketch-Ordner bleiben. SPI und SD müssen verfügbar sein.

  2. Encoder auf die SD-Karte kopieren

    Die Datei aus Recorder-SD-contents direkt ins Hauptverzeichnis der Karte kopieren. Dort muss sie exakt so heißen:

    SD-Karte / v08k1q05.img

    Alternativ das vorbereitete Profil einzeln herunterladen. Im VLSI-Originalarchiv heißt dieselbe Profildatei profiles/venc08k1q05.img; für diesen Sketch muss sie in v08k1q05.img umbenannt werden. Nur die IMG-Datei kopieren, nicht das ZIP oder eine PLG-Datei.

  3. Verdrahten und Sketch übertragen

    Bei ausgeschalteter Versorgung gemäß Pin-Tabelle verbinden. Der Taster liegt zwischen D7 und GND. In der IDE das tatsächlich verwendete Board, den Prozessor beziehungsweise Bootloader und den Port auswählen, dann den Sketch kompilieren und hochladen.

    Die HEX-Dateien sind vorgefertigte Alternativen. Sie lassen sich nicht wie ein Sketch bearbeiten; Board- und Bootloader-Kompatibilität müssen zur verwendeten Hardware passen.

  4. Aufnahme starten

    SD-Karte einsetzen, Gerät einschalten und den seriellen Monitor mit 9.600 Baud öffnen. Nach der Aufforderung den Taster kurz drücken und wieder loslassen. Der Encoder wird vor jeder Aufnahme neu geladen; deshalb die Vorbereitung abwarten. Der Sketch meldet anschließend Recording to RECORDxx.OGG.

  5. Sauber stoppen und Datei anhören

    Den Taster erneut kurz drücken. Während Finalizing werden die restlichen Audiodaten geschrieben. Erst nach Recording completed ausschalten und die Karte entnehmen. Die OGG-Datei anschließend mit einem Ogg-Vorbis-fähigen Audioplayer öffnen.

Alles für den Nachbau.

Das vollständige Projekt ist der empfohlene Einstieg. Die Einzeldateien bleiben für bestehende Aufbauten und zum Nachschlagen verfügbar.

ZIP / QUELLCODE & SD-DATEI

Vollständiges Projekt

Recorder-Sketch, lokale Bibliotheksdateien, HEX-Dateien, PDF und passend benanntes Encoder-Profil.

Projekt herunterladen ↓
IMG / 41.730 BYTES

Profil für die SD-Karte

v08k1q05.img – bereits passend zum Sketch benannt. Direkt ins Hauptverzeichnis der SD-Karte kopieren.

Encoder-Profil herunterladen ↓
ZIP / VLSI VERSION 1.70c

Originales Encoder-Paket

Die vollständige VLSI-Sammlung mit weiteren Profilen und Herstellerdokumentation. Der beigefügte Sketch verwendet das 8-kHz-Monoprofil.

VLSI-Paket herunterladen ↓
ZIP / BISHERIGER DOWNLOAD

Vorgefertigte Firmware

Enthält Recorder.ino.avr328.hex. Dieser ursprüngliche Download enthält keinen Arduino-Quellcode.

HEX-Archiv herunterladen ↓

Wenn die Aufnahme ausbleibt.

Mit der Meldung im seriellen Monitor beginnen, danach Verdrahtung, Karte und Audioeingang prüfen.

„VS1053 not found“

Versorgung, gemeinsame Masse und die Leitungen XRESET, XCS, XDCS, DREQ sowie SPI mit der Pin-Tabelle vergleichen. Auch die Beschriftungen SI/SO und MOSI/MISO beachten.

„SD failed, or not present“

Karte, Kartenkontakt und die SD-Select-Leitung an A0 prüfen. Die Karte muss von der verwendeten SD-Bibliothek unterstützt werden. Vor einem Neuformatieren vorhandene Daten sichern.

„Could not open the plugin image file“

Im Hauptverzeichnis muss v08k1q05.img liegen. Eine Datei namens venc08k1q05.img, ein ZIP oder eine Datei in einem Unterordner erfüllt diese Vorgabe nicht. Das direkt angebotene IMG-Profil ist bereits richtig benannt.

Die Datei ist vorhanden, aber die Aufnahme bleibt stumm

Der Sketch startet mit startRecordOgg(true) im Mikrofonmodus. Beim ursprünglich verwendeten Modul war das Mikrofon laut Projektbericht falsch gepolt eingelötet. Die Polung am eigenen Exemplar prüfen. Die Aussage betrifft das untersuchte Modul, nicht zwangsläufig jede Platine.

Warum funktioniert der Line-Eingang nicht?

Die Originalbeschreibung nennt für die Buchse des abgebildeten Moduls eine Verbindung zu LINE2. Der Sketch verwendet das Mikrofon; die mitgelieferte Bibliotheksfunktion schaltet bei false auf LINE1. Eine Buchse an LINE2 ist damit nicht automatisch nutzbar. Der VS1053 unterstützt grundsätzlich verschiedene Eingangskonfigurationen; entscheidend sind Platinenverdrahtung, Profil und Registereinstellungen.

OGG-Dateien sind beschädigt oder unvollständig

Nach dem Stopp Recording completed abwarten. Der Sketch behandelt die letzten Datenwörter gesondert und schließt anschließend die Datei. Auch eine volle Karte oder die vollständig belegte Dateinummernfolge 00–99 prüfen. Der Quellcode wertet nicht jeden einzelnen Schreibfehler aus; ein Aufnahmetest gehört daher zur Inbetriebnahme.

Der Start dauert – oder ein anderes Profil funktioniert nicht

Das Encoder-Profil wird vor jeder Aufnahme geladen. Der mitgelieferte Sketch ist für das 8-kHz-Profil vorgesehen. Höhere Abtastraten sind durch bloßes Umbenennen einer Datei nicht als funktionsfähig belegt; Durchsatz und Firmware müssen dazu passen.

Quellen und Projektstand.

Pinbelegung, Bedienung, Baudrate und Dateiverhalten wurden aus dem gelieferten Sketch übernommen. Die ursprünglichen Erfahrungen mit Mikrofon und Buchse sind als Beobachtungen am konkreten Modul gekennzeichnet.

Seite überarbeitet am 4. November 2026. Firmware und Bibliotheksdateien wurden für diese Dokumentationsfassung nicht verändert.

VS1053 Ogg Vorbis recorder for Arduino

This project records mono microphone audio to an SD card using a VS1053 and an ATmega328-based Arduino. Download the complete project, open Recorder/Recorder.ino, and keep the accompanying source files in the same folder. Copy v08k1q05.img to the root of the SD card. The original VLSI profile is named venc08k1q05.img and must be renamed for this sketch.

Use the wiring table above. Connect a momentary switch between D7 and GND; the sketch enables the internal pull-up. Select the correct board and upload the sketch. Open the serial monitor at 9600 baud. Press and release the button to start, then press again to stop. Wait for “Recording completed” before switching off and removing the card.

The sketch uses microphone input and an 8 kHz mono profile. Files are named RECORD00.OGG through RECORD99.OGG. If all 100 names exist, the unchanged sketch appends to RECORD99.OGG; archive recordings and free filenames before continuing. The original module's microphone-polarity and LINE2 observations do not apply automatically to all VS1053 boards.