[EVO,100,R] CAN/ECU Bus Reverse Engineering (Roller + Batterie)
-
- Beiträge: 182
- Registriert: Mi 15. Jun 2022, 02:05
- Roller: MQi GT EVO
- PLZ: 67
- Kontaktdaten:
[EVO,100,R] CAN/ECU Bus Reverse Engineering (Roller + Batterie)
Ich habe mal angefangen zu schauen was das Diagtool mit dem Roller/Batterie redet und zum Glück ist zumindest die Kommunikation mit den Akkus nicht verschlüsselt. Die Daten von den Akkus benötige ich aufjeden Fall, wenn es klappen sollte einen dritten Akku einzubauen.
https://git.0-c.de/Crash_Override/NIU_C ... eryChecker
Einfach: LILYGO T-CAN485 kaufen, Firmware flashen, Akku anschließen, Werte ablesen.
Projekt 2: Roller mit Fremd/Schnellladegerät laden (T-CAN) - https://git.0-c.de/Crash_Override/NIU_CAN_Charger
Einfach: LILYGO T-CAN485 kaufen, Firmware flashen, 12V/CAN anschließen und Akkus laden. Externe/Eigene Ladebuchse erforderlich da Originalstecker 2+7 nicht zu bekommen sind. Empfohlen zudem eigene Leitung mit 4mm2 oder größer zur Buchse legen, damit mit 20Ampere oder mehr geladen werden kann. Dieses Projekt ist nun als Proof of Concept archiviert worden. Alle Informationen sind ins erste Projekt geflossen.
Für 35€ gibts von mir einen vorgeflashten T-CAN im 3D Druckgehäuse und passenden Stecker für den EVO Diagnoseanschluss, somit kein herumlöten am Roller erforderlich.
NIU CAN Battery Checker in Action: https://www.youtube.com/watch?v=Xnd2K1DdEfE
PS: Werde diesen ersten Beitrag um die Informationen die im Thread/Reversing gesammelt werden, stetig ergänzen.
Ich konnte relativ schnell die wichtigsten Daten wie Gesamtspannung, Zellspannungen, Temperaturen, Hardware- und Firmwarestand) indentifizieren.
Projekt 1: Batterie auslesen mit einem T-CAN - Einfach: LILYGO T-CAN485 kaufen, Firmware flashen, Akku anschließen, Werte ablesen.
Projekt 2: Roller mit Fremd/Schnellladegerät laden (T-CAN) - https://git.0-c.de/Crash_Override/NIU_CAN_Charger
Einfach: LILYGO T-CAN485 kaufen, Firmware flashen, 12V/CAN anschließen und Akkus laden. Externe/Eigene Ladebuchse erforderlich da Originalstecker 2+7 nicht zu bekommen sind. Empfohlen zudem eigene Leitung mit 4mm2 oder größer zur Buchse legen, damit mit 20Ampere oder mehr geladen werden kann. Dieses Projekt ist nun als Proof of Concept archiviert worden. Alle Informationen sind ins erste Projekt geflossen.
Für 35€ gibts von mir einen vorgeflashten T-CAN im 3D Druckgehäuse und passenden Stecker für den EVO Diagnoseanschluss, somit kein herumlöten am Roller erforderlich.
NIU CAN Battery Checker in Action: https://www.youtube.com/watch?v=Xnd2K1DdEfE
PS: Werde diesen ersten Beitrag um die Informationen die im Thread/Reversing gesammelt werden, stetig ergänzen.
Zuletzt geändert von zock3r1608 am Sa 8. Mär 2025, 00:23, insgesamt 6-mal geändert.
-
- Beiträge: 2678
- Registriert: Di 11. Dez 2012, 09:12
- Roller: E-Rider Thunder/Masini Extremo / RIP Huari HRTK122
- PLZ: 79
- Tätigkeit: Elektromeister
- Kontaktdaten:
Re: [EVO,100,R] CAN Bus Reverse Engineering (Roller + Batterie)
Habe zwar keinen Can-Bus im Roller bin aber trotzdem daran interessiert wie andere die Can Daten entschlüsseln.
Ich hänge schon etwas länger bei meinem Entschlüsselungsprojekt zum Thema Can-Codes für Delta DPR Netzteile
https://elektroroller-forum.de/viewtopi ... 77&t=41046
Ich hänge schon etwas länger bei meinem Entschlüsselungsprojekt zum Thema Can-Codes für Delta DPR Netzteile
https://elektroroller-forum.de/viewtopi ... 77&t=41046
Zuletzt geändert von dominik am Di 10. Sep 2024, 20:41, insgesamt 2-mal geändert.
Masini Extremo Neuaufbau 2021 7,7kwh Li-NMC Fardriver ND721800 400bA 1400pA >30kW
41-58,5V CC/CV Lader mit 1-4,3kW zu verkaufen 0,65-2,2kg klein, leicht, langlebig, auch im Duo mit 82-117V nutzbar
41-58,5V CC/CV Lader mit 1-4,3kW zu verkaufen 0,65-2,2kg klein, leicht, langlebig, auch im Duo mit 82-117V nutzbar
- Mr.Eight
- Moderator
- Beiträge: 2566
- Registriert: Do 31. Jan 2019, 13:44
- Roller: NIU N-GT
- PLZ: 21465
- Kontaktdaten:
Re: [EVO,100,R] CAN Bus Reverse Engineering (Roller + Batterie)
Respekt für das know how. Spannend. Was auch immer ein LoRaWAN ist.

- sven-ola
- Beiträge: 140
- Registriert: Mo 23. Nov 2020, 12:40
- Roller: NIU MQi GT 70
- PLZ: 2
- Kontaktdaten:
Re: [EVO,100,R] CAN Bus Reverse Engineering (Roller + Batterie)
Das Wichtige ist die Protokoll-Entschlüsselung bzw das Reversing der empfangenen / gesendeten Infoblöcke. Ob über Kabel oder per Funk (LoRa) ist erstmal egal. EVO / 100er Besitzer wird es jedenfalls freuen, wenn das jemand macht. Insofern @zock3r: go for the fame 

-
- Beiträge: 182
- Registriert: Mi 15. Jun 2022, 02:05
- Roller: MQi GT EVO
- PLZ: 67
- Kontaktdaten:
Re: [EVO,100,R] CAN Bus Reverse Engineering (Roller + Batterie)
Haha ja, ne ist nen Hobby das reversing, nicht wegen fame. Ich suche selbst oft nach Diagnosemaßnahmen und DIY Lösungen, um in dem Fall hier den NIU selbst reparieren, modden und lange am Leben zu erhalten, zu können. War sehr froh als damals die 3rd party BMSse mit BT Funktionalität kamen und Lingbo FOCs im Originalzustand mit einer ominösen Zwischenbox out of the Box an den NIUs funktionierte.
Und da ich mit den CAN Bussen schon recht gut vertraut bin (Renault ZOE und OVMS) wollte ich mal schauen was das Diagtool (und wer weiß wie lange es funktioniert mit meinen ständigen Spielereien.... ohne Kontakt zu N funktioniert es nicht, es wird jeder Klick übertragen, schöne neue Welt) mit dem Roller/Akku redet. Die Firmen kochen schließlich auch alle mit Wasser
Und mache öffentlich was eben möglich bzw. erlaubt ist, falls jemand auch nach einer Lösung sucht.
Wie ich in meinem GIT Repo schon geschrieben habe, könnte man den "Battery Checker" erweitern, dass dieser per WLAN oder Bluetooth welche die ESP32 Controller von Hause aus mitbringen, die Akkudaten auf eine App, eine WebGUI oder ins heimische Netzwerk per MQTT o.ä. auf HomeAutomation Tools streamt. So kann man zum Beispiel die Akkus bei noch niedrigerem SOC lagern, um die Zellen noch mehr zu schonen und einen Alarm einrichten, falls diese mal wieder nachgeladen werden müssen. Oder noch besser eine schaltbare Steckdose schalten, die das Ladegerät automatisch einschaltet und bei SOC xy wieder abschaltet. Keine tiefentladenen teuren Briefbeschwerer-Batterien mehr bei Beginn einer neuen Rollersaison.
---
LoRaWAN ist eine IoT Datenaustausch Cloud. Die nutzen das vom Semtech entwickelte LoRa (Long Range) Funkprotokoll und setzen eine verschlüsselten Netzwerkstack oben drauf (WAN Wide Area Network).
Man kann das LoRa Modem an einen Controller anbringen oder fertige PCBs kaufen und sich kostenlos ein Account und eigene Applikationen im TheThingsNetwork erstellen. Die Daten die man über seinen Mikrocontroller versendet werden von LoRaWAN-Gateways von Firmen oder Privatpersonen zum TheThingsNetwork weitergeleitet, von dort aus kann man sich dann eben wieder ins Heimnetz holen (Home Assistant, MQTT und Co.).
Nicht alle LoRaWAN Gateways forwarden die Pakete zum TheThingsNetwork (private Netzwerke), aber die Abdeckung hat in den letzten Jahren stetig zugenommen. Agrarwirtschaft, SmartMetering, Tracking etc.pp.
https://ttnmapper.org/
https://www.thethingsnetwork.org/
Wer sich zum Beispiel einen günstigen GPS Tracker bauen möchte, kann sich zum Beispiel einen LILYGO T-Beam (Akku, GPS, WLAN, BT und LoRa Modem auf einem Modul) holen und mit ein paar Tutorials eine Firmware bauen und aufspielen und so kostenlos über das TheThingsNetwork seine Fahrzeuge tracken.
Und da ich mit den CAN Bussen schon recht gut vertraut bin (Renault ZOE und OVMS) wollte ich mal schauen was das Diagtool (und wer weiß wie lange es funktioniert mit meinen ständigen Spielereien.... ohne Kontakt zu N funktioniert es nicht, es wird jeder Klick übertragen, schöne neue Welt) mit dem Roller/Akku redet. Die Firmen kochen schließlich auch alle mit Wasser

Und mache öffentlich was eben möglich bzw. erlaubt ist, falls jemand auch nach einer Lösung sucht.
Wie ich in meinem GIT Repo schon geschrieben habe, könnte man den "Battery Checker" erweitern, dass dieser per WLAN oder Bluetooth welche die ESP32 Controller von Hause aus mitbringen, die Akkudaten auf eine App, eine WebGUI oder ins heimische Netzwerk per MQTT o.ä. auf HomeAutomation Tools streamt. So kann man zum Beispiel die Akkus bei noch niedrigerem SOC lagern, um die Zellen noch mehr zu schonen und einen Alarm einrichten, falls diese mal wieder nachgeladen werden müssen. Oder noch besser eine schaltbare Steckdose schalten, die das Ladegerät automatisch einschaltet und bei SOC xy wieder abschaltet. Keine tiefentladenen teuren Briefbeschwerer-Batterien mehr bei Beginn einer neuen Rollersaison.
---
LoRaWAN ist eine IoT Datenaustausch Cloud. Die nutzen das vom Semtech entwickelte LoRa (Long Range) Funkprotokoll und setzen eine verschlüsselten Netzwerkstack oben drauf (WAN Wide Area Network).
Man kann das LoRa Modem an einen Controller anbringen oder fertige PCBs kaufen und sich kostenlos ein Account und eigene Applikationen im TheThingsNetwork erstellen. Die Daten die man über seinen Mikrocontroller versendet werden von LoRaWAN-Gateways von Firmen oder Privatpersonen zum TheThingsNetwork weitergeleitet, von dort aus kann man sich dann eben wieder ins Heimnetz holen (Home Assistant, MQTT und Co.).
Nicht alle LoRaWAN Gateways forwarden die Pakete zum TheThingsNetwork (private Netzwerke), aber die Abdeckung hat in den letzten Jahren stetig zugenommen. Agrarwirtschaft, SmartMetering, Tracking etc.pp.
https://ttnmapper.org/
https://www.thethingsnetwork.org/
Wer sich zum Beispiel einen günstigen GPS Tracker bauen möchte, kann sich zum Beispiel einen LILYGO T-Beam (Akku, GPS, WLAN, BT und LoRa Modem auf einem Modul) holen und mit ein paar Tutorials eine Firmware bauen und aufspielen und so kostenlos über das TheThingsNetwork seine Fahrzeuge tracken.
-
- Beiträge: 16
- Registriert: Mi 15. Feb 2023, 07:46
- Roller: Niu MQi GT EVO
- PLZ: 94
- Kontaktdaten:
Re: [EVO,100,R] CAN Bus Reverse Engineering (Roller + Batterie)
Wow zock3r1608 ich bin beeindruckt was du hier leistest und dass du es so toll und sauber Teilst, ich glaube das hier könnte dir weiterhelfen da bin ich durch Zufall mal daraufgestoßen: https://conference.hitb.org/hitbsecconf ... Bassen.pdf
Deine CAN sniffing HW würde mich genauer interessieren
Deine CAN sniffing HW würde mich genauer interessieren

