Bionx mit CAN-Bus
Bionx mit CAN-Bus
Um mit dem Bionx-System zu kommunizieren, braucht man ein CAN-Bus Interface. Es funktioniert der preisgünstige China-Adapter. Gibt es bei Ebay oder bei Tinxi.
Dazu braucht man noch einen Stecker und eine Buchse für den CAN-Bus.
Der Stecker heisst HR30-6P-6S, die Buchse HR30-6J-6P, gibt es z.B. bei RS.
Stecker und Buchse werden 1:1 gebrückt. Wir brauchen eine Abzweigung von
Pin 2: CAN-low
Pin 4: CAN-grnd
Pin 6: CAN-high
die werden dann am ODB2-Stecker aufgelegt:
Pin 5: Signal Masse
Pin 6: CAN-high
Pin 14: CAN-low
Nach ablösen des Aufklebers kommen die 4 Gehäuseschrauben zum Vorschein. Wir haben die Kabel intern verlötet, so bleibt das Interface auch noch für OBD2 funktiosfähig. Das Löten der Stecker ist nur was für Lötkünstler, die Rundstecker sind sehr filigran.
Treiber Installation:
Windows: auf der beiliegenden CD ist eine ZIP-Datei mit den Treibern für Windows, diese entpacken. Das Interface an USB anstecken und Windows sucht dann den Treiber, den oben entpackten Ordner geben.
Nun Hyperterminal öffnen und eine Verbindung mit dem Interface herstellen. Ist in der Regel COM3.
Baudrate auf 38400 stellen und Flusskontrolle aus.
Mac: Den FTDI-Chip Treiber und ein Serial-Terminal Programm , z.B. CoolTerm installieren.
Zu dem Interface eine Verbindung aufbauen mit 38400 Baud und Flusskontrolle aus.
Eine Liste der ELM-Befehle gibt es hier.
Ob man die Befehle mit Gross- oder Kleinschrift und mit oder ohne Leerzeichen eingibt, ist egal.
Wir brauchen aber nicht viel:
Zuerst den ELM zurücksetzen mit
AT Z
der ELM antwortet mit
ELM 327 Ver1.4 oder ähnlich.
nun den CAN-Modus auf 125kBaud umstellen
AT SP B
und mit
AT H1 das Anzeigen des Bus-Teilnehmers einschalten
Wenn der Bionx ein ist kann man mit
AT MA mal in den CAN-Bus hineinhören. Nach kurzer Zeit kommt „Buffer full“.
Der CAN-Bus sendet mit 125kBaud, der Rechner holt die Pakete mit 38kBaud ab, gibt dann eben einen Überlauf.
Mit
AT MT 010 kann man nur die Nachrichten von Gerät 010
und mit
AT MR 010 kann man nur die Nachrichten an Geröt 010 ausfiltern
AT MA stellt wieder auf alle Teilnehmer um
Hier die Adressen der Geräte:
008 Console
048 Console im Slave-Modus
010 Batterie
020 Motor
Um mit einem Gerät zu sprechen, muss man es anwählen:
AT SH 010 Kommunikation mit der Batterie
Man kann Parameter lesen und einige auch schreiben: (die 00 an erster und dritten Position müssen immer mit drin sein)
Parameter lesen: (wir sind noch mit 010 Batterie verbunden, die Anzeige der Teilnehmeradressen ist noch aktiv)
Es gibt zwei Arten Parameter, entweder 1 Byte lang oder 2 Byte lang.
Als Beispiel ein Parameter 1 Byte lang:
00 AE wie viele Zellen in Reihe ?
Antwort:
010 00 AE 00 0A 10 Zellen in Reihe (0A hexadezimal)
ein Beispiel mit 2 Byte Parameter: Anzahl der Ladezyklen
00 8E wie viele Zyklen HighByte ?
Antwort:
010 00 8E 00 01 01 = HighByte
00 8F wie viele Zyklen LowByte ?
Antwort:
010 00 8F 00 23 23 = LowByte
--> Hexadezimal 0123 = 291 Ladezyklen
Parameter schreiben:
00 25 00 01 System ausschalten
als Antwort kommen dann einige Meldungen und nach Doppelpiep ist das System aus.
Die Konsole erzeugt auf dem CAN-Bus eine sehr rege Unterhaltung. Um Parameter in der Konsole zu ändern, muss man die Konsole in den Slave-Modus setzen:
AT SH 048 Konsole als Partner
00 D1 00 01 Konsole in den Slave-Modus setzen, Anzeige der Konsole geht aus bis auf „0041“
00 D1 Konsole im Slave Modus ??
048 00 D1 00 01 Antwort der Konsole
bei meinem KTM funktioniert das mit dem Slave-Modus so, beim Diamant meines Kollegen nicht ....
Im Internet habe ich eine Beschreibung der Parameter gefunden, ich zeige sie hier ausdrücklich nur zur Info ohne jegliche Gewähr auf Rechte oder Richtigkeit !!!!
Nachtrag: Motor Parameter A5 zum entsperren auf „AA“ setzen
good hack ...