Hallo zusammen,
so ich kann Teilvollzug melden...
1. Signalisierung zwischen Controller und Tacho "geknackt". Das war wirklich nen dickes Brett zu bohren, nachdem ich messtechnisch herausgefunden hatte, dass der Controller kein Hallsignal rausgibt, sondern mittels Datenleitung mit dem Tacho spricht, war es wirklich kleinteilige Detektivarbeit, herauszufinden wie. Es ist nämlich keine normale serielle Schnittstelle (UART, RS232 etc.) sondern was ganz ungewöhnliches - nicht nur die elektrischen Parameter sind seltsam sondern auch die Logik dahinter: 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 auch 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. Kann man unten auf dem 3. Foto und im Video sehen, was da durchrauscht sind die Daten, die der Controller/meine Ansteuerung an den Tacho schicken.
Dank mehrerer Arduinos, Oszilloskop usw. und fast 2-Tagen messen, denken und programmieren habe ich es geschafft, ich kann den Tacho per Arduino ansteuern...
Wenn jemand mehr Details oder der Arduino-Code interessiert - kurze PN genügt.
Das ganz sieht dann so aus:
Protokoll:
Messen und Steuern mit Arduino Mega
Filmchen dazu in Action:
http://slothorpe.selfhost.eu:8083/IMG_1697.MOV
Meine "Steuer-Oberfläche, Kommando t47 bedeutet "Tacho auf 47km/h"
Das Ergebnis:
BTW: der Tacho geht übrigens ab 40km/h absichtlich 1km/h und ab 45km/h sogar 2km/h vor, wenn ich ihm das normale Kommando für 48km/h schicke zeigt er 50km/h an, der Schlawiener. Habe das in meiner Ansteuerung kompensiert, zukünftig geht mein Tacho genau
2. Als das geschafft war und ich noch Zeit hatte, habe ich mich doch mal daran gemacht, den Controller auszuprobieren, auch wenn ich Ihn erst dann wirklich nutze werde, wenn die Tachoansteuerung auf nem Arduino-Nano läuft und direkt am Controller angebunden ist - ohne funktionierenden Tacho will ich nicht rumfahren.
Also den Controller einfach mal drauf gelegt und mit Hilfe der vorbereiteten Adapter-Kabel angeschlossen. Motor- und Hallgeber jeweils Farbe auf Farbe, den Rest nach Plan.
Dann einfach mal eingeschaltet.... es ruckelt kurz ein paar mal am Hinterrad und das wars... Als ich das PC Programm starte und mit dem Controller verbinde ist alles normal, Status Slide-Recharge... Kurz mal Gas gegeben - läuft ! So einfach ist das
Reku geht, Slide-Recharge geht, Bremssignal geht, 3-Fahrstufen gehen, alles tutti
Das sah dann so aus:
Nun ist der Controller ja deutlich größer als der originale und ich war erstmal etwas verzweifelt, da würde er kaum hinpassen. Dann habe ich mich aber mal neben den Roller gelegt und das Ganze von unten angesehen... siehe da, im linken Kotflügel ist ein Platz vorgesehen, der genau für den Controller passt - da fiel mir wieder ein, dass ich das in den Zeichnungen auf der Emco-Ersatzteil-Seite auch gesehen hatte, dort ist der Controller auch an dieser Stelle verbaut. Im Kotflügel ist extra ein stabiles Blech mit vorgebohrten Löchern, da passt der Sabvoton perfekt hin... Ich habe ihn dann gleich mal angeschraubt da:
Was fehlt noch: Ich werde diese Woche die Arduino-basierte Ansteuerung für den Tacho fertig machen und in den Controller-Kabelbaum integrieren, so dass die Funktion von Tacho und div. Anzeigen unverändert gegeben ist.
Wenn alles fertig ist, dann folgen Fahrversuche
Ich berichte weiter.
Gruß
Holger