-
- Beiträge: 182
- Registriert: Mi 15. Jun 2022, 02:05
- Roller: MQi GT EVO
- PLZ: 67
- Kontaktdaten:
Re: [EVO,100,R] CAN Bus Reverse Engineering (Roller + Batterie)
Hi,
das habe ich schon gelesen auch sehr interessant, der geht aber leider nicht auf den RS485, sondern attackiert das LTE Baseband, welches auch immer mehr in den Vordergrund rücken wird. Da die LTE/5G Basebands mittlerweile ausgewachsene eigenständige Rechner sind die eine recht komplexe Software besitzen und somit viel Angriffsfläche bieten und mittlerweile ja überall verbaut werden.
Habe eigentlich nur den Raspberry Pi mit dem CAN RS485 HAT in Verbindung mit der Software SavvyCAN im Einsatz. Zum dekodieren der CAN Meldungen nutze ich die Software ImHex weil dort auf einen Blick alle gängigen Datentypen angezeigt werden.
Aus dem Autobereich habe ich diverse nachgebaute Interfaces und auch ein ELM327 kompatibler OBDlink SX welcher auch benutzt werden kann.
Überarbeite gerade mein GIT Repo mit dem BatteryChecker, ich habe die Batteriestatusmeldungen im Roller gefunden, die werden auch ohne Diagtool mit hoher Updateräte versendet.
Habe den BatteryChecker um WiFi und MQTT Funktionalität erweitert und habe nun die Batteriedaten beider Akkus ins Homeassistent integriert. WiFi im Hof geht gerade noch so.
Für diesen Zweck finde ich die LiliyGo T-CAN485 sehr interessant, da ESP32-S3 (WiFi BT), microSD Slot, isoliertes CAN und RS485 Interface sowie direkte 12V Versorgung für knapp 18€ aus China.
Würde mich freuen wenn du auch Mal in deinen CAN Bus rein-schaust:-)
Ich habe eine Database CAN (DBC) File angefangen, dort stehen schon alle Messages zum Thema Akku darin. Diese Files sind mit verschiedenen CAN Bus Scannertools kompatibel, die zeigen dir dann direkt die Nutzdaten an (wie im ersten Beitrag zu sehen).
Gibt noch viele weitere interessante Informationen, wenn wir die alle finden und dekodieren, hat jeder praktisch ein H2 (bis auf die Updates) welches in der Zukunft sehr nützlich für Hobbyschrauber werden kann.
Das ist auch legal denn jeder darf sein Besitz analysieren etc. und darüber berichten. Deswegen verzichte ich auch darauf die App oder das Interfacemodul meines H2s zu reverse engineeren, da dessen Code und Firmwarestandteile geschützt sind und die Rechteinhaber sicherlich nicht erfreut sind Teile ihres Codes im Netz zu finden.
das habe ich schon gelesen auch sehr interessant, der geht aber leider nicht auf den RS485, sondern attackiert das LTE Baseband, welches auch immer mehr in den Vordergrund rücken wird. Da die LTE/5G Basebands mittlerweile ausgewachsene eigenständige Rechner sind die eine recht komplexe Software besitzen und somit viel Angriffsfläche bieten und mittlerweile ja überall verbaut werden.
Habe eigentlich nur den Raspberry Pi mit dem CAN RS485 HAT in Verbindung mit der Software SavvyCAN im Einsatz. Zum dekodieren der CAN Meldungen nutze ich die Software ImHex weil dort auf einen Blick alle gängigen Datentypen angezeigt werden.
Aus dem Autobereich habe ich diverse nachgebaute Interfaces und auch ein ELM327 kompatibler OBDlink SX welcher auch benutzt werden kann.
Überarbeite gerade mein GIT Repo mit dem BatteryChecker, ich habe die Batteriestatusmeldungen im Roller gefunden, die werden auch ohne Diagtool mit hoher Updateräte versendet.
Habe den BatteryChecker um WiFi und MQTT Funktionalität erweitert und habe nun die Batteriedaten beider Akkus ins Homeassistent integriert. WiFi im Hof geht gerade noch so.
Für diesen Zweck finde ich die LiliyGo T-CAN485 sehr interessant, da ESP32-S3 (WiFi BT), microSD Slot, isoliertes CAN und RS485 Interface sowie direkte 12V Versorgung für knapp 18€ aus China.
Würde mich freuen wenn du auch Mal in deinen CAN Bus rein-schaust:-)
Ich habe eine Database CAN (DBC) File angefangen, dort stehen schon alle Messages zum Thema Akku darin. Diese Files sind mit verschiedenen CAN Bus Scannertools kompatibel, die zeigen dir dann direkt die Nutzdaten an (wie im ersten Beitrag zu sehen).
Gibt noch viele weitere interessante Informationen, wenn wir die alle finden und dekodieren, hat jeder praktisch ein H2 (bis auf die Updates) welches in der Zukunft sehr nützlich für Hobbyschrauber werden kann.
Das ist auch legal denn jeder darf sein Besitz analysieren etc. und darüber berichten. Deswegen verzichte ich auch darauf die App oder das Interfacemodul meines H2s zu reverse engineeren, da dessen Code und Firmwarestandteile geschützt sind und die Rechteinhaber sicherlich nicht erfreut sind Teile ihres Codes im Netz zu finden.
-
- Beiträge: 182
- Registriert: Mi 15. Jun 2022, 02:05
- Roller: MQi GT EVO
- PLZ: 67
- Kontaktdaten:
Re: [EVO,100,R] CAN Bus Reverse Engineering (Roller + Batterie)
Und weiter gehts....
Ich wollte den Batteriestrom der 72V Akkus finden, um diesen auszuwerten. Dazu war die Idee aufgrund des Wetters ein Akku gemütlich auf dem Tisch zu analysieren.
Also mit dem Lader 2-3Ampere draufgeben und schauen ob ich diesen Wert finde. Nur leider ließ sich der Akku nicht laden, auch wenn ich diesen mit meinem T-CAN aufwecke und Daten bekomme. Wenn ich nur den CAN Bus vom Originallader mit dem Akku verbinde, ändert sich ebenfalls nichts. Hab nur die Sense-Spannung von ca. 62V auf den Kontakten.
Also mussten die anderen PINs auch eine Bedeutung haben und ich musste herausfinden was.... long story, short: Man muss die 12V auch anlegen dann schaltet der Akku komplett durch und man kann den laden/entladen.
Habe aus Neugier trotzdem bis auf einen PIN alle Funktionen rausbekommen: https://git.0-c.de/Crash_Override/NIU_C ... nector.png
Den Current hab ich auch gefunden und noch eine Leistungsberechnung dran gehängt.
Bringt warscheins erstmal niemanden was, weils warscheins nur noch 3 EVO Fahrer gibt, aber so könnte man beim Ableben des Rollers die Akkus an einem Balkonkraftwerk weiterbetreiben
Ich wollte den Batteriestrom der 72V Akkus finden, um diesen auszuwerten. Dazu war die Idee aufgrund des Wetters ein Akku gemütlich auf dem Tisch zu analysieren.
Also mit dem Lader 2-3Ampere draufgeben und schauen ob ich diesen Wert finde. Nur leider ließ sich der Akku nicht laden, auch wenn ich diesen mit meinem T-CAN aufwecke und Daten bekomme. Wenn ich nur den CAN Bus vom Originallader mit dem Akku verbinde, ändert sich ebenfalls nichts. Hab nur die Sense-Spannung von ca. 62V auf den Kontakten.
Also mussten die anderen PINs auch eine Bedeutung haben und ich musste herausfinden was.... long story, short: Man muss die 12V auch anlegen dann schaltet der Akku komplett durch und man kann den laden/entladen.
Habe aus Neugier trotzdem bis auf einen PIN alle Funktionen rausbekommen: https://git.0-c.de/Crash_Override/NIU_C ... nector.png
Den Current hab ich auch gefunden und noch eine Leistungsberechnung dran gehängt.
Bringt warscheins erstmal niemanden was, weils warscheins nur noch 3 EVO Fahrer gibt, aber so könnte man beim Ableben des Rollers die Akkus an einem Balkonkraftwerk weiterbetreiben

