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 ...