Display für BMSdiag und Smart-Telemetrie Ersatz

Re: Display für BMSdiag und Smart-Telemetrie Ersatz

erich
  • Beiträge: 151
  • Registriert: Fr 20. Mai 2016, 14:37
  • Wohnort: Nürnberg, Franken
  • Hat sich bedankt: 2 Mal
  • Danke erhalten: 6 Mal
read
Und wieder ein Stückchen weiter...

Bild
Tesla Referal-Code: https://ts.la/erich21076
Anzeige

Re: Display für BMSdiag und Smart-Telemetrie Ersatz

MineCooky
read
Sehr cool :thumb:

Re: Display für BMSdiag und Smart-Telemetrie Ersatz

erich
  • Beiträge: 151
  • Registriert: Fr 20. Mai 2016, 14:37
  • Wohnort: Nürnberg, Franken
  • Hat sich bedankt: 2 Mal
  • Danke erhalten: 6 Mal
read
So toll und extrem Umfangreich Odysseys BMSDiag ist, für meinen Telemetrie Ersatz ist es viel zu groß. Das muss auch schlanker gehen. Und deswegen habe ich mal am CAN-Bus geschnüffelt und habe folgendes gefunden:

ODO / Kilometerstand (der auch im Display steht)

Code: Alles auswählen

ID:412 Nibble 7,8,9,10
Beispiel:
ID: 412  Data: 3B FF 00 63 5D 80 00 10
= 635D (in HEX)
= 25437 (in base10) Kilometer
SOC / State of Charge (Drehspulanzeige)

Code: Alles auswählen

ID:518 Nibble 15,16 (Wert halbieren)
Beispiel:
ID: 518  Data: 01 24 00 00 F8 7F C8 A7
= A7 (in HEX)
= 167 (in base10) und das nun halbieren
= 83,5%
rSOC / real State of Charge (interner Wert)

Code: Alles auswählen

ID:2D5 Nibble 10,11,12 (Wert durch zehn)
Beispiel:
ID: 2D5  Data: 00 00 4F 14 03 40 00 00
= 340 (in HEX)
= 832 (in base10) und das nun durch zehn
= 83,2%
Restreichweite (die auch im Display steht)

Code: Alles auswählen

ID:318 Nibble 15,16 (Wert durch zehn)
Beispiel:
ID: 318  Data: 5C 00 00 07 FF 00 00 6C
=  6C (in HEX)
= 108 (in base10) Kilometer
Tesla Referal-Code: https://ts.la/erich21076

Re: Display für BMSdiag und Smart-Telemetrie Ersatz

AlterAmi
  • Beiträge: 391
  • Registriert: Di 20. Aug 2013, 18:35
  • Wohnort: Cupertino
  • Danke erhalten: 3 Mal
read
Super hilfreich, danke!

Re: Display für BMSdiag und Smart-Telemetrie Ersatz

erich
  • Beiträge: 151
  • Registriert: Fr 20. Mai 2016, 14:37
  • Wohnort: Nürnberg, Franken
  • Hat sich bedankt: 2 Mal
  • Danke erhalten: 6 Mal
read
Hiermit kann man die Werte mit einem zweiten Arduino mit CAN-BUS-Karte simulieren.
Man spart sich das ewige hin und her gerenne zum ED ;) .

Code: Alles auswählen

//
// CAN Sender Beispiel zum simulieren einiger Werte eines SMART-ED
//
// Für eigene Werte bitte einen DEC/HEX Umrechner benutzen
// z.B. http://www.binaryhexconverter.com/decimal-to-hex-converter
//

#include <mcp_can.h>
#include <SPI.h>

MCP_CAN CAN0(10);

void setup()
{
  Serial.begin(115200);

  if(CAN0.begin(MCP_ANY, CAN_500KBPS, MCP_16MHZ) == CAN_OK) Serial.println("MCP2515 Initialized Successfully!");
  else Serial.println("Error Initializing MCP2515...");

  CAN0.setMode(MCP_NORMAL);
}

//...................................................................HEX.........Wert....
byte ODO[8]  = {0x3B, 0xFF, 0x00, 0x63, 0x30, 0x39, 0x00, 0x10}; // 3039       = 12345 km
//                                        ^^    ^^

byte SOC[8]  = {0x01, 0x1B, 0x00, 0x80, 0x08, 0x0E, 0x00, 0x44}; //   44 =  68 =    34 %
//                                                          ^^

byte rSOC[8] = {0x00, 0x00, 0x4F, 0x14, 0x02, 0x37, 0x00, 0x00}; //  237 = 567 =  56,7 % 
//                                         ^    ^^

byte RW[8]   = {0x5C, 0x00, 0x00, 0x07, 0xFF, 0x00, 0x00, 0x36}; //   36       =    54 km
//                                                          ^^

void loop()
{
sendODO();
delay(10);
sendSOC();
delay(10);
sendrSOC();
delay(10);
sendRW();
delay(70);
}

void sendODO()
{
  byte sndStat = CAN0.sendMsgBuf(0x412, 0, 8, ODO);
  if(sndStat == CAN_OK){
    Serial.println("ODO - ok");
  } else {
    Serial.println("ODO - error");
  }
}

void sendSOC()
{
  byte sndStat = CAN0.sendMsgBuf(0x518, 0, 8, SOC);
  if(sndStat == CAN_OK){
    Serial.println("SOC - ok");
  } else {
    Serial.println("SOC - error");
  }
}

void sendrSOC()
{
  byte sndStat = CAN0.sendMsgBuf(0x2D5, 0, 8, rSOC);
  if(sndStat == CAN_OK){
    Serial.println("rSOC - ok");
  } else {
    Serial.println("rSOC - error");
  }
}

void sendRW()
{
  byte sndStat = CAN0.sendMsgBuf(0x318, 0, 8, RW);
  if(sndStat == CAN_OK){
    Serial.println("RW - ok");
  } else {
    Serial.println("RW - error");
  }
}
Tesla Referal-Code: https://ts.la/erich21076

Re: Display für BMSdiag und Smart-Telemetrie Ersatz

erich
  • Beiträge: 151
  • Registriert: Fr 20. Mai 2016, 14:37
  • Wohnort: Nürnberg, Franken
  • Hat sich bedankt: 2 Mal
  • Danke erhalten: 6 Mal
read
Update des Telemetrie-Ersatzes:

Das Prototype-Kästchen schaut nun so aus:
Bild

Features:
Touch-Screen-LCD
Loggen auf SD-Karte (frei definierbar) (lokal)
Loggen auf MQTT-Server (frei definierbar) (über WLAN - GSM Wlan-Hotspot-Router benötigt)
Frei definierbare Anzeigen auf den Bildschirmen
Softwareupdate entweder lokal über die SD-Karte oder Over-The-Air dierkt aus dem internet.
Eingenauter Webserver
Eingebauter GPS
Automatische Ladeerkennung und Lade-Graph Anzeige

Aktuell auswählbare Datenpunkte:
12V Batterie , 1=Pilot valide , Angezeigter SOC , Aussentemperatur , ECO Beschleunigen , ECO Bremsen , ECO Gleiten , ECO Total , Gangwahlhebel , Geschwindigkeit A , Geschwindigkeit B , Geschwindigkeit C , Gurt Beifahrer , Gurt Fahrer , Handbremse , HV-Ampere , HV-Status , HV-Volt , Kilometerstand , Klima , Ladedauer Minute , Ladedauer Stunde , Ladend , Licht , LichtHeck , Pilot max Ladestrom , Powerbar , Powerflow , Real SOC , Rekup Paddel , Restreichweite , StatusGangwahlhebel , Status HV-V , Strecke ab Reset , Strecke ab Start , TuerenWischer , Uhrzeit Minuten , Uhrzeit Stunden , Verbrauch ab Reset , Verbrauch ab Start , Zuendung, GPS-Position

Wenn noch jemand zusätzliche Can-Definitionen hat, dann bitte gerne an mich, damit sie in die Firmware eingepflegt werden können.

Interessant wären noch die Bedeutungen der Bit-Werte in der Klima-ID "0x443".
Also Lüftingsanforderung, Heizen, Kühlen, Temperaturen, etc.

Auch suche ich noch die Bits in denen steht ob jemand auf dem Fahrer/Beifahrersitz sitzt. Die Gurtschlösser habe ich, aber die Sitzsensoren verstecken sich noch.

Dann noch weitere Details zum Laden an sich.
Z.B. Temperatur Akku, jegliche Werte welche neben dem SOC die aktuelle "kwh" im Akku anzeigen.
Im Idealfall ohne aktive Abfragen. Wir wollen nur "schnüffeln", nicht schreiben.

Die gleiche Firmware läuft auch auf der ZOE.
Dort sieht es so aus:
Bild
Bild
Bild

Für zu Hause gibt es ein kleines E-Paper-Display was den Akkustand im 5min Rythmus anzeigt:
Bild
Tesla Referal-Code: https://ts.la/erich21076

Re: Display für BMSdiag und Smart-Telemetrie Ersatz

mcowher
  • Beiträge: 6
  • Registriert: Mo 4. Feb 2019, 21:59
read
Erich,

I am assuming that your Smart version of the Zoe Display is the first image withe black SDCard sticking out the top. If so, do you have the 3D printer file to use for printing that prototype case/enclosure?

Re: Display für BMSdiag und Smart-Telemetrie Ersatz

ChrisED
  • Beiträge: 1
  • Registriert: Do 29. Aug 2019, 22:04
  • Hat sich bedankt: 1 Mal
read
Sehr geiles Projekt. Ich bin noch beim Umstricken des ZOE-Projekts auf Github mit einem 1602 LCD. Durch die Filterfunktionen des MCP ist die Aktualisierungsrate schon ganz gut. Meinst du mit Paddel in deiner Auflistung nur Lesen oder kannst du die auch Scheiben? Ich habe keine Paddel möchte aber D+ mal ausprobieren.
Anzeige
AntwortenAntworten

Zurück zu „fortwo ed - Allgemeine Themen“

Gehe zu Profile
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag