Author Topic: FU-Dyson-BMS - An (Unofficial) Firmware Upgrade for Dyson V6/V7 Vacuum BMS  (Read 64419 times)

0 Members and 2 Guests are viewing this topic.

Offline rulof

  • Contributor
  • Posts: 27
  • Country: ru
Re: FU-Dyson-BMS - An (Unofficial) Firmware Upgrade for Dyson V6/V7 Vacuum BMS
« Reply #75 on: February 01, 2023, 08:56:10 am »
My Dyson V6 got a red flash error. It flashed 10 times red light. I detached the battery from the vacuum, it flashed blue and green which means the PCB was not locked. So I thought the motor had some errors, I bought a 2nd hand motor, it didn't work either. I have no way out, so I burned the author's firmware. It looks look, but we when I attached the battery to vacuum and pressed the trigger, it got 16 flashes of red light, the machine didn't work either. 16 red light means there is hard short circuit. I don't know how to get it resovled. Please give me your expertise advice. Thanks.


this is a strong voltage drop on one or more batteries. it is necessary to charge each separately. if it doesn't help, change the batteries.
 

Offline tamtamsh

  • Newbie
  • Posts: 4
  • Country: cn
Re: FU-Dyson-BMS - An (Unofficial) Firmware Upgrade for Dyson V6/V7 Vacuum BMS
« Reply #76 on: February 01, 2023, 11:41:20 am »
many thanks. Got it!
 

Offline tamtamsh

  • Newbie
  • Posts: 4
  • Country: cn
Re: FU-Dyson-BMS - An (Unofficial) Firmware Upgrade for Dyson V6/V7 Vacuum BMS
« Reply #77 on: February 02, 2023, 12:59:49 am »
I recharged my battery cells one by one, and got them at 4.1v. it works if I release the trigger and plug it to the vacuum immediately (when the light is blue). But if I plug the battery to the vacuum first, and then release the trigger, it got 16 red lights. What is wrong? Pls advise. Thanks a lot.
 

Offline rulof

  • Contributor
  • Posts: 27
  • Country: ru
Re: FU-Dyson-BMS - An (Unofficial) Firmware Upgrade for Dyson V6/V7 Vacuum BMS
« Reply #78 on: February 02, 2023, 08:20:51 am »
I recharged my battery cells one by one, and got them at 4.1v. it works if I release the trigger and plug it to the vacuum immediately (when the light is blue). But if I plug the battery to the vacuum first, and then release the trigger, it got 16 red lights. What is wrong? Pls advise. Thanks a lot.

severe battery wear.  when turned on, the voltage drops, the protection is triggered. you need to change the batteries. one person had a bad contact on one of the batteries, because of this an error occurred.
 

Offline tamtamsh

  • Newbie
  • Posts: 4
  • Country: cn
Re: FU-Dyson-BMS - An (Unofficial) Firmware Upgrade for Dyson V6/V7 Vacuum BMS
« Reply #79 on: February 02, 2023, 08:41:02 am »
many thanks. Is there a way to remove this protection in firmware?
 

Offline rulof

  • Contributor
  • Posts: 27
  • Country: ru
Re: FU-Dyson-BMS - An (Unofficial) Firmware Upgrade for Dyson V6/V7 Vacuum BMS
« Reply #80 on: February 02, 2023, 10:02:16 am »
many thanks. Is there a way to remove this protection in firmware?

it is possible to reduce the trip voltage. for example, up to 2.5 volts or less. but this is just for verification.
 
The following users thanked this post: tamtamsh

Offline berk

  • Newbie
  • Posts: 1
  • Country: tr
DC35 or dc34 firmware send me
« Last Edit: March 02, 2023, 01:09:50 pm by berk »
 

Offline bluesight

  • Contributor
  • Posts: 10
  • Country: us

I think I have this problem. I did your firmware update. Unfortunately, I may have done a short when fiddling the switch near the exposed posts. Firmware update successful with all blink/color codes working. Charge codes working. When in vacuum and pulling the trigger, I get the 16 red blink "brownout" code. Tested vacuum motor with external supply and it works. Did attach VDD at PIC program time. So multiple opportunities to glitch the ISL94208. If that's the problem, this post seems to indicate that the ISL can be reset (or not). I see in your code that you provide a reset segment...?

void ISL_Init(void){
    ISL_SetSpecificBits((uint8_t[]){WriteEnable, 5, 3}, 0b111);    //Set all three feature set, charge set, and discharge set write bits
    ISL_SetSpecificBits(ISL.FORCE_POR, 1);                          //Make sure the ISL is clean reset

So, is this the problem, and is it permanent or fixable?
Tnx!

For future reference, the dedicated forum thread would be the best place for questions like this: https://www.eevblog.com/forum/projects/fu-dyson-bms-an-(unofficial)-firmware-upgrade-for-dyson-v6v7-vacuum-bms/

If the battery is able to charge properly, I think the ISL94208 is working okay. I don't recall precisely what checks I run using the ISL94208 but I suspect at least one of them would fail if it wasn't operating. The PIC wouldn't run at all without the 3.3V from the ISL, and the ISL handles the multiplexing of all of the battery cell voltages so unless it got stuck reporting an identical valid result for every cell, the cell voltage checks wouldn't pass at all. Also, I just looked at the code again, the only way charging would work properly is if the ISL brown out check function passed, which would only work if the ISL is responding to I2C commands properly.

Please also check if the battery LEDs act normally if you press the button with the battery out of the vacuum with no load attached.

If that works fine, I suspect your battery cells have too high of an ESR and the load of the vacuum might be causing the cell voltage to drop enough to brown out the ISL. This is what rulof and I were discussing. I don't know what equipment you have but you could try to measure the battery ESR either with a battery tester, or by applying a known load and measuring the voltage drop. You could also try to measure the voltage drop on the VBACK pin of the ISL94208 during vacuum startup with an oscilloscope and see how far that voltage is dropping.

My current theory is that it is the inrush current of the vacuum triggering these errors on batteries with high cell ESR, but at least some batteries might be able to sustain the normal running current if we could ride through the inrush-caused-voltage-drop.

Moving over to this thread...
It looks like, indeed, the full set of 6 cells may be near-dead. They charge ok and read ~4.15 volts (individually fully charged...on a Hyperion EOS0606i RC charger/discharger). And my simple test was to run the vacuum head directly off the 6-cell series. That seemed to work fine for a 10 or so second test run. But when I now apply 1A load through the discharger, the drop is to about 3.95 volts. If my calculations are right...maybe 200 milli-ohm resistance.(?) Seems about 4X higher than it should be.(?) While ~24V might be enough to run the vacuum, maybe it is low enough for the ISL94208 to declare a brownout.(?) So, after all the fiddling, I may have to declare my pack defunct. Great learning experience...not a spectacular outcome...Oh well...

Thanks for the quick and useful response! Very nice work from you and the community...

A few personal practices...I shaved down the top and bottom tabs and shaved off the side tabs once I got the pack apart. Same for the "stalk" tabs. Made it less onerous to go in again. Also shaved down the "light pipe" sides (kind of to a point) for the same reason (instead of cutting in a slot). 
 

Offline bluesight

  • Contributor
  • Posts: 10
  • Country: us
OK...Just can't let it go...So, I found the drops on my light clip leads at 1A amounted to maybe .1V each (.2V total), bringing my internal resistance per cell to maybe 140 milli-ohms. Still nasty. Then I decided to connect with those leads from the pack (external) to the vacuum and "push the button" (on the pack). Voila, the vacuum worked! Voltage at the pack was ~23V. With the pack in the vacuum, still 16 red blinks (brownout). Final test, connect externally with heavy clip leads...NO GO...16 blinks.

What I think it means...? The brown out voltage/whatever setting for the ISL94208 is right at the edge for my pack. And maybe it is appropriately set conservatively. BUT...if there was a simple place (couple eeprom bytes preferably) to modify (lower) the brownout set point, it may be possible to run a marginal pack for a little bit longer. Just askin'...
« Last Edit: March 14, 2023, 04:47:33 pm by bluesight »
 

Offline tinfeverTopic starter

  • Regular Contributor
  • *
  • Posts: 154
  • Country: us
  • I like to make life harder for myself
OK...Just can't let it go...So, I found the drops on my light clip leads at 1A amounted to maybe .1V each (.2V total), bringing my internal resistance per cell to maybe 140 milli-ohms. Still nasty. Then I decided to connect with those leads from the pack (external) to the vacuum and "push the button" (on the pack). Voila, the vacuum worked! Voltage at the pack was ~23V. With the pack in the vacuum, still 16 red blinks (brownout). Final test, connect externally with heavy clip leads...NO GO...16 blinks.

What I think it means...? The brown out voltage/whatever setting for the ISL94208 is right at the edge for my pack. And maybe it is appropriately set conservatively. BUT...if there was a simple place (couple eeprom bytes preferably) to modify (lower) the brownout set point, it may be possible to run a marginal pack for a little bit longer. Just askin'...


That's really interesting that it works with smaller test leads but not with heavier leads.

By the way, the brown out level isn't actually a setting, that error is tripped when the firmware notices the ISL94208 has reset itself without any other errors. Precisely when and why the ISL resets itself is still up for debate but it definitely isn't configurable.

My current theory is that on marginal cells, the inrush current of the vacuum causes the VBACK voltage of the ISL94208 to go too low and so the ISL resets itself. The inrush current of the vacuum can be up to 120A on startup for maybe 100us (I have scope shots somewhere but can't find them), but then in normal mode it might only draw 4A which should be fine.

If you have an oscilloscope, it would be really interesting to see the voltage drop on the VBACK pin during start up (relative to the negative terminal of the pack). The ISL94208 datasheet actually show a capacitor on that pin but that isn't implemented on the BMS boards.

I have attached an image with the measurement point off of R48 (next to the ISL chip) marked in blue, assuming you have a V7 battery.
 

Offline bluesight

  • Contributor
  • Posts: 10
  • Country: us

That's really interesting that it works with smaller test leads but not with heavier leads.

By the way, the brown out level isn't actually a setting, that error is tripped when the firmware notices the ISL94208 has reset itself without any other errors. Precisely when and why the ISL resets itself is still up for debate but it definitely isn't configurable.

My current theory is that on marginal cells, the inrush current of the vacuum causes the VBACK voltage of the ISL94208 to go too low and so the ISL resets itself. The inrush current of the vacuum can be up to 120A on startup for maybe 100us (I have scope shots somewhere but can't find them), but then in normal mode it might only draw 4A which should be fine.

If you have an oscilloscope, it would be really interesting to see the voltage drop on the VBACK pin during start up (relative to the negative terminal of the pack). The ISL94208 datasheet actually show a capacitor on that pin but that isn't implemented on the BMS boards.

I have attached an image with the measurement point off of R48 (next to the ISL chip) marked in blue, assuming you have a V7 battery.

I'm not actually "at home" with all my other tech stuff to do any sophisticated testing (meter and clunky clip leads here). I expect the light/long leads are presenting an approximately 100 milliohm resistance to the typical/full 120A startup current. So a lower current load to the batteries is seen at the board and higher instantaneous startup battery voltage...just enough to not set off the reset.(?) I think I'm probably done with attempting to resurrect this pack. Next step (if any) would be battery replacement. At least it is likely the board is in good shape with the new firmware.
 

Offline tinfeverTopic starter

  • Regular Contributor
  • *
  • Posts: 154
  • Country: us
  • I like to make life harder for myself

That's really interesting that it works with smaller test leads but not with heavier leads.

By the way, the brown out level isn't actually a setting, that error is tripped when the firmware notices the ISL94208 has reset itself without any other errors. Precisely when and why the ISL resets itself is still up for debate but it definitely isn't configurable.

My current theory is that on marginal cells, the inrush current of the vacuum causes the VBACK voltage of the ISL94208 to go too low and so the ISL resets itself. The inrush current of the vacuum can be up to 120A on startup for maybe 100us (I have scope shots somewhere but can't find them), but then in normal mode it might only draw 4A which should be fine.

If you have an oscilloscope, it would be really interesting to see the voltage drop on the VBACK pin during start up (relative to the negative terminal of the pack). The ISL94208 datasheet actually show a capacitor on that pin but that isn't implemented on the BMS boards.

I have attached an image with the measurement point off of R48 (next to the ISL chip) marked in blue, assuming you have a V7 battery.

I'm not actually "at home" with all my other tech stuff to do any sophisticated testing (meter and clunky clip leads here). I expect the light/long leads are presenting an approximately 100 milliohm resistance to the typical/full 120A startup current. So a lower current load to the batteries is seen at the board and higher instantaneous startup battery voltage...just enough to not set off the reset.(?) I think I'm probably done with attempting to resurrect this pack. Next step (if any) would be battery replacement. At least it is likely the board is in good shape with the new firmware.

Oops. I forgot to actually add my thoughts on why it works with the thinner leads. I wonder if it is the inductance! The inductance would slow down the inrush current spike so it wouldn't go as high. It looks like the thin leads are longer and had a larger loop area (positive and negative wires were further apart) so they would have more inductance.
 

Offline bluesight

  • Contributor
  • Posts: 10
  • Country: us

Oops. I forgot to actually add my thoughts on why it works with the thinner leads. I wonder if it is the inductance! The inductance would slow down the inrush current spike so it wouldn't go as high. It looks like the thin leads are longer and had a larger loop area (positive and negative wires were further apart) so they would have more inductance.

You mention that the datasheet recommends/shows use of a capacitor for the ISL chip. Have you tested, or is there a way/place to solder in, a capacitor to see if that helps? Again, I should stop fiddling with this...but...
 

Offline tinfeverTopic starter

  • Regular Contributor
  • *
  • Posts: 154
  • Country: us
  • I like to make life harder for myself

Oops. I forgot to actually add my thoughts on why it works with the thinner leads. I wonder if it is the inductance! The inductance would slow down the inrush current spike so it wouldn't go as high. It looks like the thin leads are longer and had a larger loop area (positive and negative wires were further apart) so they would have more inductance.

You mention that the datasheet recommends/shows use of a capacitor for the ISL chip. Have you tested, or is there a way/place to solder in, a capacitor to see if that helps? Again, I should stop fiddling with this...but...

No, I haven't tested it. I wish I had time to work on this project more but I don't. :(

Pin 16 on the ISL chip is ground so it'd probably be possible to connect a SMD cap off of R48 and then a small jumper wire to pin 16, or do a through hole cap between R48 and Pin 16 of the ISL, or do a through hole cap between R48 and the grounded pin of D3.
 

Offline bluesight

  • Contributor
  • Posts: 10
  • Country: us
It looks like the idea would be to solder in a 10uf, 16V tantalum ("flat") cap between the "top" of R48 and the chip ground bus (misc spots). I don't have a cap, and it's about $10 to get like 10 (Amazon). So, not the next thing on my list. Anyone with some caps lying around that might be willing to try it? Or send me single cap?
 

Offline tinfeverTopic starter

  • Regular Contributor
  • *
  • Posts: 154
  • Country: us
  • I like to make life harder for myself
It looks like the idea would be to solder in a 10uf, 16V tantalum ("flat") cap between the "top" of R48 and the chip ground bus (misc spots). I don't have a cap, and it's about $10 to get like 10 (Amazon). So, not the next thing on my list. Anyone with some caps lying around that might be willing to try it? Or send me single cap?

If you want to PM me your address, I can put some caps in an envelope and mail them to you, probably on Tuesday. Not sure how well ceramic caps will survive USPS in a normal envelope but we can try haha
 

Offline bluesight

  • Contributor
  • Posts: 10
  • Country: us
There might be a trick to route the "hot" (from P2) end of R48 to the 2nd battery's plus pad (P3). That would keep the voltage on VBACK higher (or burn it out maybe). I'm thinking about it...but I'm not sure I'm ready to try it.
 

Offline tinfeverTopic starter

  • Regular Contributor
  • *
  • Posts: 154
  • Country: us
  • I like to make life harder for myself
There might be a trick to route the "hot" (from P2) end of R48 to the 2nd battery's plus pad (P3). That would keep the voltage on VBACK higher (or burn it out maybe). I'm thinking about it...but I'm not sure I'm ready to try it.

The max voltage on the VBACK pin is 5V (See ISL94208 datasheet pg. 6 for max ratings). I wouldn't recommend that. Also, wouldn't that just directly short cell 2? Make sure you are looking at the schematics if you aren't already. They are in the FU-Dyson-BMS\hardware-info of the GitHub repo linked in the original post.
 

Offline bluesight

  • Contributor
  • Posts: 10
  • Country: us
There might be a trick to route the "hot" (from P2) end of R48 to the 2nd battery's plus pad (P3). That would keep the voltage on VBACK higher (or burn it out maybe). I'm thinking about it...but I'm not sure I'm ready to try it.

The max voltage on the VBACK pin is 5V (See ISL94208 datasheet pg. 6 for max ratings). I wouldn't recommend that. Also, wouldn't that just directly short cell 2? Make sure you are looking at the schematics if you aren't already. They are in the FU-Dyson-BMS\hardware-info of the GitHub repo linked in the original post.

From your GitHub diagram (and from the datasheet circuit), if the P2 side of R48 is popped, it is floating to VBACK, so no shorts. What I'd hope is that the 1K resistor will "protect" the VBACK input from the floating 8+V, but that is the risk. Safer would be to put in another resistor (maybe 1.8K to ground) to voltage divide, but that's a hassle and another part I don't have. And it still might drop too much. I see a couple caps (C3 and C4) on the VBACK "pin" in the schematic. My V6 board doesn't even have the pads to install them. I expect these were supposed to be the "filter" caps, as you previously mentioned. Hard to stop tilting at windmills....
 

Offline bluesight

  • Contributor
  • Posts: 10
  • Country: us
Well...for my "burn-it-up" test, connecting R48 to the ~8V line (P3) didn't (burn-it-up). But it also DIDN"T WORK. I get the 16 red flash brownout code. So it looks like VBACK wants to stay in range (3 to 5V?), and connecting back to P2 (~4V) continues to function. Grounding R48 also didn't work (stayed asleep, I assume). Final attempt will need to be the 10uF cap...someday...maybe...
 

Offline Slin75

  • Newbie
  • Posts: 1
  • Country: fr
Bonjour monsieur, j'ai réussi à flashé le bms (228499) avec le tutoriel sur github (FU-Dyson-BMS), la led réagi correctement. Les cellules son correctement équilibré et la tension au bonne.
Le seule problème que je rencontre, quand j'utilise l'aspirateur en mode boost la batterie tiens que 10 secondes, l'aspirateur s'arrête.
Je le remets a changé tout est correct et je réessaye toujours pareil.
Pouvez vous m'aider je débute dans la programmation.
Cordialement.
« Last Edit: March 20, 2023, 07:36:11 pm by Slin75 »
 

Offline bluesight

  • Contributor
  • Posts: 10
  • Country: us
Longish story, but I wasn't able to test the capacitor-on-R48 theory. That leads to the rest of the story. So just yesterday morning, I decided to order a junk battery from Amazon. Then, later in the day, cleaning out the garage, I found a defunct scooter 36 cell battery pack...it was working, but  something went wrong with the electronics (the BMS). The batteries are bone fide CHY18650 2500mah Lipos and seemed to have good charge/discharge properties. I decided to scavenge 6 of them and do a full rebuild of the Dyson pack. After various bits of chopping nickel strips and slicing my fingers, I got the batteries out and in, and then needed to reconnect the R48 resistor back to the 4.2V power tab (P2). Well, it didn't work. I thought the surface mount resistors were kinda robust, but not against my clunker soldering iron. R48 opened. My last chance bit of luck was to find an old-fashioned 220ohm 1/4w resistor in some old potted electronics board. After chiseling it out and tack soldering it in (replacing R48), the pack actually worked (that is one robust resistor).

The refurbed pack did a 15 minute run, which seems pretty good. The board reprogramming is great, letting me know all is well at charge and at low battery discharge. Stayed pretty cool (maybe 100 deg at the end of the run). I think it's good!

Now I need to deal with the extra junk battery I ordered. Very cheap ($23 with 2 filters...maybe $14 after accounting for not needing to buy 2 filters). We'll see.

What I can't tell is if the install of the 220ohm resistor (vs the original 1K) might have solved the power-up sleep problem without the need for the capacitor filter. I'm not prepared to do additional research at this time...

Thanks for this thread, and especially to tinfever for the help and advice.
 

Offline tinfeverTopic starter

  • Regular Contributor
  • *
  • Posts: 154
  • Country: us
  • I like to make life harder for myself
Longish story, but I wasn't able to test the capacitor-on-R48 theory. That leads to the rest of the story. So just yesterday morning, I decided to order a junk battery from Amazon. Then, later in the day, cleaning out the garage, I found a defunct scooter 36 cell battery pack...it was working, but  something went wrong with the electronics (the BMS). The batteries are bone fide CHY18650 2500mah Lipos and seemed to have good charge/discharge properties. I decided to scavenge 6 of them and do a full rebuild of the Dyson pack. After various bits of chopping nickel strips and slicing my fingers, I got the batteries out and in, and then needed to reconnect the R48 resistor back to the 4.2V power tab (P2). Well, it didn't work. I thought the surface mount resistors were kinda robust, but not against my clunker soldering iron. R48 opened. My last chance bit of luck was to find an old-fashioned 220ohm 1/4w resistor in some old potted electronics board. After chiseling it out and tack soldering it in (replacing R48), the pack actually worked (that is one robust resistor).

The refurbed pack did a 15 minute run, which seems pretty good. The board reprogramming is great, letting me know all is well at charge and at low battery discharge. Stayed pretty cool (maybe 100 deg at the end of the run). I think it's good!

Now I need to deal with the extra junk battery I ordered. Very cheap ($23 with 2 filters...maybe $14 after accounting for not needing to buy 2 filters). We'll see.

What I can't tell is if the install of the 220ohm resistor (vs the original 1K) might have solved the power-up sleep problem without the need for the capacitor filter. I'm not prepared to do additional research at this time...

Thanks for this thread, and especially to tinfever for the help and advice.

If it worked after replacing all the cells and also changing that resistor, it was probably changing the cells that fixed it, and then the resistor value just doesn't matter much. Glad to hear you have it working though!
 

Offline duzycinek

  • Contributor
  • Posts: 32
  • Country: pl
Hey, anyone have knowledge how to reset bms for dyson v10?
 

Offline davidmpye

  • Contributor
  • Posts: 27
  • Country: gb
Hi!

Having been inspired by tinfever's work on this series of battery pack, I've started a project to do a similar replacement firmware for the v10 battery pack series.

I shall create a separate thread, because this one is to celebrate their work, not mine.   But assuming nobody minds, I'll post a link to my github project here:

https://github.com/davidmpye/V10_Dyson_BMS/

TL;DR - mostly done now, does work. Main downside - need to figure out a better way of flashing it that doesnt need the Atmel-ICE programmer.  If anyone fancies coming up with a way to get a Pi to do it with OpenOCD then we'd be on to a winner....

David
 
The following users thanked this post: tinfever, duzycinek


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf