You sir are a LEGEND! I have just done this to a supposedly dead V7 battery, in which I had already determined the cells were perfectly within an acceptable voltage imbalance range for me and the rest of the world but enough to bring on the Dyson red flashes of death. It is now working perfectly again. What can I say other than THANK YOU for sharing this fix with the world :)
Success with my V6 SV03. Thank you so much for this fix. I'm only getting a few minutes run time so clearly my cells aren't in great shape but at least I can now go ahead and get new cells with the confidence.
This worked great, thank you so much for the tutorial. On the LED lightbar thing, I was able to get it out pretty easy. Just unscrewed the screw holding in the light bar and that gave me enough wiggle room to pull the grey housing apart wider and then wide and wiggle the LED out. It would have been even easier with 2 people, one to hold the housing wide and another to pull the plastic. After it's out just screw the clear plastic back on again.
Спасибо, это отличная работа ! Вы позаботились о сохранении средств населения и конечно об экологии и о будущем. Если бы больше было таких людей и разработок то это было бы превосходно. Спасибо ещё раз.
This is awesome work! I'm a beginner with battery repaire (started with my Mobygum Xenon-R electric scooter), but I was limited to cell replacement and balancing. BMS were something completely opaque to me, and I'm really impressed by your work and the fact that those BMS can be enhanced to handle weak cells. Thanks for your great work.
The BMS isn't really enhanced, it's a basic feature that can be software-programmed to custom settings by customer request. If this is actually a good idea is debatable: cell-balancing is a neccesity on batterypacks with lithium cells and DELIBERATELY bypassing a safety-feature of the BMS-system inside the pack is something I would advise against: the cells are imbalanced, the BMS acted upon that. Though the thresholds for cell-voltages usually can be set freely by customers' request and they thus can be set very tight (which is probably not really the case here), it still is a bad idea to circumvent this safety. The cells can't be balanced and thus will become ever more imbalanced as you charge and discharge it again, with the real risk that a cell starts to heat up beyond safe limits (because seriously, if they dare to let out basic safety-features on the PCB, who says they did design the rest of the software correctly (read: 'nah... we don't use the overtemperature-protection. By the time the cells could go thát bad, the BMS has already cut off the cells due to imbalance'
Thanks so much for doing this. Although I've already ordered a replacement battery because I determined the BMS was my problem, It's great to know there is a real solution. It makes me feel better knowing you have come up with a fix. If I was fooling with PICs more I'd buy a pickit3 and fix the old one for the heck of it. It makes this old tube radio guy feel good so see new things fixable. Thanks again for doing this as well as updating the code.
Absolutely fantastic! We do get these battery packs in every other Repair Cafe or so. It will be really helpful in getting these damn things fixed. New cells are easy but to convince the BMS to accept these was a different story, up to now :-)
Awesome video. I have a few older Dyson videos where I tried to fix some of these or Frankenstein the thing with a Tool pack or the old buy the $25 aftermarket pack trick. Just sharing as we learn together. I always wanted to take time to figure out the Firmware and do similar to this. I still have the old BMS boards from 2 of these In case I ever get time. I have not had time to get back to this or the EGO 56V pack figuring out the D-terminal communication on it. So glad you've figured the Dyson BMS out and shared this.
You're amazing! I can't believe you did this for the exact model I need. I'm going to write your firmware and let you know how it goes! Thank you!!!!!!
You saved my day! Excellent detailed step by step explanations. This saved a V7 (SV11) battery which ultimately discharged a bit too much. Although I charged every cell and made sure they were all balanced, I figured out that the BMS had flagged this battery dead for good. Your firmware solved the issue straight away! Thank you so much, I didn't want to invest in a Chinese compatible battery with concerns about potential wrong battery management ending up with risks of fire...
One idea, when use pins to attach to battery bms, do not scape that gell. Go through it, so gell will hold pins in place. U may still need topush them a bit from side for a good contact, but at least pins will not try to jump out
tinfever, Hello! I have a Dyson V6 vacuum cleaner. I swapped the worn out 18650 cells for new ones (Sony VTC6) and uploaded your custom firmware to the DC62 battery controller and it worked immediately. Thank you so much for the opportunity to revive the old battery! But I ran into a problem, which is that with a strong discharge (from 3,00 volts to 3.39 volts per cell), the battery refuses to be charged from a regular charger. It manifests itself as follows: if you use a vacuum cleaner at standard power (consumption of about 130 W), when the cells are discharged to 3 volts, overdischarge protection is triggered (3 blue LED flashes) and after the load is turned off, the voltage on all cells is restored to 3.24 volts (+ -0.01 volts). When you connect the original charger - there are cyclically repeating 8 red flashes of the LED. In an imperial way, I realized that if you recharge each cell to a voltage of 3.39 volts and higher, then when the original charger is connected, the blue LED lights up and the charging process begins (the charge current is 0.75 A). I tried several times to bring the cell level to a voltage of 3.38 volts and below - and always when the original charger is connected, 8 red LED flashes appear cyclically ((( At the moment, I use the vacuum cleaner only in the maximum power mode (consumption of about 350 W), because. when low voltage protection is triggered at such a high load (3 volts and lower on the cells), then when the load is turned off, the voltage on all cells is restored to 3.48 volts, and so on. this is higher than 3.39 volts, then when the original charger is connected, the battery starts charging without any problems. Of the minuses of this mode of use is the periodic operation of the BMS overheating protection. I will be very grateful if you can explain to me how to solve the problem that does not allow you to charge the battery if the cells are discharged below 3.39 volts ...
The 8 red flash blink code means charge overcurrent protection. Others have run in to this issue on certain vacuums it seems like, and there are issues about it on the GitHub page. I think the workaround is to increase the overcurrent protection threshold, and I might have posted a patched version of the software in one of those issues, or maybe in the EEVblog forum thread. I'm not sure why the charger inrush current seems to trigger this on some vacuums and not others. I suspect maybe some minor difference in the PCB since it seems to occur on the V8 vacuums mostly and I don't think I had one of those to inspect closely.
@@tinfever Thanks for the answer! It will be great if you fix the firmware))) In the meantime, I changed the original charger to a non-original one and this problem has stopped.
Just for idea. I have one cordless Hoover brand, but did not have charger for it. I found one power adapter from printer for around 32v and attached dc-dc step down converter. Setted up voltage that meet hover battery, but it did not start chaging till i adjusted current to some apecific level. Since then charving this way. She may be now youe original charger doesn't meet charging criteria..
@@damienraymond5190 chipmax 2 de chez EEtools, c'est un programmeur que j'avais au travail. Je pense que cela fonctionne avec le pickit mais je n'ai pas essayé.
Before they redline you can drill holes - 4 one side 3 the other - to monitor the cells and top up accordingly , or even easier discharge the highest one every few weeks
Thank you for this extremely useful project! Dyson reprogrammed and awaiting new 18650s. After some faffing about trying to connect the Microchip programmer to my PicKit 3 and it not finding the PIC16LF1847, I found a free third party programmer called PickKit Minus which detected the correct device, and programmed it successfully. It was definitely FU Microchip as well as FU Dyson until then.
Flashed my SV11 battery with a pickit4 and mplab. Very quick process. Took a dump of the EEPROM, but just put it aside since I know it got an error from being out of balance. Cells are fine, it was my fault for taking it apart in the first place. Now I need to find my charger
@technomicah407 What steps & settings did you take / change? I've got the same model battery, mplab & pickit 4 but i keep getting low voltage errors. I used the low voltage setting instead of the high 5v setting due to 3.3v reading from the pins. Appreciate some clarity greatly
@perspective6734 I did change the power settings for the pickit4 to provide power to the battery. Pretty sure I just left it as default, which was 3.3v.
@@technomicah What do you mean by taking a dump of the EEPROM? I ended up resetting the settings & ran it through the 5v warning & 3v supply, that worked, cheers for that
@perspective6734 prior to flashing the firmware, there is some diagnostic data stored in the chip describing why it failed and other stuff. Not really important. Glad you flashed it successfully
Update- Just an observation after fixing my V7 battery with this, I now get a 14 red flash error code when I store the vacuum in my unheated garage, and it is unusable or chargeable. The first time it happened I thought ‘oh great, that fix didn’t last long!’ However looking at the error codes you provided I found this is down to low battery temperature, and it disappears when the battery is moved into a warmer environment for a while. I didn’t have this before the firmware update before the battery bricked, maybe it is just colder now as it’s winter? Still a great video and the fix does work 👍🏻
It's possible the original firmware didn't have low temperature protection or maybe their threshold was set lower. The threshold should be roughly 7C. If you wanted to, you could remove that protection by commenting out the two lines of code in the safetyChecks function that reference MIN_TEMP_C, I think.
You’re probably correct there was nothing in the original firmware regarding low temperature protection, as it’s not really applicable to a household vacuum. I’ll leave it as it is, installing your firmware was scary enough, messing with the code is beyond my comfort zone as I don’t have any spare batteries to play with. Thanks again.
Merci beaucoup, votre méthode fonctionne très bien. 25 euros pour le PIC bien investi. Sincèrement merci à vous, la planète aussi vous dit merci. Désolé pour Mr Dyson ....
All domestic devices with lithium cells need firmware of some form to keep the consumers safe. It's not "planned obsolescence, it's because there is high danger and liability if devices liek Dysons start catching on fire.
For the latest information, installation instructions, and any known bugs, please see the GitHub page: github.com/tinfever/FU-Dyson-BMS Also, I now recommend not connecting the VDD wire at all for programming. The ISL94208 chip seems keen to fail with an externally supply voltage. I'd still suggest waking up the battery pack to power the board up for programming. One user has suggested (github.com/tinfever/FU-Dyson-BMS/issues/24) even this may be unnecessary though.
Great project. You deserve lots of kudos. I picked up a dead older pre V6 Dyson, it has a two wire communication system between the motor unit and the battery on top of the power leads. I think it has a 8051 derivative. Mine is bad and I am sad but without destroying the BCB it will be a dog to reverse engineer it. I might check if it has cell balancing implemented. The model also had a reputation for bricking with bad cells and some say the motor units sometimes brick in sympathy. I may have to get a V6 or V7 just to play around with your battery supervisory software. Do you recall how many IO pins are spare, could you add BlueTooth or IR comms just for fun. I saw a video that had a bunch of open battery units and it looks like some of the pirate batteries do not even have connections between the cells, NO way to balance or detect imbalance, worse than Dyson. I think these could be nice units at used prices if one could upgrade the firmware (a bit easier, opening those batteries is a test of patience), perhaps implement the cell balancing and maybe even flash the motor code again to give a simple speed control. Everything is done to look good, sell well, wear out fast as a primary design goal and features and usability come a distant last. You could make a bit of change selling those pogo pin modules until they become available from Asia. Is the FU-Dyson short for FANCY UNIVERSAL-Dyson firmware? 🙂
I'm not sure. I've been getting some spam comments that I've been blocking but yours wasn't one of those, unless I accidentally clicked on the wrong one. I apologize if I did that. The FU stands for Firmware Upgrade ;) Thanks for the kind words!
Question please. I want to use my sv12 battery outside of a vac. There's no output to the main power out connectors. I asume it needs to be connected and talk to the vac to switch this on. There's a second smaller connector on the pack, and maybe it uses this? Maybe it has a magnet sensing reed switch as you showed on yours? Please advise how to bypass / 'turn it on'.
Unbelievable, it works very well !! It has worked 1 month and now when I connect the charger there is 8 red flashes telling me that it's over current limit, i try with another charger but it's the same thing What can i do please ? 🙏
Hi been following EEVblog , you and dvd4me - I balanced the cells today whilst waiting for a PICkit - noticed that even though the pack was at 22v ( not fully charged but balanced) when I activated the BMS the output voltage was only around 16v through the contacts - have you implemented that - is it a kind of load test?
I followed your instructions, everything worked fine but a minute after flashing successfully, when disconnecting the pickit, its soldered connector touched something it shouldn't have and killed the BMS. I quickly had to use a plastic tool to rip out many SMD components on the positive contact side as the area was getting abnormally hot (probably due to a short in a component following my error). next time I'll be more careful.
I have ordered the exact PICKIT 3.5 (kit 3.5) from AliExpress, but nothing happens when I connect it to the PICKIT 3 programmer (pickit not found). Is there any advice on how to get it to work, or I have received a faulty one and should ask for a refund...
Great job !!! Thx for sharing your knowledge . My dyson v11 has a battery problem though all cells are at 3.9 Volts. Is there eprom for v11 battery ???
I'm currently moding a sv22 battery just added another layer of 7 cells 21700 all works well but the vacuum doesn't seem to recognize it has 5000mah more capacity and still shows 7 minutes in boost mode still testing and haven't discharged the battery yet as I'm waiting for filter with magnet and dust bin found the vacuum at local recycling center in UK and i just want to make it work again i wonder if these new batteries are measuring what goes in and out and bricks the battery when capacity is low enough been doing this double battery mod from the first cordless dyson and all of them worked perfect stacking 2 dead batteries together making it like a brand new one
help me solve the issue. when connecting a native power supply. the battery flashes 8 times. when connecting the laboratory 1a power supply, everything is fine
Interesting project. I chose to call it a day on bl**dy Dyson batteries for my V6 a while ago, and bought a Ryobi "One+" adapter for it instead (Got quite a few of those kicking about, so it seemed a logical decision), but I've still got the old battery here with the 32 red flashes problem. From what I've read that means the cells are out of balance. Seems a waste to just rip it apart to scavenge the cells if it's only a case of one being slightly weaker than the rest, but to use your firmware would mean I'd need to buy a pic chip programmer, and that's not something I'd be likely to use for anything else after doing my one Dyson battery (Which is surplus to requirements anyway now). Just wondering though, Does anyone know if the original BMS firmware would unlock the battery again if I cracked open the case and individually top balanced all the cells? I've got a couple of pretty accurate hobby chargers that can do Li-Fe/Li-ion cells and one of those should be able to charge each cell to near as damn it identical voltages, but once done, would the BMS just all's fins and dandy again without any outside influence, or would it need resetting/flashing anyway to clear the error? I'm just thinking if I top charge all the cells and that would bring it back to life, it would be worth keeping it just in case I ever decide to sell the sweeper.
@tinfever Wow, this is great. I was just about to resign myself to buying a new battery pack when google suggested me this video. I had spent hours replacing the cells only to later find out that the BMS is designed to commit suicide and refuses to work with a new set of cells. I had eventually googled and found a solution by editing two bytes in the EEPROM, I went ahead and did that but forgot to un-tick the 'Program memory' check box, which resulted in the program memory being zeroed, which seemed to be the definitive end of this BMS. Funnily enough RU-vid suggested me this video just as I was about to go on eBay to buy a Chinese replacement battery. I've now just reflashed with the custom firmware and put it on charge. It will probably take some time to balance out and then I'll put it all together and try it out. On another note, I had written an application to help me with reverse engineering PCBs that you might find useful. It is not very pressentable and not quite complete either as I had written it for my own use and stopped at the point where it was useful enough for what I needed. I do use it from time to time and tend to add things to it as I find them to become needed. In any case you may be interested to have a look at it and see if it is of any use. There is the full source code so you can also modify but I must alert you that it may not look pretty as I'm not a real programmer/developer. The Github repository is at: github.com/cf4044/Reenigne
Great job. May I question to you. I have dyson V6 battery SVO4 all 6 batteries are detached and charged and they are all ok around 4V, but it still gives red flash 20 times. Do I need reprogramm it as you showed in this video?
My battery seems to die when the cells are around 3.6V. The delta is maximum 0.02V. Also, it doesnt take a charge from the power supply although the light is green while its plugged in.
Would this work on a "dead" Dyson battery? I still have my original that bit the dust a few years ago. It shows a blue light when i press the button on it.
Sorry for the delay. The PCB doesn't need to be connected to the batteries to flash the firmware since it is solely flashing the PIC microcontroller, although you would need to configure the PICKit to provide 3.3V power to the PIC if the batteries aren't connected. Of course, the firmware will not operate without cells connected and I've honestly never tested how it would behave if you tried to use it like that.
@tinfever any chance a raspberry pi can be used to flash BMS? I doubt I’d have other uses for pickit other that this and it’s relatively $$ for one job. Btw amazing work. FU dyson indeed. I’ve balanced my cells (something it should just do itself). Battery is only 1yr old genuine.
Technically that should be possible since I think the PICKit is using the low voltage programming mode in this case. I've never tried it or done much research, but you'd have to see if someone has done the work making the software to have a raspberry pi work as a PIC programmer. This example came up in my very brief searching: github.com/WallaceIT/picberry Not sure if the that will support the correct programming protocol for this specific PIC model or not though. I suggest only connecting the ground, ICSPCLK, ICSPDAT, and VPP pins when attempting programming, leave VCC not connected. If you can't find software off the shelf to do it, you might be best off buying $10 PICKit clone from AliExpress. You could also maybe search for Arduino to pic programmer options but most Arduinos use 5V logic levels and this PIC is 3.3V
DEAR i replace the old but good sell to battery dyson V6 but blue or red light is not blinking also when charging the light is not blinking. but all sell shows 4.1V . i am stuck would you please help me any advice. Thanks
It sounds like there might be a hardware failure. I would suggest seeing if 3.3V is present on the VCC pin when you press the button or plug it in. You may have to use the schematics to find the fault.
This is an awesome video. Thanks for all the effort you put into the firmware and the demo. Question-- theoretically, since I'm already likely to mess up the plastic casing by trying to remove all the clips etc, would it make more sense to just try and (carefully) drill into the plastic shell in the area where the 4/5 contact points are? This way I can just stick some wires into the holes/slot that I make, and I don't have to mess with taking everything else apart. Thoughts?
That might work but it could be tricky to scrape the conformal coating off the holes if your only access is through some small drilled holes. I think some uses have reported just jamming the wires through the coating works. Using a Dremel to cut a rectangular slot might work better? I've never tried it though. You could start with holes and then move to Dremel if needed? Also, someone made a 3d printed case opening jig that might help (again never tried it though). it's linked in the resources section at the bottom of the GitHub page.
i am just wondering, after this shutdown of the pack due to building of a more than 300mV unbalance, has anyone tried to balance the cells manually, and see if the battery would start working again? or is the shutdown permanent ? personally I came across a battery pack in the wasted/broken battery bin and opened the pack. the electronics seem dead but surprise, all 6 cells are alive and well balanced at exactly 4.0V each!) ... I will try to upload this new firmware to see if electronics will resume working otherwise i would assume something is broken on the electronics (bidirectional switch?)
If the stock firmware detects the cells are out of balance even once, it will stop working permanently even if you rebalance the cells. However, It is possible to edit a value on the microcontroller's EEPROM to unlock a pack that is locked for this specific reason. More information on this specific EEPROM edit can be found in this forum thread, you have to be very careful when programming the EEPROM since it is very easy to accidentally erase the entire microcontroller program memory: www.eevblog.com/forum/reviews/dyson-v7-trigger-cordless-vacuum-teardown-of-battery-pack/75/ Flashing my firmware also fixes that lock.
Wonder if this would work with my bricked battery? Turns on, charges but clearly stuffed as it turns off after a few seconds. Thinking cell balancing issue but others have reported BMS failures.
Of course it won't work. You describe how your battery cells are stuffed, and no firmware in the world can fix that problem. BTW: If you battery will charge and operate (even for a few seconds), then it is NOT a "bricked battery".
I just bought a used V7 and the battery shuts off after about 6-8 second blast on max. On regular it seems to go on for a while. It was likely heavily discharged and I was hoping to be able to charge/discharge it several times to see if it may regain some capacity but so far max still shuts off very quickly. Any advice on recovering the battery or just buy a replacement and be done? Thanks!
I don't think that lithium ion batteries can really be recovered once worn. I'm guessing the battery cells have a higher ESR due to normal wear. The max setting pulls much more current than the normal setting, which can cause significant voltage drop on the cells when loaded, which means the low voltage cutoff is hit even sooner. If normal mode isn't sufficient, you'll probably want to replace the whole pack or just the battery cells.
Hi there! Great video btw. I wanted to ask if you know whether these battery packs can have more charging current input compared to the standard wall charger of 0.78A? The data spec of these INR-20700A cells state that they can candle 3A continuous. So my question is - can I possibly have these pack charging maybe up to 2A? Or would I mess up the BMS and brick my pack? Please advise?
I can't recall which component is the limiting factor, but I think there was some reason you wouldn't want to go more than 1A. I think there might have been a diode that the charging current passes through or something?
If you don't have balancing circuits available, be sure to stay away from higher charging current at all, as imbalance will get out of hand far quicker when the BMS can't do anything about it. Most likely, 500 mA/780 mA is the maximum allowed standard charge current for these cells: higher charge rates either require more convective cooling or even forced-air cooling. To add to that: why would you want to have an even shorter charge-cycle? I expect the battery to charge fully in 3 to 6 hours (3 being the most likely). Lithium cells that spend a lot of time at their full-charge voltage of 4,2 Volt degrade quickly and will limit the overall lifespan of a pack. And exactly that is probably the reason why they fail so much: most people don't know you are better off charging a lithium pack to 3,7 Volt/cell if you want to let it sit there for long times, but given it's a vacuum cleaner, most people probably keep it on the charger forever, quickly degrading the cells in about 2 years. There are few manufacturers (DeWalt is one I know and a few names in the pro-AV-industry are doing so as well) that have a 'storage-charge' function on their chargers, to charge the battery to 3,6-3,7 Volt/cell so you can store it for months without the capacity being affected noticeably, compared to stock a pack at full state-of-charge at 4,2 Volt/cell.
Is there a way to just use an external LiPo charger/balancer to fix the stock firmware's kill condition, then reset the firmware somehow, or does the firmware just kill itself with an EEPROM bit or something?
Unfortunately not, if you attempt balance charging of any sort without going through the PCB’s intended charging while it is on, it will brick itself with 32 red flashes. I believe discharging to balance does work however. If you have the time, I highly recommend reading the original thread in which tinfever and more worked towards a solution towards all this, as it documents many of the pitfalls and nuances they encountered through the process: www.eevblog.com/forum/reviews/dyson-v7-trigger-cordless-vacuum-teardown-of-battery-pack/
You are right in that if the firmware detects charging from an external source or a cell imbalance of more than about 300mV, it will brick itself with an EEPROM bit which will require the PICkit3 programmer to erase (see my earlier comment about dvd4me’s unbricking video).
I haven't done a ton of testing on how the original firmware behaves, but here are a few thoughts. The BMS lockout is handled by a setting in the EEPROM. dvd4me in the thread linked by Wendell found the EEPROM bits you can change to unlock a battery pack. The PIC microcontroller also turns off unless the battery is on the charger or the output is enabled. (You can measure that the 3.3V rail goes low since the ISL94208 turns it off completely). I think if you rebalanced the cells using an external balancer, while the PIC was turned off, it would probably work fine. You may or may not have to reset the EEPROM bits mentioned since I'm not 100% sure if it will go in to lockout mode if it detects the cell voltages have changed too much while the PIC wasn't turned on. tldr; I think external balancing with a possibley necessary EEPROM bit change would probably work, but I haven't tested it and can't guarantee it.
Dear tinfever I'm trying to code the Dyson v10 battery control board, based on the ATSAMD20 microprocessor. But I only know the function of a few pins, so I am struggling with the reverse engineering of the pcb. I sanded the pcb with emery cloth to see the inner traces. I would like to ask, how did you complete the reverse engineering of pcb? Do you have any good methods and software?
Hi. I reverse engineered the PCB with just a multimeter and a lot of probing, combined with drawing traces and connections on images of the PCB loaded into GIMP. If you look on the GitHub page, you can find what I call "spaghetti wiring diagrams" which are the GIMP images I traced the logical connections over. It is hard because it is a four layer PCB so you can't see everything. I started by loading the PCB images into GIMP and aligning/mirroring the top and bottom PCB images so I could switch layer visibility and see where tracks jumped from top to bottom layers. I'd draw in the visible traces, look at the data sheets of the ICs, and start probing where I thought the connections might go, or just probe every connection that wasn't already designated. It took a long time. It gets easier though because the more you figure out, the fewer options remain for everything else. Remember that most designs are just reimplementations of the IC reference designs, so those are a good place to start. Also, make sure you are using sharp probes and enough pressure, since the conformal coating makes probing even harder. Good luck!
Bonjour Tinfever Bravo pour ce tuto, pourrais tu me guider mon Dyson V12 , Version si molaire au V10 ( même batterie ) Block batterie affiche : led bleu clignotement rapide environ 10 secondes . ne fonctionne plus les éléments tous donnent 3v6 mon N° BSM 220288-01/09 inconnu chez Github. aurais tu des infos. merci par avance😀
Ive ordered a pickit right after seeing this video. But soon I realize , why don't I just buy a BMS balance charge board and resolder the connections... Only cost me $4 instead of $30 for a programmer .,😅
Yes. A Pickit 3 or newer is required. You can find clones on eBay, AliExpress, Amazon. Genuine PicKits can be bought directly from Microchip or from places like Digikey or Mouser.
@@tinfever Thanks for infos😉, -> Genuine Pickit 3 = deprecated, Pickit 5 = ~100$, ~40$ Amazon are clone too ? In this case ~15$ Aliexpress , if it works ?... I disassembled Dyson V7 batterie to replace 18650 but I think the Genuine BMS is now bricked. I wonder the better solution ? : buy a Pickit 3 clone or a BMS clone... I'll investigate
Someone on the EEVblog forum thread, or on a GitHub issue (I can't recall) reported that they were able to use a PicKit 2 with some third party program that extends the PicKit 2's part support to include the PIC16LF1847 on these BMS boards. This isn't supported using the normal Microchip provided programmer software. I've only ever used a PicKit 3 or 4 though.
Hi sir is it gonna work with v8 battery pack? Also is there any alternatives other than pickit3 since it's hard to find in my country like esp or arduino maybe?
The PicKit 3 is the programmer needed for the microcontroller on board, which is a PIC device. This repair does not involve replacing the microcontroller but reprogramming the one that is already there, so will definitely need a PIC specific programmer. If you have access to eBay you can get one for about $40, but not sure it is worth it if you are only going to use it just for this repair.
That's unusual. Error code 16 is for the brown out detection, which usually occurs when the battery is short circuited. Could you open an issue on the GitHub page? The first thing I'd suggest doing is using a multimeter to measure the resistance between the terminals on the vacuum (not the battery). It's possible something failed short-circuit in the motor causing the battery to trip that error.
Dear tinfever, thank you for a great job! Probably, you can help me. I have SV11 battery out of Dyson V7. I have followed all your instructions. I have charged all cells up to 4,0 v. by connecting each to a charger. Then connected the battery to Pickit 3 programmer according to wiring instructions. Pickit software discovered the programmer and discovered Device: PIC16LF1847. Hex file was successfully imported and written. When I turn on the battery, it flashes with three colors (like in your video) and gives 5 green flashes. I measured voltage on two big contacts: it shows 24,5 v. Till now everything looks fine. When I plug th battery into Dyson, battery gives 16 red flashes. As I understand, this inducates to short contacts. When I plug the other battery (not programmed) it works perfectly fine. why does thr battery thing that there is short contact inside Dyson? Is there a way to fix it? Thank you.
FYI: The board is marked 228499-01/03. Also, there is a red "All Protect" message under the "Configuration" line in the upper right corner in the Pickit 3 Programmer window.
OK. I got it resolved. Broke my head searching for a problem. Finally, measured all batteries again and found that one of them was low voltage - 3,6 v. Probably I missed it when I was charging batteries separatelly. After charging this battery everything works fine. Thank you again!
Hi. If you are running my firmware an encounter an error like that, could you please open a GitHub issue? I'll try to help there. Please provide as much info there as you can such as the original issue with your battery pack, if you are using the original charger, how frequently that error occurs, etc.
Someone else built something for one of the newer models and it might have been the V10. There is a link near the end of the EEVblog thread for my version.
Hi. Someone on the EEVblog forum thread, or on a GitHub issue (I can't recall) reported that they were able to use a PicKit 2 with some third party program that extends the PicKit 2's part support to include the PIC16LF1847 on these BMS boards. This isn't supported using the normal Microchip provided programmer software. I've only ever used a PicKit 3 or 4 though. If using a different programming tool, it would be good to double check the config bits are set correctly. I include those near the end of this GitHub issue if you need them: github.com/tinfever/FU-Dyson-BMS/issues/9.
Балансировка бесполезна, слишком высокие токи нагрузки. В случае перегрузки (включении турбо режима) слабые ячейки мгновенно снова улетят, поэтому Dyson отказался от балансировки. Это не было сделано из плохих побуждений, просто это действительно бесполезная опция, плюс отсутствие охлаждения. Я вот только не понимаю, зачем было выкладывать бесплатно? Я два года назад сделал решение по этим батареям (уверен, Вы это знаете) и позднее добавил диагностику без разборки батареи через компьютер или автономным устройством: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-j9Iz4iLyELQ.html
Translation of original comment: "Balancing is useless, too high load currents. In the event of an overload (turning on the turbo mode), weak cells will instantly fly away again, so Dyson refused to balance. This was not done out of bad intentions, it's just a really useless option, plus the lack of cooling. I just don't understand why it was posted for free? I made a decision on these batteries two years ago (I'm sure you know this) and later added diagnostics without disassembling the battery via a computer or a standalone device: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-j9Iz4iLyELQ.html" That's really interesting that you already developed something almost identical! I had no idea and I thought I'd searched around. Crazy how it feels like there are separates worlds out there. That's an interesting viewpoint on balancing that I hadn't heard before. Wouldn't balancing while charging keep a weak cell from drifting lower in voltage compared to the rest, and thus prolong the usable life of the battery? I do see your point though that a very poor health cell will have higher ESR so when you draw 17 amps in turbo mode, that ESR will quickly cause the apparent cell voltage to plummet and trigger the low voltage cutoff. As an example, lets say you have a pack with 5 perfect cells and 1 poor cell, and the healthy cells are at 4.2V with 30 mOhm ESR, but the poor cell is at 3.6V with 200 mOhm ESR. As soon as you start drawing 3A (the normal mode current draw) the healthy cells might appear as 4.11V (30mOhm x 3A = 90mV drop) but the poor cell would appear as 3.0V (200mOhm x 3A = 600mV drop), and so the 3V low voltage cutoff would kick in. Without balancing, you would be screwed because the good cells are already at 4.2V so you can't charge the battery, but the poor cell instantly hits 3V so you can't discharge it either. However, if you had balancing, couldn't you slowly bring that 3.6V cell up to 4.2V? The ESR would be the same but now with a 3A current draw, you'd have an apparent cell voltage of 4.2V-600mV drop = 3.6V, which would leave you some usable capacity to actually use the battery to vacuum. Your point regarding turbo mode remains though, because no matter how well balanced, even a 4.2V 100mOhm ESR cell at 17A is going to drop 1.7V to 2.5V, assuming it can supply 17A to start with. As for why I released it for free, as much as I'd love to make money from all the work I put in to this, I didn't see a good way to commercialize it. I think there aren't going to be a ton of people willing to open their battery, buy a PICkit3, and program it themselves (even if I wish more people would consider it) so I doubt I could sell more than a few copies of the firmware if I tried to. That leaves using it to repair other people's batteries, but shipping Li-Ion batteries is complicated to do legally and I don't think I'd be able to charge very much before people just decide to buy a knock-off on Amazon. Even if I charged $20 + shipping, shipping both ways would probably easily be another $20. I doubt many people would pay $40 to ship their battery to get it repaired, when you can buy a knock-off on Amazon for the same price. If there would be a high volume, then maybe you could bring some of that repair price down but I can't see ever getting enough batteries to even take an hour a day in time.
All in the spirit of open source and right-to-repair! The more freely available information there is to fix repairable things like this, the better off we all are. Unfortunate that the language barrier does somewhat limit the diffusion of knowledge in engineering fields.
@@jajefan123456789, кому лучше, а кому нет. Хорошие решения требуют много ресурсов, времени и испытаний. Не всё может быть свободным. Почему бы тогда и не работать бесплатно? Бесплатный инструмент для мастера, бесплатная работа для клиента, почему нет? :) Но нет, за работу мы хотим получать гонорар. Я делаю хорошие вещи и я не могу позволить это делать бесплатно.. Увы, как разработчик, я не работаю бесплатно.
If I remember right, the pickit2 doesn't support the PIC16LF1847. It might support a similar microcontroller part that has the same programming protocol but I can't remember for sure.
Dyson are protecting their customers by ensuring that battery packs cannot be used or re-used if cells have reached certain critical safety limits. They couldn't be doing anything even slightly better than what is being done here. When the pack faults, the BMS trips and you replace the pack. That's EXACTLY how all responsibly-manufactured domestic products behave.
Absolutely useless. Batteries need to be tested under load as well. Under load if there is a drop in anyone cell the battery firmware will fault again. The lithium ion voltage accross all 6 cells can not deviate under load and have to uniformly drain at the same rate.
You are correct that if the cell voltage drops under load enough to reach the cutoff voltage, the firmware will fault again. If this happens, it would indicate a failing battery cell. The cell voltage of each cell must be within the safe range for the firmware to allow the battery to turn on, the cells don't all have to be the same voltage though.
Thank you so much! I had replaced my cells and then discovered that the Dyson BMS permanently disables itself when it detects a cell disconnected. I bought a PicKit 5 and followed this RU-vidr’s instructions : ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-7t9yA3_KUI0.htmlsi=xnaGyJ3FX6lj3l3O but it didn’t work. The LED wouldn’t show anything at all any more but the PIC was still responsive. I therefore downloaded your wonderful firmware and it flashed successfully first time, bringing the original Dyson BMS back to life. Thank you so much! Regards Richard
Please help me. I wrote FU-Dyson-BMS to SV09-PCB61462 which became a brick. The LED glowed blue three times and turned green. When connected to a charger, it flashes yellow and then turns blue, then turns white and then turns off. The cell voltage ranges from 4.08V to 4.17. Both FET and fuse are normal. I think there is a problem with the voltage measurement of the cell, so is there a way to avoid this or a code modification? For reference, the result of EEPROM-parsing-tool.py is shown below. { "Firmware": "Tinfever FU-Dyson-BMS V1", "Total_Runtime_Seconds": 0.0, "Faults": [] }
It sounds like you might be running in to the over-discharge protection, meaning one of the cells is hitting 3V or the BMS thinks one of the cells is hitting 3V. Could you try connecting the battery to the charger for any amount of time to reset the low battery flag, and then test if the issue occurs when the battery is not installed in a vacuum? If one of the cells has a very high ESR, it's possible that the cell will measure an acceptable voltage with no load, but as soon as you put a reasonable load on the cell, the voltage will drop dramatically. If you are encountering the over-discharge protection, as soon as that is tripped, the battery will always display the 3x blue LED flashes when you attempt to pull the trigger. This is reset by connecting the charger for any amount of time. The next step after that would probably be one of two options: 1) Connect an 3 amp load across the battery pack directly (not going through the BMS) and verify that all battery cells remain in the acceptable 3.0-4.2V range. This would eliminate the possibility that one of the cells has high ESR causing the BMS to immediately trip the low battery flag. 2) You could also install MPLABX and connect the PICKit to the BMS, then compile and run the program in debug mode. You can load the "MPLab Watches List.xwatch" file located in the /firmware folder in the GitHub repo in to MPLABX as the watches list in the watches window, and then pause the program while running in debug mode so you can view the actual cell voltages being measured by the PIC. You could even go further and insert a breakpoint at the entry in to the error function code so you can see all the variables and determine why it is entering the error function. You'll probably need to solder on a programming header to the BMS or find a way to make those connections relatively stable while you are working on it. While it would be possible to add a line of code that forces any given battery cell to always read as 4V so the program thinks it is always OK, I would strongly advise against doing that, especially without knowing the root cause of the issue in the first place. The reason I believe this firmware is reasonably safe is that I've implemented pretty much every protection possible. Hardcoding a cell voltage level would break some of those protections. If you have further issues, please make a GitHub repo issue and I'll try to help as soon as I can. Thanks.
@@tinfever Thank you for your reply 1 was fine Even if the load was connected, it did not drop below 3V. Even if you press the switch with the battery pack alone, it blinks blue 3 times Now I have installed MPLAB X IDE and loaded the farm However, the debug mode does not progress easily while learning how to do it with Google search.
Did you know what 4 times flashing means? I cant find anything related to it on the internet. I was disassembled and checked the cells on my battery one of the cells was around 3.08v and the other 5 was around 3.5 ish i was then recharged that 3.08v cell back to the 3.5v but it still gives same 4 time flashing weirdly when i hold down the switch for 5 seconds it gives 4 red and 1 blue but no matter what i tried i did'nt managed to get it to charge.