FlexiBMS Lite - New approach to get past Vaporware stage

A fuse on the charge side should be implemented nonetheless, what I was rather suggesting was a fuse before the charger, to alleviate any possible issues due to power surges or something similar

I’m getting a little confused

Fuse in the 3d print I think is irrelevant to some people as some countries have fuses in the mains plugs. Those that don’t i was under the impression that the sockets are rated to the supply circuit protection at the board. A fuse is officially only needed on the supply to be rated to protect the cable to the the device not the device it’s self according to my local standards.

Fuse on the load side of the charger is not needed as the HLG has overload and short circuit protection built in.

Fuse on the charge input side of the board close to the battery as possible is what I was referring to most BMS have full battery voltage at the charge terminals all the time unprotected so a short there will cause the battery to overload and thermal runaway. Same if some one plugs in a way to powerful charger for the battry.

1 Like

I have already implemented a basic max charging current limitation, which if crossed will shut off the charging fets, same for minimum/termination current. I’m currently checking if a charger is connected by measuring the charging port voltage and if it’s higher than 0.5V then it means there is something connected, but should be no problem to also add a check that it isn’t over a certain voltage.

Technically the charging port voltage should be at minimum near the battery pack voltage or lower than the specified max voltage. Then before switching on the charging FETs, check that cell voltages are ok and no breaks are detected on the balancing connector. Once those are true then we start charging and monitoring current and following their limits alongside monitoring cell voltages and balancing if possible/necessary.

This can’t be protected against on the BMS, but the charger side fuse would help in this case. If this happened during charging the BMS would probably turn off the charging FETs due to either minimum or maximum current limit being crossed, with the presumption that nothing blows up from the high currents.

I’m with @Darkie02 that the charger front side fuse seems a bit excessive. This being a LED driver it’s meant to be installed once into a lighting fixture/installation and is meant to being able to take the powering on/off that you do when turning on the lights. There are no extra fuses, except what you have on your fuse board, or also in your power cables like in UK, but most likely it would be wired directly to the fuse board in permanent installations.

1 Like

It would be awesome if the bms had the ability to limiting current from the power source. This would mean that almost any powersuply could be “slowed down” to charge at any desired rate.

Also it might allow you to charge from other power sources such as other battery packs without needing a buck/boost type setup.

Additionally by monitoring the pack voltage and controlling charge current you can implement any desired charge curve, including adding features like stopping at 80% capacity whilst charging overnight then just topping it up to 100% less than an hour before you leave for work :slight_smile:

That sounds like a high energy cc/cv supply with a remote interface. :slight_smile: maybe a very low current version could fit, for size and heat?

I’m gonna stop myself from a full thread derail, but maybe a dph5005 with bluetooth, with screen and controls removed, mounted inside between battery and charge port…

Don’t think that is going to be a feature on the Lite version, because it isn’t easy to implement. You need to go either active with a buck-topology or passive with current limiting resistors. Active needs more components and board space where as the passive needs less, but will generate more extra heat due to dissipating “excess” current. I’ve been through this with the first FlexiBMS iteration that had the boost-converter on it. Limiting factor for the power was the generated heat.

Would be more sensible to make a dedicated charge current regulator board for the charge port front side that you could add-on later.

That would probably be the easiest solution.

3 Likes

PCB assembly order update.

Me:

Mon, Jul 8

Hey,

What's the status on fusion pcb+assembly order XXXXXXXXXXXXX ?
Are the design files ok?
Have you been able to procure the components? 

Do you have any estimate when you would be able to populate and ship the boards?

Reply,

Tue, Jul 9

Dear Simo,

I just looked into your latest order status, which shows that we have successfully received all the components. And I have stretched my very best to require our workers in the assembly line to finish the assembling by July 16. Hopefully, they can keep up the schedule and do not cause further delay. 

If the proposed deadline is too late for you, please contact me directly and I will try if I can help you set up an earlier schedule for the production.

Sincere gratitude in advance for your understanding and support.

**Best Regards,**

<b>Cecilia
Seeed Fusion Support Team

Me:

Wed, Jul 10

Thanks Cecilia for the update.

I was more interested in just what the current schedule was looking like and if you're able to assemble the boards on the 16th that would be great!

Thanks for your help,
4 Likes

That’s great news.definitely keen on trying out this BMS

2 Likes

Any updates? This is one of the few reasons i come back to this forum :stuck_out_tongue:

3 Likes

I sent Cecilia an email asking for a status update on the order.

Seeedstudio’s webpage still shows order status as “Processing”.

2 Likes

Darn. How about on the software side of things?

Got a reply back from Seeed.

Dear Simo,

I am so sorry that there might be further delay on the boards, and we have started the assembling already.

If everything went smoothly, I expect that we will be able to dispatch them soon.

**Best Regards,**

<b>CECI
Seeed Fusion Support Team

I’m gonna start implementing the USB serial configuration comms today, so it’s possible to update the non-volatile parameters through serial terminal. I’m probably gonna implement a simple interface that can then be expanded upon later.

2 Likes

In other news, Somone from the other forum posted this. I wonder what its wave profiles will be like and how something like it would perform with this BMS.

Update.

I’ve been working on implementing the BMS’s configuration through the USB serial connection and I’ve gotten the basic features implemented. I’m still gonna add some more flesh to it, but here’s what’s going on right now. I’ve implemented a GRBL-style (Configuring Grbl v0.9 · grbl/grbl Wiki · GitHub) lightweight, but functional configuration interface. I’ve used the GRBL firmware on one of my custom tabletop CNC routers (running arduino Due with a stepper shield) and then adapted that approach to the BMS.

(NOTE, forum doesn’t allow to place single dollar character in the text, it hides it, but putting 2 of them back-to-back shows both of them $$, check the screenshots for the commands) Sending a “$$?” or just $ through the serial terminal prints out the commands available.

“$$” will print out the configurable parameters, their values and descriptions. I’m gonna rewrite the description to be clearer, but at least there is something for all currently configurable parameters.

Writing new values is done with “$xxx=yyy” where you check the parameter ID through the “$$” menu and then essentially assign a new value to, in the picture below the example write is “$0=10”, which writes the packCellCount to be 10 and it then echoes back the new written value.

The EEPROM Save and Load functions are working, but I’m gonna add some info text to them for feedback.

The interface is usable through pretty much any serial terminal, with the Arduino IDE terminal shown below.

I’m planning on implementing this simpler interface first and then in the future start looking into integrating the configuration interface into the VESC tool, like DieBieMS does. Feedback and thoughts are welcome based on the info above.


PCB assembly status is still unfortunately unknown, I’ll email Seeed again on Monday for a status update, but their site still shows the order status as “Processing”. Future plan is once I get the order finally to me, I’m gonna quality check the boards and see that they are okay, then send 4 of them to interested testers, once I get green lights at least for the HW then I think I’m gonna go for a bigger batch to get the ball rolling. I’m thinking 15-25 pieces through a bigger PCB assembly provider, I’m currently planning on PCBway.

I think I might be able to start shipping the BMS on the start of next year and I’m planning on taking my trade name out of hibernation and putting up an online store for sales.

This is of course with the assumption that nothing major comes up.


Personal note

Man it took couple of days to get the ball rolling on the coding. Have a bad habit of procrastination especially when I should start something new, essentially getting the ball rolling in the beginning. Once I get started then it usually starts to pick up more speed and the last 3 days have been actually been enjoyable 8 hour coding days and I feel like i’ve gotten a lot accomplished! Gonna try to keep this ball rolling as I’m up to speed now.


Would be interesting to test. Little bit questioning that 1000W rating tho’ when the current is adjustable between 2-12A? it would make sense for the 20S+ Li-ion voltage ones, but how does it function at the lower voltages?..

3 Likes

Got a reply from Seeed:

I just got the latest news from our engineer, and she told me that the boards are done with assembling, however, they did not pass the final quality inspection, which need to have those boards returned for little bit of tweaking.

Can you give us more time and we will dispatch them as soon as possible.

Best Regards,
Ceci
Seeed Fusion Support Team

So it would appear that they have run the boards through their assembly line, but have then bounced at the inspection booth.

This could be anything between tombstoned resistors or capacitors, diodes placed the wrong way around or solder bridges, but unfortunately I didn’t get the specific reason for the QC failure, because this is important for me to know, if for example it’s something in the component placement, solder mask openings or solder paste sizes. Essentially if it’s anything I can affect with the PCB design and component selection. Other possibility is that they didn’t have the assembly line machines dialed/fine-tuned in for this specific board and component run.

I recently (couple months ago) visited a local fab house that we were using our customer product. We visited with me and my HW team leader from our design office along with 3 customer reps. I was the one who had designed the PCB, so I was pretty anxious to see the first PCB being populated. Their smaller assembly line that these boards were being run through (200 pieces for this batch) had the following setup:

Input board rack -> Stencil solder paste applicator (auto) -> Solder paste inspection (auto) -> Pick&Place machine (auto) -> Inspection station (manual) -> Re-flow oven (auto) -> Output board rack

So the panel had 3 PCBs on it, but on the very first test, only one of the PCBs were populated and then they did a complete manual inspection on the board at the inspection station. Biggest thing was that all diodes were the correct way around and that none of the components had shifted in position. I immediately got feedback on couple of things that I could fix/change for the volume production design. Other than that, it looked all good, so we then gave the green light for running the rest of the boards. We then hopped onto setting up the production PCB tester that flashed and tested the HW to check that HW worked as was supposed to. I think the boards were all done 2-4 hours later.

This is the biggest hurdle with doing fabrication somewhere where you can’t personally go to check on the process and get immediate feedback.

But hopefully they’ll be able to ship the boards this or next week, so I can then also check the boards over myself.

4 Likes

Good to hear all the updates! Patiently waiting…

Good news, I just got confirmation email and text messages from DHL, informing me of a package from Seeed. Estimated delivery is on Friday the 2nd this week.


On the other news, I don’t how I did it, but I messed up my sleep schedule something major over the last two days. Been feeling like an absolute daylight zombie today and yesterday. Gonna try to get this sorted, feeling awful :persevere::tired_face:

5 Likes

The good news is indeed great! Can’t wait to see her w it comes out

On the other hand, I hope you salvage your sleep schedule soon, noone likes feeling like a daylight zombie.

$

precede the ‘special’ character with a backslash and it will not be interpreted

Also code blocks are not difficult

function foo(bar){
     return bar+1;
}
1 Like

Boards are here!

IMAG0464 IMAG0467

Quality wise, there is room for improvement, but understanding that it’s only 5 boards, I doubt they have a lot of resources to dedicate for a run in case of problems. I have so far looked over them quickly, but I almost immediately found something that I need to do rework to fix.

CAN IC pins in short circuit by solder bridge. IMAG0463 Weird scratches on the board, exposing copper underneath solder mask. Maybe they were trying to remove solder bridges?

IMAG0466

I’m gonna look the boards over tomorrow and make a list of all the shortcomings.

Also writing code, got the charging algorithm updated today and got the first tentative charges going, need to keep working at it and clean it up afterwards, looks like absolute code vomit atm. I need to add a live status mode for the Comms, so I can monitor the current runtime state more easily. Also found and fixed a bug/feature in the EEPROM/FLASH library, that should have worked in a way that once the flash pages dedicated for the non-volatile parameters filled up, it should have erased the first page, written the new non-volatiles and then erased the other pages, but instead it didn’t write after the page erases causing the non-volatile memory to be just 1s and then the parameters would always revert to their default values, because the load function didn’t find anything saved in the memory, which there wasn’t. But I got that fixed.

7 Likes