Votronic Mpp250 Protokoll

Vor einiger Zeit nutzte ich den MPP250 von Votronik in meinem Bus.
Um die Daten über Lora zu schicken habe ich ein Heltec Cubecell benutzt.

Hatte damals Probleme Infos über das Protokol zu finden und deshalb selbst einen Blick drauf geworfen.
Vllt helfen die Infos (schon bisschen her, k.A. ob es Updates gab oder schon anderweitig dokumentiert)

In dem Kabel zum Display gibt es GND, 12V, UART TX (und vllt RX, k.A.).
UART TX hat eine sehr merkwürdige Baudrate von 1000, Pegel waren glaube ich 5V.

Statusdaten werden im Betrieb kontinuierlich übertragen, 16Byte Pakete, 0xAA markiert den Start.
In den 16Byte ist wenn ich das richtig sehe eine triviale Prüfsumme enthalten.

Dieser Pythoncode enthält was ich damals rausgefunden habe, sind nur die wichtigsten Parameter, die noch unbekannten Bytes waren für meine Anwendung nicht wichtig.

def genChecksum(dataIn):
    s = 0
    for i in dataIn:
        s = s^i
    return s


def decode(uartFrame):
    assert(len(uartFrame) == 16), 'data len not as expected'
    assert(uartFrame[0] == 0xaa), 'magic byte not found'
    
    assert(genChecksum(uartFrame[1:-1]) == uartFrame[15]), 'crc error'
    
    voltageCell = ((uartFrame[5] << 8) | uartFrame[4]) / 100.0  # voltage in 10mV
    voltageBat = ((uartFrame[3] << 8) | uartFrame[2]) / 100.0  # voltage in 10mV
    currentBat = ((uartFrame[7] << 8) | uartFrame[6]) / 10.0   # current in 100mA

    unknown = uartFrame[8:14]

    aesOn = bool(uartFrame[14] & (1<<5))
    excessSolar = bool(uartFrame[14] & (1<<4))
    statBits = bin(uartFrame[14])
    
    return {'voltageBat': voltageBat, 'voltageCell': voltageCell, 'currentBat': currentBat, 'aesOn': aesOn, 'excessSolar': excessSolar, 'statBits': statBits, 'unknown': unknown}


# test it!
# decode([0xAA, 0x1A, 0x2B, 0x05, 0x66, 0x06, 0x14, 0x00, 0x00, 0x00, 0x9F, 0x21, 0x35, 0x22, 0x09, 0xE0])
# >>{'aesOn': False,
#    'currentBat': 2.0,
#    'excessSolar': False,
#    'voltageBat': 13.23,
#    'voltageCell': 16.38}

Viele Grüße!

1 Like

@Bock.auf.Raus :thinking:
Hilft das ?

Hey @pascalkrebsch ,
erstmal vielen Dank für deine Mühe das hier zu veröffentlichen.
Leider reicht mein Wissen bisher nicht aus um daraus was zu machen.

Wie bekomme ich das ganze nun ins VANpi, vielleicht hast du dazu noch den ein oder anderen Tipp für mich.

Viele Grüße
Sven

Hey @Bock.auf.Raus ,
Das ist von @gonz , hab dich nur getagt da ich gelesen hatte das du sowas suchst.
Kann dir leider nicht selbst helfen

Ahhh, sorry hatte gedacht das beides von dir ist.
Ok, vielleicht kann der Ersteller ja noch was dazu schreiben, ist ja vielleicht auch für den ein oder anderen interessant.