FlexiBMS Public Support, Feature & Troubleshooting Thread

GND depends on your boards switching

Is part of the robogochi,metr dule VESC set up.

Hey guys, Iā€™ve been messing all day trying to get the Flexi to apear on FreeSK8 app

Updated from the FW 0.6 to 0.18 and nothing so far, even with charger or USB connected. Will open my ESC enclosure to recheck the wiring

Here is how I have it setup, and donā€™t if it matters, my board is from the first beta (0.4 HW)

I get no led blinks with nothing connected, and the usual blue, green and yellow (USB / charging / balancing)

$36=1 (0/1, CAN activity status LED tick, good for testing that the BMS is receiving CAN traffic, Boolean)
$37=42 (CAN ID number for this BMS unit, if using multi-BMS setups, all BMSā€™ need to have unique CAN ID, uint16_t)
$40=1 (1 or 0, can be used to allow CAN activity to wake-up the BMS from sleep, increases sleep mode quiescent current slightly, set to 0 to disable, boolean)

Turns out I had the CAN low and the signal that turns on my front light switched, the funny thing is that somehow the light always worked, and I checked a bunch of times to make sure

But in the end, this probably fried the CAN chip on Flexi, I have been applying 5V to the CAN low for more than I year, donā€™t know if that would be enough to fry it

Unless there is something more to get it to work I give up, tested continuity after fixing the wires and itā€™s all good

FreeSK8 is looking for ID 10

3 Likes

Oh hell, this might explain all the issues

Iā€™m almost sure that one of my VESCs is also on 10

Will test this, thanks a lot

1 Like

I own you a bottle of your favorite beverage or plate of food, thanks immensely

For those that might encounter themselves in the same boat, just changing the CAN ID wonā€™t do it, you have to restart the BMS after doing it, either unplug all leads from it and plug again, or just send $K on the terminal, the last is what I did since I have all connections soldered

As a side note, apparently 0.4 boards donā€™t support the monitor CAN traffic function, so I just set the 5V regulator to be on for 48h after a charge, that should be good for most occasions I would want to check the cells

4 Likes

:partying_face::partying_face: awesome dude!

3 Likes

I will indeed keep this in mind, as Iā€™m using a Flexi with the FreeSk8 parts in my next build.

Thank you.

3 Likes

Hey gang. Took my board apart for the first time since I built it, and noticed that when off, the flexi is blinking blue around every 7 seconds. After looking at the wiki I know a solid blue light is 5v detected, but the board is off, and the light isnā€™t solid.

Any idea of what Iā€™m seeing here?

1 Like

@SimosMCmuffin does anyone have an answer to this? Iā€™m still having the same issue.
Thanks

Sebastian

ā€¦ it still stops charging while the vesc says 48v pack voltage and 80% charge.
Do these reads look healthy to you? canā€™t work out whatā€™s wrong as to me they all seem relatively even. Thanks Seb

State:4038:4023:4035:3987:4038:4036:4038:4036:3991:4030:4038:4012:47691-47691-47710:0-0-0:0-0-0:305:312:0:notCharging:
State:4038:4023:4036:3987:4036:4036:4038:4036:3991:4030:4038:4012:47691-47691-47710:0-0-0:0-0-0:305:313:0:notCharging:
State:4038:4023:4035:3987:4038:4036:4038:4036:3991:4030:4038:4012:47691-47691-47710:0-0-0:0-0-0:305:312:0:notCharging:
State:4038:4023:4035:3988:4036:4036:4038:4035:3991:4030:4038:4012:47691-47710-47710:0-0-0:0-0-0:305:313:0:notCharging:

switchin charger on here!

State:4039:4024:4036:3988:4038:4038:4039:4038:3993:4032:4039:4014:47691-47710-48674:0-49273-50177:0-0-9141:305:313:0:chargingEnd-cell3TermVoltage:
State:4038:4024:4036:3987:4038:4036:4038:4036:3991:4030:4038:4012:47691-47710-47710:49112-49433-49453:0-0-0:305:313:0:chargingEnd-cell3TermVoltage:
State:4038:4024:4036:3987:4036:4036:4038:4036:3991:4030:4038:4012:47691-47710-47710:49413-49433-49433:0-0-0:305:313:0:chargingEnd-cell3TermVoltage:
State:4038:4023:4036:3988:4038:4036:4038:4036:3991:4030:4038:4012:47691-47710-47710:49413-49413-49433:0-0-0:305:312:0:chargingEnd-cell3TermVoltage:
State:4038:4023:4036:3987:4036:4036:4038:4035:3991:4030:4038:4012:47691-47691-47710:49393-49413-49433:0-0-0:305:312:0:chargingEnd-cell3TermVoltage:
State:4038:4023:4035:3988:4036:4036:4038:4035:3991:4030:4038:4012:47691-47710-47710:49393-49413-49433:0-0-0:305:312:0:chargingEnd-cell3TermVoltage:
State:4038:4023:4036:3987:4038:4036:4038:4035:3991:4030:4038:4012:47691-47691-47710:49393-49413-49433:0-0-0:305:312:0:chargingEnd-cell3TermVoltage:
State:4038:4024:4036:3987:4036:4036:4038:4035:3991:4030:4038:4012:47691-47710-47710:49393-49413-49433:0-0-0:305:313:0:chargingEnd-cell3TermVoltage:
State:4038:4023:4035:3987:4036:4036:4038:4035:3991:4030:4038:4012:47671-47691-47730:49393-49433-49433:0-0-0:305:312:0:chargingEnd-cell3TermVoltage:
State:4038:4023:4036:3987:4038:4036:4038:4035:3991:4030:4038:4012:47691-47710-47730:49393-49413-49453:0-0-0:305:312:0:chargingEnd-cell3TermVoltage:
State:4038:4023:4035:3987:4036:4036:4038:4035:3991:4030:4038:4014:47671-47710-47730:49393-49413-49453:0-0-0:305:313:0:chargingEnd-cell3TermVoltage:

Fault count:
Latched faults:
State:4038:4023:4036:3987:4036:4036:4038:4036:3991:4030:4038:4012:47691-47691-47730:49393-49413-49453:0-0-0:305:312:0:chargingEnd-cell3TermVoltage:
State:4038:4023:4035:3987:4036:4036:4038:4036:3991:4030:4038:4012:47691-47691-47710:49393-49433-49433:0-0-0:305:312:0:chargingEnd-cell3TermVoltage:
State:4038:4023:4035:3987:4036:4036:4038:4035:3991:4030:4038:4012:47691-47691-47710:49393-49413-49433:0-0-0:305:312:0:chargingEnd-cell3TermVoltage:

Post your flexi settings: $$

Ha! sorry i thought i did! lol.
<\r><\n>
$0=12 (Pack cell count; number of series cells in the battery pack, set to 0 to disable cell sensing, Uint)<\r><\n>
$1=10000 (Max charging current; mA (milliAmps), maximum current allowed to flow to battery, Uint)<\r><\n>
$2=300 (Charging termination current; mA (milliAmps), stop charging when current drops below this, Uint)<\r><\n>
$3=2000 (Minimum cell voltage; mV (milliVolts), minimum allowed cell voltage, no charging allowed if cell voltage below this, Uint)<\r><\n>
$4=4250 (Maximum cell voltage; mV (milliVolts), maximum allowed cell voltage, no charging allowed if cell voltage above this, Uint)<\r><\n>
$5=10000 (Minimum charger voltage; mV (milliVolts), minimum allowed charger voltage, no charging allowed if charger voltage below this, Uint)<\r><\n>
$6=55000 (Maximum charger voltage; mV (milliVolts), maximum allowed charger voltage, no charging allowed if charger voltage above this, Uint)<\r><\n>
$7=7000 (Minimum pack voltage; mV (milliVolts), minimum allowed pack voltage, no charging allowed if pack voltage below this, Uint)<\r><\n>
$8=52000 (Maximum pack voltage; mV (milliVolts), maximum allowed pack voltage, no charging allowed if pack voltage above this, Uint)<\r><\n>
$9=4180 (Charging cell termination voltage; mV (milliVolts), donā€™t allow any cell to go above this voltage when charging, Uint)<\r><\n>
<\r><\n>
$10=50400 (Charging pack termination voltage; mV (milliVolts), donā€™t allow pack to go above this voltage when charging, Uint)<\r><\n>
$11=4150 (Cell balancing voltage; mV (milliVolts), allow balancing once a cell goes above this voltage, Uint)<\r><\n>
$12=10 (Allowed difference between cell groups; mV (milliVolts), maximum allowed voltage difference between cell groups, balance if difference bigger, Uint)<\r><\n>
$13=0 (Minimum external NTC thermistor temperature; K (Kelvin), set to 0 to disable, if enabled, the minimum temperature above which charging is allowed, Uint)<\r><\n>
$14=0 (Maximum external NTC thermistor temperature; K (Kelvin), set to 0 to disable, if enabled, the maximum temperature below which charging is allowed, Uint)<\r><\n>
$15=260 (Minimum PCB temperature; K (Kelvin), the minimum temperature above which charging is allowed, Uint)<\r><\n>
$16=330 (Maximum PCB temperature; K (Kelvin), the maximum temperature below which charging is allowed, Uint)<\r><\n>
$17=0 (0/1, allow cell balancing outside of charging, Boolean)<\r><\n>
$18=30 (Fault wait time; s (seconds), How long to wait after fault state before trying to start charging again, Uint)<\r><\n>
$19=1.0000 (Gain for Battery voltage ADC conversion, Float)<\r><\n>
<\r><\n>
$20=0.0 (Offset for Battery voltage ADC conversion, Float)<\r><\n>
$21=1.0000 (Gain for Charger voltage ADC conversion, Float)<\r><\n>
$22=0.0 (Offset for Charger voltage ADC conversion, Float)<\r><\n>
$23=1.0000 (Gain for Current sense ADC conversion, Float)<\r><\n>
$24=0.0 (Offset for Current sense ADC conversion, Float)<\r><\n>
$25=1.0000 (Gain for External NTC temperature probe conversion, Float)<\r><\n>
$26=0.0 (Offset for External NTC temperature probe conversion, Float)<\r><\n>
$27=1.0000 (Gain for Internal MCU temperature conversion, Float)<\r><\n>
$28=0.0 (Offset for Internal MCU temperature conversion, Float)<\r><\n>
$29=3380 (External NTC probe Beta-value; external NTC sensorā€™s beta value, Uint)<\r><\n>
<\r><\n>
$30=16 (ADCā€™s oversampling setting; allowed values (1, 2, 4, 8, 16), Uint)<\r><\n>
$31=100 (h (Hours), how long to stay in active mode, Uint)<\r><\n>
$32=0 (0/1, force 5V regulator always on when battery connected, Boolean)<\r><\n>
$33=3 (balancing temperature ratio, dynamically adjusts the max allowed balancing resistors based on BMS temperature, set to 0 to use static maximum, Uint)<\r><\n>
$34=3800 (Storage discharge voltage; mV (milliVolts), if storage discharge enabled, then pack will be discharged to this voltage, Uint)<\r><\n>
$35=0 (h (Hours), how long to wait from last CHARGING event to start discharging the pack to the storage voltage, set to 0 to disable, Uint)<\r><\n>
$36=0 (0/1, CAN activity status LED tick, good for testing that the BMS is receiving CAN traffic, Boolean)<\r><\n>
$37=10 (CAN ID number for this BMS unit, if using multi-BMS setups, all BMSā€™ need to have unique CAN ID, uint16_t)<\r><\n>
$38=0 (0/1, if set to 1, keeps 5V regulator on if activeTimer is not expired even if USB, charger or Opto not active, Boolean)<\r><\n>
$39=0 (h (Hours), up to how many hours a CAN-frame reception can extend activeTimer, set to 0 to disable, uint16_t)<\r><\n>
<\r><\n>
$40=0 (1 or 0, can be used to allow CAN activity to wake-up the BMS from sleep, increases sleep mode quiescent current slightly, set to 0 to disable, boolean)<\r><\n>

