Battery is not charging

Want to add a report of my own experience. I must have put the Reform into suspend mode using the provided script (I do not have any of the new firmware) and left it lying around. I had to travel for a couple of days and when I arrived I noticed that it would no longer take a charge. I am able to use when plugged in, which I’m doing as we speak.

Here is what the oled indicator reports about the batteries:

Does this mean I should just go ahead and order new batteries?

It does not charge on my end with the same display as OP after not using it for a while, but on barrel plug. system status shows cell missing: I assume one is defect, does it tell me, which cell is missing?

Is there a good resource for spare batteries in Europe?

Yes, see:

1800mAh at NKON seem to be out of stock ATM, but you could get the 1600mAh ones from enerpower or search around the web a bit more for stock (18650 LiFePO4 1800mAh).

FWIW, maybe this is worth a shot before purchasing new batteries:

I also had issues with the batteries not taking a charge. I also picked up a Nitecore i2 charger. The LEDs would flash when attempting to charge the batteries, which indicates a battery fault; the charge was simply too low for it to activate the charging sequence.

Despite it not being the best practice to charge batteries that have “zero stated,” I placed several batteries in sequence and connected them to one slot in the charger. The voltage was still low, but it was now high enough to activate the charging sequence. I charged them by hand for a minute or two. This got the batteries to the point where they could be used normally in the Nitecore charger, and they later worked as expected in the Reform.


Does anyone know a good resource for spare batteries in Canada? The shipping is 45 USD from the Bulk battery link above for 2 batteries that cost 6.75 USD… Closest I’ve found was amazon, two pack for 13 USD but those where just 1200 mAh.

I tried @jcstaudt method of placing multiple batteries in series and manage to revive one. But still got two that’s too low charge (~0.60V) and is really finicky to connect them in series so I haven’t manage to revive them yet.


I get to join the club of people with dead batteries. :frowning:

I was in a different place for a few weeks. Before I left I checked the voltage of the batteries and had the battery monitor show ~80% charge. Since I have the firmware updates installed and kept the device without charging for longer periods before (periodically checking charge), I felt safe leaving without disconnecting the battery cables.

That was a mistake. When i came back close to a month later, multiple batteries showed low voltages and one of them refuses to keep a charge now.

I couldn’t find the 1800mAh JGNE in stock anywhere. Mixing different batteries is not recommended, so I’ll have to buy a full new set. I can probably find some use for the 7 working JGNEs, but it’s still a waste which should be avoidable.

I looked at the schematic to see how difficult adding an external switch would be.

If I read things right, then disconnecting the fuse F2 will stop supplying the system with power. It should be possible to desolder F2, and replace it with the fuse + an externally accessible switch to cut power externally.

My understanding is that the BGATE pin of the LTC4020 controls the connection of the battery to the rest to the system. Unfortunately, the pin would need to be pulled high to disconnect the battery, so I can’t see any way for software to force a battery disconnect if any cell reaches the lower cutoff voltage.

There’s probably a way to change the circuit to create a software controllable “resettable fuse” (N-channel mosfet in series to the actual fuse?) which could be tripped when a low voltage threshold is reached and reset when the power supply is connected, but doing so would require the LPC to be powered or at least periodically woken up to check the cell voltages and trigger the fuse.

While I confess to not knowing anything about the LPC, this actually sounds feasible as an aftermarket modification. There seem to be unused pins on the LPC, so one of them could be used to trigger the battery cutoff.

I imagine the following steps would work:

  1. Desolder fuse f2.
  2. Create circuit with the property of a resettable fuse (mosfet which can be turned off via MCU pin?) and connect this circuit in series with f2 to the original pins for f2. Connect trigger for resettable fuse to LPC pin.
  3. Change LPC firmware to periodically check cell voltages (potentially waking up from sleep to do so). If any cell reaches a dangerous voltage, change pin value to trigger battery disconnect.
  4. Connect power supply to restart system and thus reset fuse.

A disadvantage would be slightly increased power consumption / added resistance due to the the new mosfet. Depending on the implementation, turning on the system would require external power (or maybe a push switch to bypass the mosfet?) after the battery pack was disconnected.

Could someone with an actual EE background check the feasibility of what I’m trying to describe here? Such a thing probably already exists; not having read details, e.g. AP91352 with undervoltage lockout sounds related.


I like your idea, and came up with this variation:

We build a new Battery PCB that includes a mosfet that is held high by the LPC. After the LPC drops power, no power will leave the batteries. A momentary push button switch pulls power from the batteries to charge a capacitor that re-activates the mosfet for long enough to have the LPC pull the pin high again. That switch can be exposed from the side or bottom of the laptop.

For extra credit, we could build a small PCB that plugs into the old battery boards to make them into a USB power bank. Many of us now have 4 spare cells, and that would make them useful.


I like the idea of a PCB which is connected to the mainboard and to the battery boards and allows disconnecting the battery. Saving one set of batteries might be enough to offset the cost.

Some notes: If I read the data sheet correctly, the LPC turns off pins in deep sleep mode. I imagine either an external pull-up (if pins are high-Z during sleep) or a latch could be used to keep a voltage level while still allowing control through a MCU pin to change state.

It also seems that switching is a bit more complicated. The LPC’s 3.3V is referenced to ground, both BAT1+ and BAT1FUSED are >25V in reference to ground. (Search term: high side switch)

Using an N-channel MOSFET would require an even higher voltage than the >25V at the MOSFET’s gate to turn it on. While this can be achieved, this would require additional circuitry to create a charge pump and, I suspect, not provide the most power or cost efficient solution.

P-channel MOSFETs need a lower voltage on the gate compared to the source terminal. While our MCU’s 3.3V are at a lower potential (25V-3.3V = -22.7V), the MCU pin would not appreciate being connected to 25V in any form. As I understand, connecting the gate to a transistor and switching the transistor with the MCU pin would achieve our goal, but I don’t know the most efficient solution here.

As a quick solution, the fuse F2 could be removed (desoldering the holder doesn’t look easy with only a soldering iron). A fuse (125V/4A) and a switch could be placed on top of the SD card slot (with some non-conductive material) and connected with cables to the F2 pads. To expose the switch to the user, a cut-out could be added to the side panel or the side panel removed. This would make disconnecting the battery easy without requiring removal of the bottom panel.


A couple more of my batteries died due to overdischarge, but now there’s damage to the monitor circuit as well.
Looks like R27 and probably Q27 got fried.
@mntmn is this repairable?

I’ll make the mod suggested by @johkra above.


I had fried R28 when removing a battery cell while the power supply was still connected. I’ve replaced the resistor. The BOM describes the part as TE Connectivity 35224R7JT. Any 4.7 Ohm 3W resistor in 2512 (imperial) format should do.

My fried resistor still measured 4.7 Ohm, fwiw.

These resistors are used to balance cell voltages by discharging single cells through the resistor if the voltage of one cell is higher then the voltage of others.

It’s difficult to tell from the picture, but R28 also has some discoloration below the ‘4’ and might have been affected.

Did the components get damaged after connecting the power adaptor? Were all cells inserted when the damaged happened or were some cells removed (like in my case)?

Let’s attempt to reason over what might happen:

If we connect a 4.7 Ohm resistor directly to a fully charged LiFePO4 battery (assuming 3.6V), we should get 3.6 V / 4.7 Ohm = 0.77 A discharge current. That’s 3.6V * 0.77A = 2.77W and the 3W resistor should be fine.

I’m assuming that we can model charging batteries as a number of resistors connected in series. This is wrong, but might explain the principle. So if we’re charging 8x cells and want to reach 3.6V for each cell, we’re using 28.8V charging voltage. If each cell has the same resistance of 0.4mOhm, then each cell has the same voltage.

In a series resistor circuit all items have the same current which should be 28.8V / (8 * 0.4 mOhm) = 9000A. This is also the point where I’m certain that batteries can’t be modeled as resistors. I don’t use a 260kW power supply for charging. :wink:

Now let’s assume one cell has gone bad and has a higher resistance than others. Let’s say one cell has 1 mOhm resistance (value made up).

Current changes: 28.8V / 3.8 mOhm = 7579A.

That would lead to 7579A * 0.4 mOhm = 3.03 V over 7 resistors each and 7579A * 1 mOhm = 7.6 V over the higher value resistor.

This higher voltage would trigger the balancing circuit and the system would try to discharge through the 4.7 Ohm resistor. I guess the single 1mOhm resistor would turn into a parallel resistor (1 / (1/1mOhm + 1/4.7Ohm) = 0.99 mOhm) in relation to the series circuit. The resistance value is close enough that I’m assuming the voltage doesn’t change.

So we’re sending 7.6V through our 4.7 Ohm resistor resulting in 1.6A (7.6V / 4.7 Ohm) and 12W (1.6A * 7.6V) which is too much for our 3W resistor.

I need to stress again that any calculation modelling a battery cell as a resistor is bogus (we certainly don’t see thousands of Ampere!), but I assume something similar is happening.

My goal was to calculate current to determine whether it’s likely the transistor got damaged. The transistor has a maximum current rating of 4.2A which would correspond to 19.7V through the resistor (4.7Ohm * 4.2A).

I believe power dissipation is calculated using the on-state resistance. There, we see max ~70mOhm specified. With this value we’d get ~30mV drop at the transistor (4.2A * 70mOhm) and 126mW (30mV * 4.2A) power dissipation which is well below the specified 480mW for the transistor.

Unless we get an excessively high voltage (>20V) through the discharge resistor and thus through the transistor, I don’t think the transistor got damaged. Given the time it took for magic smoke to escape in my case (multiple seconds), I’m pretty sure there wasn’t >80W (19.7V * 4.2A) flowing through the resistor. That’s ignoring that the PSU is 60W in the first place.

FWIW, just disconnecting the battery boards when not using them for a while also works, but is far more annoying than a manual switch or automatic disconnect on over-discharge.

Good to know you replaced one of these resistors successfully.
Not certain about how it happened, but it wasn’t by removing the cells with power on. I removed all cells with power disconnected after noticing the problem, and then put all cells on an external tester/charger.
Some came back to life, a few didn’t.

After externally charging and replacing the bad cells:

If you refer to the cell balancer datasheet, the function of the circuit is to shunt a cell’s discharge current to protect the IC. So, it did that, but maybe the resistor rating is insufficient.

In any case, overdischarge protection must be added.
Adding a physical switch, like you suggested, is one option, but you better not forget to use it.

I am now leaning to use cells with built-in protection, like this Panasonic. 3X the cost of the original cells, but 2X the capacity and self-protected. Also 5mm longer, so need to make sure holder is suitable.

Interesting reading regarding Li-ion cell over-discharge here.

@aki Have you looked into the changes that would need to be made to use Li-Ion cells (like the Panasonic cells above) in the MNT Reform? I did some preliminary digging (see my post: Alternative battery chemistries?) but perhaps you’ve noticed more changes that must be made besides the length concerns.

Hi @jaykru, I haven’t looked into all the details, but I think it should be safe w/o any changes. The battery charger chip LTC4020 uses the same mode setting for Li-ion and LIPO. The difference is the charging voltage and current, which are set via hw resistor selections. From the datasheet:

LIPO charging voltage and current are lower than Li-ion, so the trade off is that the Li-ion cells will never be fully charged. But you get built-in under-charge protection.
The capacity may still be higher than the 1800mAh LIPO too.

Need to look into in more detail to figure this all out before trying it.
And, again, none of this matters if the cell holders cannot accommodate the 70.5mm length.

I have been spending some time thinking and experimenting on undervoltage lockout for the battery cells. It finally occured to me why disconnecting the battery stack at only one place doesn’t cleanly work. The reason is that the balancing circuitry bridges any missing cells through a 4.7Ohms resistor and body diode of the discharge MOSFET:

We came up with a solution that can monitor (for undervoltage) and disconnect each cell individually on a new battery pack board instead (work in progress):


Disconnecting the whole pack in one point might have been possible if the balancing circuit had 2 back-to-back MOSFETs for each discharge path.


Having thought about this some more, I’m not yet sure if isolating each cell like this will actually work for automatically recharging a cell that is bypassed by this circuit.

Also, I’ve found some additional complications that happen when the majority of cells are missing: if LPC loses power, but there is still enough voltage coming from 4 batteries (in a scenario where 4 batteries are dead), the 5V and 3V3 rails turn on by themselves.

While tracking down this problem I found a solution to implement a pretty proper UVLO on the motherboard with these patches (requiring 4 resistors in total):

I’m dogfooding this patch in my personal Reform over the next days and will report back.

Edit: Reuploaded the LPC UVLO drawing, 68k resistor was in the wrong place.

Edit 2: The previous idea of pulling down the ON/~OFF on the bucks doesn’t actually work because then the FETs cannot override this drain and the bucks will not enable (i.e. you can’t turn the system on). This is my next idea to ensure that the bucks don’t turn on if LPC_VCC has shut down: (remembering to remove R88 and R89):



Turns out the divider strategy is not good enough, as in low voltage condition the booster outputs something lower than 30V, so we don’t reach the threshold for the FETs and the LM bucks turn on anyway.

New idea (by F. Schneider), which also requires no floating wire: get rid of the FETs and connect LPC directly again, but clamp the LMs 6V current source (on the ON/OFF pin) with Zeners:

1 Like

Hey there, as it seems that the exact specs of battery is really hard to get in DACH region, are there other specs which work sufficiently? What about e.g. more powerful variants with > 2000mAh, will this work with the existinc electronics? Thanks in advance, really hope to get that baby off grid soon.

So there are no other sources than the ones mentioned above?
Most, also Mouser do not ship to Switzerland.

Welcome the first open hardware cable bound laptop :smiley: Reminds me of the WiFi cable back in the days, awesome.

at this point it looks rather like they aren’t shipping anywhere. Or communicating with people.

hm, why that? seems like I did not get the fax.