Hallo, ein Frohes 2017 noch! mp3 ist ja schon oft hier diskutiert worden, allerdings finde ich eher ältere Beiträge mit eher noch älteren Chips als Lösungsvorschlag. Beitrag "ARM MP3/AAC Player Web Radio" Ich hoffe, dass dieses Forum das richtige dafür ist. Ich habe vor allem erst mal ein Verständnisproblem. Kleine Boards zum mp3 Abspielen von hart verlötetem Flash oder Microsim gibt es ja mehrere, ich habe ein JQ6500 (auf dem Chip steht noch JQ6500SS24) für <3 Euro erworben. In meiner Anfänger-Naivität habe ich nun versucht, einen Arduino an die dafür vorgesehene serielle Schnittstelle des Boards zu hängen, um von diesem mp3 an den JQ6500 zu senden. Leider musste ich beim Lesen der verschiedenen Seiten zum Thema (http://www.elecfreaks.com/wiki/index.php?title=JQ6500_Mini_MP3_Module) feststellen, dass man per Mikrocontroller nur an die Vor/Pause/Zurück- Funktionalitäten rankommt, aber keine Möglichkeit hat, Daten einzuspielen. Wenn man dann nach einem reinen Modul für mp3 -> Audio sucht, kommt man bei deutlich teureren Modulen (VS1053, > 10 Euro) raus. Aber der JQ6500 muss doch auch diese Decoder integriert haben? Mein Ziel ist, einen Webradioplayer mit Aufnahme und so zumindest mal zu entwerfen, vielleicht auch zu basteln. Dort soll ein ESP8266 (Wemos D1 Mini) statt Arduino zum Einsatz kommen. Hier gab es in anderen Zusammenhängen mal den Tip, statt Zusammenstellung verschiedener Standardcontroller einen passenden Gesamtcontroller zu nutzen. Aber mit WiFi und mp3 wird das wohl eher auf was "professionelles" hinauslaufen, was Preis, Programmierumgebung und zum Programmieren nötige Hardware angeht. Ich finde zwar Bitschubsen auch mal spannend, aber den Luxus, in Watte gepackt die Arduino-IDE- .ino wie ein "Scriptkiddie" zu bedienen, möchte ich bei so einem Projekt nicht missen. Es soll nicht audiophil sein, muss keine besondere Klangqualität haben. Kennt denn einer von euch einen Trick, dem JQ6500 doch noch (direkt zugespielte) Töne zu entlocken? Oder einen Chip in ähnlicher Preisklasse? Ich bin für jeden Hinweis (oder Kritik am Beitrag) dankbar! Liebe Grüße Marco
Ich habe mich die letzten Wochen auch ein wenig mit dem JQ6500 befaßt. Allerdings will ich ihn mit dem internen Flash-Speicher als Jingle-Generator bzw. Türklingel verwenden und dafür ist er perfekt. Du hast richtig erkannt, daß er (zumindest soweit dokumentiert) nicht für MP3-Streaming vorgesehen ist, sondern nur zum Abspielen von MP3-Dateien, die auf SPI-Flash, SD-Karte oder USB-Stick liegen. Evtl. könnte es klappen, mit dem Contoller, der die Streaming-Daten anliefert, ein SPI-Flash zu emulieren und darüber die Daten dem JQ6500 zu übergeben, die Frage ist nur, ob sich der Aufwand lohnt. Übrigens habe ich das Format des (Pseudo-)Dateisystems analysiert, in dem der JQ6500 seine MP3-Daten auf dem SPI-Flash haben will und ein Linux-Programm geschrieben, um die Dateien via USB in diesem Format zu flashen, so daß man die mitgelieferte Windows-Krücke nicht mehr braucht.
R. M. schrieb: > Evtl. > könnte es klappen, mit dem Contoller, der die Streaming-Daten anliefert, > ein SPI-Flash zu emulieren Da bräuchte man schon einen FPGA. Mit normalen µC SPI Slave keine Chance da zu langsam.
Danke für die Infos! Ein Linux-Zugang wäre schon toll, ich finde über USB da nur die "CD" auf dem ISO9660. Zum mp3-Dekodieren werde ich wohl absurderweise eine GPGPU nehmen (stm32F10), da das komplette Board nur einen Bruchteil einer VS1053 kostet. Leider hat gerade dieses STM32 keinen DAC, sonst wäre es noch bequemer. Mein Kollege hat schon die Vermutung geäußert, dass es aus mp3- Lizenzgründen billiger ist, einen "gekapselten" mp3-Chip statt eines offenen Streaming-Chips zu verkaufen. Es ist ja so weit ich sehen konnte nicht nur der JQ6500, sondern alles preislich unterhalb des VS1053, was so verschlossen ist.
Hallo, ich habe mir den Spaß mal gemacht, ein VS1003-Board (findet man für ca. 12€ in Deutschland) und einen ESP8266 zusammenzusperren. Läuft hier lokal als Streamplayer für einen eigenen ICEcast-Stream von einem RasPi. Prinzipiell stabil, real nur nutzbar mit ungestörtem WLAN, der verfügbare Ram des ESP ergibt eigentlich zu wenig Puffer. Eine Version mit dem STA013 liegt auch noch rum, den hatte ich von früher noch rumliegen. Die MP3-Decoder-ICs sind einfach am Aussterben weil das heute eben ein billiger ARM-Core nebenbai in Software erledigt. In Software auf dem ESP8266 ist es auch gemacht worden, ist aber auch praktisch kaum nutzbar. Gruß aus Berlin Michael
Marco G. schrieb: > Ein Linux-Zugang wäre schon toll, ich finde über > USB da nur die "CD" auf dem ISO9660. Die emulierte CD, die der Chip über USB präsentiert umfaßt nicht nur das ISO-Image, sondern den komplettem Flash-Speicher und das sogar mehrfach hintereinander. Wenn man das roh einliest, anstatt die CD zu mounten, kann man hinter dem ISO weiterlesen und bekommt dann die MP3-Daten zu sehen. Einen kompletten Dump der 2MB Flash kann man z.B. so machen:
1 | dd if=/dev/sr1 of=JQ6500.dump bs=1024 count=2048 |
Darin sind die ersten 256kiB für das ISO-Image reserviert (davon werden im Auslieferungszustand ca. 170kiB benutzt) und ab Offset 0x40000 beginnt das "MP3-Dateisystem". Das besteht abgesehen von den eigentlichen Daten aus 32Bit Integern mit folgender Funktion: 0x40000: - Anzahl der Subdirectories - Offset1 - Offset2 - ... Offset1: - Anzahl der Einträge in diesem Dir - Offset von Datei1 - Länge von Datei1 - ... Offset2: ... Dabei kann man die Metadaten zuerst und dann alle Nutzdaten platzieren oder man platziert die Nutdaten des ersten Verzeichnisses direkt hinter diesem und dahinter dann die Metadaten des zweiten und so weiter. Diese Struktur kann man leider nicht direkt auf das Device (z.B. /dev/sr1) schreiben, denn als emulierte CD ist das nicht beschreibbar. Durch Sniffen des USB-Datenverkehrs des Windows-Programms habe ich aber herausgefunden, daß es drei proprietäre SCSI-Kommandos gibt, mit denen man den Flash blockweise löschen und mit wahlfreiem Zugriff schreiben und zurücklesen kann. Es wird mit dem SCSI-Generic Device aufgerufen, das der Kernel der virtuellen CD zugeordnet hat (z.B. /dev/sg3) und einer oder mehreren MP3-Dateien, die es dann hochlädt, falls genug Platz da ist. Ich will nochmal drüberschauen, bevor ich das Tool hier zur Verfügung stelle und kann noch nicht versprechen, daß das heute noch klappt. Das will ich künftig noch einbauen: 1. Die Möglichkeit ein ISO-Image anzugeben, das dann in die ersten 256kiB geflasht wird. Auf die Weise kann das Modul so verändert werden, daß es auf der CD (auch oder ausschließlich) das Linux-Tool mitbringt. 2. Nachdem sich der Flash-Inhalt im dd-Dump immer wieder wiederholt, wenn man das nicht künstlich beschränkt, müßte es eigentlich auch möglich sein, den kompletten Specher für MP3s zu nutzen, indem man am Ende angekommen einfach vorne weiter macht, aber natürlich nicht über die 256kiB-Grenze hinaus. In dem Fall würde ein PC natürlich dann kein gültiges ISO-Dateisystem mehr erkennen. 3. Evtl. wäre es sogar möglich, ein hybrides ISO-Image zu bauen, das über den ganze Flash-Speicher geht und die MP3s damit auch für den PC abspielbar macht. Dazu müßte man es schaffen, innerhalb des ISO bei Offset 0x40000 eine hinreichend große Datei zu platzieren, in die nachträglich die Struktur des Primitiv-Dateisystems hineingepatcht wird, mit den Offsets und Längen, die die MP3s im ISO bekommen haben. Noch eine Sache, die mir aufgefallen ist: An einigen USB-Hostcontrollen wird der Chip nicht komplett initialisiert und kann in der Folge dann auch nicht geflasht werden. Ich konnte das durch Zwischenschalten eines USB-Hubs (unpowered) lösen. Ich vermute, daß das Device hart am Rand der USB-Spezifikation implementiert ist und deshalb nicht jeder Host-Controller damit zurecht kommt.
der vs1053 kostet aus china 6,25€. Mit Glück ca. 3Wochen. Durch die bessere Dokumentation lohnen sich die 3€ Mehrkosten allemal.
grundschüler schrieb: > der vs1053 kostet aus china 6,25€. Mit Glück ca. 3Wochen. Durch die > bessere Dokumentation lohnen sich die 3€ Mehrkosten allemal. Für den Einsatzzweck des TO gebe ich Dir recht: Wenn man gestreamtes MP3 von einem eh vorhandenen Controller abspielen will, ist man mit dem VS1053 besser bedient. Für meinen Fall, wo es darum geht, mehrere gespeicherte Sounds auf Knopfdruck jeweils einmal abzuspielen, ist der JQ6500 aber besser geeignet, weil der das für bis zu 5 Sounds ohne externen Controller kann und für 2,50€ auch gleich noch 2MB Flash und einen NF-Verstärker mitbringt, so daß man nur noch Stromversorgung, Taster und einen Lautsprecher anschließen muß.
Hi, und kannst du das Tool mittlerweile bereitstellen? Ansonsten würde ich mich auch ranmachen ein Tool dafür zu programmieren da die Windows Software ja mega undurchsichtig ist. Gruß Michael
Michael S schrieb: > und kannst du das Tool mittlerweile bereitstellen? Ja, schau mal hier: http://chiselapp.com/user/rmax/repository/jq6500/home Punkt 1 meiner Wishlist von oben habe ich inzwischen auch noch eingebaut und meine Annahme von Punkt 2 hat sich bestätigt. Punkt 3 und etwas mehr Dokumentation stehen noch aus. Für ein eigenes ISO-Image sollte mkisofs übrigens mit -no-pad aufgerufen werden, sonst wird das Image zu groß.
:
Bearbeitet durch User
Na das ist doch super. Eventuell kann ich bei den fehlenden Features noch aushelfen. Gruß Michael
Jetzt auch mit automatischer Suche nach dem richtigen SG-Device, damit man das nicht mehr raten oder es händisch aus den Kernel-Meldungen heraussuchen muß.
Das mit dem hybriden ISO-Image, in dem auch die MP3-Dateien auftauchen habe ich jetzt auch hinbekommen, allerdings bisher nur halb geskriptet, halb händisch. Ob und wie ich das noch in das Tool einbaue, muß ich mal schauen. Eigentlich ist es ja nur eine Spielerei und treibt die Upload-Zeiten unnötig in die Höhe, weil man die ersten 256kiB jedes Mal mitschreiben muß. Außerdem geht durch die Blockgröße von 2kiB etwas mehr Platz verloren als wenn man die MP3s hinter dem ISO direkt aneinanderkleben kann.
:
Bearbeitet durch User
Michael S schrieb: > Eventuell kann ich bei den fehlenden Features noch aushelfen. Tja, wie ich gerade sehe, hast Du stattdessen das Projekt stillschweigend geforkt und dabei mal eben noch die Lizenz geändert. Schade, und genau genommen ein Verstoß gegen meine Lizenz, denn da heißt es:"As long as you retain this notice [...]", und genau das hast Du gelöscht.
:
Bearbeitet durch User
Habe zwei Module. Bei beiden taucht ein CD-Laufwerk auf. Auf das kann ich jedoch nicht zugreifen, es wäre angeblich beschädigt. So die Windows 7 Meldung. Was mache ich falsch? Gibt es das Flashtool auch so zum Download? Danke Uli
Das könnte das USB-Problem sein, das ich auch auf verschiedenen Boards unter Linux beobachtet habe. Versuch mal, das Modul über einen USB-Hub anzuschließen.
Sorry ich verwende kein Linux, sondern Windows. Auch auf meinem MacBook wird es als defekt gezeigt. Kannst Du mir den Inhalt der CD geben Danke Uli
Uli M. schrieb: > Sorry ich verwende kein Linux, sondern Windows. Das hatte ich schon verstanden, ich gehe aber davon aus, daß es sich um ein Hardwareproblem handelt, das vom Betriebssystem unabhängig ist. Die Module scheinen an manchen Host-Controllern einfach nicht richtig zu funktionieren. Ich vermute, sie implementieren den USB-Standard so schlampig, daß manche Controller damit nicht klarkommen. Die These, daß es am Host-Controller und nicht am OS liegt, konnte ich bisher aber nicht überprüfen, weil auf meinen betroffenen Rechnern nur Linux installiert ist. Warum versuchst Du es nicht einfach mal mit einem Hub? Das schlimmste, was passieren kann ist, daß es damit auch nicht geht. ;) Falls es bei Dir mit Hub funktioniert, würde mich interessieren, welche Chipsätze in den betroffenen Rechnern verbaut sind. > Kannst Du mir den Inhalt der CD geben Ich hänge das ISO hier mal an. Wenn meine Annahme stimmt und es wirklich ein USB-Problem ist, wird Dir das aber auch nicht helfen.
:
Bearbeitet durch User
Weder an meinem MacBook noch an meinem windows Laptop hat es mit dem ersten Hub nicht funktioniert. Werde mal noch bei mir im Geschäft versuchen
Für Hubs mag natürlich das gleiche gelten wie für Host-Controller, daß manche mit der als grenzwertig angenommenen USB-Implementierung des JQ6500 zurecht kommen und andere nicht. Oder meine komplette Theorie ist Mist und es liegt an was ganz anderem. ;) Ach, noch was: man kann den JQ6500 nach dem Anstecken nur so lange per USB ansprechen wie er noch nichts abgespielt hat. Beim ersten "Play" meldet er sich vom Bus ab und taucht erst wieder auf, wenn man ihn ab, und wieder ansteckt. Deshalb sollte er, wenn man ihn zum Flashen an den Rechner steckt, auch nur über USB versorgt werden, damit er nicht aus versehen schon beim Anstecken im "USB interessiert mich nicht"-Modus ist.
So gerade eben auf einem neuen Windows 10 Rechner versucht, ohne Erfolg. Das sind Müll-Teile. Sollen die Chinesen damit glücklich werden. Da gibt es dann JQ6500 süß-sauer. danke nochmal für deine Hilfe
Blöde Frage, aber hast Du das Kabel als Fehlerquelle ausgeschlossen? Ich hatte erst neulich wieder einen Fall, an dem USB-Probleme am Kabel lagen.
Habe mir auch ( blöderweise gleich 10 ) von den Dingern bestellt und das gleiche Problem ( unter Windows ). Mehrere Rechner, mehrere Kabel und auch das mit dem HUB habe ich probiert, aber bisher verliefen alle Versuche negativ. Unter dem für das CD-Laufwerk erzeugten Buchstaben lassen sie sich einfach nicht aufrufen und es kommt nur immer die bekannte Fehlermeldung. Ich kann mir nicht vorstellen, dass es nicht doch eine Lösung gibt oder bleibt nur die Mülltonne?
Klaus344 schrieb: > Ich kann mir nicht vorstellen, dass es nicht doch eine Lösung gibt oder > bleibt nur die Mülltonne? Falls Du die Dinger noch hast, kann ich Dir anbieten, mal eines davon (gerne auch alle) bei mir zu testen, wenn Du es mir zuschickst. Ich habe ja mehrere Hosts, an denen meine drei Exemplare direkt funktionieren und mindestens einen Hub, der sie an den Hosts zum laufen bringt, an denen sie bei direktem Anschluß streiken. Mit einem Raspberry Pi 3 und meinem Linux-Tool soll es angeblich auch funktionieren, selber ausprobiert habe ich es mangels RasPi aber noch nicht. https://askubuntu.com/questions/931173/terminal-do-not-list-jq6500-chip-ubuntu-16-04-2-lts-but-okay-with-ubuntu-mat Vielleicht wäre das ja noch eine Option für Dich.
:
Bearbeitet durch User
Wie ich inzwischen erfahren habe, werden die Module wohl teilweise auch mit leerem Flash ausgeliefert, d.H. das normalerweise enthaltene CD-Image mit dem Windows-Tool fehlt. Das würde die Probleme von Uli und Klaus erklären, die trotz verschiedener Rechner und zwischengeschalteter Hubs keinen Erfolg hatten. Solche Module können mit dem Linux-Tool natürlich trotzdem bespielt werden bzw. kann das Linux-Tool dazu verwendet werden, das CD-Image eines intakten Moduls auf ein leeres zu flashen, dann funktioniert es auch wieder mit Windows.
:
Bearbeitet durch User
Habe ich das richtig verstanden, dass wenn das "JQ6500-original.iso" auf das Modul geschrieben wird, das JQ6500 mit dem "Music Update tool" dann unter Windows mit Audio-Dateien geflasht werden kann? Wenn ja,mit welchen Argument-Angaben beim Linux-Tools "JQ6500" kann das "JQ6500-original.iso " auf das Modul geflasht werden? weitere Frage: Mit welchen Argument-Angaben beim Linux-Tools "JQ6500" können die bestehenden Audio-Files des Moduls gelöscht werden? Vielen Dank Klausi
Klausi schrieb: > Habe ich das richtig verstanden, dass wenn das "JQ6500-original.iso" > auf das Modul geschrieben wird, das JQ6500 mit dem "Music Update tool" > dann unter Windows mit Audio-Dateien geflasht werden kann? Genau, vorausgesetzt der Grund für die bisherige Nicht-Funktion unter Windows war ein leerer Flash und nicht das weiter oben beschriebene USB-Problem. > Wenn ja,mit welchen Argument-Angaben beim Linux-Tools "JQ6500" kann das > "JQ6500-original.iso " auf das Modul geflasht werden? $ jq6500 -r -o 0 JQ6500-original.iso Der Schalter -r wählt den Raw-Mode, angebenene Datei wird also 1:1 geschrieben, ohne das Pseudo-Filesystem, das nötig ist, um MP3s zu schreiben. Die Option -o 0 sagt dem Tool, dass es den Flash nicht ab Adresse 0x40000 beschreiben soll, wo die MP3s anfangen, sondern ab Adresse 0, wo das ISO-Image liegt. > weitere Frage: Mit welchen Argument-Angaben beim Linux-Tools "JQ6500" > können die bestehenden Audio-Files des Moduls gelöscht werden? Eine reine Löschfunktion hat das Tool bisher nicht, sollte ich vielleicht mal noch einbauen. Das Schreiben neuer Files löscht aber immer die bestehenden, bzw. macht die Reste für den Normalbetrieb unerreichbar, falls die alten Daten größer waren als die neuen. Falls Du die Daten(-Reste) aber so aus dem Flash löschen willst, dass sie auch per USB nicht mehr auslesbar sind, ohne sie gleich mit neuen MP3s zu überschreiben, erzeugst Du am besten eine entsprechend große (2MB-256kB = 1792kB) Datei aus Nullbytes und überschreibst damit im Raw-Mode den Flash ab 0x40000. $ dd if=/dev/zero of=nullfile bs=1024 count=1792 $ jq6500 -r nullfile
Es gibt seit kurzem ein kleines Rescue-Linux, mit dem man menügeführt das fehlende ISO-Image auf ein JQ6500-Modul flashen kann, das mit leerem Flash geliefert wurde oder wenn man das Image versehentlich überschrieben hat: https://github.com/NikolaiRadke/JQ6500-rescue-tool Damit läßt sich so ein Modul dann auch wieder unter Windows befüllen.
:
Bearbeitet durch User
Hallo, ich habe inzwischen mal etwas mit dem ESP32 rumgespielt. MP3/FLAC/Amiga-Mod/GM klappen von SD bzw. SPIFFS, Ausgabe auf einen I2S-DAC oder mit den internen DACs. WLAN-Streaming MP3 klappt incl. Webserver und LCD-Display für die Anzeige der TAGs. Alles noch etwas experimetell, läuft aber stabil durch auch in meinem hier sehr ausgelasteten WLAN reicht bei MP3 der Buffer bisher aus. https://github.com/earlephilhower/ESP8266Audio als Spielwiese. Mein Bekannter hat auch FLAC von SD-karte in 24Bit/192kHz mit I2S-DAC stabil abgespielt. :) Gruß aus Berlin Michael
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.