Hallo zusammen, Ich möchte meine Arbeit am Reverse-Engineering des Vistron VDR400 DAB-Bausatzes vorstellen und zur Mitarbeit anregen. Leider wird der Bausatz (https://vistron.eu/de/dabradio-bausaetze) ohne weitere Dokumentation zur HW und SW angeboten. Lediglich die Binär-SW ist auf der Herstellerseite vefügbar. Mich hat insbesondere die SW-Implementierung interessiert und daraus ist folgendes Github-Projekt entstanden: https://github.com/Spitzbube/vistron_vdr_400. Aber darüberhinaus verfügt der Bausatz auch über in der Original-SW noch nicht ausgeschöpfte HW-Komponenten, bei deren Analyse ich Hilfe gebrauchen könnte: - USB Port (speziell die VBus-Detection) - der serielle Port (RS232 an J4) - der IR-Empänger - digitale Audio-Signale (I2S?) - einfacheres Display-Interface und Nutzung der freiwerdenden GPIOs/Ports. Schon mal im Voraus vielen Dank für Eure Ideen, Thomas
Geiles Teil! Dann noch programmiert unter Windows, GNU mingw, zumindest der flasher. Mich hat mal auf die Schnelle die beiden Updates interessiert. Beide haben gleiche Dateilängen! Ob beim Update nur Konstanten verändert wurden? Oder bei beiden sich um eins handelt, also ne Kopie vorliegt? Zumal ja auch die Daten der Dateien identisch sind? Ich werd heut Abend mal ein Diff machen, interessant ist's schon. Wozu brauchst Du extra Gpio's? Ich würd die Grafik so lassen, wie sie ist. Mit welchem Disassembler hast Du deine Asm - Dateien erstellt? mfg
Welcher DAB Chip ist es denn, wenn ich das auf dem Bild richtig erkenne ein Si4684? Für die DAB Chips von Skyworks gibt es ja diverse Projekte, damit sollte sich mit überschaubaren Aufwand eine eigene Lösung entwickeln lassen.
Lotta . schrieb: > Wozu brauchst Du extra Gpio's? > Ich würd die Grafik so lassen, wie sie ist. Ich möchte gern ein SPI-Display zum Laufen bekommen, um einen Performance-Vergleich zu dem 16-Bit Display zu bekommen. Frei werdende GPIOs lassen sich immer gut nutzen für weitere Tasten... > Mit welchem Disassembler hast Du deine Asm - Dateien erstellt? Mit diesem hier: https://www.hopperapp.com/. Ich weiss, es gibt bekanntere Tools :) Aber ich mache die Konvertierung ASM -> C sowieso per Hand. Deshalb brauchte ich bisher nur Unterstützung zur Erzeugung von ASM aus den Bin-Files.
Dieter schrieb: > Welcher DAB Chip ist es denn, wenn ich das auf dem Bild richtig erkenne > ein Si4684? Ja, der ist es. Und um es gleich vorweg zu nehmen: Die FW befindet sich in einem SPI-Flash, angeschlossen am SI4684. Daher brauchte ich mich nicht auch noch darum zu kümmern :) Die STM32 SW muss nur das Host-Load anstossen. > Für die DAB Chips von Skyworks gibt es ja diverse Projekte, damit sollte > sich mit überschaubaren Aufwand eine eigene Lösung entwickeln lassen. Ja, habe ich mir in den vergangenen Monaten angeschaut. Hat mir auch sehr bei dem Verständnis der STM32-Funktionen zur Steuerung des SI4684 geholfen. Im Moment prüfe ich folgenden Möglichkeiten: - FreeRTOS als Ersatz für die Main-Loop der Original-FW - Zephyr-Unterstützung (vgl. https://docs.zephyrproject.org/latest/boards/arm/nucleo_f103rb/doc/index.html) für das VDR400 Board - Yocto Build von FreeRTOS/Zephyr mit Layer/Recipe für den SI4684
Thomas S. schrieb: > > Ja, der ist es. Und um es gleich vorweg zu nehmen: Die FW befindet sich > in einem SPI-Flash, angeschlossen am SI4684. Daher brauchte ich mich > nicht auch noch darum zu kümmern :) Das ist doch eigenlich der interessante Teil ;-) Ich werde mal sehen dass ich an die Firmware im SPI-Flash komme. Was anderes: Weisst Du wo man eine zur Platine passende Koax Antennenbuchse bekommt? Ich hätte erwartet dass eine dabei ist, aber die gehen wohl davon aus dass man nur eine Wurfantenne anlötet.
Dieter schrieb: > Das ist doch eigenlich der interessante Teil ;-) Ich werde mal sehen > dass ich an die Firmware im SPI-Flash komme. Die habe ich schon ausgelesen und die enstprechenden Bin-Files gesichert. Übrigens enthält der Flash überraschenderweise nicht nur die Si46xx DAB/FM-Firmware. Ein Teil davon ist auch die FW für einen DVB-C/S Receiver Chip (MB86H61), der von der Fa. Lasat entwickelt wurde, z.B. Vistron VT855. Hat rein garnichts mit dem VDR400 zu tun :) Aber ist schon interessant, wie so was verbreitet wird. > Was anderes: Weisst Du wo man eine zur Platine passende Koax > Antennenbuchse bekommt? Ich hätte erwartet dass eine dabei ist, aber die > gehen wohl davon aus dass man nur eine Wurfantenne anlötet. Bei mir war die Antennenbuchse dabei.
Als Hinweis vielleicht interessant: Wenn man aktuell bei LaSAT (der Technikfreaks Shop) bestellt bekommt man das Board mit Rev 1.4. Anstelle des STM32F103 ist ein GD32F103 verbaut. Bei Pollin gibt es wohl auch einen Komplettbausatz.
Hallo! Normalerweise lasse ich niemals Spitzbuben hängen aber leider hat mich Madame Corona hart in Griff. :-O :-(( Jetzt, da ich wenigstens wieder eingeschränkt aufstehen darf, war natürich mein erster Blick in ein kleines, unscheinbares Forum namens Mikrokontroller.net! (das mit "meinem" edi) ;-) Ich habe von den Beiden Versionen der Firmware mal durch mein Proggy "bayond compare" gejagt. Absolut interessant! Die haben wirklich ihr ganzes Interruptsystem von umgestellt, vorn in der Interrupttabelle und auch viele der dann angesprungenen Routinen! Auch wurden im großen Umfang Konstanten verändert, ohne die Programmgröße zu verändern, was das Auseinanderheddern im Assemblercode erleichtern könnte. Leider kann "Bayond compare" die Bildschirmübersicht nicht exportieren so daß ich hier nichts vorführen kann. :-(( Wenn Du also wirklich ne Übersicht im Radio finden willst, solltest Du die Datenblätter aller programmierbaren Chips des Boards beschaffen, das wir an deren Port-Adressen kommen. Und ein Simulant muß her, die beste Simulant der Szene, nämlich die IAR Workbench für Arm. mfg
Ich habe mich die vergangenen Tage etwas mit einem "Parallel-Projekt" beschäftigt: https://github.com/Spitzbube/stm32f429i-disc1-ugreen-dab. Das UGreen DAB Board war von den Entwicklern ursprünglich für den Anschluss an Raspberries gedacht. Aber es ist natürlich auch sehr leicht an STM32'er adaptierbar. Das einzige Problem ist, dass mein Board noch keinen SPI Flash für die Si4684-FW hat. Deshalb musste ich mir ein STM32-Board suchen, was mind. 1,5 MB Flash hat (2 x ~500KB für DAB und FM, der Rest für die STM32 FW). Zufälligerweise hatte ich gerade ein stm32f429i-disc1 hier rumliegen :) Das stm32f429i-disc1 verwendet zwar auch ein ILI9341-Display, allerdings im RGB Mode. Deshalb musste ich mich erstmal in die LTDC-Programmierung einarbeiten. Interessanterweise bin ich bei der Suche nach dem STM-Framework für die ILI9341-Ansteuerung nun endlich auch auf die offensichtlich beim VDR400 verwendeten Sourcen gestossen. Das hilft mir wiederrum nun sehr bei dem Verständnis der Original-FW. Grüße, Thomas
Die Firmware-Dateien "output_img.bin" aus den ZIP Dateien "Vistron_VDR400_DAB-BS_3V3-4-4-0.zip" bzw. "Vistron_VDR400_DAB-BS_3V3-3-4-0.zip" sind alte Versionen (3.4.4.0 und 3.3). Die Dateien "output_img.bin" sind ausserdem nur für den "alten Bootloader" (wo immer auch der verwendet wurde). Die Dateien "DAB_Radio_4_0.bin" sind die Version 4.0 und in beiden ZIP Dateien identisch, "DAB_Radio_4_0.bin" wird beim "neuen Bootloader" verwendet. Abgesehen davon: das aktuelle Board von LaSAT (der Technikfreaks Shop) enthält die Version 4.2, ausserdem funktioniert die Update Software (hid-flash.exe) aus den ZIP Dateien nicht mehr (es wird eine andere USB VID/PID verwendet). Eine Update Tool bzw. Updates für das aktuelle Board habe ich noch nicht gefunden.
Ich hatte sofort den SWD-Anschluss des Boards in Bertrieb genommen, um SW draufladen oder Debuggen zu können. Dabei habe ich bemerkt, dass die Option-Bytes des STM gesetzt sind, die ein Auslesen des Flashs (sowohl des Bootloaders als auch der V4.2) verhindern. Die Option-Bytes konnte ich zurücksetzen, aber das führte zum kompletten Löschen des Flashs. Damit gibt es prinzipiell keine Möglichkeit, an die V4.2 zu kommen. Und offensichtlich bietet der Bootloader auch keinen Weg, eigene SW draufzuladen. Die SWD-Schnittstelle ist somit der einzige Zugang zum Board.
Thomas S. schrieb: > Ja, der ist es. Und um es gleich vorweg zu nehmen: Die FW befindet sich > in einem SPI-Flash, angeschlossen am SI4684. Daher brauchte ich mich > nicht auch noch darum zu kümmern :) Die STM32 SW muss nur das Host-Load > anstossen. Hilft dir das wirklich weiter? Das die FW in einem SPI Flash ist, ist das gleiche wie bei den Frontier Modulen wie z.B. dem Verona 2. Die Firmware ist immer Kundenspezifisch, da gibt es zig verschiedene Versionen. Selbst bei der Schnittstelle ist alles möglich, von ganz einfach mit Tasten per Spannungsteiler auf die ADCs und Display per I2C Bus, oder einfach nur per UART. Module mit dem Kino 4 Pro Chip können auch Grafik Displays ansteuern. Bei den Skyworks Chips gibt es zum Glück eine Dokumentation. Das ist genau das was ich bei den Frontier Modulen nicht gefunden habe. Vorteil der Module, man kann so ein DAB+ Radio auch auf Lochraster aufbauen.
Thomas S. schrieb: > Die Option-Bytes konnte ich zurücksetzen, aber das führte zum kompletten Löschen des Flashs. So ist es dokumentiert, dabei wird ein Mass-Erase ausgelöst. > Damit gibt es prinzipiell keine Möglichkeit, an die V4.2 zu kommen. Nicht zwingend. Ältere GD32F103 haben eine Lücke bei der Readout Protection (siehe das Paper von Johannes Obermaier). Allerdings klappt das bei mir nicht, entweder weil ich noch etwas falsch mache oder der verbaute Chip die Fehler behoben hat. Leider finde ich keine Errata zum GD32F103 mit denen man das prüfen könnte.
Thomas S. schrieb: > Ich möchte meine Arbeit am Reverse-Engineering des Vistron VDR400 > DAB-Bausatzes vorstellen und zur Mitarbeit anregen. Der Bausatz ist sicher interessant, aber es gibt schon gewisse Dinge die schon vorgegeben sind. Eine Alternative wäre auf der Seite zu finden. https://www.dabshield.com/ https://www.dabshield.com/circuit Wenn es ein fertiges Modul geben würde, wo der SI4684 drauf ist wäre noch besser. So wie es aussieht sind nur wenige Leitungen zum Host erforderlich. SPI Bis + Reset.
Thomas S. schrieb: > Aber darüberhinaus verfügt der Bausatz auch über in der Original-SW noch > nicht ausgeschöpfte HW-Komponenten, bei deren Analyse ich Hilfe > gebrauchen könnte: > - USB Port (speziell die VBus-Detection) > - der IR-Empfänger Ich habe nun für diese beiden HW-Komponenten die entsprechenden GPIOs herausgefunden. PA10: USB VBus PD3: IR Rx Für den IR-Empfänger bin ich dabei, eine meiner beiden Fernbedienungen aus der Bastelkiste mit dem NEC-Protokoll zum Laufen zu bekommen. Oder wäre es sinnvoller, die Implementierung an die Vistron-FB für den Youtune1 (RC5-Protokoll) (https://www.technikfreaks.shop/vistron-fernbedieung-vt855-vdr100-rc0896-v68b_1)? Die Original-FW hat jedenfalls keine Anzeichen für ein FB-Protokoll. Grüße, Thomas
Thomas S. schrieb: > Leider wird der Bausatz (https://vistron.eu/de/dabradio-bausaetze) ohne > weitere Dokumentation zur HW und SW angeboten. Lediglich die Binär-SW > ist auf der Herstellerseite vefügbar. Den Bausatz habe ich bei Pollin gesehen. Mal echt jetzt für 78 Euro bekomme ich ein Teil das schon sehr eingeschränkt ist. Der Preis kommt auch dadurch zustande, dass im Bausatz Teile drin sind die ich nicht brauche. Lautsprecher, Netzteil. Mir wäre ein Teil lieber das auch keinen NF Verstärker hat, also nur ein Empfangsteil Tuner. Verstärker habe ich. Wenn man das Board nimmt: Link von weiter oben, https://ugreen.eu/product/ugreen-dab-board/ oder https://www.dabshield.com/circuit dann hat man doch mehr Möglichkeiten. Ist jetzt nur mal meine Meinung dazu, warum ein Reverse Engineering betreiben und keine Entwicklung auf Basis der Teile wie in den Links beschrieben.
Max Linner schrieb: > Ist jetzt nur mal meine Meinung dazu, warum ein Reverse Engineering > betreiben und keine Entwicklung auf Basis der Teile wie in den Links > beschrieben. Ja dann mach doch einfach.
Thomas S. schrieb: > > Ich habe nun für diese beiden HW-Komponenten die entsprechenden GPIOs > herausgefunden. > > PA10: USB VBus > PD3: IR Rx Hast Du die beiden schon für den Verstärker?
1 | PC3 PAM8019 - mute |
2 | PA1 PAM8019 - shutdown |
Dieter schrieb: > Hast Du die beiden schon für den Verstärker? >
1 | > PC3 PAM8019 - mute |
2 | > PA1 PAM8019 - shutdown |
3 | > |
Hatte ich noch nicht, Danke!
Max Linner schrieb: > Den Bausatz habe ich bei Pollin gesehen. > Mal echt jetzt für 78 Euro bekomme ich ein Teil das schon sehr > eingeschränkt ist. Der Preis kommt auch dadurch zustande, dass im > Bausatz Teile drin sind die ich nicht brauche. Lautsprecher, Netzteil. Es gibt auch das Base-Board auch einzeln: https://www.technikfreaks.shop/DAB-Empfaenger-Mainboard > https://ugreen.eu/product/ugreen-dab-board/ Versuche ich gerade mit einem STM32F429 zum Laufen zu bekommen. > oder > https://www.dabshield.com/circuit Hatte ich schon gesucht, ist aber z.B. hier https://www.ebay.de/itm/302516551661 auch nicht gerade günstig. > Ist jetzt nur mal meine Meinung dazu, warum ein Reverse Engineering > betreiben und keine Entwicklung auf Basis der Teile wie in den Links > beschrieben. Für die beiden genannten Boards gibts ja schon ne Menge Entwicklung in der Community, aber eben für das VDR400 nicht. Thomas
Felix Neumüller schrieb: > Hilft dir das wirklich weiter? > Das die FW in einem SPI Flash ist, ist das gleiche wie bei den Frontier > Modulen wie z.B. dem Verona 2. > Die Firmware ist immer Kundenspezifisch, da gibt es zig verschiedene > Versionen Nein sind sie nicht. Es gibt separate Firmware für DAB, FM, (MW), die sind sogar identisch für alle Chips aus der Baurreihe. Die werden über Kommandos gesteuert. Der Si468x verfügt gar nicht über genug Peripherie bzw I/O Pins um irgendwas Kundenspezifisches anzusteuern wie ein Frontier Modul. Das ist ein reiner Receiver Chip. Wenn jemand Doku für die Firmware (oder die Firmware) braucht, einfach per PM melden. Ansonsten, einen DAB Shield für Arduino & Co. mit Si468x hätte ich hier noch rumkullern, wenn jemand Bedarf hat: https://gitlab.com/amesser-group/electronic-devices/radio-shield Man könnte mal schauen welche Firmwareversionen im Vistron für den Si468x enthalten sind, Evtl sind die Neuer als meine.
Andreas M. schrieb: > > Man könnte mal schauen welche Firmwareversionen im Vistron für den > Si468x enthalten sind, Evtl sind die Neuer als meine. In der aktuellen Hardware von LaSAT (der Technikfreaks Shop): DAB Firmware: 6.0.6 FM Firmware: 5.1.2 Die Abfrage erfolgt mit GET_FUNC_INFO vom Si4684.
Andreas M. schrieb: > > Wenn jemand Doku für die Firmware (oder die Firmware) braucht, einfach > per PM melden. Z.B. hier findet man auch eine (Rev. 1.8): Beitrag "Re: DABPi - FM/DAB Empfänger mit Si4688 für Raspberry Pi"
> Thomas S. schrieb: > Oder wäre es sinnvoller, die Implementierung an die Vistron-FB für den > Youtune1 (RC5-Protokoll) > (https://www.technikfreaks.shop/vistron-fernbedieung-vt855-vdr100-rc0896-v68b_1)? Nach zahlreichen Hinweisen habe ich mich für die Unterstützung dieser Fernbedienung entschieden. Mit dem Commit: https://github.com/Spitzbube/vistron_vdr_400/commit/e11f2963326c93e3d87ab2568d275f3e2815a70f funktioniert als POC zumindest die Bedienung des Main-Screens. Thomas
Ok, dann gab es bei DAB zwischenzeitlich wohl ein Update. Ich habe hier: DAB 6.0.5 FMHD 5.3.3 AMHD 3.0.6 Ich werde mir das dann bei Gelegenheit mal raus extrahieren.
Ein fertiges DAB Radio mit sehr ähnlicher Hardware (Si4684 und GD32F130C8T6) ist der "Roadstar TR-130+" bzw. baugleich "RED OPTICUM Ton 3", siehe hier: https://www.radio-bastler.de/forum/showthread.php?tid=15160&pid=183961 Der GD32 ist nicht gelockt, man kann die Firmware also extrahieren (es gibt einen unbestücken Header für SWD). Der verbaute GD32 hat allerdings deutlich weniger Speicher (64 kByte Flash 8 kByte SRAM) als der STM32/GD32 des VDR400. Für das einfache Display reicht es aber (ca. 16 KByte Flash sind unbelegt).
Als Nachtrag zu den beiden oben erwähnten Geräten "Roadstar TR-130+" bzw. baugleich "RED OPTICUM Ton 3": Die Geräte haben zwar nur einen Mono-Ausgang aber die I2S Pins des Si4684 sind am Modul mit dem Si4684 und GD32F130C8T6 herausgeführt. Und zumindest beim "RED OPTICUM Ton 3" schaltet die Firmware I2S auch ein (16-Bit, 48 kHz). Man kann dort also ohne viel Aufwand das I2S Signal zur weiteren Verwendung abgreifen. Bei dem Vistron VDR400 DAB Bausatz ist nach meinem Kenntnisstand I2S nicht herausgeführt und müßte direkt am Si4684 abgegriffen werden.
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.