Der Chip hat JTAG bzw. SWD Interface:
Für das SWD Interface, könnte ich mal versuchen mit einem STLink eine Verbindung hin zu bekommen.
Ggf. wäre damit ein Memory Dump möglich. Um die Firmware zu analysieren. Die JK Firmwarefiles sind vermutlich komprimiert, diese haben 56KB der Chip hat aber 256KB. Ich habe mal versucht diese anzuschauen. Hab nicht wirklich Ahnung davon 😉
Wer es selbst versuchen möchte: https://github.com/NationalSecurityAgency/ghidra bzw. https://blog.attify.com/analyzing-bare-metal-firmware-binaries-in-ghidra/
Ich werde schauen noch mehr Lack abzubekommen und mal die Komponenten zu identifizieren. Ich glaube nicht, dass das Problem in der SW liegt, sondern eher in der HW. Reine Spekulation, aber z.B. ein korrupter Speicher chrasht das BMS wenn es in den Update Modus geht.
@tsg Ich verfolge Das Thema nur mit einem Auge, aber ist es nicht so, dass man nur in der 15.10 stecken bleibt und nicht in den anderen?
Denn ich konnte von 15.05 auf 15.17 auf 15.24 aktualisieren. In die HW habe ich wohl aus der selben Charge von dem selben Verkäufer Minerals (Februar-März 2024)
Wenn es wirklich nur um die 15.10 dann ist es eher SW Problem.
@tsg Ich verfolge Das Thema nur mit einem Auge, aber ist es nicht so, dass man nur in der 15.10 stecken bleibt und nicht in den anderen?
Denn ich konnte von 15.05 auf 15.17 auf 15.24 aktualisieren. In die HW habe ich wohl aus der selben Charge von dem selben Verkäufer Minerals (Februar-März 2024)
Wenn es wirklich nur um die 15.10 dann ist es eher SW Problem.
Also mein aktuelles Verständnis des Schachverhalts ist dieser:
- Das BMS wird initial mit SW 15.10 ausgeliefert und es kann keine Update/Downgrade durchgeführt werden.
- Ein BMS welches auf SW 15.10 geupdatet werden konnte, kann auch auf anderes Versionen geupdated werden.
- UART 1 kann nicht auf 001- JK Modbus RS485 eingestellt werden
Sollte sich mich da täuschen, bitte melden.
Daher ziehe ich die Schlüsse auf die HW. Ein Controller der in der Fertigung ggf. über JTAG geflasht wird oder anderen dedizieren Programmieradapter, funktioniert auch wunderbar, bis dann der "serielle" Download stattfindet.
Hierzu muss die MCU in einen Modus gehen, welcher das überschreiben des eigenen Flash zulässt. Dafür wird i.d.R. ein Reset seitens der SW ausgelöst um dann im "Programmiermodus" neu zu starten. Hier sehe ich die Ursache für den "Shutdown" des BMS.
Mit dem Knopf "Update" stirbt das BMS und muss über den Taster neu gestartet werden.
Hier noch aus dem Datenblatt - i.d.R. muss in den Bootloader neu gestartet werden. Sprich Bootconfig auf Bootloader - Reset - Bootloader -> Daten über UART (RS485) in Chip schreiben.
Daher wird auch ein RS485 Adapter, welcher live Daten zuverlässig auslösen kann, beim Update keinen unterschied machen. Es sind 2-Leitungen (Serielle / Differenzielle Übertragung), GND ist nicht zwingend Notwendig. Es gibt keine Steuerleitungen wie z.B. bei einem Arduino wo ggf. noch per Steuerleitung ein Reset getriggert wird.
Hier wäre tatsächlich die Frage ob die Kommunikation über RS232 auch möglich ist und ggf. hier ein Update geht. Die Buchse ist vorhanden...
P.S. Scheine noch ein Manual gefunden zu haben: https://www.geehy.com/uploads/tool/APM32F103x4x6x8xB%20User%20Manual%C2%A0V1.3.pdf
Habe es noch nicht im Detail angesehen, daher nur der Verweis zum Bootloader auf das Datenblatt
@tsg ach, ok, danke für die Zusammenfassung, dann hatte ich wohl glück mit meinen BMSen...
Dieser Chip scheint STM32 Clone zu sein, STM32 hat extra Pins für Boot Modus, evtl. reicht einfach diesen auf Boot0=High, Boot1=Low zu legen, BMS neu starten und versuchen den Update über die PC SW zu erzwingen?
Ansonsten hieß es: RS232 ist zwar da, wird aber nicht verwendet, ob HW-technisch angeschlossen weiß ich nicht.
Ja die ARM MCUs also Cortex Mx ist relativ banal gesagt, das selbe. Ob jetzt von ST, NXP, TI oder
Ein direkter Clone scheint es nicht zu sein: https://www.cnx-software.com/2022/07/04/geehy-apm32f103-clone-of-stm32f103-mcu-has-been-tested-to-work-without-pcb-or-code-modifications/
Im Manual wird auch ein bissch besser geschrieben:
Den Bootloader erzwingen wäre sicher eine Möglichkeit... Läuft bei mir aber eher unter akiven / destruktiven Testes, ich würde jetzt erst mal passiv bleiben...
Ansonsten mit jeder Google Suche findet man was neues 😛
https://geehy.com/product/fifth/APM32F103
Hier gibt es auch einen Programmer vom Hersteller.
Bevor man etwas erzwingt auf den Chip schreibt, sollte man erst mal die Fuses checken ob der Chip auf "offen" ist. Wenn da entsprechende Lock Bits / Verschlüsselung aktiv ist. Kann man nicht viel machen...
@eugenius Auch eine Idee...
Können wir mal Sammeln wer alles Betroffen ist. ggf. wie in den Sammelbestellungen mal eine Liste machen:
edit: HW entspricht dem bild auf der Leiterplatte nicht was die App/Software anzeigt
User Lieferant Kaufdatum Typ HW SW Anzahl TSG Minerals 02/2024 JK-PB2A16S-15P V15.0 V15.10 1
man könnte mal auch Andy von OffGridGarage auf das Thema aufmerksam machen, er hat da einen direkten Draht zu JK, die wollen ja auch keine schlechte Publicity...
Ich habe Andy über die letzten Wochen/Monate mehrmals angemailt und bei thematisch passenden Videos Kommentare hinterlassen. Bis auf eine Ausnahme keine Reaktion, einmal kam "Schulterzucken". Es sind aber auch hunderte Kommentare...die kann auch Andy nicht alle lesen.
Wenn ich das Ende seines letzten Videos richtig verstanden habe, folgt als nächstes oder demnächst ein JK-INV-BMS-Problems Video...da fokussiert sich aktuell meine Hoffnung drauf. Denn wie du schreibst: Er hat direkten Kontakt zur JK Firmenleitung und auch Entwicklung.
PS: Glück im Ünglück, bei mir ist es bei einem 15.10-Update-Problemfall geblieben, trotz weiter steigender Anzahl von verbauten JK-INV-BMS.
User Lieferant Kaufdatum Typ HW SW Anzahl TSG Minerals 02/2024 JK-PB2A16S-15P V15A V15.10 1 posthorn Minerals 02/2024 JK-PB2A16S-15P V15A V15.10 1
@posthorn Hast du auch HW 15A oder 15.XA, bisher hatten glaube alle Probleme mit XA
@tsg Ich hatte mir gestern kurz das Datenblatt angeschaut. Mich würde interessieren, ob das Debuginterface auf einen Stecker geführt ist, damit man einfach einen Debugger anschließen kann. Ich habe leider mein BMS im Einsatz und kann es nicht mal kurz zerlegen...
@tsg @eugenius Ich habe mein BMS (genaue Daten suche ich heute Abend raus) auch bereits schon einmal erfolgreich aktualisiert. Das Problem ist also vermutlich nicht die HW selbst, ggf. aber das Zusammenspiel von SW und HW. Leider kannte ich bislang den verwendeten Controller nicht. Mit den Infos von dir schaue ich mir das Thema noch mal an.
Also der Port an der Seite scheint das swd Interface zu sein.
Verbindung bekomme ich weder mit dem STM32 Tool noch mit dem Geehy Prog. Wobei das Geehy Prog einen guten Eindruck macht, hier wird halt der STLink nicht erkannt. Man könnte auch auf USB oder UART umschalten.
Ich habe dann noch ein EEPROM 24C16 gefunden.
Ansonsten kann man bei gutem Licht auch durch den lack das eine oder andre Bauteil identifizieren... Muss mal ein gutes Bild von der Platte machen und anfangen zu beschriefen.
Zum Thema Beschriftung:
Auf der leiterplatte ist einmal das JK Logo darauf mit "V15.0" bei der Induktivität / Ringkern
Und eine Datum/Seriennummer? im Bereich der Positiven Klemme (M6 Lötmuttern) auf der Unterseite. das Könnte ein Datum sein: 13.12.2023 !?
20231213 4698776
User Lieferant Kaufdatum Typ HW SW Anzahl TSG Minerals 02/2024 JK-PB2A16S-15P V15A V15.10 1 posthorn Minerals 02/2024 JK-PB2A16S-15P V15A V15.10 1 axelb Minerals 02/2024 JK-PB2A16S-15P V15.XA V15.10 1