Products > Other Equipment & Products

Dyson v7 Trigger cordless vacuum - TEARDOWN of battery pack

<< < (42/43) > >>

rulof:

--- Quote from: tinfever on March 09, 2023, 11:00:38 pm ---
--- Quote from: rulof on March 09, 2023, 10:54:01 am ---
--- Quote from: ruddlescounty on March 08, 2023, 05:56:42 pm ---thanks for the reply.
got a few of these dyson batteries.
Is there anywhere i can see a list of codes and meanings?
latest one is 10x BLUE flashes. this is after i have rewritten eeprom from a 32x red flash battery.
several balanced charge/discharge cycles later - all indicating approx 1550mAh capacity, i now get the 10xBlue when i press the battery button.
any ideas?

thx

--- End quote ---

it's clear without ideas here.
it is necessary to replace the batteries.


--- End quote ---

I'm not sure you necessarily need to replace the cells. I'm not sure there is any good info out there on what the stock firmware LED codes mean, specifically. I'd check the Dyson manual for any clues and Google around but if you can't find any info on that blink code, it's possible no one knows. You could flash my custom firmware (FU-DYSON-BMS) to get more specific LED codes if you wanted. Also, make sure it isn't something simple like the battery needing to be plugged in due to a fully_discharged flag being set or something, or the battery turning itself off because it isn't seeing a large enough load. Other than that, it's possible your cell capacity is okay but the ESR is too high so as soon as you try to use it with a high current load like the vacuum, the cell voltage drops and it goes in to low voltage cutoff.

--- End quote ---
I've tried it many times already. even with a capacity of 1800-1900 milliamps, the batteries do not pull like that. on your firmware, most likely there will be error 16.

tinfever:
I've uploaded Google Translate images of rulof's photos for anyone else.


--- Quote from: rulof on March 10, 2023, 11:30:37 am ---I've tried it many times already. even with a capacity of 1800-1900 milliamps, the batteries do not pull like that. on your firmware, most likely there will be error 16.

--- End quote ---

Would you be able to share that entire document you took a picture of? It looks very useful.

Also, would you be able to measure the VBACK pin of the ISL94208 with a scope when the error 16 occurs on trigger pull on a bad battery? I'm curious if VBACK is dipping below 2V, and if it is dropping that low, I'm curious if adding at 10uF capacitor to the VBACK pin helps any.

My previous theory was that when the output is short circuited, the current wouldn't be enough to trip the short circuit protection but it would be enough to drop the battery cell voltage very low, causing the power to the VBACK pin to go too low, causing the ISL94208 to reset. In theory the same thing could happen with older battery cells with higher ESR when they aren't being short circuited but just subjected to inrush current demands. If my theory is correct, extra capacitance on the VBACK pin might let the ISL94208 ride though the inrush current voltage drop. This might also be why the ISL94208 reference design includes a 10uF cap there (which Dyson omitted).

rulof:

Also, would you be able to measure the VBACK pin of the ISL94208 with a scope when the error 16 occurs on trigger pull on a bad battery? I'm curious if VBACK is dipping below 2V, and if it is dropping that low, I'm curious if adding at 10uF capacitor to the VBACK pin helps any.


currently out of stock with error 16. as soon as it appears, I will take measurements.

bluesight:

--- Quote from: tinfever on May 03, 2022, 11:33:40 pm ---In case anyone is interested in an update on my progress. I found a really tricky hardware bug while working on the documentation, and it took me a couple days to figure it out and create a work around.

Current theory/procedure:
0) Directly short the output (or connect it to multiple electronic loads that appear as a short until they start to limit the current)
1) The trigger is pulled and output is enabled as usual
2) There is a massive current spike, but not so huge as to trip the short circuit protection (which has to be set to 175A because the next lowest step, 100A, is insufficient for vacuum startup).
3) The output is disabled, but probably not actually because short-circuit protection kicks in. It takes about 400us, vs the 190us for short circuit protection.
4) The ISL94208 RESETS ITSELF AND DOES NOT PROVIDE ANY ERROR FLAG. Thus it is not obvious what happened.
     - This is likely because during a hard short, there can be a current spike of 140A+.
     - This causes the voltage on VBACK (attached to cell 1) to drop as low as 1.46V (vs 3-4.2V normally).
     - VCC for the ISL94208, which is connected to Cell 6 drops as low as 10.5V but that's still above the POR voltage
     - This is below the listed typical POR voltage (no minimum provided) for VBACK and is likely causing the reset of the ISL, which wipes all registers.
     - All of this is likely caused because Dyson omitted the 10uF capacitor for VBACK shown in the ISL94208 datasheet (page 32).
5) The normal I2C commands to the ISL fail while it is resetting, causing I2C errors.
6) Previously, I2C errors were handled by resetting the PIC. So the PIC is reset.
7) The PIC starts up and sees the trigger is pulled and the ISL is presenting no error flags.
8 ) Wash, rinse, repeat. Go to step 1.

I've determined I can set some of the User Flag bits and periodically check those to determine of the ISL has silently reset itself. If those bits are cleared, it then asserts an ISL_BROWN_OUT error, rather than having the output flap. These User Flag bits also have to be checked in more than one place in the main loop because the ISL doesn't reset *immediately* after the output enable bit is set on a dead short, so if I check the User Flags immediately afterwards they'll still be fine. I also had to add more elaborate I2C error handling than just resetting the PIC since that would prevent the ability to detect that the ISL reset.

I also tried to assess how the stock batteries react to this fault. I blew the MOSFET and the fuse. Then I replaced the MOSFET and shorted out the fuse. Then the MOSFET blew up again (that could be due to my bad soldering though). At this point I decided I needed to not permanently destroy my last working V6 BMS board since I still need to test that my firmware is compatible with it. Most development was done with a V7 BMS board but it was designed to be compatible with V6 boards too. There are a few different versions of the V6 BMS board, so after I publish everything it would be helpful for anyone willing to test the firmware on a previously untested board version are report their results.


--- Quote from: Hank on May 03, 2022, 07:40:56 pm ---
When I want to quit the program, it won't let me, and I get this message: System.UnauthorizedAccessException: Access to the path 'C:\Program Files (x86)\Microchip\PICkit 3 v3\PICkit3.ini' is denied.
The ZIP contains 3 other ZIPs, do I have to invoke those other files too in some way?
An I'm running Win7-64b.

Edit, it's running now, but still can't select the 16LF1847
Edit 2, can select it now, but still get the error while trying to quit.

--- End quote ---

I think that error when trying to close the PICKit 3 programmer program is "normal". I always get it too. You can thank Microchip for that.

--- End quote ---
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!

tinfever:

--- Quote from: bluesight on March 13, 2023, 06:30:24 pm ---
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!

--- End quote ---

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.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod