12.10.2023, 23:24
(Dieser Beitrag wurde zuletzt bearbeitet: 12.10.2023, 23:47 von saarfranzose.)
Dieses Projekt hat sich sehr chaotisch entwickelt und hat mich einige Wochen Arbeit gekostet. Schon vor längerer Zeit hatte ich die Bauanleitung gefunden und ging von einem einfachen und entspannten Nachbau aus. Aber weit gefehlt.
DIY Retro Audio Player github
DIY Retro Audio Player hackaday
Der Entwickler hatte eine eigene Platine kreiert, die Gerberdateien stehen zur Verfügung. Ich dachte, es kann ja nicht so schwer sein ein Standard DevKit Board zu verwenden. Um mir den Platz für einen Card-Reader zu sparen begann ich mit einem TTGO T8 Board mit integriertem Kartenleser. So war außer dem Schaltfeld nur ein MAX98357 für die Tonausgabe und das Display zu beschalten.
Erst gab es mal nur Bootschleifen. Das lag an dem Core 2.0.14 der IDE. Ich musste auf die Version 1.0.6 runtergehen. Später fand ich den entsprechenden Hinweis in den ersten Zeilen des Quellcode. Da hatte ich es schon selbst rausgefunden. Dann gab es eine ruckelnde Wiedergabe. Das lag an einer ungünstigen GPIO-Wahl. Dann liefen die Titel nur 30 Sekunden und begannen wieder von vorne. Das Gerät war fast nicht zu bedienen, es machte was es wollte. Auch hier war es die GPIO-Auswahl bei den Bedienteilen. Da ich die Probleme zuerst an der falschen Stelle suchte, nämlich beim Zusammenspiel zwischen VSPI und HSPI, wechselte ich zwischendurch auf ein Pintelboard, um von der festgelegten Verdrahtung des Readers wegzukommen. Damit hatte ich jetzt ein I2S-Modul onboard, also einen direkten Lautsprecherausgang, musste dafür aber einen Card-Reader dazu setzen. Dann bastelte ich auch noch an den Bibliotheken, was aber unnötig war. Mit der richtigen Beschaltung und vor allem auch vollständigen Beschaltung der Bedienteile mit Pullup's fand ich irgendwann tatsächlich eine Kombination die flüssig läuft und genau das macht was ich erwartete.
Andere Probleme bereitete das Gehäuse. Das Oberteil druckte ich mit extrem viel Support mit der Front nach oben weil ich eine schöne Oberfläche haben wollte. Inzwischen habe ich den neuen Drucker, jetzt könnte ich es auch auf dem Kopf drucken mit wenig Support. Ein PEI ist doch eine andere Hausnummer als ein Plastikbett mit Klebematte.
Es passte keines meiner Display in den Ausschnitt. Ich musste das teure Waveshare einkaufen, welches beim Projekt in der Stückliste steht.
Den ganzen Elektronikkram in das Gehäuse zu bekommen war unmöglich. Ich musste ein Zwischenteil drucken um mehr Höhe zu bekommen. Aus dem hübschen schlanken Retro-Gehäuse ist dadurch ein Klotz geworden. Eigentlich war das Mittelteil erst mal als Entwurf gedacht. Meine Frau meinte aber die Farbkombination wäre okay. Also verbaute ich es und machte nachträgliche Anpassungen zwar auf dem Bildschirm, am Gehäuse aber durch Nachbearbeitung.
Auswahl der Tasten: Eigentlich hatte ich schöne Tasten aus einer Rechenmaschine eingeplant. Sie bauten aber minimal zu breit und verkeilten sich gegeneinander, und ich musste die Tastenkappen weglassen. Also auch hier noch ein Provisorium. Dass man die Lochrasterplatte so krass sieht stört mich auch.
Der Displayausschnitt ist auch kein optisches Highlight. Die Unsymmetrie des TFT ist nicht im geringsten kaschiert. Da werde ich mir auch noch was einfallen lassen.
Immerhin hab ich jetzt schon mal etwas vorzeigbares. Die Strichmännchen-Animation begeistert mich immer wieder auf neue. Da die Software gedacht war um Hörbücher abzuspielen kann ich z.B. längere Aufzeichnungen von Radiosendungen abspielen. Beim Aus- und wieder Einschalten wird die Abspielposition wieder aufgegriffen, da sie alle paar Sekunden auf die SD geschrieben wird. Wechsel auf den nächsten oder vorherigen Titel funktioniert prima mit kurzem Druck. Die mittlere Taste ist für Pause/Wiedergabe zuständig.
Hier meine funktionierende Belegung für Standard-ESP32:
#define SD_CS 13
#define SD_MOSI 15
#define SD_MISO 2
#define SD_SCK 14
#define TFT_MISO 19
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS 5
#define TFT_DC 22
TFT_RES EN
#define LCD_BL 0 // ist definiert, aber nicht aufgelegt
#define ABUT 4
#define BBUT 3 // RX0
#define CBUT 34
#define ENCINTA 39
#define ENCINTB 35
#define ENCBUT 36
#define JACK_SENS 32 // ist definiert, aber nicht aufgelegt
#define VBAT_SENS 33 // auf 3,3V gelegt damit die Low-Bat Anzeige keine leere Batterie anzeigt
so waren die Gehäuseteile vom Autor geplant (abgesehen davon dass ich das Innenteil des Batteriefaches beschnitten habe). Halt passend für seine eigene Platine, aber nicht für Standardteile.
Befestigungsmöglichkeiten für die Bauteile sind Fehlanzeige:
ich habe einen Innenrahmen konstruiert, der Lautsprecher, Prozessor, Card-Reader und eine Potentialverteilung trägt sowie das TFT festklemmt. Er wird zum Griffteil zu eingeschoben und an der Lautsprecherseite mit 2xM3 Schrauben auf eingeleimte Klötzchen geschraubt:
noch ohne Verdrahtung:
hier ist alles verkabelt:
der Batteriefachdeckel könnte die SD zugänglich machen, das wird bei dem Kabelgewirr aber wohl nicht möglich sein (oder nur mit Fingerbruch):
der vorzeigbare, vorläufige Player:
modifizierte STL-Dateien:
3D.zip (Größe: 302,53 KB / Downloads: 2)
DIY Retro Audio Player github
DIY Retro Audio Player hackaday
Der Entwickler hatte eine eigene Platine kreiert, die Gerberdateien stehen zur Verfügung. Ich dachte, es kann ja nicht so schwer sein ein Standard DevKit Board zu verwenden. Um mir den Platz für einen Card-Reader zu sparen begann ich mit einem TTGO T8 Board mit integriertem Kartenleser. So war außer dem Schaltfeld nur ein MAX98357 für die Tonausgabe und das Display zu beschalten.
Erst gab es mal nur Bootschleifen. Das lag an dem Core 2.0.14 der IDE. Ich musste auf die Version 1.0.6 runtergehen. Später fand ich den entsprechenden Hinweis in den ersten Zeilen des Quellcode. Da hatte ich es schon selbst rausgefunden. Dann gab es eine ruckelnde Wiedergabe. Das lag an einer ungünstigen GPIO-Wahl. Dann liefen die Titel nur 30 Sekunden und begannen wieder von vorne. Das Gerät war fast nicht zu bedienen, es machte was es wollte. Auch hier war es die GPIO-Auswahl bei den Bedienteilen. Da ich die Probleme zuerst an der falschen Stelle suchte, nämlich beim Zusammenspiel zwischen VSPI und HSPI, wechselte ich zwischendurch auf ein Pintelboard, um von der festgelegten Verdrahtung des Readers wegzukommen. Damit hatte ich jetzt ein I2S-Modul onboard, also einen direkten Lautsprecherausgang, musste dafür aber einen Card-Reader dazu setzen. Dann bastelte ich auch noch an den Bibliotheken, was aber unnötig war. Mit der richtigen Beschaltung und vor allem auch vollständigen Beschaltung der Bedienteile mit Pullup's fand ich irgendwann tatsächlich eine Kombination die flüssig läuft und genau das macht was ich erwartete.
Andere Probleme bereitete das Gehäuse. Das Oberteil druckte ich mit extrem viel Support mit der Front nach oben weil ich eine schöne Oberfläche haben wollte. Inzwischen habe ich den neuen Drucker, jetzt könnte ich es auch auf dem Kopf drucken mit wenig Support. Ein PEI ist doch eine andere Hausnummer als ein Plastikbett mit Klebematte.
Es passte keines meiner Display in den Ausschnitt. Ich musste das teure Waveshare einkaufen, welches beim Projekt in der Stückliste steht.
Den ganzen Elektronikkram in das Gehäuse zu bekommen war unmöglich. Ich musste ein Zwischenteil drucken um mehr Höhe zu bekommen. Aus dem hübschen schlanken Retro-Gehäuse ist dadurch ein Klotz geworden. Eigentlich war das Mittelteil erst mal als Entwurf gedacht. Meine Frau meinte aber die Farbkombination wäre okay. Also verbaute ich es und machte nachträgliche Anpassungen zwar auf dem Bildschirm, am Gehäuse aber durch Nachbearbeitung.
Auswahl der Tasten: Eigentlich hatte ich schöne Tasten aus einer Rechenmaschine eingeplant. Sie bauten aber minimal zu breit und verkeilten sich gegeneinander, und ich musste die Tastenkappen weglassen. Also auch hier noch ein Provisorium. Dass man die Lochrasterplatte so krass sieht stört mich auch.
Der Displayausschnitt ist auch kein optisches Highlight. Die Unsymmetrie des TFT ist nicht im geringsten kaschiert. Da werde ich mir auch noch was einfallen lassen.
Immerhin hab ich jetzt schon mal etwas vorzeigbares. Die Strichmännchen-Animation begeistert mich immer wieder auf neue. Da die Software gedacht war um Hörbücher abzuspielen kann ich z.B. längere Aufzeichnungen von Radiosendungen abspielen. Beim Aus- und wieder Einschalten wird die Abspielposition wieder aufgegriffen, da sie alle paar Sekunden auf die SD geschrieben wird. Wechsel auf den nächsten oder vorherigen Titel funktioniert prima mit kurzem Druck. Die mittlere Taste ist für Pause/Wiedergabe zuständig.
Hier meine funktionierende Belegung für Standard-ESP32:
#define SD_CS 13
#define SD_MOSI 15
#define SD_MISO 2
#define SD_SCK 14
#define TFT_MISO 19
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS 5
#define TFT_DC 22
TFT_RES EN
#define LCD_BL 0 // ist definiert, aber nicht aufgelegt
#define ABUT 4
#define BBUT 3 // RX0
#define CBUT 34
#define ENCINTA 39
#define ENCINTB 35
#define ENCBUT 36
#define JACK_SENS 32 // ist definiert, aber nicht aufgelegt
#define VBAT_SENS 33 // auf 3,3V gelegt damit die Low-Bat Anzeige keine leere Batterie anzeigt
so waren die Gehäuseteile vom Autor geplant (abgesehen davon dass ich das Innenteil des Batteriefaches beschnitten habe). Halt passend für seine eigene Platine, aber nicht für Standardteile.
Befestigungsmöglichkeiten für die Bauteile sind Fehlanzeige:
ich habe einen Innenrahmen konstruiert, der Lautsprecher, Prozessor, Card-Reader und eine Potentialverteilung trägt sowie das TFT festklemmt. Er wird zum Griffteil zu eingeschoben und an der Lautsprecherseite mit 2xM3 Schrauben auf eingeleimte Klötzchen geschraubt:
noch ohne Verdrahtung:
hier ist alles verkabelt:
der Batteriefachdeckel könnte die SD zugänglich machen, das wird bei dem Kabelgewirr aber wohl nicht möglich sein (oder nur mit Fingerbruch):
der vorzeigbare, vorläufige Player:
modifizierte STL-Dateien:
3D.zip (Größe: 302,53 KB / Downloads: 2)
Gruß,
Jupp
-----------------------------
was du baust ist immer mit dir verbunden
(Lego)
Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Jupp
-----------------------------
was du baust ist immer mit dir verbunden
(Lego)
Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)