Iā€™m using Molicel P42a 12s5p

Those settings look reasonable to me.

It could be that as you connect the charger the highest cell voltage raises above 4180 mV, at which point the BMS terminates the charge.

You could try to temporarily (!) set $4 and $9 to a higher value, e.g. $4=5000, $9=5000 and see if you can continue charging then. Obviously youā€™ll want to keep an eye on the cell voltages as youā€™re doing this and disconnect the charger immediately if some p-group voltage raises significantly above 4200 mV.

A safer way of doing this would be to discharge the pack and then monitor the voltages as youā€™re charging and see at which point exactly the BMS terminates the charge. (Do this without changing any BMS settings.)

the earlier post shows exactly where it terminates while charging. thatā€™s whats confusing me as it should not trigger to stop.

What FW you have on it? There was one that the fault flags was switched and the cell overvoltage was actually charger over voltage

What Iā€™d like to see is the transition from the charging to the end-of-charge state. In your log you go from not-charging straight to end-of-charge. Thereā€™s not even a single log line in the charging state and thus we donā€™t know what the voltages would have been in that state.

in mey earlier post was this:

State:4038:4023:4035:3987:4038:4036:4038:4036:3991:4030:4038:4012:47691-47691-47710:0-0-0:0-0-0:305:312:0:notCharging:
State:4038:4023:4036:3987:4036:4036:4038:4036:3991:4030:4038:4012:47691-47691-47710:0-0-0:0-0-0:305:313:0:notCharging:
State:4038:4023:4035:3987:4038:4036:4038:4036:3991:4030:4038:4012:47691-47691-47710:0-0-0:0-0-0:305:312:0:notCharging:
State:4038:4023:4035:3988:4036:4036:4038:4035:3991:4030:4038:4012:47691-47710-47710:0-0-0:0-0-0:305:313:0:notCharging:

switchin charger on here!

State:4039:4024:4036:3988:4038:4038:4039:4038:3993:4032:4039:4014:47691-47710-48674:0-49273-50177:0-0-9141:305:313:0:chargingEnd-cell3TermVoltage:
State:4038:4024:4036:3987:4038:4036:4038:4036:3991:4030:4038:4012:47691-47710-47710:49112-49433-49453:0-0-0:305:313:0:chargingEnd-cell3TermVoltage:
State:4038:4024:4036:3987:4036:4036:4038:4036:3991:4030:4038:4012:47691-47710-47710:49413-49433-49433:0-0-0:305:313:0:chargingEnd-cell3TermVoltage:
State:4038:4023:4036:3988:4038:4036:4038:4036:3991:4030:4038:4012:47691-47710-47710:49413-49413-49433:0-0-0:305:312:0:chargingEnd-cell3TermVoltage:
State:4038:4023:4036:3987:4036:4036:4038:4035:3991:4030:4038:4012:47691-47691-47710:49393-49413-49433:0-0-0:305:312:0:chargingEnd-cell3TermVoltage:
State:4038:4023:4035:3988:4036:4036:4038:4035:3991:4030:4038:4012:47691-47710-47710:49393-49413-49433:0-0-0:305:312:0:chargingEnd-cell3TermVoltage:
State:4038:4023:4036:3987:4038:4036:4038:4035:3991:4030:4038:4012:47691-47691-47710:49393-49413-49433:0-0-0:305:312:0:chargingEnd-cell3TermVoltage: