FlexiBMS Lite - Flexible Configuration BMS w/ CAN-bus

:arrow_up:

the money shot.

5 Likes

Newest vesc tool shows battery temp and SOC rollback. Anybody know if high and low cell row voltages are on the road map?

Well my loop key is on the + path so I can leave it as it is. Thank you!


Can someone confirm that this is where I should connect the BMS and Davega? It does not say CANL & CANH like the other Vescs :face_with_raised_eyebrow:

You can’t. At least without some hacks.
You need to solder wires on the single/dual switch.
I did it on mine. It’s doable but not straight forward…

3 Likes

5 Likes

oh no… that sucks :frowning:

It’s not that hard. You won’t see it on the previous picture, but secure the wires and solder joint with a bit of hot glue.You don’t want some wire to become loose and touch something.

1 Like

And then just hook it up with the Flexi and Davega in parallel?

No, DAVEGA connects to the UART port (where you drew the arrow).

Flipsky made a VESC without a CAN pinout? What the heck? What were they thinking?

8 Likes

Your expectations are WAY too high.

5 Likes

The can in internally routed on the PCB, since that’s what 99% of people use their can bus for.
Only the METR Pro CAN and FlexiBMS so far make use of the can bus .

1 Like

The thing is that all other Flipsky Vescs do have Can connectors :stuck_out_tongue: Only this one dont.

1 Like

It rules out 4WD setup at the very least, for which reason I would consider it a bad decision.

Also DieBieMS uses CAN.

(And DAVEGA CAN prototype. :wink: )

8 Likes

Fair enough, forgot about the DieBMS even though I have one :sweat_smile:.
Any self respecting person doesnt use these in 4WD though lol.

3 Likes

I’d recommend not connecting the GND on the CAN-connector at first, but it might be needed in some wiring setup.

There are indeed problems that connecting the GND on the CAN-connector can cause, especially if there is a mechanical- or E-switch that only disconnects the GND connection between the pack and ESC, because in that case the GND connection on the CAN-connector will provide a ground connection back to the pack, and the ESC will stay powered, if there is any current above 100 mA, it should burn up the fuse purpose 120R resistor placed between the pack GND and the GND on the CAN-connector on the BMS and prevent any series damage.

“Why still then have GND available on the CAN-connector?”, because the CAN-bus still needs to be ground referenced (in car applications, it’s the vehicle’s chassis) and to provide that properly, it’s better to have a real GND connection available. This might present the aforementioned problems in the EV use case, but for example if you’re using the BMS in a solar/power-pack and you use something external like an Arduino or Raspberry Pi with a CAN-bus shield for example to log the pack info via the CAN-bus, then you might need to connect the GND so the CAN-bus is properly referenced.

Essentially GND-disconnecting (low-side) power switches suck and true gods only use high-side switches (B+ side loop-key for example), or both VCC and GND disconnection.

Currently, the best practice would be to connect the 5V line from the VESC to the OPTO_ENABLE input on the Lite’s CAN-connector, so it wakes-up the BMS from low-power state (if it has gone to low-power mode) when the VESC powers up.

There is a new feature in 0.18 FW (not out yet), that scans the CAN-bus periodically in the low-power mode for activity and can wake-up from that, so you wouldn’t need to hook-up the 5V from the VESC anymore to wake the BMS up, just the CAN-bus.

There are some inaccuracies with using the VESC’s reported battery voltage. First of all, it has the wiring related resistive losses added to it (although it shows the voltage that the VESC sees, so you can figure out if your wires suck) and at least on mine VESCs, the indicated voltage is around 0.7V too low to the pack’s real voltage and there is no gain or offset calibration available to this in the VESC tool AFAIK.

The BMS will report the “true” voltages at the cells themselves, no cabling losses and better accuracy.

18S is the highest I have seen a single battery stack monitor IC support, so going above that means moving to multi-IC solutions and that presents a whole new power supply scheme challenges along with a lot of testing needs that I don’t want to put my fingers in quite yet.

Basically, once going above 18S, the design might as well go up to 100S+ configurations. What the exact hardware topology will look like is more like a EV car setup, although there is still the “distributed” and “centralized” topologies to consider.

I have been toying with the idea of refreshing the current “Lite” into “Lite 12S” and the 18S would be called “Lite 18S” to provide clear naming distinction between the two models. It would be possible to do a component upgrade at the same time for the charging path on the 12S-model, to increase the charging current capability. “How high?” don’t know how much higher, but a couple Amps at least up to 12 Amps, or so I would ballpark based on couple components I’ve been looking at.

The 18S, will likely be able to support at least 15A, because of increased board size, which allows for more dissipative cooling area and paralleling charging Mosfets to lower the thermal generation.

Software wise it shouldn’t be too hard to add different hardware specific limits, as long as the electrical connections are otherwise generally the same.


Yep. The CAN-bus is still available, but you need to go and solder directly to the board, as there isn’t a dedicated connector available.

5 Likes

Project(s) news:

I completed a couple PCB designs last week and got started working on the Lite 18S design (component selection/sourcing, a little bit of schematic work). I’m sending the first parcel through DHL this week and figuring out the workflow for shipping with them. Firmware licensing is in 'ze works. Paypal-paying has not progressed since last time.


Test panel design for the Lite. First panel I have actually ever designed, as when I was still working at the engineering company, we let the assembly fab design their own panels, so they fit their own assembly line machines properly, but as I will be assembling this panel, I needed to panelize the design myself.

Mind you, this particular design is only for testing/practicing the paneling design and won’t produce functional boards (actual design is 4-layers, this test panel is only 2-layers). I wanted to test different break-off tab styles, to see which produce the cleanest result (cutting off the tabs with an edge cutter) and leave the least for post-processing (sanding/filing down the rough edge).


Test board for the USB PD-communication. Has a SMD USB-C connector, STUSB4500 USB consumer PD -negotiator IC and a STM32G0-series MCU, which has a USB PD peripheral inside.
Idea is to first command the PD via the simpler STUSB4500 and then analyze the bus-communication and form a better understanding of the negotiation steps. Then I can start making my test PD program with the STM32 to have custom control over the negotiation.

I also bought a 65W Lenovo USB-C PD brick to test with.


I also finished the new version of my audio DSP board. Old board used STM’s STA309 DSP IC, but it suffered from a constant low buzz on the output and couldn’t through testing, figure the culprit being anything else except the DSP IC itself. I also found a commercial subwoofer using the the same DSP chip and the some users complained about a constant low buzz that I was experiencing also, might have been the same reason.

I have therefore switched to TI’s TAS5548 audio DSP and designed a new test board for it. It’s otherwise pretty much identical to the old board, except for the DSP block and a couple minor improvements.


I also scavenged some old speaker drivers from my old projects and started a new speaker design as a test bed for my USB PD, portable application -BMS, bluetooth and audio related projects and product development. The design is currently in process and I’m doing enclosure design, so I can fit everything in there.

Drivers are both by Peerless by Tymphany and models are “SLS-85S25CP04-04” (Peerless by Tymphany SLS-85S25CP04 - 3.5" Woofer) for the low-end and " PLS-65F25AL04-04" (Peerless by Tymphany PLS-65F25AL04-04 - 2.5" Full-range) for the high-end

Old projects. Used drivers are from the right most projects.

20 Likes

Excellent! Thank you for the updates…very cool…and I look forward to seeing how these projects move forward.

2 Likes

Great, thanks for the update!

In my esk8 config I’m using this anti-spark switch which I don’t know which line open and a loop key on the + side.

This is how I wired the Flexi BMS. I’m risking to break something because of the ground connection?

If I can leave it as it is I’ll plan to change the cable by leaving only CANH and CANL when the firmware 0.18 is released as anticipated.

1 Like