Zuletzt geändert von zock3r1608 am Sa 8. Mär 2025, 00:22, insgesamt 1-mal geändert.
- Stivikivi
- Beiträge: 4960
- Registriert: Sa 16. Jul 2022, 23:10
- Roller: [NIU] & [ZERO] & [BMW]
- PLZ: 0
- Kontaktdaten:
- heinr
- Beiträge: 284
- Registriert: Fr 19. Aug 2022, 10:16
- Roller: NIU MQI GT 100
- PLZ: 4565
- Wohnort: Recklinghausen
- Kontaktdaten:
Re: [EVO,100,R] CAN/ECU Bus Reverse Engineering (Roller + Batterie)
heyho zock,
ganz großes Kino, eine echte Bereicherung im Forum.
Die Kontaktbelegung ist ja auch im Stromlaufplan des EVO ausgegeben und über den 12V Pin lade ich den 12V Akku um keine Vampierverluste zu haben wenn der EVO/Gt100 mal ein paar Tage steht.
Den für mich wesentlichen Nutzen aus deinem Projekt hast du schon erwähnt, Balkonkraftwerk.
Wenn es eine Möglichkeit gäbe mit deinem Projekt ein fremdes Ladegerät/Solarpanel anzuschließen und /oder einen Wechselrichter zu versorgen,
das wäre Hammer. Ist das mit deinem Angebot für die 35 € schon möglich ????
Ist doch zu schade wenn die Akkus oft tagelang ungenutzt herumstehen und sinnlos kalendarisch altern.
Es muss natürlich jedem klar sein das wir uns bei den 72V Akkus nicht mehr im Bereich der Schutzkleinspannung bewegen.
ganz großes Kino, eine echte Bereicherung im Forum.
Die Kontaktbelegung ist ja auch im Stromlaufplan des EVO ausgegeben und über den 12V Pin lade ich den 12V Akku um keine Vampierverluste zu haben wenn der EVO/Gt100 mal ein paar Tage steht.
Den für mich wesentlichen Nutzen aus deinem Projekt hast du schon erwähnt, Balkonkraftwerk.
Wenn es eine Möglichkeit gäbe mit deinem Projekt ein fremdes Ladegerät/Solarpanel anzuschließen und /oder einen Wechselrichter zu versorgen,
das wäre Hammer. Ist das mit deinem Angebot für die 35 € schon möglich ????
Ist doch zu schade wenn die Akkus oft tagelang ungenutzt herumstehen und sinnlos kalendarisch altern.
Es muss natürlich jedem klar sein das wir uns bei den 72V Akkus nicht mehr im Bereich der Schutzkleinspannung bewegen.
Fahrzeuge
Crivit Urban E-Bike; NIU MQI GT 100; VW E-UP
Crivit Urban E-Bike; NIU MQI GT 100; VW E-UP
Wer ist online?
Mitglieder in diesem Forum: Yandex [Bot] und 387 Gäste