ElectricMotorcycleForum.com

Makes And Models => Zero Motorcycles Forum | 2013+ => Topic started by: ms_smart on August 18, 2020, 05:40:56 PM

Title: SOH (State of Health) Information of my Zero SR/S Battery
Post by: ms_smart on August 18, 2020, 05:40:56 PM
Hi,

I own a 2020 Zero SR/S and really love this bike. I am wondering, if it possible to get some info on SOH of the battery. I regularity retrieve this data from my other BEV and find this information useful. SOH is an indication for the battery degradation. You can better plan the range, know if your bike should be impacted by warranty conditions and a report on SOH also is helpful if you want to sell the bike.

I accessed the MBB console (thanks to all the useful information how to access it and what kind of data you can retrieve with Gen3!!) and thought, that the most useful information can be retrieved with the command "bms interface".

pack_capacity_ah  shows 109. Question would be: Is this a value that is constant for all Gen3 bikes or a potential indication for SOH? If I multiply this data with target_charge_voltage 116.2 V, I get a total capacity of 12.6767 KwH. This would be in sync with the owners manual (NOMINAL CAPACITY).

If  pack_capacity_ah  is actual data, it could be an indication, that the current SOH is 100%. Appreciate any guidance if this is a possible route to SOH calculation or if not if there are other / better ways to monitor SOH.

FYI: This is my last bms interface report (SOC = 73%):

ZERO MBB> bms interface
BMS 2 interface data:

 - status 0x80000036
 - status2 0x0000
 - pack_current_ma -425
 - time since status_rpdo_received 16

 - max_charge_voltage 117.6 V
 - target_charge_voltage 116.2 V
 - pack_soc_pct 73
 - discharge_allowed 85
 - max_charge_current 128
 - max_discharge_current 1092
 - time since power_rpdo_received 31

 - pack_capacity_ah 109
 - min_pack_temp_c 24
 - max_pack_temp_c 25
 - lowest_cell_voltage_mv 3822
 - time since pack_rpdo_received 33

 - pack_open_circuit_voltage_mv 107106
 - pack_voltage_mv 107106
 - time since voltage_rpdo_received 41
 - Contactor recently closed 0

 - bms_compatibility_field 0x03
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: TheRan on August 18, 2020, 08:38:45 PM
Given the degree of precision of all the other measurements the bike makes I would imagine if that was the actual measured capacity (or perhaps a calculated estimate, I don't think you can get the actual capacity without running it from 0-100% or vice-versa but I could be wrong) it would be more precise than just to the nearest Ah (and possibly be displayed in mAh given how they show voltage in mV).
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: remmie on August 19, 2020, 12:21:55 AM
My SR/F states 106 Ah so indeed different to yours, I'll also keep an eye on it now that I have the serial cable.

ZERO MBB> bms interface
BMS 3 interface data:

- status 0x80000036
 - status2 0x0000
- pack_current_ma -2032
 - time since status_rpdo_received 293388

- max_charge_voltage 117.6 V
- target_charge_voltage 112.8 V
- pack_soc_pct 87
- discharge_allowed 95
- max_charge_current 128
- max_discharge_current 1228
- time since power_rpdo_received 293390

- pack_capacity_ah 106
- min_pack_temp_c 25
- max_pack_temp_c 26
- lowest_cell_voltage_mv 3999
- time since pack_rpdo_received 293392

- pack_open_circuit_voltage_mv 111918
- pack_voltage_mv 112086
- time since voltage_rpdo_received 293393
- Contactor recently closed 0

- bms_compatibility_field 0x03

some nice info to be found through this serial cable, for example while charging you can see the amps, voltage PWM pilot signal etc for each charger.

ZERO MBB> charging

*************************************************************
*         Charger Data                        *
*************************************************************

          Measurement,      Value,     Units,    Valid,   In Test
EVSE_Connector_State,          0,      Conn,      Yes,         0
         EVSE_Command,          1,       Yes,      Yes,         0
         Inlet_Region,          2,        EU,      Yes,         0
          Latch_State,          0,    Closed,      Yes,         0
        Pilot_Current,         11,         A,      Yes,         0
  Cable_Current_Limit,         20,         A,      Yes,         0
             Charging,          1,       Yes,      Yes,         0
   Chargers_Connected,          3,          ,      Yes,         0
   Max_Charge_Current,        127,         A,      Yes,         0
   Charge_Current_Sum,       20.5,         A,      Yes,         0
   Max_Charge_Voltage,      117.6,         V,      Yes,         0
      Target_Charge_V,      112.7,         V,      Yes,         0
      Storage_Voltage,      106.0,         V,      Yes,         0
      Target_Override,          0,        No,      Yes,         0
    SOC_Charge_Target,         90,    Pct(%),      Yes,         0
Charge_Target_Enable,          1,       Yes,      Yes,         0
   Charge_Target_Init,          1,       Yes,      Yes,         0
      Charge Complete,          0,        No,      Yes,         0
   Scheduled_Charging,          0,        No,      Yes,         0
    Schedule_Override,          0,        No,      Yes,         0
   Sched_Charging_Now,          1,       Yes,      Yes,         0
   Plugin_Window_Init,          0,        No,      Yes,         0
   Charge_Window_Init,          0,        No,      Yes,         0
   Sched_Charge_Delay,          0,       min,      Yes,         0

******************* Charging Schedule ***********************
Day, Start_Time, Offset, Plugin_Start, Plugin_Offset
Sun,      21:30,   6:00,        17:00,          7:00
Mon,      21:30,   6:00,        17:00,          7:00
Tue,      21:30,   6:00,        17:00,          7:00
Wed,      21:30,   6:00,        17:00,          7:00
Thu,      21:30,   6:00,        17:00,          7:00
Fri,      21:30,   6:00,        17:00,          7:00
Sat,      21:30,   6:00,        17:00,          7:00

******************* Chargers Connected **********************
Charger,  En,  DC V,  DC A,  AC V,  AC A, AC HZ, Limit A,  Ver,   Serial,    ID, Status
   3_kW,   1, 111.9,  20.5,   224,  10.7,    50,      11,  101,  1850154, 0x010, 0x0080
   3_kW,   0,   0.0,   0.0,     0,   0.0,     0,      11,  101,  1850216, 0x011, 0x4020
   6_kW,   0,   0.0,   0.0,     0,   0.0,     0,      11,  100,  1919024, 0x012, 0x4020



also 12V power to each consumer is shown (command "PDU")

ZERO MBB> pdu

*************************************************************
*         PDU State                           *
*************************************************************

         Channel,   Current,   Units,   Valid,  In Test,          Fault,  State
  12V_Switch_Pwr,       134,      mA,     Yes,        0,           None,      1
         ABS_MCU,        82,      mA,     Yes,        0,           None,      1
       High_Beam,         0,      mA,     Yes,        0,           None,      0
            Horn,         0,      mA,     Yes,        0,           None,      0
     Heated_Accs,      3358,      mA,     Yes,        0,           None,      1
      Aux_Outlet,        30,      mA,     Yes,        0,           None,      1
       Headlight,      1616,      mA,     Yes,        0,           None,      1
     Cntlr_Logic,       498,      mA,     Yes,        0,           None,      1
     Brake_Light,         0,      mA,     Yes,        0,           None,      1
   Right_Blinker,         0,      mA,     Yes,        0,           None,      0
    Left_Blinker,         0,      mA,     Yes,        0,           None,      0
      12V_Heater,         0,      mA,     Yes,        0,           None,      0
   DC-DC_to_Batt,         0,      mA,      No,        0, No_Measurement,      1
12V_Heater_Temp,         0,       C,      No,        0,               ,      0
   Total_Current,      5744,      mA,     Yes,        0,               ,      0



Also a nice one, the performance data.(command "perf") look at that total Wh : 920 kWh almost 1 MWh :) 

*************************************************************
*         Performance                         *
*************************************************************

                           Parameter,      Value,    In Test
                        filt_batt_ma,      29236,          0
                       filt_kph_x100,       5340,          0
                               Ws/km,          0,          0
                      Ws/km_filtered,          0,          0
                            total_Ws, -980402786,          0
                           total_Whr,     920712,          0



Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Hans2183 on August 19, 2020, 01:32:16 AM
Oh interesting! I've done 11k by now so could see some degradation. Don't have any means of reading the odb port yet though. The Bluetooth one didn't work and haven't checked any other options just yet. Where should I look for SRF/SRS specific odb options?
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: remmie on August 19, 2020, 04:05:15 AM
I used an Arduino and some components, but an USB-TTL converter should be fine as well. See the link to the zero manual
https://zeromanual.com/wiki/How_to_build_a_cable_to_access_the_MBB (https://zeromanual.com/wiki/How_to_build_a_cable_to_access_the_MBB). The baudrate for the SR/F and SR/S is 115200 (same pins as the (D)S(R)

I had an Adafruit Featherwing 3.5 inch TFT with an Adafruit Huzzah32 ESP32 microcontrollerboard laying around so whipped up some code to make the MBB console visible on that 3.5 inch TFT.
https://www.adafruit.com/product/3405 (https://www.adafruit.com/product/3405)
https://www.adafruit.com/product/3651 (https://www.adafruit.com/product/3651)


The result is in the attached picture. The code sends the charging command to the OBD connector every 2 seconds and then waits for a response, everything that is received on the serial port is added into a string and after the 2 seconds waiting time is over the following is done :
* clear there TFT
* set the cursor to the top of the TFT
* send the received string to the TFT
* send the received string to (another) serial port (For the serial monitor of the Arduino IDE), this is not needed if the TFT is used stand alone
* empty the received string (make it ready for new info)
* send the "charging" command to the ODB serial port.

below is the entire code in full for those of you who want to play around with this as well. 1 additional hardware thing though. As the ESP32 is a 3.3V microcontroller, I've put a 1k resistor in series with the RX on the ESP32 (so the signal from the MBB to the ESP). The other way around seems fine, the MBB understands the "charging" command on a 3.3V level and sends the appropriate response.

As you can see in the picture not all info fits on the screen even though the smallest possible font is used. That requires further programming. Like stripping the headers with all the asterisks, removing unnecessary spaces etc.

but as a first try (well, it took me a few tries  8) ) I think it already looks very promising. Looks like another project is starting to emerge  8)
Thinking of :
* speeding up the "drawing" of the text (there are much faster drivers for the ESP and TFT)
* scrolling through different pages of information (the TFT has a touchscreen built in)
* saving all the received data to microSD (the TFT also has a built in SD card slot)
* Making a dashboard with the data.
* etc etc



Full code :

#include <SPI.h>
#include "Adafruit_GFX.h"
#include "Adafruit_HX8357.h"

#define STMPE_CS 32
#define TFT_CS   15
#define TFT_DC   33
#define SD_CS    14
#define TFT_RST -1

int request_interval = 2000;
unsigned long last_request_sent_at = 0;
String received = "";

Adafruit_HX8357 tft = Adafruit_HX8357(TFT_CS, TFT_DC, TFT_RST);

void setup() {
  Serial2.begin(115200);
  Serial.begin(115200);
  tft.begin();
  tft.setRotation(0);
  tft.setTextWrap(0);
  tft.setTextSize(0);
  tft.fillScreen(HX8357_BLACK);
  tft.setCursor(0, 0);
}

void loop(void) {
  while (Serial2.available()) {      // If anything comes in Serial (USB),
    received = received + Serial2.readString();
  }
  if (millis() - last_request_sent_at > request_interval) {
    tft.fillScreen(HX8357_BLACK);
    tft.setCursor(0, 0);
    tft.println(received);
    Serial.print(received);
    received = "";
    Serial2.print("charging\n");
    last_request_sent_at = millis();
  }
}
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: ms_smart on August 19, 2020, 01:39:28 PM
@remmie, your arduino project is really cool and looks like I have now a new project for the next winter :)

@Hans, If you decide to build your own cable following https://zeromanual.com/wiki/How_to_build_a_cable_to_access_the_MBB (this is what I did): You may run into a problem, that the device driver (windows device manager) reports prolific usb-to-serial code 10. There are some articles on the web how to address this issue (e.g. https://www.totalcardiagnostics.com/support/Knowledgebase/Article/View/92/20/prolific-usb-to-serial-fix-official-solution-to-code-10-error)

@remmie, thanks for sharing your data! Very helpful. I have seen, that your data shows target_charge_voltage 112.8 V. In my case it is 116.3 V. If I multiply your target_charge_voltage with your pack_capacity_ah it sums up to 11.95 KWh. This would be 93% of my 12.67 KWh. Does someone has an idea what target_charge_voltage could mean? I just re-ran the BMS log with SOC 90%. My target_charge_voltage did not change (of course pack_voltage_mv increased as well as lowest_cell_voltage_mv).
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: remmie on August 19, 2020, 02:08:19 PM
In the bike's menu I have set a charge target of 90% so that the bike only charges up to 90% (you can override by keying the bike on and selecting "override" after which it will charge to 100%. This is to prolong battery life. When doing a longer tour it only takes about half an hour to top up to 100%.

So the 112.8 volt is 90% SOC voltage :) So the name "target charge voltage" is spot on. 116.3 Volt is 100% SOC voltage

glad you like the Arduino project, I'll update the progress periodically.   :D If you need help with your project, just post and let me know
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: remmie on August 20, 2020, 01:38:52 AM
Today I downloaded all the responses to commands that were available and put them in a text file.
That file is attached so you can see if there is information in there you're interested in.



Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: ms_smart on August 20, 2020, 03:45:37 AM
@remmie, target_charge_voltage  now makes totaly sense to me:)

how have you connected the OBD2 port to the Arduino and how have you powered it? Appreciate if you can give guidance on your exact HW setup.

My plan would be, to use a cheap NodeMCU ESP32 device with WLAN and no display at all. The device should connect to the OBD2 port, open the MBB console, retrieve data that I think is important to me and save it to a FTP server as well as a SQL database that I have at home. Success or any error condition should be reported through push notifications to my smartphone/smartwatch. My idea would be, that the device is permanently attached to the OBD2 port and reports out each time the device gets power (either through USB or OBD2). If the device is can't connect to my WLAN at home, it should store the data in a local file on the device and upload it once connected.

Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: remmie on August 20, 2020, 01:28:35 PM
Sure, no problem.

The power to the ESP32 is a standard USB to micro-usb cable. One of the 2 standard USB ports in the "frunk" works fine. so that's easy.
Pin 16 on the OBD port is powered with 12V when the bike is off. Though it would require a 12V to 5 volt (or 3.3V) DCDC converter. 

Data signals :
GND is easy. Pin 5 on the OBD is directly connected to the GND pin of the ESP32 (black wire in the pictures)
Data from OBD to ESP : Pin 8 of the OBD is connected via a 1kOhm resistor to the RX port of the ESP32 (green wire in the pictures)
Data from ESP to OBD : Pin 9 of the OBD is connected directly to the TX port of the ESP32 (yellow wire in the pictures)

the 1K resistor is to protect the ESP32 RX port against possible 5V from the OBD (ESP32 is a 3.3V microcontroller, even though it is powered with 5V). The TX of the ESP has no level conversion to 5V but the MBB seems to understand the commands sent on 3.3V perfectly.

Thats really it. So 2 options for you :
1) buy an OBD connector, a dcdc converter (12V to 5 or 3.3 depending on the need of the NodeMCU) and a resistor and solder it all inside the OBD connector housing and you have a permanent on system. or
2) still fit the MCU in the OBD connector but attach the usb cable to it and connect this to the USB port in the frunk to have switched power. The USB cable is then also great for reprogramming and debugging.
3) make your own setup  8)

love to see your progress on it :)
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Hans2183 on August 21, 2020, 03:58:55 PM
Almost there, I do get the log statements when toggling switches or ignition using screen on the terminal in MAC OS X

Code: [Select]
DEBUG:   08/21/2020 11:45:31.234  ..\src\Application\zero_mbb_manage_bike.c
However I'm never prompted with the menu options and I don't get any responses when I type any text. Not sure if that is a screen issue. I'll continue checking later today.

From the wiki

Quote
Mac
    Open CoolTerm (freeware, unsigned) and connect to the bluetooth serial modem and set baud rate.
Linux/Unix-like
    Open minicom/etc. and connect to the USB (likely /dev/ttyUSB0) or bluetooth serial modem and set baud rate.

Open connection and the MBB prompt should be displayed (hit enter key if not)

    Mbb1.png

Coolterm doesn't seem supported on latest OS X versions (at least I think that is why I keep getting access denied) so I also tried minicom on mac just to be sure and even with that I don't get any different output but the debug log statements.

According to this manual I should be able to hit enter to get the output.
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: remmie on August 21, 2020, 04:30:11 PM
For the menu items to appear you need to type “help” first.
Getting a correctly working terminal program is also required off course.

I also use a macbook but i was able to use an arduino as interpreter.
I don’t know of any standalone terminal programs for up to date macs unfortunately
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Hans2183 on August 21, 2020, 05:48:18 PM
Yes I was trying help and other commands but that didn't work. Even using echo directly on the tty device and cat to monitor elsewhere nothing happened.

But I now tried with an Arduino using SoftwareSerial (only have UNO and NANO boards here) and then I was able to send commands and get responses back. However data was only partial. So I then went back to my USB TTL converter and just used the Arduino Studio provided Serial Monitor and that works perfectly.

This is my output with 71% SOC displayed on the dash. So according to this my pack_capacity_ah value is at 112. This is after just over 11.000 km and tomorrow I'll have the bike exactly 1 year. "Thanks" to covid-19 it's only 1/3 of what I normally ride.

Let me know if you want me to share other data. Looks like this also has information on current speed and power usage while riding. Will have to make a logger of some sort to get that info.

Code: [Select]
ZERO MBB> bms interface
BMS 3 interface data:

- status 0x80000036
- status2 0x0000
- pack_current_ma -589
- time since status_rpdo_received 100

- max_charge_voltage 117.6 V
- target_charge_voltage 109.8 V
- pack_soc_pct 72
- discharge_allowed 87
- max_charge_current 128
- max_discharge_current 1120
- time since power_rpdo_received 10

- pack_capacity_ah 112
- min_pack_temp_c 25
- max_pack_temp_c 26
- lowest_cell_voltage_mv 3811
- time since pack_rpdo_received 27

- pack_open_circuit_voltage_mv 106815
- pack_voltage_mv 106815
- time since voltage_rpdo_received 29
- Contactor recently closed 0

- bms_compatibility_field 0x03

And this is the contraption I used

(https://i.ibb.co/3rph4sk/6-DB9-A774-CC2-F-4451-BE97-2-D6-E404-ED70-B.png) (https://ibb.co/qyN17nx)
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: remmie on August 21, 2020, 10:06:54 PM
112 Ah after 11.000 km. that seems quite good. I have 106 Ah after 13500 km.

Good to hear that the USB-TTL converter also works with the Arduino IDE on Mac. At least that is a solution that works with the latest software updates.

One thing that I haven't been able to find is the cell balance value.
But I think there is way to derive a somewhat similar figure from the available data.

your pack voltage is 106815mV and the lowest cell voltage is 3811.
106815 millivolt divided over 28 cells in series is 3814.8 mV and the lowest is 3811. So the difference between lowest and average is 3.8 mV which is quite good. Off course balance is technically the difference between lowest and highest voltage but since highest voltage is not available it will have to do.

for my data the "balance" is 112086/28-3999 = 4.1mV also nice!

and for ms_smart 107106/28 - 3822 = 3.2 mV very nice.

Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Hans2183 on August 22, 2020, 12:23:24 AM
Isn't that because @ms_smart is at 100% SOC? That it gets better balanced when reaching the full charge?

I quickly hacked up the existing OBD housing to hold the USB to TTL

(https://i.ibb.co/hX9X6hV/Screenshot-2020-08-21-at-20-20-59.png) (https://ibb.co/dbMbT1D)
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: didierm on November 13, 2020, 04:10:29 AM
Not wanting to high-jack this thread, but :

Concerning an always-on device such as the Arduino on the OBD, I was wondering :
1. whether the OBD connection is fed by the 12V battery, which is probably balanced by the battery pack ?
2. What would be the maximum allowed current drawn from the OBD-connection ?
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: ms_smart on December 09, 2020, 11:01:55 PM
didierm,

I would make bets, that the OBD port is fed by the 12V battery and decided not to go this route with an always on device.

Since i had some spare time I kicked off my project. Unfortunately I had problems connecting the Arduino with the OBD. I followed the instructions from remmie, but no success. The device I used was a Wemos D1 mini. It is small enough to fit into the OBD2 connector and I powered it through USB. This way it only sucks energy if the bike is active.

I am guessing, that the problem is the serial connection, but debugging an arduino device, that sits in the garage is not fun in winter time.

I therefore changed the setup and used a raspberry pi zero w. This is the smallest raspberry with WLAN. Why the raspberry?
I can use my TTL to USB converter that I know is working (start with a known good configuration)
I can ssh into the raspberry pi and debug from my warm desktop while the device is attached to the bike

Configuring the raspberry pi with WLAN in a headless configuration was pretty easy. I have created a config file that sits in the boot filesystem with all my passwords and parameters (this can be mounted in Windows) and a shell script, that I included into rc.local to fire it up automatically.

This is the work flow:
The bike turns on either because it charges or by the ignition key. This will initiate the boot process of the raspberry.
The script waits for wlan connection. If there is no wlan next 30 seconds it will shutdown with no action
The serial terminal /dev/ttyUSB0 will be set up (stty)
commands will be send to the tty and responds stored into a local log file
The logfile will be send to FTP server
certain parameters will be extracted from the logfile and inserted into a database table (mariadb)
Progress, Success or failure will be pushed to the smartphone using pushbullet

Although the raspberry pi is bigger in size and does not fit into the connector, it works for me since I have the charge tank and therefore the storage area in the tank is useless anyway (A smartphone still fits). Of course I currently can only test it while parking, but think it should also work while driving (the device should shutdown either because the work is done or because there is no wlan)

If you are interested I can share  the scripts.
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Hans2183 on December 09, 2020, 11:22:26 PM
All I see is yet another 12kW charge config... I wish my dealer responded to my requests to get one installed :'(

Looks like a neat solution, and having the rpi power you can do so much more with it now. Haven't looked at what gets logged while riding myself since I read it with a macbook :D. So would love to see that. Maybe something like power consumption or even performance numbers can be extracted to add to the plotted GPS points.
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: didierm on December 10, 2020, 06:06:29 AM
ms_smart,

Having an unused RPi Zero lying around, I'd love to see the scripts (sharing is caring ;) ).

If (if) the 12V battery is balanced by the main battery (which I guess it is, otherwise the power consumption by the cellular connection probably wouldn't last the battery during extended winter storage, would it ?), is there any reason not to take power from the always-on OBD pins ?
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: ms_smart on December 10, 2020, 05:05:04 PM
See attached. I am sure you can do this more elegant, but it works for me. Obviously you can configure "wait for wlan" with raspi-config, but this would cause a hard shutdown if you are riding with no access to wlan. I therefore prefer to test it in my local script and do what I please if there is no connection (in my case: shutdown).

This is in my opinion the main drawback compared to the arduino device. You will boot from the SD card and actually need the filesystem. This may get corrupted if you kill the power without proper shutdown. I therefore still would prefer the arduino device, that actually could also log data in the flash space. Arduino boots much faster (4 seconds until wlan is connected compared to 20 seconds) and should be more reliable. May be I give it an other try once it gets warmer.

To avoid file system problems, my current script is always shutting down. But this makes it hard to run while driving as suggested by Hans. You may need to implement something to allow a proper shutdown before the USB power drops.

BTW: I got confirmation from a Zero dealer, that pack_capacity_ah is indeed a proxy to calculate SOH. Zero is also using this parameter to validate warranty claims. My number is now down to 108 (from 109)
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Hans2183 on February 16, 2021, 02:19:39 AM
Some more numbers, this time from a demo model SRF seabright blue standard edition with ODO 645 km

Code: [Select]
ZERO MBB> bms interface
BMS 2 interface data:

 - status 0x80000076
 - pack_current_ma 369
 - time since status_rpdo_received 73

 - max_charge_voltage 117.6 V
 - target_charge_voltage 116.3 V
 - pack_soc_pct 92
 - discharge_allowed 59
 - max_charge_current 56
 - max_discharge_current 760
 - time since power_rpdo_received 83

 - pack_capacity_ah 109
 - min_pack_temp_c 8
 - max_pack_temp_c 9
 - lowest_cell_voltage_mv 4043
 - time since pack_rpdo_received 92

 - pack_open_circuit_voltage_mv 113343
 - pack_voltage_mv 113343
 - time since voltage_rpdo_received 95
 - Contactor recently closed 0

 - bms_compatibility_field 0x01

Code: [Select]
ZERO MBB> stats



*************************************************************
*                       MBB Settings                        *
*************************************************************
  To change settings, type:
    "set <setting name> <value1> <value2> ..."


 Setting Name                             Setting Desc                             Value         Units
+----------------------------------------+----------------------------------------+-------------+-----
 firmware_rev                                                                                 13
 num_resets                                                                                10816
 trip1_motor_revolutions_at_last_reset                                                   1525558
 total_on_time_sec                                                                       2091508 sec
 total_run_time_sec                                                                        54864 sec
 total_charger_time_sec                                                                   124890 sec
 longest_runtime_sec                                                                           0 sec
 nv_write_cycles                                                                           10815
 max_pack_temp_c                                                                              38 C
 min_pack_temp_c                                                                               0 C
 max_motor_temp_c                                                                             14 C
 max_controller_temp_c                                                                         7 C
 max_motor_speed_rpm                                                                           0
 watt_seconds_per_mile                                                                    396000
 watt_seconds_per_km                                                                      169565
 trip1_watthours_at_last_reset                                                             64424 Wh
 highly_filtered_batt_current_millamps                                                     41162
 highly_filtered_speed_kph_x100                                                             5133
 trip2_motor_revolutions_at_last_reset                                                         0
 trip2_watthours_at_last_reset                                                                 8 Wh
 event_log_read_pointer                                                             0x00001004
 event_log_write_pointer                                                            0x00BFB6BF
 event_log_entry_counter                                                                      65
 num_key_cycles                                                                              269
 charger_attached_before_last_hib                                                              0
 total_watt_milliseconds                                                            231929966528
 obd_fault_code_0                                                                             18
 obd_fault_code_1                                                                             20
 obd_fault_code_2                                                                            255
 obd_fault_code_3                                                                            255
 obd_fault_code_4                                                                            255
 obd_fault_code_5                                                                            255
 obd_fault_code_6                                                                            255
 obd_fault_code_7                                                                            255
 obd_fault_code_8                                                                            255
 obd_fault_code_9                                                                            255
 obd_fault_code_freeze_frame                                                                  20
 obd_key_cycle_num_last_dtc                                                                   45
 obd_odometer_m_last_clear                                                                 21080
 obd_odometer_m_first_mil                                                                      0
 obd_freeze_frame_field_0                                                                      0
 obd_freeze_frame_field_1                                                                      0
 obd_freeze_frame_field_2                                                                 465152
 obd_freeze_frame_field_3                                                                      0
 obd_freeze_frame_field_4                                                                      0
 ambient_ave_temp_c                                                                            5
 logging_fault_counter                                                                         0
 last_logging_fault_type                                                                       0
 ccm_ota_update_requested                                                                      0
 ccm_ota_update_ecu_id                                                                         0
 ccm_ota_update_fw_bank                                                                        0
 ccm_ota_update_fw_rev                                                                         0
 ccm_ota_update_fw_size                                                                        0
 curr_time_source                                                                              2
 utc_offset_source                                                                             3
 ccm_ota_update_failed_attempt_count                                                           0
 ccm_ota_update_success                                                                        0
 bms_fw_rev_low                                                                              255
 bms_fw_rev_low_bank                                                                           0
 bms_fw_rev_high                                                                               0
 bms_fw_rev_high_bank                                                                          0
 heated_grips_mode                                                                             0
 offset_from_dash_time_sec                                                                     0 sec
 wait_for_next_active_to_charge                                                                0
 event_log_last_sec                                                                   1613418516
 ccm_fw_version_encoded                                                                        0
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Gary on March 23, 2021, 06:35:21 PM
Hi All,

Last week, I charged the bike to 100% and she went into cell balancing mode.  Unfortunately, it took over 40 minutes to do this so I checked the data from the bms.  I have listed the results below, but two values are particularly concerning.  They are:

. - pack_capacity_ah 76
. - lowest_cell_voltage_mv 1977

Does this look like I have a dead cell?

Cheers

Gary

=========================================

.ZERO MBB> .bms

.*************************************************************
.*                           BMS Data                        *
.*************************************************************
.Additional options:
. - bms interface        Shows Interface data
. - bms commands         Shows commands sent to bms
. - bms eligibility/elig Shows eligibility information about the modules
. - bms module           Shows module data
. - bms status           Shows bms status data
. - bms info             Shows bms information

.   use -v for verbose printout including unregistered modules

. - bms login <bms> <level>  Log in to <bms> at <level>
.
Module Management:
. - LTSM state: DIS
. - Selected to:
.    - precharge: 255
.    - close contactor: 2
.    - isolation: 2
.
BMS snapshot:
. - BMS 2
.     Module 2 info:
.     - time since last PDO received 80
.     - is registered     1
.     - eligible for HV   1
.     - pack voltage      115911
.     - pack voltage oc   115127
.     - soc               100
.     - precharge command 0
.     - precharge state   1
.     - contactor command 1
.     - contactor state   1
.     - lock command      1
.     - pack full         0
.     - storage mode      Inactive
.     - num_bricks        0
.     - batt serial       20HM0354

.ZERO MBB> .bms info
BMS 2 info:
. - Batt serial:         20HM0354
. - Board part num:      40-08201-01
. - Board serial:        SJ4919ZER0227
. - Board rev:           1
. - Firmware part num:   75-08156
. - Firmware build num:  375
. - Firmware build hash: 00060d3ee9
. - Firmware id:         0
. - Firmware rev:        19
. - Firmware bank:       1
. - Firmware timestamp:  Tue, 01/05/2021 22:23:00

.ZERO MBB> .bms interface
BMS 2 interface data:

. - status 0x80000036
 - status2 0x0000
- pack_current_ma -2975
 - time since status_rpdo_received 93

. - max_charge_voltage 117.6 V
. - target_charge_voltage 116.3 V
. - pack_soc_pct 100
. - discharge_allowed 82
. - max_charge_current 3
. - max_discharge_current 1060
. - time since power_rpdo_received 103

. - pack_capacity_ah 76
. - min_pack_temp_c 14
. - max_pack_temp_c 17
. - lowest_cell_voltage_mv 1977
. - time since pack_rpdo_received 2

. - pack_open_circuit_voltage_mv 116083
. - pack_voltage_mv 116475
. - time since voltage_rpdo_received 2
. - Contactor recently closed 0

. - bms_compatibility_field 0x03
.
.ZERO MBB> .bms commands
BMS 2 commands state:
.
 - close_contactor 4
 - precharge_enable 3

. - isolation_pull_down 0
 - isolation_pull_up 0
 - isolation_inhibit no

. - control 0x003b
 - mbb_compatibility_field 0x03

.*************************************************************
.*                           BMS Data                        *
.*************************************************************
.Additional options:
. - bms interface        Shows Interface data
. - bms commands         Shows commands sent to bms
. - bms eligibility/elig Shows eligibility information about the modules
. - bms module           Shows module data
. - bms status           Shows bms status data
. - bms info             Shows bms information

.   use -v for verbose printout including unregistered modules

. - bms login <bms> <level>  Log in to <bms> at <level>
.
Module Management:
. - LTSM state: DIS
. - Selected to:
.    - precharge: 255
.    - close contactor: 2
.    - isolation: 2
.

.ZERO MBB> .charging

.*************************************************************
.*...Charging                            *
.*************************************************************
.
.          Measurement,      Value,     Units,    Valid,   In Test
. EVSE_Connector_State,          1,   Disconn,      Yes,         0
.         EVSE_Command,          0,        No,      Yes,         0
.         Inlet_Region,          2,        EU,      Yes,         0
.          Latch_State,          4,          ,      Yes,         0
.        Pilot_Current,          0,         A,       No,         0
.             Charging,          0,        No,      Yes,         0
.   Chargers_Connected,          0,          ,      Yes,         0
.   Max_Charge_Current,          0,         A,      Yes,         0
.   Charge_Current_Sum,        0.0,         A,      Yes,         0
.   Max_Charge_Voltage,        0.0,         V,      Yes,         0
.      Target_Charge_V,        0.0,         V,      Yes,         0
.      Storage_Voltage,      106.0,         V,      Yes,         0
.      Target_Override,          0,        No,      Yes,         0
.    SOC_Charge_Target,         86,    Pct(%),      Yes,         0
. Charge_Target_Enable,          1,       Yes,      Yes,         0
.   Charge_Target_Init,          0,        No,      Yes,         0
.      Charge Complete,          0,        No,      Yes,         0
.   Scheduled_Charging,          1,       Yes,      Yes,         0
.    Schedule_Override,          1,       Yes,      Yes,         0
.   Sched_Charging_Now,          1,       Yes,      Yes,         0
.   Plugin_Window_Init,          0,        No,      Yes,         0
.   Charge_Window_Init,          0,        No,      Yes,         0
.   Sched_Charge_Delay,          0,       min,      Yes,         0
.
******************* Charging Schedule ***********************
. Day, Start_Time, Offset, Plugin_Start, Plugin_Offset
. Sun,       4:00,   1:00,        16:00,         12:00
. Mon,       4:00,   1:00,        16:00,         12:00
. Tue,       4:00,   1:00,        16:00,         12:00
. Wed,       4:00,   1:00,        16:00,         12:00
. Thu,       4:00,   1:00,        16:00,         12:00
. Fri,       4:00,   1:00,        16:00,         12:00
. Sat,       4:00,   1:00,        16:00,         12:00
.
******************* Chargers Connected **********************
.Charger,  En,  DC V,  DC A,  AC V,  AC A, AC HZ, Limit A,  Ver,   Serial,    ID, Status
.
.ZERO MBB> .
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Auriga on March 24, 2021, 02:12:15 AM
Hi All,

Last week, I charged the bike to 100% and she went into cell balancing mode.  Unfortunately, it took over 40 minutes to do this so I checked the data from the bms.  I have listed the results below, but two values are particularly concerning.  They are:

. - pack_capacity_ah 76
. - lowest_cell_voltage_mv 1977

Does this look like I have a dead cell?

Cheers

Gary

=========================================

.ZERO MBB> .bms

.*************************************************************
.*                           BMS Data                        *
.*************************************************************
.Additional options:
. - bms interface        Shows Interface data
. - bms commands         Shows commands sent to bms
. - bms eligibility/elig Shows eligibility information about the modules
. - bms module           Shows module data
. - bms status           Shows bms status data
. - bms info             Shows bms information

.   use -v for verbose printout including unregistered modules

. - bms login <bms> <level>  Log in to <bms> at <level>
.
Module Management:
. - LTSM state: DIS
. - Selected to:
.    - precharge: 255
.    - close contactor: 2
.    - isolation: 2
.
BMS snapshot:
. - BMS 2
.     Module 2 info:
.     - time since last PDO received 80
.     - is registered     1
.     - eligible for HV   1
.     - pack voltage      115911
.     - pack voltage oc   115127
.     - soc               100
.     - precharge command 0
.     - precharge state   1
.     - contactor command 1
.     - contactor state   1
.     - lock command      1
.     - pack full         0
.     - storage mode      Inactive
.     - num_bricks        0
.     - batt serial       20HM0354

.ZERO MBB> .bms info
BMS 2 info:
. - Batt serial:         20HM0354
. - Board part num:      40-08201-01
. - Board serial:        SJ4919ZER0227
. - Board rev:           1
. - Firmware part num:   75-08156
. - Firmware build num:  375
. - Firmware build hash: 00060d3ee9
. - Firmware id:         0
. - Firmware rev:        19
. - Firmware bank:       1
. - Firmware timestamp:  Tue, 01/05/2021 22:23:00

.ZERO MBB> .bms interface
BMS 2 interface data:

. - status 0x80000036
 - status2 0x0000
- pack_current_ma -2975
 - time since status_rpdo_received 93

. - max_charge_voltage 117.6 V
. - target_charge_voltage 116.3 V
. - pack_soc_pct 100
. - discharge_allowed 82
. - max_charge_current 3
. - max_discharge_current 1060
. - time since power_rpdo_received 103

. - pack_capacity_ah 76
. - min_pack_temp_c 14
. - max_pack_temp_c 17
. - lowest_cell_voltage_mv 1977
. - time since pack_rpdo_received 2

. - pack_open_circuit_voltage_mv 116083
. - pack_voltage_mv 116475
. - time since voltage_rpdo_received 2
. - Contactor recently closed 0

. - bms_compatibility_field 0x03
.
.ZERO MBB> .bms commands
BMS 2 commands state:
.
 - close_contactor 4
 - precharge_enable 3

. - isolation_pull_down 0
 - isolation_pull_up 0
 - isolation_inhibit no

. - control 0x003b
 - mbb_compatibility_field 0x03

.*************************************************************
.*                           BMS Data                        *
.*************************************************************
.Additional options:
. - bms interface        Shows Interface data
. - bms commands         Shows commands sent to bms
. - bms eligibility/elig Shows eligibility information about the modules
. - bms module           Shows module data
. - bms status           Shows bms status data
. - bms info             Shows bms information

.   use -v for verbose printout including unregistered modules

. - bms login <bms> <level>  Log in to <bms> at <level>
.
Module Management:
. - LTSM state: DIS
. - Selected to:
.    - precharge: 255
.    - close contactor: 2
.    - isolation: 2
.

.ZERO MBB> .charging

.*************************************************************
.*...Charging                            *
.*************************************************************
.
.          Measurement,      Value,     Units,    Valid,   In Test
. EVSE_Connector_State,          1,   Disconn,      Yes,         0
.         EVSE_Command,          0,        No,      Yes,         0
.         Inlet_Region,          2,        EU,      Yes,         0
.          Latch_State,          4,          ,      Yes,         0
.        Pilot_Current,          0,         A,       No,         0
.             Charging,          0,        No,      Yes,         0
.   Chargers_Connected,          0,          ,      Yes,         0
.   Max_Charge_Current,          0,         A,      Yes,         0
.   Charge_Current_Sum,        0.0,         A,      Yes,         0
.   Max_Charge_Voltage,        0.0,         V,      Yes,         0
.      Target_Charge_V,        0.0,         V,      Yes,         0
.      Storage_Voltage,      106.0,         V,      Yes,         0
.      Target_Override,          0,        No,      Yes,         0
.    SOC_Charge_Target,         86,    Pct(%),      Yes,         0
. Charge_Target_Enable,          1,       Yes,      Yes,         0
.   Charge_Target_Init,          0,        No,      Yes,         0
.      Charge Complete,          0,        No,      Yes,         0
.   Scheduled_Charging,          1,       Yes,      Yes,         0
.    Schedule_Override,          1,       Yes,      Yes,         0
.   Sched_Charging_Now,          1,       Yes,      Yes,         0
.   Plugin_Window_Init,          0,        No,      Yes,         0
.   Charge_Window_Init,          0,        No,      Yes,         0
.   Sched_Charge_Delay,          0,       min,      Yes,         0
.
******************* Charging Schedule ***********************
. Day, Start_Time, Offset, Plugin_Start, Plugin_Offset
. Sun,       4:00,   1:00,        16:00,         12:00
. Mon,       4:00,   1:00,        16:00,         12:00
. Tue,       4:00,   1:00,        16:00,         12:00
. Wed,       4:00,   1:00,        16:00,         12:00
. Thu,       4:00,   1:00,        16:00,         12:00
. Fri,       4:00,   1:00,        16:00,         12:00
. Sat,       4:00,   1:00,        16:00,         12:00
.
******************* Chargers Connected **********************
.Charger,  En,  DC V,  DC A,  AC V,  AC A, AC HZ, Limit A,  Ver,   Serial,    ID, Status
.
.ZERO MBB> .


Really difficult to say. Zero doesn't publish any details about their bike firmware. We have no way of knowing, for example, if lowest_cell_voltage_mv is the lowest cell voltage since last key on, or over the entire life of the bike. There are also lots of ways to estimate capacity, some of which might not always be accurate or maybe the feature is incomplete or buggy.

I usually suggest to go by your gut. Are you experiencing range issues or bike errors? There is a fault for a battery cell that gets too low as well. Typically if one cell is low you can't charge to 100%, as its based partially on lowest cell.

You can always use the app to pull logs and send them to Zero in a message if you want confirmation

Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Hans2183 on March 24, 2021, 12:35:42 PM
What Auriga says. Solid advice. Sending logs doesn't hurt but if you don't have issues I wouldn't bother too much.
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Gary on March 24, 2021, 05:12:00 PM
Hi Hans and Auriga,

The last time I tried to download logs to the app, it took 40 minutes!  It is a pity other apps are not available.  Out of interest, how long do you expect a battery balance operation to take?

Cheers

Gary
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Richard230 on March 24, 2021, 08:08:12 PM
Hi Hans and Auriga,

The last time I tried to download logs to the app, it took 40 minutes!  It is a pity other apps are not available.  Out of interest, how long do you expect a battery balance operation to take?

Cheers

Gary

On my 2018 S with PT it seems to take about 15 minutes.
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Gary on April 08, 2021, 10:36:13 PM
Hi All,

After experimenting with Serial Port Comms packages, Linux and Windows, I have found that the easiest software package to use is CoolTerm running on a Windows 7 to 10 laptop.  The return key does what is required and the results are correctly formatted.  The results remain on screen after disconnecting the serial cable.

I have been looking at the BMS data by going through the help list of commands.  One thing I can't find is the list of bank voltages that Hans displayed in a previous post.  How do I get to this menu choice?

Does anyone know how to get to any other menus below the top level ones listed in 'help'?

Cheers

Gary
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Hans2183 on April 08, 2021, 10:51:20 PM
Which one? I think I've used bms interface mostly.
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Gary on April 08, 2021, 11:36:46 PM
Hi Hans,

I can't remember the exact post :(

It referred to BMS #0 and Bank Voltages #1 to #28 and listed individual voltages like 4147mV.  Should you take some readings with the key off and some with the key on?

Cheers

Gary
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Gary on April 09, 2021, 09:48:14 PM
Hi Hans,

Herewith the printout of the Bank Voltages:

Code: [Select]

ZERO MBB> bms
****************************************
*               BMS Data               *
****************************************

*************  BMS #0  ***************
  - BMS Board Rev             :  01
  - BMS Firmware Rev          :  39
  - BMS Serial Number         : 2014_bms_03b9fb_05452
  - Battery Serial Number     : 14qd0389
  - CAN Rx in last second     :  160

  - Pack SOC                  :  100%
  - Fuel Gauge                :  100%
  - Age of SOC Data           :  12 ms

  - Model Year                : 2014
  - Pack Capacity             :  92 AH
  - Pack Capacity Remaining   :  92 AH
  - Total Energy Used         : 464 KWH
  - Number Of Bricks          :   4

  - Pack Discharge Current    :   0 A
  - Pack Sum Voltage          :  116.088 V
  - Sag-Adj Pack Sum Voltage  :  116.118 V
  - Bank Voltages             :     1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28
                              :  4144 4145 4145 4146 4145 4145 4147 4145 4146 4146 4146 4146 4145 4146 4146 4145 4146 4146 4145 4146 4147 4146 4147 4146 4147 4147 4146 4147
  - Lowest Cell Voltage       :  4144 mV ( Cell 1 )
  - Highest Cell Voltage      :  4147 mV ( Cell 7 )
  - Pack Balance              :  3 mV
  - Lowest Cell mV            :  4144 mV
  - Age of Bank Voltage Data  :  64 ms

  - Isolation Resistance      :  15633 KOhms (0x3D11)
  - Least Isolated Cell       :  12

                              :      0     1     2     3     4     5     6     7
  - Pack Temps                :    14C   14C   14C   15C   14C   14C   14C   14C
  - Lowest Present Pack Temp  :  14 C
  - Max Pack Temp This Ride   :  15 C
  - Min Pack Temp This Ride   :  14 C
  - Age of BMS Temp Data      :  172 ms

  - Min Discharge Temp        :  -30 C
  - Max Charge Temp           :  50 C
  - Min Charge Temp           :  0 C
  - Max Charge C-Rate         :  1.0
  - Min Discharge C-Rate      :  7.5
  - Discharge Scale Value     :   255/255

  - Num Charge Cycles         :  163

  - BMS Total Bike Run Time   :  00:04:34
  - BMS Clock                 :  03/25/2017 10:34:21 ( 1490463261, 0x58D6AA1D )
  - Age of BMS Time Data      :  287 ms

  - Age of BMS Status Data    :  301 ms
  - Discrete Throttle En      :  Enabled

  CAN Status
  - Charger Attached          :   No
  - Batt Unbalanced           :   No
  - Batt Low                  :   No
  - Batt Full                 :  Yes
  - Batt Critically Low       :   No
  - Batt Temp High            :   No
  - Batt Temp Critically High :   No
  - Batt Temp Low             :   No
  - Contactor Closed          :  Yes
  - Isolation Fault           :   No
  - BMS Internal Fault        :   No
  - Cell Too High For Charge  :   No
  - Cell Too Low For Charge   :   No
  - Charge Halt               :   No
  - BMS Internal Disable      :   No

  CAN Commands
  - Close Contactor           :   No
  - Connect Module            :  Yes
  - Key On                    :  Yes
  - Charger Connected         :   No
  - Time Since Cmds Last Sent :  543 ms

1.  Which menu choice is this from?  I have been through all the main and daughter menus but can't find this information.

2.  How many BMS levels are there and how do you log into them?  Whenever I try, I get bounced back to BMS 2

Regards

Gary
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Auriga on April 10, 2021, 12:48:50 AM
1. That should be available from the regular old menu you get from the obd
2. Unknown. BMS2 is just your first BMS and not referring to login levels. Zero has told us that the new platform no longer uses fixed passwords, and requires you to talk to their servers. So it seems unlikely users will be able to get into these bikes unless someone cracks the process.
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Gary on April 10, 2021, 03:42:52 AM
Hi Auriga,

Thanks for the information.  I definitely cannot get to the cell voltages from the current menu.  I guess there are undisclosed commands that would access this information, perhaps known only to the 'authorised' dealers.  It has always annoyed me that the automotive, etc, industries keep useful information from their customers.

Regards

Gary
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Auriga on April 10, 2021, 03:58:26 AM
One more thing

The bms command listed below with the cell voltages was run on a 2014 bike. I think you have an SRF or SRS, the OS and commands are completely different.
Someone documented available commands on the MBB for that bike here:
https://zeromanual.com/wiki/Gen3/MBB_Console

I think you can get cell voltages by connecting to the BMS though via the status or stats command. But to do that on an SRF you have to remove the grey panel on the front of the battery behind the front wheel and on SRS you have to do that and remove a bunch of plastics. And t he connector is different.

Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Hans2183 on April 10, 2021, 05:19:16 PM
Indeed I can't recall voltage per cell reports on my SRF so probably another platform.
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: stevenh on April 16, 2021, 05:35:37 PM
Not thrilled with my capacity at 96AH at 8000 miles.  Balance does not look too bad.  I usually run at 80 or 85% max charge, I wonder if that has any effect on the reported AH?

Steve

ZERO MBB> bms interface
BMS 2 interface data:

 - status 0x80000036
 - status2 0x0000
- pack_current_ma -106
 - time since status_rpdo_received 315573

 - max_charge_voltage 117.6 V
 - target_charge_voltage 109.8 V
 - pack_soc_pct 76
 - discharge_allowed 60
 - max_charge_current 84
 - max_discharge_current 780
 - time since power_rpdo_received 315577

 - pack_capacity_ah 96
 - min_pack_temp_c 12
 - max_pack_temp_c 13
 - lowest_cell_voltage_mv 3855
 - time since pack_rpdo_received 315577

 - pack_open_circuit_voltage_mv 108003
 - pack_voltage_mv 108003
 - time since voltage_rpdo_received 315578
 - Contactor recently closed 0

 - bms_compatibility_field 0x03
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Hans2183 on April 16, 2021, 06:44:38 PM
my last readout was very disappointing

at ODO 11.300 km just before the charge tank debacle I had this readout (firmware version 17)

Code: [Select]

- max_charge_voltage 117.6 V
- target_charge_voltage 109.8 V
- pack_soc_pct 72
- discharge_allowed 87
- max_charge_current 128
- max_discharge_current 1120
- time since power_rpdo_received 10

- pack_capacity_ah 112
- min_pack_temp_c 25
- max_pack_temp_c 26
- lowest_cell_voltage_mv 3811
- time since pack_rpdo_received 27

now at ODO 13.299 km only (firmware version 19)

Code: [Select]
- max_charge_voltage 117.6 V
- target_charge_voltage 110.3 V
- pack_soc_pct 72
- discharge_allowed 56
- max_charge_current 76
- max_discharge_current 728
- time since power_rpdo_received 49

- pack_capacity_ah 98
- min_pack_temp_c 11
- max_pack_temp_c 12
- lowest_cell_voltage_mv 3812
- time since pack_rpdo_received 59

Bike has been sitting at 64% most of the time, after that used within 20-80% limits and kept at around 70% when not in use. Well nothing different from the first readout. Balance seems very similar. Pack temp is quite different.

I'll do a new readout after some charges.
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: stevenh on April 16, 2021, 07:26:11 PM
Similar mileage, much lower AH.   :-[

Steve

****************************************
*               Bike Status            *
****************************************


 Bike State: STOP

 Key       : ON
 Kickstand : DOWN
 Kill SW   : RUN
 Charger   : DISCONNECTED
 Amb Temp  : 14 C
 12V batt  : 13096 mV

 Bike Control: 0x4036
 Bike Disable: 0x00

* * * BATTERY INFO * * *

 BMS | SOC |  Pack V  | Current | Capacity|  L cell  | H temp | L temp | Cont | Elig
 ----+-----+----------+---------+---------+----------+--------+--------+------+------+
   2   87 %  111378 mV  53 mA     96 AH    3975 mV    14 C    13 C      +     +

* * * CONTROLLER * * *
 Motor RPM:             0 rpm
 Motor Temperature:     17 C
 DC Bus Voltage:        111500 mV
 Fault Code:            0 level- 0
 Last time Temp PDO     20 s, 451000 us

* * * CHARGER INFO * * *
 - No chargers registered.

* * * DASH . TCS * * *
 Odometer:      11351 km
 Ride Mode:     Custom
 Traction Mode: Street

* * * FAULTS and DISABLES * * *
Active faults:


Pending faults:
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: stevenh on April 16, 2021, 08:55:58 PM
Sorry Hans, I did not see the second set of data.  I guess we line up pretty well, but both lower than we'd expect.

Steve

Similar mileage, much lower AH.   :-[

Steve

****************************************
*               Bike Status            *
****************************************


 Bike State: STOP

 Key       : ON
 Kickstand : DOWN
 Kill SW   : RUN
 Charger   : DISCONNECTED
 Amb Temp  : 14 C
 12V batt  : 13096 mV

 Bike Control: 0x4036
 Bike Disable: 0x00

* * * BATTERY INFO * * *

 BMS | SOC |  Pack V  | Current | Capacity|  L cell  | H temp | L temp | Cont | Elig
 ----+-----+----------+---------+---------+----------+--------+--------+------+------+
   2   87 %  111378 mV  53 mA     96 AH    3975 mV    14 C    13 C      +     +

* * * CONTROLLER * * *
 Motor RPM:             0 rpm
 Motor Temperature:     17 C
 DC Bus Voltage:        111500 mV
 Fault Code:            0 level- 0
 Last time Temp PDO     20 s, 451000 us

* * * CHARGER INFO * * *
 - No chargers registered.

* * * DASH . TCS * * *
 Odometer:      11351 km
 Ride Mode:     Custom
 Traction Mode: Street

* * * FAULTS and DISABLES * * *
Active faults:


Pending faults:
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Hans2183 on April 16, 2021, 09:03:19 PM
The demo bike that I rolled over 1.000 km ODO had 106Ah from what I recall. So these values are all over the place. Really curious if a few more read outs will show any difference. I'll keep you posted.
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: NervEasy on April 16, 2021, 09:10:04 PM
Ex demo now my bike has 101Ah at 2200km. Now at 3500 will again check when possible.
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: NervEasy on April 16, 2021, 09:14:52 PM
I have a feeling this value is part of the problem. The bike doesn't really exactly know how much it can hold and estimates while riding using the wrong Ah value. Then when stopped it falls back to voltage measurement when the pack has stabilized (this is a good measure of % when batt is under no load). Which paints a totally different picture so the bike "magically" adjusts it's SoC.

When fully discharged and charged you can kinda reset this parameter so the magic recharging is less pronounced.

Just speculation...
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Hans2183 on April 20, 2021, 03:12:14 AM
did some more readouts today but no change in Ah so far

unused for a few days, showing 68% SOC on dash (70 in system)

Code: [Select]
- max_charge_voltage 117.6 V
- target_charge_voltage 110.3 V
- pack_soc_pct 70
- discharge_allowed 61
- max_charge_current 92
- max_discharge_current 792
- time since power_rpdo_received 64

- pack_capacity_ah 98
- min_pack_temp_c 14
- max_pack_temp_c 15
- lowest_cell_voltage_mv 3793
- time since pack_rpdo_received 74

- pack_open_circuit_voltage_mv 106305
- pack_voltage_mv 106299

then let it charge up to 100% using a 220V adapter and waiting for it to stop charging (so balanced)

Code: [Select]
- max_charge_voltage 117.6 V
- target_charge_voltage 110.3 V
- pack_soc_pct 100
- discharge_allowed 91
- max_charge_current 56
- max_discharge_current 1168
- time since power_rpdo_received 58

- pack_capacity_ah 98
- min_pack_temp_c 17
- max_pack_temp_c 19
- lowest_cell_voltage_mv 4137
- time since pack_rpdo_received 68

- pack_open_circuit_voltage_mv 115956
- pack_voltage_mv 115956

And next is after riding it down to 38% (on dash, 40% according to BMS)

Code: [Select]
- max_charge_voltage 117.6 V
- target_charge_voltage 110.3 V
- pack_soc_pct 42
- discharge_allowed 45
- max_charge_current 108
- max_discharge_current 588
- time since power_rpdo_received 112

- pack_capacity_ah 98
- min_pack_temp_c 17
- max_pack_temp_c 20
- lowest_cell_voltage_mv 3629
- time since pack_rpdo_received 0

- pack_open_circuit_voltage_mv 101681
- pack_voltage_mv 101709

And even after charging it back up no difference in that Ah number reported.
Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Hans2183 on May 01, 2021, 05:29:04 PM
In better news riding beyond 0% does actually calibrate the system and we do get higher numbers after doing so. I'll make a follow up later on with actual numbers but this is already a quick explanation.

https://youtu.be/orZwToP07cU

Title: Re: SOH (State of Health) Information of my Zero SR/S Battery
Post by: Crissa on May 01, 2021, 11:09:36 PM
More accurate range display... or longer battery pack life.  What a choice.  I suppose a few excursions to zero over a pack's life (with immediate recharging) wouldn't be so bad.  And if it kept your display mire accurate, you could avoid over/under charging better.

-Crissa