I was able to get a capture of an i3, unfortunately I don't know what model year! Sorry! But, I think this information should still be useful. This particular vehicle did not offer ISO 15118 support, only DIN 70121. No mention of negative currents anywhere.
EV to EVSE side in ChargeParameterDiscovery:
EVReady: False
EVErrorCode: NO_ERROR
EVRESSSOC: [ev soc %]
EVMaximumCurrentLimit: 125A
EVMaximumVoltageLimit: 415.1V
"FullSOC: 100"
"BulkSOC: 80"
^ these two last items are not normally found here in other vehicles. I suspect most charging stations ignore them.
EVSE to EV in ChargeParameterDiscoveryRes OK:
[note, I will provide the fields sent, but not the values to protect my anonymity, this isn't LIM specific]
EVSEIsolationStatus
EVSEStatusCode
NotificationMaxDelay
EVSENotification
EVSEMaximumCurrentLimit
EVSEMaximumPowerLimit
EVSEMaximumVoltageLimit [you should be seeing 500 here for most non-ionity ~50kW sites, likely 1000 or 920 for "high power" sites]
EVSEMinimumCurrentLimit
EVSEMinimumVoltageLimit
EVSEPeakCurrentRipple [0-3A is common]
Note in general three values associated with a "thing": multiplier, unit, and value. I think this is part of the EXI/XML crap. I don't know how this translates on CAN.
At cable check completion, from the EVSE to EV side data, EVSEIsolationStatus should switch to valid, EVSEStatusCode should be EVSE_Ready, and EVSEProcessing should be Finished. This is not unique to the LIM but in case you are looking at CAN data, this should match.
For precharge, in the case of my log, the LIM is asking for 415.1V, but closing in at the actual pack voltage of ~370V. That's strange behavior that I haven't seen before with any other vehicle. This may be a bug in whatever controls the LIM (VCM?) as I believe you were able to command an exact value. OR it could mean that there is one max value register on the CAN bus and you need to adjust it after precharge (seems that BMW does not do this).
In the current loop:
CurrentDemandReq [EV to EVSE]
---DC_EVStatus---
EVReady: True [note in general if this goes to false, charging will end]
EVCabinConditioning: False [don't think stations care about this, but LIM sends it, other vehicles don't send this]
EVRESSConditioning: False [don't think stations care about this, but LIM sends it, other vehicles don't send this]
EVErrorCode: NO_ERROR
EVRESSSOC: [ev soc %]
-----------------
EVTargetCurrent: [target current]
EVMaximumVoltageLimit: 415.1V
EVMaximumCurrentLimit: 125A
BulkChargingComplete: False
ChargingComplete: False
RemainingTimeToFullSoC: [time in seconds]
RemainingTimeToBulkSoC: [other time in seconds]
EVTargetVoltage: 415.1V
CurrentDemandRes OK [EVSE to EV]
---DC_EVSEStatus---
EVSEIsolationStatus: Valid [will be this during steady state charging, Invalid during cable check]
EVSEStatusCode: EVSE_Ready
NotificationMaxDelay
EVSENotification
------------------
EVSEPresentVoltage:
EVSEPresentCurrent:
EVSECurrentLimitAchieved: False
EVSEVoltageLimitAchieved: False
EVSEPowerLimitAchieved: False (this station in the log is capable of providing more in all three limits than what i3 can use, so this is valid)
EVSEMaximumVoltageLimit:
EVSEMaximumPowerLimit:
EVSEStatusCode breakdown:
EVSE_Ready - will always be this in steady state charging, but some stations are in this state during charge parameter discovery
EVSE_Shutdown - self explanatory, if charger (or user) requests charging stop from charger side
EVSE_EmergencyShutdown - shutdown due to fault or estop pressed
EVSE_IsolationMonitoringActive - during cable check and sometimes during charge parameter discovery, depending on station
EVSE_NotReady - only during charge parameter discovery
(who knows if this is exposed outside the LIM, if not, disregard)
I don't think EVSENotification or NotificationMaxDelay are actually used for anything.
Ok, that should help you all for now. Good luck.
