FlexiBMS Lite - New approach to get past Vaporware stage

That BMS looks really small. That would be something awesome for my costumers who want charge only battery packs :yum:

I love all of this!!

Well except:

OMG no! Some folks plug their battery gauges into the charge ports. I’m not sure the reason to do this is worth the cost and reduced functionality.

Overall I love the approach though.

I’d like to add that the #1 reason off-the-shelf BMS aren’t adequate for esk8 – besides obvious reasons like discharge current too low – is that they don’t have roll-to-start.

I think you should look at it from that perspective. What do we need that a regular BMS doesn’t provide? Roll-to-start is like the only thing… and maybe auto-poweroff after 1 hour of no activity. That’d allow you to not even have a power switch on your skate… just put it on the ground and skate. And step off it when you’re done.

2 Likes

That 10S charger you linked is a piece of shit. I’ve had more than one fail one. The only chargers I’ve ever had fail.

Like for the precedent FlexiBMS project, I really like your approach. CAN comm is really needed IMHO. @rpasichnyk proved it this the DieBieMS integration into Metr app.

However, not sure that the current COMM protocol coded into VESC FW supports commands such as “Stop”, mostly for the Master one. But, this is something really interesting and it’s worth to PR it to Vedder. :slight_smile:

How is roll-to-start usually implemented? Motor controller senses wheel rotation and sends a command to e-switch to turn on?

They do? Well I mean I can just take the other N-channel FET off and voltage would be able to go to to the charger input. Problem is that I need to have charger_sense circuitry to detect when a charger is plugged in and the current implementation is done as a resistive divider, which would cause extra quiescent current draw from the battery when not charging if the FETs are not in a fully blocking config.

Otherwise I would need to go for P-channel and N-channel setup for the sense circuit for it to be able to completely disable the quiescent current draw.

Aren’t the most used BMS’ the bestech ones? I mean they are pretty purely hardware configured for a fixed series cell configs. I guess flexibility with one single BMS board in small package.

Any two of the three motor phase leads are sent to the BMS, when they have an AC voltage on them, the BMS turns on. Each time an AC voltage is registered, turn-off-time is set to one hour from right now, because it means the motor is turning.

Has this ever been implemented in a BMS? Pretty exotic to bring two motor phases to the BMS, just wiring wisem you’ll have to split your motor connections before the motor controller. Maybe Mellow have done it, because their motor controller and BMS is on the same board, but I would still hazard a guess that the motor controller sends a signal to the BMS.

Honestly, a can bus powered cell voltage monitor is what we need. Roll your own BMS are great, but something that lets us monitor what a generic bms is doing is the missing link.

Dont compete with china. Find a nieche and exploit that, and right now thats a dead zone with only high cost options. Nothing against them, but the number of people using d140 bms is at least an order of magnitude larger.

4 Likes

Lots of antispark do this. Which is basically only because the BMS is incapable.

@JTAG is doing it via canbus.

dont know how.

To be specific I’m not sure the CAN comms are even needed, it just flips ENABLE signal on the BMS. Although he might be doing some extra comms on the CAN.

It’s pretty much as I guessed in the first place. As the motor is spun up, it generates voltage on the ESC, which then wakes up. It then wakes-up the BMS and starts CAN communication.

So the motor powers the ESC long enough to inform the BMS to wake-up.

Push to start :heart_eyes::heart_eyes: best thing I have ever done to my board.

11 Likes

Does the “EnableRequest” through the opto-isolator switch on the discharge path or do you also do some extra data on the CAN for that?

No it is indeed just a turn on signal, its the 5V that is being created by the motor back emf ( by the buck converter in the esc), wasn’t my idea ( someone in the thread came up with the idea ( don’t remember who exactly but he / she deserves the credits ), I just tuned my power on state firmware for a better user experience ).

There is no smart BMS implementation to the VESC yet, I am now tuning / making the charge and discharge throttling mechanism so it is hopefully not far away.

1 Like

Any personal opinions on @b264 's proposed way to implement it?

IMO it’s a bit redundant and silly wiring wise. Motor is already connected to the ESC, so just get a enable signal from that.

And either way this is a bit redundant topic for the Lite version, as it won’t have disharge path mosfets integrated onto it. Why not just wire a 5V supply from the ESC to an independent e-switch in this case?

So you are going to make this BMS charge only? Then there is also no need for push to start. And there are many ways to do push to start, the 5V BMS enable was just a very minimal effort implementation for mine, just a solder blob behind a connector if you are very lazy.

What are you going to do when someone drains the battery pasts its (most likely lower) limit? Because this will definitely happen :sweat_smile:. If you cant prevent lower limit discharge it is only half of a BMS :zipper_mouth_face:.

2 Likes

This right here. If you really think about what we want from charge only bms – really think about it:

  • 30q and other high quality 18650 tend to stay in balance
  • charging to 100% (101.9% really with typical bms 4.25v cutoff) is not good for the cells
  • most boards have ridiculous capacity, thus don’t need to charge to 100%
  • not charging to 100% means no balancing
  • it’s additional wear and tear to balance your cells on each charge via bms (for high cells overcharge slightly, then drain, repeat until low cells catch up)
  • typical bms gives no indication what it’s doing (is it balancing? which cell? is it stopping charge? what’s it doing?? is it running correctly or broken?).
  • it’s a pain in the rocks to measure cell voltages once everything is installed

I think a more reasonable strategy is:

  • bulk charge to 4.1v/cell
  • have easy way to check voltage
  • don’t balance charge
  • if when you check the cells are badly out of balance, take board apart to fix.
  • if slightly out of balance to the point where bulk charging to 4.1v/cell is a bit scary, take pack out of board and fix the unbalance (probably tp4056 boards on low groups is the way to do this efficiently)

So yeah I’m with @akhlut. There are plenty of small charge-only 12s bms. There are no compact cell voltage monitors with indicators (display/bluetooth/canbus). And not many 13s bms.

But @SimosMCmuffin I love the project! Probably we’re talking about a whole different thing.

A typical pack, 4p 30q, is 12ah. 12ah / .006a == 2000h. 2000h/24h == 83.3 days, which means we need a loud caution label, and cannot build the bms into the pack. Must be disconnected for medium to long term storage. Can you put a little switch on it?

3 Likes

Not so sure about this…

I meant that the LTC6803 5V regulated output can only supply a max of 4-6 mA, which means I can’t really power anything hungry from it. The MCU in running state is around 1-6 mA (dependent on clock speed) and in low-power state needs only 10-200 µA (depending on sleep mode) and rest of the devices can be turned off by disabling the 5V buck SMPS.

@akhlut Can you link to these BMS’? Something that supports CANbus? Has an actual battery management ICs and not just independent cell level logic gate discharge implementation?

I don’t think the layman user wants to keep checking on their battery to check if it’s balanced and especially disassemble their board to get to the battery if it does need balancing…

3 Likes

Anything else is blind faith.

I know we’re getting off-topic so I’ll try to shut up :slight_smile: