When I press the fuel gauge button on my Milwaukee M28 battery pack for a bit longer (some seconds), the four fuel gauge LEDs start to blink out what seems to be diagnostic codes. I just tried it twice in a row, and each time the readout was as follows:

all                                               4 
all all          1  2 2 2 2 2 2  3 3 3            4 4 4 4 4 4 4 4 
all all all         2 2          3 3 3            4 4 4 4 4 
all all all all     2 2          3 3 3 3 3 3 3 3  4 4 4 4 4 4 4 4 4

Here, "all" indicates one flash of all four LEDs at the same time, and a number indicates one flash of that LED (counted from left). Reading direction is like lines of text. Spacing is for clarity only.

What do these battery flash codes / blink codes indicate?

I found nothing about them in the Milwaukee V28 battery troubleshooting guide, and there is seemingly no equivalent document for the (newer but very similar) M28 battery series.

Battery pack data:

  • model: Milwaukee M28 Lithium-Ion 3.0 Ah (so, not yet the new M28 REDLITHIUM series)
  • nominal voltage: 28 V
  • working fine but in use for some years already
  • other numbers: 4932 3525 23, 7INR18/65-2, HAAC0

Since there is no official documentation, we need to do a bit of reverse engineering. So it appears to me (from similarities with flash codes from cars in the 1990's) that the number of flashes will indicate digits. The "all together" flashes are probably just separators. Applying this, the numbers encoded in your example would be:

  1. 0001
  2. 1638
  3. 0235
  4. 0289


  • The second number means "days since first charge". This number seems to increase by one every day (I observed an increase of 1 in 36 hours, but have to check more; also somebody else claims for M18 batteries it changes daily, see below). So 1638 days back from the date of your question would mean Sept 5, 2012 (says WolframAlpha). It will probably be the day of first charge, not of manufacture, because the date of manufacture is already included on the battery as a Milwaukee date code (though for this one I can't detect one, bit strange). Also, it is reported in the Milwaukee V28 battery troubleshooting guide that fuel gauge LEDs do not work at all before the first charge, so it seems reasonable to assume the flash codes will not work until then either. That is unconfirmed though, but anyway, both date of manufacture and date of first charge are a reasonably good approximation of battery age.

  • The third number means "charge cycle count". I found that out by charging again until the green light appears, which increased the third number by one and left all others unchanged.

  • The first and fourth numbers did not change yet, and I have no idea what they mean. They did not change for others who tried to decode them (see below). So maybe a battery health state code, a battery type number, or something else. I will have to compare values from my other battery packs (or if you have these too, please post your values below).

Other bits and pieces (everything I could find on the web):

  • Seemingly the Milwaukee M18 battery packs (18 V LiIon series) exhibit a very similar behaviour, and one user reports about that: "The first set of flash codes appears to change daily. A second set does change as well, but I haven't figured that one out yet. The remaining codes remain the same." (source)

  • Again for Milwaukee M18 batteries, an unknown source is quoted saying that "[T]he batteries ha[ve] a chip that records the date they were first charged (at the factory I assume) and that it records the number of charge cycles it has gone through." (source)

  • A Milwaukee support employee reportedly said "The flashes are of no significance." (source) The answer should have added "to consumers" however, as blink codes are of major significance to geeks :)

  • 1
    This does not seem to work with newer (2.0, XC 4.0, etc.) batteries. The older M18 1.5 batteries do have a diagnostic mode consistent with the M28 batteries - one of the units I had access to has close to 400 charges on it. Regardless, +1. – bwDraco Jun 22 '17 at 4:13

I've done similar investigation on the M18 Milwaukee battery packs. I have 4X 4.0 amp hour packs and 2X 3.0 amp hour packs. I'm also getting 4 separate codes.

  1. 0001 1. 0001 1. 0001 1. 0001 1. 0001 1. 0001
  2. 0950 2. 0952 2. 0939 2. 0808 2. 0607 2. 0950
  3. 0031 3. 0028 3. 0015 3. 0122 3. 0033 3. 0025
  4. 2251 4. 2251 4. 2134 4. 2251 4. 2251 4. 2134

These are some other identification numbers on the plastic casings.

1. 4.0ah 140122U 1/22/14 E54CD-279534

2. 4.0ah 140122U 1/22/14 E43CD-281017

3. 3.0ah 131129P 11/29/13 B41LD-360392

4. 4.0ah 140106U 1/6/14 E54CD-199520

5. 4.0ah 131008W 10/8/13 E54CD-142398

6. 3.0ah 131225P 12/25/13 B41LD-402152

  1. My best guess is it just tells the status of the battery, all my 6 batteries are working fine.
  2. This seems to be an assembly number because the first two 4.0 batteries, which came in a set, have their dates and other identification numbers match. For example, the fourth battery in my list (4.0ah) has an earlier date, 1/6/14, then the first two 4.0ah batteries, 1/22/14, and the code is also lower 0808 then the later ones 0950 and 0952. This may help Milwaukee pinpoint any errors on the assembly line if sent in for warranty.
  3. This seems to be a cycle count.
  4. This seems to indicate what capacity the batteries are, since all the 4.0 match together and the 3.0 match together.

What i gleaned from this investigation is if buying used batteries, its good to check on the cycle count after the all four triple blink, to get an idea of how much it's been used.


After almost a year since my last investigation into the flashing codes, i brought the batteries in from the cold garage for the winter and checked the codes again. The original poster is correct that the second set of numbers is in fact days since first charge. But i would like to add that it is actually days since first charge after being depleted of the 50% charge it comes with from the factory; so maybe more precisely date since second charge. Because I have batteries with an older date stamp but with less days on the counter than batteries minted at a later date, but which turn out to have more days ticked.This just lets the technician know how long the battery was sitting on a shelf before it was purchased and began to be used. Hope that helps!


If anyone still follows this, I have a 4ah battery, that is not charging, the charger flashes red and green, sometimes the first led on the batteri lights up, for a couple of hours, sometimes in the past I have managed to charge it, by taking it in, and out of the charger several times, The code are:

1: 0001 (If 1 means health of battery, it is still reporting OK... )

2: 2203

3: 8950 (cycle count naaaaah..... charged twice a day, every work day, 200 days a year, means 22 years...)

4: 2249

  • Thanks, one more data point :-) It seems the meaning of the diagnostic codes changed between model years. It would help if you could add all type names and numbers written on the battery pack to your answer. – tanius May 27 '19 at 10:19
  • 1
    4932 4300 63 5 INR 18/65-2 M1884 / 4.0 Ah / 72 Wh Serial number is unreadable – Brian Jul 7 '19 at 6:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.