Inhalt
- Die Bauteile für den Versuchsaufbau
- Versorgung und gemeinsame Masse
- Die serielle Verbindung zum JQ6500
- BUSY zeigt den Wiedergabestatus
- Der Lautsprecher liegt zwischen SPK+ und SPK−
- Zehn Eingänge am Arduino Nano
- Die Sounddateien kommen direkt auf den JQ6500
- Den Aufbau Schritt für Schritt prüfen
- Was die Firmware bereits im Hintergrund erledigt
Die Bauteile für den Versuchsaufbau
Das Arduino Nano JQ6500 Soundmodul lässt sich mit wenigen, klar zugeordneten Komponenten aufbauen. Der Arduino Nano mit ATmega328P übernimmt Steuerung, Kommunikation, Zustandsverwaltung, Eingangsabfrage und Konfigurationsspeicherung. Das JQ6500-16P besitzt internen Flash-Speicher, dekodiert die Audiodateien und treibt den Lautsprecher. Empfohlen ist ein Lautsprecher mit 8 Ω und 1 bis 3 W. Hinzu kommen R1 und R2 mit jeweils 1 kΩ, bis zu zehn Taster, Schalter, Relaiskontakte oder geeignete Open-Collector-Ausgänge, eine stabilisierte 5-Volt-Versorgung (z.B. direkt von PC USB), gemeinsame Masse, Jumperkabel und zunächst ein Steckbrett.
R1 und R2 sind zwei getrennte Bauteile. R1 liegt in der Leitung vom Nano-Ausgang D11 zum RX-Eingang des JQ6500. R2 verbindet das BUSY-Signal des JQ6500 mit dem Analogeingang A2. Nahe am JQ6500 empfehlen sich außerdem C1 mit 470 µF bei mindestens 10 V und C2 mit 100 nF. Der größere Kondensator stützt die Versorgung bei Laständerungen, der kleinere dämpft schnelle Störungen. Beide ersetzen keine sauber dimensionierte Versorgung. Für die Spannungsversorgung reicht auch die USB Schnittstelle gespeist über den PC oder ein kleines Netzteil.
Für die Entwicklung genügt ein Steckbrett. Es hält alle Messpunkte zugänglich und ermöglicht Korrekturen, ohne bereits eine Platine festzulegen. Für einen dauerhaften Einbau kommen Lochraster oder eine eigene Platine infrage. Die Firmware und die Konfiguration bleiben jedoch für den Arduino Nano ausgelegt. Zusätzlicher EEPROM, FRAM, eine SD-Karte für Konfigurationsdaten oder ein Wechsel auf einen größeren Mikrocontroller sind nicht vorgesehen. Der Aufbau soll zeigen, was mit den gewählten Standardkomponenten zuverlässig möglich ist.
Die Aufgaben sind bewusst getrennt. Der Nano enthält Firmware und Konfiguration, aber keine Audiodateien. Das JQ6500 enthält Audiodateien, entscheidet jedoch nicht selbst, wann welcher Sound zur Modellbahnszene passt. Der Lautsprecher ist direkt an den Brückenausgang des JQ6500 angeschlossen. Die externen Kontakte melden nur eine Betätigung gegen Masse. Diese klare Aufteilung erleichtert die Prüfung, weil jeder Fehler zunächst einem begrenzten Bereich zugeordnet werden kann.

Versorgung und gemeinsame Masse
Die Versorgung beginnt mit einer eindeutigen 5-Volt-Führung. Nano 5V wird mit JQ6500 Pin 12 DC-5V verbunden. Nano GND führt zu JQ6500 Pin 11 GND und zusätzlich zu Pin 6 SGND. GND und SGND erhalten damit denselben Massebezug. Dieser Bezug ist nicht nur für die Stromversorgung nötig, sondern auch für UART, BUSY-Auswertung und externe Kontakte. Fehlt die gemeinsame Masse, können Pegel nicht zuverlässig interpretiert werden, selbst wenn einzelne Module scheinbar eingeschaltet sind.
Besondere Aufmerksamkeit verlangt die gleichzeitige Nutzung von USB und externer Versorgung. Nano und JQ6500 dürfen nicht unkontrolliert aus zwei parallel verbundenen 5-Volt-Quellen gespeist werden. Vor dem Anstecken muss feststehen, welche Quelle die Baugruppe versorgt und wie Rückströme vermieden werden. Das gilt vor allem beim Programmieren des Nano oder bei einer aktiven PC-Sitzung. Eine USB-Verbindung ist keine Einladung, zusätzlich beliebige 5-Volt-Leitungen parallel zu verbinden. Die Versorgungssituation wird zuerst festgelegt, dann wird eingeschaltet.
Die Kondensatoren C1 und C2 liegen möglichst nahe am JQ6500 zwischen Versorgung und Masse. Kurze Leitungen sind sinnvoll, weil lange Steckbrettverbindungen zusätzliche Widerstände und Induktivitäten mitbringen. Vor der ersten Inbetriebnahme kontrollieren wir Polarität, Masseführung und mögliche Kurzschlüsse bei ausgeschalteter Versorgung. Erst danach wird Spannung angelegt. Ein systematischer Aufbau verhindert, dass eine unstabile Versorgung später fälschlich als Software- oder Kommunikationsproblem beurteilt wird.
Die serielle Verbindung zum JQ6500
Der Nano steuert das JQ6500 ausschließlich über UART. JQ6500 Pin 10 TX führt direkt zu Nano D10. Die Gegenrichtung verläuft von Nano D11 über R1 mit 1 kΩ zu JQ6500 Pin 9 RX. Die Leitungen sind damit gekreuzt: Der Sender des einen Moduls führt zum Empfänger des anderen. Die Firmware verwendet für diese Verbindung eine SoftwareSerial-Schnittstelle mit 9.600 Baud. Die PC-Verbindung des Nano arbeitet getrennt davon mit 115.200 Baud.
R1 sitzt ausschließlich in der Richtung Nano D11 zum JQ6500-RX. Er ist kein Bestandteil der BUSY-Auswertung und ersetzt R2 nicht. Auf dem Steckbrett hilft eine klare Kabelfarbe oder Beschriftung, beide Widerstände auseinanderzuhalten. Über D11 sendet der Nano Wiedergabe-, Lautstärke- und Resetbefehle. D10 gehört zur Gegenrichtung der JQ6500-Kommunikation.
Ein Wiedergabebefehl enthält nur den Soundindex. Die Firmware ruft die Datei nach ihrer Position im internen Flash auf. Namen oder Ordnerstrukturen werden im normalen Betrieb nicht übertragen. Daraus folgt eine praktische Grenze: Wenn die Reihenfolge der Audiodateien geändert wird, ändert sich die Bedeutung der Soundnummern. Hardwareeingänge, Bedienoberfläche und externe Dokumentation müssen dann weiterhin zu dieser Reihenfolge passen.
Für den Test ist außerdem wichtig, die beiden seriellen Schnittstellen nicht zu verwechseln. Der USB-Anschluss des Nano führt die PC-Kommunikation mit 115.200 Baud. D10 und D11 bilden dagegen die 9.600-Baud-Verbindung zum JQ6500. Beide Datenwege treffen in der Firmware zusammen, erfüllen aber unterschiedliche Aufgaben. Eine erfolgreiche Verbindung der Windows-Anwendung sagt daher noch nicht automatisch aus, dass auch der Audiobaustein korrekt verdrahtet ist.
BUSY zeigt den Wiedergabestatus
Das BUSY-Signal ist für den Ablauf entscheidend. JQ6500 Pin 8 BUSY wird über den getrennten Widerstand R2 mit 1 kΩ an Nano A2 geführt. Die Firmware behandelt die Leitung nicht als einfachen digitalen Eingang, sondern liest den Analogwert. Im geprüften Aufbau lagen die Werte im Leerlauf ungefähr bei 2 bis 3 ADC-Schritten und während einer Wiedergabe ungefähr bei 537 bis 540. Diese deutliche Trennung erlaubt eine robuste Zustandsauswertung.
Für den Wechsel verwendet die Firmware zwei Schwellen. Ab 350 gilt BUSY als eingeschaltet. Ein bereits aktiver Zustand bleibt erhalten, bis der Wert auf 150 oder tiefer sinkt. Diese Hysterese verhindert, dass kleine Schwankungen an einer einzigen Grenze wiederholt zwischen aktiv und inaktiv umschalten. Der Analogwert wird etwa alle 5 Millisekunden abgetastet. Eine Änderung muss ungefähr 30 Millisekunden stabil bleiben, bevor sie als neuer BUSY-Zustand gilt.
Nach einem PLAY-Befehl wechselt der Player zunächst in den Zustand STARTING und wartet auf BUSY. Wird innerhalb von ungefähr 1,5 Sekunden kein gültiger aktiver Zustand erkannt, meldet die Firmware einen Start-Timeout. Danach setzt sie den Player wieder auf READY und versucht den nächsten Warteschlangeneintrag. Das kann beispielsweise auftreten, wenn der angeforderte Soundindex im JQ6500 nicht vorhanden ist. Der Timeout verhindert, dass die komplette Steuerung dauerhaft auf einen nie gestarteten Sound wartet.
Die vier Playerzustände READY, STARTING, PLAYING und RESETTING machen den Ablauf eindeutig. In READY kann der nächste Eintrag gestartet werden. STARTING wartet auf den bestätigten Beginn, PLAYING auf das bestätigte Ende. RESETTING kennzeichnet die Neuinitialisierung des JQ6500. Während STARTING, PLAYING oder RESETTING sind die meisten Steuerbefehle gesperrt; Status, Identifikation, Ping, Lautstärke und Reset bleiben je nach Zustand möglich.
BUSY ist zugleich die Grundlage für die Warteschlangensteuerung. Die Firmware schätzt die Länge einer Aufnahme nicht aus Dateigröße oder festen Verzögerungen. Sie wartet auf den bestätigten Beginn und anschließend auf das bestätigte Ende. Dadurch können kurze Ansagen und längere Hintergrundgeräusche mit demselben Ablauf verarbeitet werden. Die tatsächliche Audiodauer bleibt Sache der Datei im JQ6500.
Der Lautsprecher liegt zwischen SPK+ und SPK−
Der Lautsprecher wird direkt zwischen JQ6500 Pin 16 SPK+ und Pin 15 SPK− angeschlossen. Keiner dieser Anschlüsse gehört an GND. Das JQ6500 verwendet einen Brückenausgang, bei dem beide Leitungen aktiv angesteuert werden. Eine vermeintlich naheliegende Verbindung einer Lautsprecherseite mit Masse wäre deshalb elektrisch falsch. Auch Messungen am Ausgang müssen berücksichtigen, dass SPK− kein Massepunkt ist.
Für den Versuchsaufbau ist ein geeigneter kleiner Lautsprecher mit 8 Ω und 1 bis 3 W empfohlen. Die Lautstärke wird über das JQ6500 eingestellt; die Firmware und die Windows-Anwendung verwenden einen Wertebereich von 0 bis 30, Standardwert ist 15. Eine höhere Zahl ersetzt keine passende Versorgung und keinen geeigneten Lautsprecher. Bei der Kontrolle vor dem Einschalten verfolgen wir beide Lautsprecherleitungen bis zu SPK+ und SPK− und prüfen ausdrücklich, dass keine davon auf der Masseleiste des Steckbretts endet.
Zehn Eingänge am Arduino Nano
Die zehn Hardwareeingänge sind fest den zehn Soundnummern zugeordnet. IN1 liegt auf D2 und spielt Sound 1. IN2 liegt auf D3 und spielt Sound 2, IN3 auf D4 für Sound 3, IN4 auf D5 für Sound 4, IN5 auf D6 für Sound 5, IN6 auf D7 für Sound 6, IN7 auf D8 für Sound 7 und IN8 auf D9 für Sound 8. IN9 liegt auf A0 und spielt Sound 9, IN10 auf A1 und spielt Sound 10. Version 1.0.0 besitzt keine frei konfigurierbare Eingangsmatrix.
Alle Eingänge werden als INPUT_PULLUP betrieben. Im Ruhezustand zieht der interne Widerstand den Pin auf HIGH. Ein Taster, Schalter oder Relaiskontakt verbindet den Eingang bei Auslösung mit GND, wodurch er LOW wird. Auch geeignete Open-Collector-Ausgänge können verwendet werden, wenn eine gemeinsame Masse vorhanden ist. Eine externe Fremdspannung darf nicht auf die Eingänge gelangen. Die Firmware entprellt jede Betätigung ungefähr 30 Millisekunden und reagiert auf den stabil erkannten Übergang.
Im autonomen Eingangsmodus erzeugt eine bestätigte Betätigung eine Anforderung mit der Auslöseart INPUT und der jeweiligen Eingangsnummer. Im Softwarebetrieb werden die Hardwareeingänge dagegen ignoriert. Das ist bewusst so festgelegt: SOFTWARE und INPUTS sind zwei getrennte Betriebsarten, nicht zwei gleichzeitig aktive Quellen. A3 bleibt unbeschaltet und dient als zusätzliche Zufallsquelle für die Firmware. Er ist weder ein elfter Eingang noch für einen festen Pegel vorgesehen.
Schalter und Taster verhalten sich aus Sicht der Firmware unterschiedlich lange, führen aber nur beim stabilen Aktivieren zu einer neuen Anforderung. Da derselbe Sound nicht gleichzeitig laufen und nochmals in der Warteschlange stehen darf, erzeugt ein dauerhaft geschlossener Kontakt keinen unkontrollierten Rückstau. Für externe Steuerungen ist dennoch eine saubere Kontaktlogik sinnvoll, damit die beabsichtigte Betätigung eindeutig bleibt.
Beim Beginn einer PC-Sitzung werden ausstehende Eingangswünsche verworfen. Das verhindert, dass eine ältere Kontaktbetätigung später überraschend im Softwarebetrieb erscheint. Beim Rückfall in den Eingangsmodus beginnt die Auswertung wieder mit dem aktuellen stabilen Zustand der Kontakte. Die Trennung der Modi ist damit nicht nur eine Bedienentscheidung, sondern Teil einer klaren Zustandsverwaltung.
Die Sounddateien kommen direkt auf den JQ6500
Der JQ6500-16P besitzt internen Flash-Speicher. Er wird vor dem Einbau oder vor der ersten Nutzung separat über seinen USB-Anschluss mit MP3-Dateien bespielt. Weder die Arduino-Firmware noch die PureBasic-Anwendung übernimmt diesen Schreibvorgang. Typischerweise wird das Modul allein per USB mit dem Windows-PC verbunden und der zum Modul gehörende Uploader gestartet. Dieser Uploader ist Drittsoftware und gehört nicht zum Repository.
Im Uploader werden die gewünschten Dateien ausgewählt und in eine verbindliche Reihenfolge gebracht. Die erste übertragene Datei ist Sound 1, die zweite Sound 2 und so weiter bis Sound 10. Nach dem Start des Flash-Vorgangs muss das Schreiben vollständig beendet werden, bevor das Modul sicher getrennt wird. Die Projektsoftware liest später keine Dateinamen aus. Die Zuordnung zwischen Dateiinhalt, Soundnummer und Einsatzort muss deshalb außerhalb des Moduls dokumentiert werden.
Der interne Speicher ist begrenzt. Bei Bedarf lassen sich Dateien passend komprimieren, solange die für die Szene notwendige Qualität erhalten bleibt. Das Repository enthält aus Lizenz- und Größengründen keine MP3- oder WAV-Dateien. Anwender wählen ihre Aufnahmen selbst und beachten deren Rechte. Nach einer geänderten Reihenfolge müssen Bedienungs- und Testunterlagen angepasst werden, weil dieselbe Nummer anschließend einen anderen Inhalt aufruft.
Die feste Verbindung von Eingangsnummer und Soundindex macht eine externe Liste besonders sinnvoll. Sie kann beispielsweise festhalten, dass Sound 1 eine Bahnhofsansage, Sound 2 eine Glocke und Sound 3 ein Werkstattgeräusch enthält. Diese Liste ist jedoch eine Anwenderdokumentation und keine Vorgabe des Projekts. Das Modul selbst kennt nur die Nummern und die im EEPROM gespeicherten Wiedergabeeinstellungen.
Den Aufbau Schritt für Schritt prüfen
Die Inbetriebnahme beginnt ohne Spannung. Zuerst vergleichen wir jede Verbindung mit der Netzliste: 5V, GND, SGND, UART, BUSY und Lautsprecher. R1 und R2 werden als getrennte Bauteile verfolgt. Danach prüfen wir, ob SPK+ und SPK− ausschließlich zum Lautsprecher führen. Die zehn Eingänge dürfen nur nach GND geschaltet werden. Anschließend wird die Versorgungssituation für USB und externe 5 V eindeutig festgelegt.
Das JQ6500 wird separat mit mindestens den benötigten Testdateien bespielt. Für einen vollständigen Eingangstest sollten Sound 1 bis Sound 10 vorhanden sein. Danach laden wir die Firmware auf den Nano und stellen die gemeinsame 5-Volt-Versorgung her. Zunächst wird eine einzelne Wiedergabe im Softwaremodus geprüft. Der BUSY-Rohwert sollte im Leerlauf ungefähr 2 bis 3 und während der Wiedergabe ungefähr 537 bis 540 anzeigen. Beginn und Ende müssen sauber erkannt werden.
Anschließend werden alle zehn Hardwareeingänge im Eingangsmodus einzeln gegen GND ausgelöst. Dabei kontrollieren wir die feste Zuordnung, die Entprellung und die Anzeige der Eingangsmaske. Mehrere Anforderungen nacheinander prüfen das FIFO-Verhalten. Ein doppelt angeforderter Sound darf nicht mehrfach aufgestaut werden. Schließlich wird eine aktive PC-Sitzung beendet oder die Verbindung getrennt. Nach ungefähr vier Sekunden ohne gültige Kommunikation muss der Nano die Sitzung aufgeben und in den autonomen Eingangsmodus zurückfallen.
Typische Verdrahtungsfehler lassen sich aus dem Schaltbild ableiten, ohne sie als eigene Erlebnisse auszugeben: vertauschte UART-Richtung, ein fehlender gemeinsamer Massebezug, R2 an einem falschen Prüfpunkt, eine Lautsprecherleitung an GND oder parallel verbundene 5-Volt-Quellen. Ebenso kann ein fehlender Soundindex wie ein Kommunikationsproblem wirken, obwohl der PLAY-Befehl korrekt übertragen wurde. Die schrittweise Prüfung trennt diese Ursachen voneinander.
Nach dem Funktionstest lohnt ein abschließender Blick auf die mechanische Ausführung. Steckkontakte dürfen sich beim späteren Einbau nicht lösen, und Leitungen zum Lautsprecher oder zu externen Kontakten sollten eindeutig beschriftet sein. Wer auf Lochraster oder eine eigene Platine wechselt, übernimmt dieselbe Netzliste unverändert. Eine andere Anordnung ist möglich, die elektrische Zuordnung bleibt jedoch maßgeblich.
Was die Firmware bereits im Hintergrund erledigt
Schon beim Hardwaretest übernimmt die Firmware mehr als das Senden eines PLAY-Befehls. Sie hält eine FIFO-Warteschlange mit Platz für höchstens zehn Soundnummern. Ein Sound darf nur einmal gleichzeitig als aktuelle Wiedergabe oder Warteschlangeneintrag vorkommen. Die Auslöser MANUAL, PERMANENT, RANDOM, INTERVAL und INPUT werden getrennt protokolliert. Dadurch kann die Statusausgabe zeigen, warum ein Sound gestartet wurde und welcher Eingang beteiligt war.
Die Konfiguration liegt im internen EEPROM des Nano. Gespeichert werden Betriebsart, Automatikstatus, Zufallsbereich, Lautstärke und für jeden Sound die Kennzeichen für Dauer-, Zufalls- und Intervallwiedergabe sowie die Intervallzeit. Kennung, Versionsnummer und CRC prüfen die Daten beim Start. Sind sie ungültig, setzt die Firmware Standardwerte und speichert eine neue gültige Struktur. EEPROM.update schreibt nur tatsächlich veränderte Bytes und reduziert damit unnötige Schreibvorgänge.
Die Hardware ist zugleich auf die Windows-Anwendung und den autonomen Betrieb abgestimmt. Im Softwarebetrieb übernimmt die Anwendung aktive Bedienung und Automatik, während die Eingänge ignoriert werden. Im Eingangsmodus lösen IN1 bis IN10 autonom aus; manuelle PLAY-Befehle und Softwareautomatik sind deaktiviert. Beide Wege verwenden dieselbe Hardware und dieselbe Firmware, aber jeweils klare Regeln für die aktive Steuerquelle.
Die Standardwerte geben dem Aufbau einen definierten Startpunkt: Lautstärke 15, Zufallsbereich 120 bis 600 Sekunden und Intervallzeit 300 Sekunden. Zulässig sind Zeitwerte von 1 bis 86.400 Sekunden. Diese Werte sind keine Uhrzeiten und bilden keinen Kalender ab. Sie sind einfache Verzögerungen, die der Nano mit seiner Laufzeitsteuerung berechnet. Damit bleibt die Automatik ohne Echtzeituhr reproduzierbar.
Teil 3 beschreibt anschließend die beiden Betriebsarten, die Windows-Anwendung, die Automatik, die Diagnose und die Veröffentlichung der Version 1.0.0.
English version
Components for the prototype
The Arduino Nano JQ6500 sound module uses a small number of components with clearly defined roles. An Arduino Nano with ATmega328P handles control, communication, player state, input sampling and configuration storage. The JQ6500-16P contains internal flash memory, decodes the audio files and drives the loudspeaker. An 8 Ω loudspeaker rated between 1 and 3 W is recommended. Two separate 1 kΩ resistors, up to ten push-buttons, switches, relay contacts or suitable open-collector outputs, a regulated 5 V supply (or PC USB), common ground, jumper wires and a breadboard complete the prototype.
R1 and R2 are separate parts. R1 is in the line from Nano D11 to the JQ6500 RX input. R2 connects the JQ6500 BUSY signal to analog input A2. Equal resistance does not mean equal purpose, and they must never be replaced by a shared resistor. C1 with 470 µF and C2 with 100 nF are recommended close to the JQ6500. They support the supply during load changes and fast disturbances but do not replace a properly designed power source. For power, the USB port powered by the PC or a small power supply is sufficient.
A breadboard keeps measurement points accessible during development. The circuit may later be transferred to stripboard or a custom PCB. Firmware and configuration remain designed for the Arduino Nano. External EEPROM, FRAM, an SD card for configuration data and a larger controller are outside the project boundaries.
The component list also shows the division of work. Audio remains in JQ6500 flash, while firmware and configuration remain in Nano memory. External contacts only signal a connection to ground, and the loudspeaker is driven directly by the JQ6500 bridge output. Keeping those tasks separate makes the prototype easier to inspect and document.
Power supply and common ground
Nano 5V connects to JQ6500 pin 12 DC-5V. Nano GND connects to JQ6500 pin 11 GND and pin 6 SGND. This common reference is required for power, UART, BUSY measurement and external contacts. Without a shared ground, signal levels cannot be interpreted reliably even if both modules appear to have power.
USB and an external supply require a clear plan. Nano and JQ6500 must not be powered accidentally from two parallel 5 V sources. Before connecting cables, the builder must decide which source supplies the circuit and how reverse current is avoided. This matters while uploading firmware and during an active PC session. The power arrangement is defined first and energised afterwards.
C1 and C2 should be close to the JQ6500 with short connections. Before first power-up, polarity, ground continuity and possible shorts are checked with the supply off. A systematic power check prevents unstable voltage from being mistaken for a firmware or serial communication problem.
For permanent installation, the 5 V and ground paths should remain short and clearly routed. Breadboard power rails are sometimes interrupted in the middle, so their continuity must be checked rather than assumed. That mechanical detail is not part of the circuit diagram, but it can change the behaviour of the physical prototype.
Serial connection to the JQ6500
The Nano controls the JQ6500 only through UART. JQ6500 pin 10 TX connects directly to Nano D10. Nano D11 connects through the 1 kΩ resistor R1 to JQ6500 pin 9 RX. The lines are crossed between transmitter and receiver. The firmware uses SoftwareSerial at 9,600 baud for the JQ6500, while the separate PC connection runs at 115,200 baud.
R1 belongs only in the Nano D11 to JQ6500 RX direction. It is not part of BUSY sensing and cannot replace R2. Clear wire colours or labels help keep the two resistors distinct. Playback, volume and reset commands travel toward the audio module. Normal operation does not control the JQ6500 through USB.
A playback command contains a sound index rather than a file name. Firmware requests a file by its position in internal flash. Changing transfer order therefore changes the meaning of the sound numbers, and the external documentation must remain consistent with the new order.
The two serial paths must not be confused. The Nano USB connection carries PC communication at 115,200 baud. D10 and D11 form the separate 9,600-baud link to the JQ6500. A successful Windows connection therefore confirms the PC path, but it does not by itself prove that the JQ6500 UART is wired correctly.
BUSY reports playback status
JQ6500 pin 8 BUSY connects through the separate 1 kΩ resistor R2 to Nano A2. Firmware reads it as an analog value. The tested prototype produced approximately 2 to 3 ADC steps when idle and approximately 537 to 540 during playback. This clear difference supports robust state detection.
Two thresholds create hysteresis. BUSY becomes active at 350. Once active, it remains active until the reading falls to 150 or below. Small fluctuations around one boundary therefore do not cause repeated transitions. The analog input is sampled about every 5 milliseconds, and a changed state must remain stable for about 30 milliseconds.
After a PLAY command the player enters STARTING and waits for BUSY. If no valid active state appears within about 1.5 seconds, firmware reports a start timeout, returns to READY and continues with the next queued request. A missing sound index is one possible reason. The timeout prevents the system from waiting forever.
READY, STARTING, PLAYING and RESETTING describe the complete player state. Most control commands are locked outside READY. Status, identification, ping, volume and reset remain available where appropriate, so the user interface can reflect the actual firmware restrictions.
BUSY also controls queue progression. Firmware does not estimate completion from a fixed delay or file size. It waits for confirmed playback start and confirmed playback end. Short announcements and longer background recordings can therefore use the same state machine without a separate duration setting.
The loudspeaker is connected between SPK+ and SPK−
The loudspeaker connects directly between JQ6500 pin 16 SPK+ and pin 15 SPK−. Neither terminal may be connected to GND. The output is bridged, which means both loudspeaker leads are actively driven. SPK− is not a ground reference, and measurements must take that into account.
The project recommends a small 8 Ω loudspeaker rated between 1 and 3 W. Volume uses the JQ6500 range from 0 to 30, with 15 as the default. A higher setting does not compensate for an unsuitable supply or loudspeaker. The unpowered inspection should trace both leads directly back to SPK+ and SPK−.
Both loudspeaker wires should be routed and labelled as one pair. The common ground used by the Nano, JQ6500 and external contacts must remain separate from that pair. The same rule applies when the circuit is transferred from a breadboard to stripboard or a custom PCB.
Ten inputs on the Arduino Nano
The hardware mapping is fixed. IN1 on D2 plays sound 1, IN2 on D3 plays sound 2, IN3 on D4 plays sound 3, IN4 on D5 plays sound 4, IN5 on D6 plays sound 5, IN6 on D7 plays sound 6, IN7 on D8 plays sound 7, IN8 on D9 plays sound 8, IN9 on A0 plays sound 9 and IN10 on A1 plays sound 10. Version 1.0.0 does not provide a freely configurable input matrix.
All inputs use INPUT_PULLUP. They rest at HIGH and are activated by a connection to GND. Push-buttons, switches, relay contacts and suitable open-collector outputs may be used with a common ground. External voltage must not be applied to these pins. Firmware debounces an activation for about 30 milliseconds.
A confirmed press in input mode creates an INPUT request with the corresponding input number. In software mode the hardware inputs are ignored. SOFTWARE and INPUTS are separate modes rather than simultaneous request sources. A3 remains unconnected and provides an additional random seed. It is not an eleventh input.
A held switch creates only the stable activation event. Duplicate suppression also prevents the same sound from building up repeatedly in the queue. External controls should nevertheless provide a clean contact action so that their intended state remains clear.
Starting a PC session discards pending input requests. This prevents an old contact event from appearing later in software mode. When the session ends, input sampling resumes under the rules of the autonomous mode. The mode transition is therefore part of the state management, not merely a visual switch in the application.
Audio files are written directly to the JQ6500
The JQ6500-16P stores audio in internal flash. Before installation it is connected separately to a Windows PC through its own USB port. The module-specific uploader is then used to select MP3 files. Neither Nano firmware nor the PureBasic application performs this transfer, and the uploader is third-party software rather than part of the repository.
Transfer order defines the indices: the first file is sound 1, the second sound 2, and so on. The flash operation must finish completely before the module is removed safely. Project software cannot read file names. Users therefore document the relation between recording, sound number and layout scene outside the module.
Internal storage is limited, so files may need suitable compression. The repository includes no MP3 or WAV files and does not distribute the proprietary uploader. Users select their own recordings and remain responsible for usage rights. Any change of order also requires updated operating and test notes.
An external assignment list is useful because input number, sound index and scene remain fixed together in version 1.0.0. The list may contain titles such as station announcement or workshop noise, but those names are user documentation. Firmware stores only the index and playback configuration.
Checking the setup step by step
Commissioning begins without power. Every connection is compared with the netlist: 5V, GND, SGND, UART, BUSY and loudspeaker. R1 and R2 are traced separately. SPK+ and SPK− must lead only to the loudspeaker. Inputs may connect only to GND, and the USB/external supply arrangement must be decided before power is applied.
The JQ6500 is loaded separately with the required test files. A complete input test needs sounds 1 through 10. Firmware is then uploaded to the Nano. The first software-mode playback checks serial control and BUSY. Idle should read about 2 to 3 ADC steps and active playback about 537 to 540. Start and end must be detected cleanly.
All ten inputs are then activated individually in input mode. The fixed mapping, debounce and input mask are checked. Several different requests test FIFO ordering, while a duplicate sound must not create repeated backlog. Ending the PC session or removing communication should cause fallback to autonomous input mode after about four seconds.
Predictable wiring faults include crossed UART direction, missing common ground, an incorrect BUSY path, a loudspeaker lead on GND or parallel 5 V sources. A missing audio index can also look like a communication fault. The staged test sequence separates these causes instead of changing several parts at once.
After functional testing, the mechanical implementation also deserves attention. Connections must remain secure in the final installation, and loudspeaker and external-contact wiring should be labelled clearly. A stripboard or custom PCB may use a different physical layout, but it must preserve the same electrical netlist.
What the firmware already handles in the background
Even during hardware tests, firmware does more than send PLAY. It maintains a FIFO queue with capacity for ten sound numbers. A sound can occur only once as the current item or in the queue. Trigger types MANUAL, PERMANENT, RANDOM, INTERVAL and INPUT are recorded so status output can explain why playback started.
Configuration is stored in the Nano internal EEPROM. It contains control mode, automation state, random range, volume and each sound’s continuous, random and interval flags plus interval time. A magic value, version and CRC validate the data. Invalid data is replaced by defaults. EEPROM.update writes only changed bytes.
The same hardware supports the Windows application and autonomous input operation. In software mode, active control and automation come from the application and inputs are ignored. In input mode, IN1 to IN10 operate autonomously while manual PLAY and software automation are disabled. The two paths use the same hardware but have unambiguous rules for the active source.
Default values provide a defined starting point: volume 15, random range 120 to 600 seconds and interval time 300 seconds. Valid timing values range from 1 to 86,400 seconds. These are delays, not clock times or calendar entries. The Nano calculates them from its runtime and does not contain a real-time clock.
Part 3 will describe the two operating modes, Windows application, automation, diagnostics and publication of version 1.0.0.

