Vistron VDR400 DAB Bausatz - Reverse Engineering

OP #7272972
Lesenswert?

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
Angehängte Dateien:
#7273493
Lesenswert?

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
Gast #7273597
Lesenswert?

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.
OP #7277138
Lesenswert?

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.
OP #7277152
Lesenswert?

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
Gast #7278880
Lesenswert?

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.
OP #7278940
Lesenswert?

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.
Gast #7280163
Lesenswert?

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.
#7281918
Lesenswert?

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
OP #7282018
Lesenswert?

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
Gast #7282029
Lesenswert?

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.
OP #7283887
Lesenswert?

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.
Gast #7284001
Lesenswert?

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.
Gast #7284074
Lesenswert?

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.
Gast #7284224
Lesenswert?

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.
OP #7287239
Lesenswert?

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
Angehängte Dateien:
Gast #7287349
Lesenswert?

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.
OP #7287367
Lesenswert?

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
#7287368
Lesenswert?

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.
Gast #7287384
Lesenswert?

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.
OP #7288104
Lesenswert?

> 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
Gast #7295191
Lesenswert?

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).
Gast #7353214
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren