Seite 1 von 1

Serielles Protokoll zwischen Controller und Tacho ?

Verfasst: Do 1. Aug 2019, 21:59
von slothorpe
Hallo,

im Rahmen meines geplanten Umbaus des Classico auf einen alternativen Controller (Kelly oder Sabvoton) ist mir leider aufgefallen, dass der original-Controller mit dem Tacho über ein serielles Protokoll (UART) kommuniziert. Kennt jemand eine Protokoll-Definition für diese Kommunikation ?

Gruß
Holger

Re: Serielles Protokoll zwischen Controller und Tacho ?

Verfasst: Mo 5. Aug 2019, 15:07
von slothorpe
Hier meine Ergebnisse:

0 und 1 werden über unterschiedlich lange low-high Phasen codiert, jedes Bit ist 1,5ms lang und beginnt mit der fallenden Flanke - 0,5ms low und 1ms high ist eine 1, hingegen 1 ms low und 0,5ms high ist eine 0, die Datenübertragung beginnt mit einer Art Startbit von 1ms high. Übertragen werden genau 12 Byte (96 Bit), das dauert genau 145ms, dann folgt 50ms Pause (low). High-Pegel ist 3,2V, low Pegel ist 0V.

Diese 12Byte sind sehr merkwürdig aufgebaut, das zu beschreiben sprengt den Rahmen hier, z.b. das letzte Byte ist immer eine XOR Checksumme, das zweite ein umlaufender 8bit Zähler, in den anderen sind die Informationen wie Geschwindigkeit und Fahrstufe 1-3 usw. recht kryptisch und teilweise mehrfach kodiert.

Wer mehr wissen will oder den Arduino-Code zur Ansteuerung braucht, schickt mir ne PN.

Re: Serielles Protokoll zwischen Controller und Tacho ?

Verfasst: Fr 12. Jun 2026, 16:36
von Tatra256
Holger, das klingt interessant. Haben Sie vielleicht auch Infos zur Kommunikation zwischen den Batterien und dem Tacho? Der Verkabelung nach können sich die Batterien nur beim Tacho über die RS485 melden und ihr Befinden petzen, was dann bei der MCU zur Freigabe der vollen Geschwindigkeit führt, sofern sich beide mit mehr als 13 Füllstand gemeldet haben.

Meine Frage hinsichtlich Protokoll zwischen BMS und Batterie rührt daher, daß ich meinen Roller auf 24 Zellen LIFEPO4 50 Ah umgebaut habe. Das paßt äußerst knapp ins Batteriefach. Die Kommunikation mit dem Tacho ist dann aber erst mal passe.

Meine Idee, Original-BMSe aus alten Batterien in die Kommunikation einzubeziehen, funktioniert zwar prinzipiell. Leider habe ich nur eines, sodaß ich nur mit dem Ein-Aus-Ein-Trick auf die volle Geschwindigkeit komme. Das dafür länger und weiter, ;-)

Meine Idee ist nun, einen Arduino oder ähnliches dazwischenzusetzen, der die Kommunikation von neuen BMS in die Sprache des alten übersetzt. Bis jetzt hab ich mich noch nicht rangetraut, die Kommunikation selbst zu tracen. Daher meine Frage.