FlexiBMS Lite - New approach to get past Vaporware stage

If you want anyone else to help with testing one of these then let me know. I have spare 12s packs that i could use and have a programmer to upload new firmware’s if/when you make changes. Also willing to cover the hardware cost.

I also volunteer for testing. I like the project a lot. This is exactly the kind of BMS I’d like to use. I’m a software engineer and could help out a little bit with the code. I’m pretty swamped at the moment, so I don’t think I can contribute a lot of code but I could do a code review and/or help debug things. I guess that’s only relevant if you plan to make the code open source, which I’m actually not sure about.

2 Likes

Made the little debug connector for the test pads using spring loaded pogo pins for the connections. Gonna check the MFG files today and send them for cost quotes from a couple of fab houses.

https://www.digikey.fi/products/en?keywords=ed8184 image image

@ducktaperules will do once I start getting hardware from the fab houses.

@janpom Appreciate the offer, but I’d rather say that I’m looking for someone dedicated to take-over the FW/SW development, because my roots are in the HW arena and my personal code development and train of thought is highly un-ideal for collab code development. I’m a bit embarrassed to say that, but I think say that it’s a more realistic statement knowing myself. It’s my personal shortcoming.

I can take care of HW development, testing, sourcing and manufacturing, that’s where I’m comfortable at and I feel that the project could proceed more efficiently with a dedicated SW/FW developer/leader to develop/manage the open-source code. I’m not demanding anyone to step up and take the whole weight of the code development on their shoulders, but rather help me at least setup the environment for the open-source SW development and help manage it.

I mean, the HW team at the office is working at the office next to a part of the SW team, but I don’t know what the SW team is doing most of the time. I’m atm busy with a new customer project that I’m handling the whole development process for apart from EMC testing (papa bless our HW team leader :pray:). I’m designing the HW, making the MFG files, communicating the the fab house and the customer about sourcing and testing and writing the standard SW that the devices will at the beginning be shipped out.

There are already more features requested from the customer side and we have now included a semi-dedicated SW guy for the project, but the problem is that I don’t follow the same coding guides as the SW team is following, so most of my code is likely going to be thrown out and at that I feel that the SW guy should just take over the code development. I’m comfortable with low-level code and even starting to do stuff through a HAL makes my head spin, as I feel that it’s obfuscating the code for me.

If someone wants to step-up for the code development manager/leader, I believe we can workout some sort of payment deal if/when the BMS starts to ship. Log your hours and then get % of sales profits until you’ve gotten your payment fulfilled or some sort of other deal.

I’m a 27 old guy who wants to work as an entrepreneur, build and sell cool stuff, so I’m still learning new things. Accounting, salary and possible employees are still new things on the entrepreneur side. Life is so much easier when you are employed and those things are largely taken for you, but I’m often bored and frustrated at my job and I want to start steering my career towards my company. I also want to get more going on mechanical products, but don’t have the equipment and space at the moment.

Maybe that went a bit on the venting side, but I think a lot of real talk/writing was done.

Papa bless ya all :pray::weary::100:

8 Likes

I think I would really enjoy working on it, but unfortunately I don’t have the time now since I’m already juggling a full time job and a project of my own. I might be available in November, but I hope you can find someone else earlier since I really want this BMS. :slight_smile:

1 Like

Maybe @JTAG would be willing to contribute?

1 Like

The hardware could have been made compatible with the firmware, but it isn’t :frowning:. Now its a pain to match it and keep it mainline. So I am afraid its hard to do.

1 Like

How hard would it be to make the hardware compatible? Isn’t that less effort than developing the FW from scratch?

1 Like

Way too different HW for easy port. Different MCUs too.

I think for now the more realistic approach would be that I’ll get the manufacturing sorted and then write the FW to be usable for a start. Then as the first BMS’ get shipped out to testers, see if somebody has time to to start improving or making a clean start.

3 Likes

A good learning opportunity came up at the office.

I decided to embrace the SW collab coding experience and try to absorb as much as possible of how to do collaborative coding. We setup the Git environment today for the customer project with the SW guy and I admitted that I’m a bit new to this, so expect that I will be asking some questions about the process along the way.


On Monday I also found some weird behavior while charging via the BMS. Something was causing the USB comms to freeze when the FET bridge switched on to start the charging. Windows didn’t play the unplugged USB device sound so it didn’t disconnect on the PC end and it still showed the COM port in the device manager, but the serial communication froze (no more data coming to terminal), so clearly something weird was happening there.

I’m not also sure if it’s the MCU’s USB driver getting stuck in a some sort of error state, but disconnecting and connecting the USB cable into the BMS and re-starting the serial terminal got it back going. Un-plugging USB makes the MCU’s SW shutdown the USB driver and restart it when USB 5V comes back present, so possibly that clears any error states. the MCU still continued normal operation apart from the USB hiccup.

Talked about it with my colleagues in the HW team about the possibility of some kind of ground loop effect happening on the switching moment, but they didn’t have any clear-cut answers on that. Really the only thing was to start measuring around and see if the USB voltages jump around during the switching moment. I also noted that the disconnect only happened when the 10S battery pack was under 39-40 Volts, but not above that. Maybe the charger gave a bigger current spike when the voltage difference was bigger and it got smaller as the pack filled up and the voltage difference got lower.

So I decided to check the current waveform from the brick charger I was using and oh my god… Below is an image from the current waveform measured with differential pair, what you want to look at is the purple line, which is the math result for probes 1 and 2. HUGE oscillation in the current at a 4 kHz frequency (which also explains the annoying whine coming from the charger). The voltage scaling for the purple line is 200mV/grid and the current sense OP-amp sensitivity with the used shunt resistor is ~250mV/Amp. The charger has nominal charging current of 2.2 Amps, too bad the current is oscillating from ~1-3.2 Amps (well there’s that ~2.2 A average)! No wonder the serial terminal showed the charging current oscillating/jumping between 2000-2300 mA, it was correct and the 16x oversampling done in the ADC brought to those numbers! I decided to stop using the charger after that.

IMAG0297

I then decided to compare it against my current workhorse charger and the difference was just clear as night and day. Again pay attention to the purple line. Sooooo much smoother power delivery compared to the one above. The serial terminal current value now only lives at around ±15 mA, which seems accurate with some measuring noise. Couldn’t get the USB to disconnect with my charger setup.

IMAG0298 IMAG0268

So I don’t think I’m going to implement any changes to the USB connection for now, as I would chalk this up to the brick charger being just bad quality. Gonna have to see if anybody else has this problem when I ship the first test boards out.

Note, it was not a chinese cheapo charger, but a brand name device (link below)

https://www.digikey.fi/product-detail/en/mean-well-usa-inc/GC120A48-R7B/1866-1748-ND/7703243

4 Likes

How will the fluctuating voltage and current effect the charging temporarily or battery long term

Now I’m wondering what my go to option in charging and power supply’s are like. I always gone with what I know others people have tried and tested and just believed thay were quality. any idea on the ones in the link below?

Ac Ripple in the dc charge no good. https://reader.elsevier.com/reader/sd/pii/S030626191630808X?token=D7FCBE14A5C1F0DD1F86672E27FA4B33FA9E29F6972C027AE12FA9C6AA0BED3249CD8B7ED886ACD88F053AD2F0478BBE But maybe if u turned all the lights on or off in the building ur charging it could be smoother. Maybe there’s a mod. I’d think be easy to smoothen w bigger bits installed. Caps n coils.

I am using one of Mean Well’s LED drivers for my DIY ceiling light with dimming control and haven’t had any problems with it. “HLG-150H-15B” to be exact

https://www.digikey.fi/product-detail/en/mean-well-usa-inc/HLG-150H-15B/1866-2360-ND/7703916

Thing is able to go bright AF (low-medium power in pic), there is an external potentiometer in the middle of the bottom part, so I can adjust the brightness. The center part is my custom 3D-printed part.

IMAG0299

As a basis I don’t see a problem using a LED driver to charge battery packs especially if other people have reported success with the particular model, but these days I will usually test the performance of power supplies to validate the datasheet numbers.

I’m just disappointed in the “GC120” battery charger series’ performance in particular from them (the terrible current waveform earlier was from that), I mean my custom charger/PSU uses a Mean Well PSU (ENP-360-48) to feed the DPS5015 buck converter and seems like a decent item.

IMAG0300

General opinion of Mean Well power supplies in the HW team is that they have often been a problem component in EMC compliance.

I think the quality is just very series dependent if they’re good or not, but they are one of the cheaper PSU brands on the market.

i have just brought one of these which arrived yesterday so once i get a chance to test it i will report back :slight_smile:

2 Likes

I’m also interested how the voltage and current waveforms look like under load,

Getting the ball rolling.

image

Note, that is not the final price for the prototype batch, doesn’t have the LTC6803 for example included yet, as their automated BOM reader couldn’t get the prices for a couple of components. They say they’ll give the correct final quote within a working day.

First time I’m ordering assembled boards from China. And this isn’t exactly the easiest starting point board complexity wise, but you have to take the first step at some point.


Friday was a pretty interesting day at work. Went to the local pcb assembly service provider and saw the first boards getting assembled for the customer project and the fine tuning with the paste application machines and pick-n-place machine. Only assembled 1 panel first (4 boards per panel), which we then checked that it came alive (checked voltage regulators and tested flashing the MCU). Seeing that everything seemed to be in order we gave the okay for the assembly line to run the rest of the batch (50 panels in total for 200 assembled boards).

After that it was time for quick software tuning, as the board’s hardware setup had changed, to make sure the basic functions were working. Then we went to see the production line test jig house upstairs of the from the assembly space/hall. Their device’s job is to flash the customer board and run a hardware test on it to see that everything works. I then spent roughly 4 hours with the test jig makers getting the tester code to work with the test mode running on the customer board. One of the original measuring setups didn’t work out-of-the-box so there was some trial-and-error testing couple different measuring circuits to determine if the customer board was working properly. Luckily at the end of the day, we found a workable measuring setup that could be used to test the correct function of the specific part of the board that was the problem.

Can’t post a picture of our test jig, but here’s a couple close ones in appearance from the tester company’s website.

http://www.testnova.com/galleries/gallery1/galleryimage_12.jpg http://www.testnova.com/galleries/gallery1/galleryimage_19.jpg

Essentially it’s a bed of nails. You put the board into the jig and then pull lever and it then closes the top part downwards pushing the board onto the test nails coming through the bottom of the tester. The nails then make a contact onto the test pads on the bottom of the DUT (Device Under Test) board. In the bottom part of the tester is a whole assortment of measuring and testing devices, which are then connected to the nails.

The testing device was then connected via an USB to a PC that was running the testing company’s own proprietary testing software with their own developed testing script language. After putting a board onto the jig and closing it, you would scan a QR code sticker put onto the board and the test software from there would automatically start the testing sequence, the QR code is used to track the manufacturing day and batch of the board and will be put into a database. There are multiple steps in the script and they are given a PASS or a FAIL depending on if the device passes the particular test.

for example the couple first steps on the script was:

  • current consumption after powering-up
  • flashing firmware to MCU
  • getting baseline numbers from multiple outputs.

All these numbers needed to be withing a certain range or they would fail the test.

It was QUITE a stressful day, as I was the guy who had designed the boards, made the manufacturing files and done the software, so the whole stack was sort of resting on my shoulder. There wouldn’t be anyone else to point blame to except me if something was FUBAR design wise. But stressing doesn’t really achieve anything so I just took everything as it came and looked at the problem situations through a chill mood.

I did then go and buy a 1.2kg (~3 pound) strawberry gateau cake and ate it by myself on Saturday :blush::yum::joy::pray::100:

6 Likes

Nothing beats buying yourself a cake and eating it too. Well done mate. Let me know when they are ready to buy and I will throw my money at you :stuck_out_tongue:

Yowdie guys,

It is not fully about this bms, but I think it can do something good. At this moment some off us are using charge only bms’s. That means that the power from the cells go most off the time to a antispark.

Due this and not setted correct cut off voltage you can kill the cells. Or due a bad cell group you can kill also such a group.

Those charge only bms’s have most off the time also a output. When a group or the total voltage is below the cut off it will cut the output voltage to around 0v.

Should there be a possibilty to create a small controller to set between the output and the antispark. So the antispark should power off or you don’t even gonna have the chance to power it on.

I hope you understand what I mean

2 Likes

Makes sense. A better and a more generally applicable approach would be to signal directly to VESC. The VESC would then be able to shut down in some reasonable way (without throwing you off the board). That would of course require updates to the VESC FW but doesn’t seem hard to do.

This. there is no reason for the BMS cut power to the entire board

If we get low voltage on a cell, make the thing beep like crazy and tell the vesc to only allow braking

2 Likes