Jump to content
Sign in to follow this  
Master_Scythe

Laptop battery wont charge

Recommended Posts

I have a Gigabyte R3 laptop, with a GNC-C30 battery pack in it.

I actually thought I sold it, but turns out I had $800 worth of laptop sitting in the corner for 3 years....... oh well, it's PERFECT for my laptop needs, so I'm going to use it.

 

Plug it in, "Plugged in, CHARGING" left it overnight, still 0%...... Damn....

 

Cracked open the battery pack, and sure enough, we're reading about 5v across the entire 3 cell pack.... yeah, she dead.

Luckily, having a bit of battery nerd in me, thanks to my Quadcopter obsession;

I know these are Litium ION, not Lithium POLYMER, so much less likely to actually be bricked, so long as they're still above 0v (and rarely, a 0v will revive too).

 

So my laptop battery knowledge told me "The safety chip in the battery will be blocking the charge".

Voltage is too low.

 

I managed to find the main cell that was suuuuper low (1.1v) and bump charge it up to about 2.9v with my hobby charger, at 0.25C (200mah).

From there, I put the battery charger across the entire battery pack (pre-chip), and dumped a nice 2Ah into it, at 0.5C (2A)

Cells stayed icy cold, no magic smoke, and voltage sag between charge and rest was about 0.3v.

Yay!

I've probably lost a little capacity, but all the cells are clearly holding charge!

Its now at 11v (and I'd know if I'd overcharged 2 cells that much, thanks to fire :P)

 

 

Here's the kicker, The laptops behavior hasn't changed!

STILL says "0% - Charging" and despite dumping 2.5Ah into a 4200Mah battery, the laptop is still so powerless it drops its CMOS settings when I remove AC.

 

These batteries are extremely expensive ($150+), so I'm trying to avoid replacing it when I know it can hold a charge just fine.

 

From research, it looks to be a TI BQ20Z45 Charge Controller chip.

 

and once a FAILURE flag is tripped, it blocks everything.

I'm going to look into how to reset this chip.

Unless anyone has any bright ideas!

 

EDIT:

 

Looks like those chips get custom firmware based on device.... rats....

I've just messaged ROSCOSCITY to see if he can source me a battery or a non-bricked charge board.

Sometimes it's nice having a Gigabyte Rep around eh? :P

Edited by Master_Scythe

Share this post


Link to post
Share on other sites

A fault in the laptop maybe? What happens if you connect your bench power supply to the computer's battery contacts?

Share this post


Link to post
Share on other sites

I can confirm the laptop itself is fine, since I own a second gigabyte laptop.

And although its battery is significantly bigger, it's the same voltage, and the same connector.

It charges and runs fine (just can't close the case :P)

 

It's certainly the battery\BQ20Z45 that's at fault.

 

What I don't understand is why they make it so fucking hard.

I actually was impressed that there was a "Nope, too low!" chip in batteries these days, I thought that was rather clever.

But one that LOCKS the entire charge controller permanently?

It's not even a user-replacable part (Unless you're At0mic), so it's not like its helping some diabolical scheme of planned obsolescence.

 

I mean, even if it was a fear of legal action from letting a battery every charge that reached 0, you'd think it'd be clever to have a pair of pins or something you could trip to reset it.

I'm going to have a look at it, and see if it's a SMD or Pin-through chip. I might be able to buy a 'new one'.

Edited by Master_Scythe

Share this post


Link to post
Share on other sites

It's a safety measure.

 

Li-Ion batteries are "less dangerous" than Li-Po batteries, but still dangerous if overcharged or over-discharged (or damaged):

 

http://batteryuniversity.com/learn/archive/lithium_ion_safety_concerns

 

It's reasonable for the chip to assume that if the voltage goes too far outside "healthy", then it's possible that a cell is damaged, and preventing further use of the pack is the right thing to do.

 

If Gigabyte intended for the battery pack to be a factory serviceable item, then part of the procedure is probably to replace the controller board at the same time as any cell/cells within the pack.

Share this post


Link to post
Share on other sites

It's a safety measure.

 

Li-Ion batteries are "less dangerous" than Li-Po batteries, but still dangerous if overcharged or over-discharged (or damaged):

 

http://batteryuniversity.com/learn/archive/lithium_ion_safety_concerns

 

It's reasonable for the chip to assume that if the voltage goes too far outside "healthy", then it's possible that a cell is damaged, and preventing further use of the pack is the right thing to do.

 

If Gigabyte intended for the battery pack to be a factory serviceable item, then part of the procedure is probably to replace the controller board at the same time as any cell/cells within the pack.

 

Oh, I understand all that.

But when you build a pack that you need to cut open to get to, you can safely assume your company is safe from any warranty\legal issues!

Your chip blocked the charge, it did its job.

 

Making it UNABLE TO BE RESET however, is another story.

 

In this instance, I know the cells survived (took more than 50% capacity charge with no heat) and I can't reset the controller.

What if the cells DIDN'T survive, but I replaced them? There's no way to reset that fucking chip.

 

I agree to the blocking, I disagree with my very soul with the idea of locking a controller permanently.

 

There's no reason to need to do that.

Its not a legal thing.

Its not a safety thing per se (you have to cut the battery casing to get to it! I think we know we're breaking the rules\taking risks :P)

IMO its just stupidity and lack of serviceability.

Edited by Master_Scythe

Share this post


Link to post
Share on other sites

Does the battery pack in fact have a charge control chip?

 

Laptops themselves have SMCs that in some cases control charging. I've got an older Dell with a (known) issue that it refuses to charge, indicates it's doing so for 20 seconds then acts as if nothing's connected. Still happily uses the incoming DC from the PS but only powers the laptop without refreshing the battery.

 

Deducing if it's one or the other might be a chore. If you had a same laptop or one that uses the same battery pack then of course that'd make it way easier.

The other avenue is if it's a common issue then there'd be plenty of talk around about it.

Share this post


Link to post
Share on other sites

Deducing if it's one or the other might be a chore. If you had a same laptop or one that uses the same battery pack then of course that'd make it way easier.

The other avenue is if it's a common issue then there'd be plenty of talk around about it.

|

V

 

I can confirm the laptop itself is fine, since I own a second gigabyte laptop.

 

And although its battery is significantly bigger, it's the same voltage, and the same connector.

 

It charges and runs fine (just can't close the case :P)

Anyway...

 

I agree to the blocking, I disagree with my very soul with the idea of locking a controller permanently.

It just means that the PCB with the controller on it is a throwaway item. The cost to Gigabyte (or the OEM that manufactures the packs) is probably cents per unit.

 

If they do remanufacture/refurbish the battery packs in house, they'd replace it as a matter of course.

 

Since they don't intend the item to be user-serviceable, why would they use a controller with reset capability that probably costs a few cents more, and require PCB layout space to break out those pins on the chip (potentially needing a bigger PCB, reducing yield)?

  • Like 1

Share this post


Link to post
Share on other sites

Mainly to reduce ewaste and allow a longer service life for the advanced end user, or repairer.

Plenty of companies have done so in the past with various items.

 

Besides, Gigabyte don't run their own repair business AFAIK, so having the laptop parts be repairable would be in the best interest of their brand image.

 

Outside of image though? ewaste\carbon footprint are hot button issues, and less tonnage of waste would be a big deal for any factory id imagine.

Edited by Master_Scythe

Share this post


Link to post
Share on other sites

From the datasheet of that charging IC:

 

Secondary (2nd Level) Safety Features

The secondary safety features of the bq20z45-R1 can be used to indicate more serious faults via the SAFE (pin7). This pin can be used to blow an in-line fuse to permanently disable the battery pack from charging or discharging.

So the way this particular charge controller "blocks everything" is by popping a fuse elsewhere on the PCB.

 

"pin7" is wrong though, the pinout diagram shows SAFE is pin 16. Trace it out with your multimeter. In their application schematic, pin 16 goes to the gate on a MOSFET, which creates a low-impedance path through their fuse to blow it.

 

This means pin 15 (PFIN) is pulled high, and the chip is locked out.

 

Either replace the fuse if you can find it, or pull pin 15 low through a lowish value resistor (1K or so).

 

Edit: Linky: https://www.ti.com/lit/ds/symlink/bq20z45-r1.pdf

Edited by SquallStrife
  • Like 1

Share this post


Link to post
Share on other sites

Oh nice! Thank you for that!

I'm a novice at schematics, I can read them, but i'm slow.... and often takes a lot of googling.

If I'm honest I was hoping you'd take an interest :)

 

The poly fuse is very visible at the edge of the board (I first thought it was a SMD capacitor, but no markings, and twice the side of any other caps on the board).

God I hope that's all it is..... we'll see!

 

TY!

I'll inspect and report back.

 

If its blown, and the chip wants to re-blow it, would there be a problem with just bypassing it?

I know I'm losing a safety feature, but other than that?

 

This actually makes sense.....

When I multimeter the pins on the battery output lead\connector, I read 0v across every pin.

This makes sense!

 

Fuck, why am I at work? I wanna go home and check, lol.

Edited by Master_Scythe

Share this post


Link to post
Share on other sites

If its blown, and the chip wants to re-blow it, would there be a problem with just bypassing it?

Only that the chip itself might be damaged or faulty in some way, and popping the fuse is the fail-safe action.

 

If the chip has failed, results could be mixed. It might be fine, but the battery gauge is wrong. The computer might complain about battery health or even refuse to boot. It might boot and run but refuse to charge the pack.

 

There shouldn't be any risk of damaging the computer. Worst outcome might be that the chip has failed short internally and dumps the cells' combined voltage on to the SMBus pins without current limiting, but those pins should be voltage clamped by the zener diodes and current limited by the series resistors shown in the application notes.

 

I say "shouldn't be", the health of the IC and the clamping diodes are unknown at this point. Proceed at your own risk.

Edited by SquallStrife

Share this post


Link to post
Share on other sites

 

If its blown, and the chip wants to re-blow it, would there be a problem with just bypassing it?

Only that the chip itself might be damaged or faulty in some way, and popping the fuse is the fail-safe action.

 

If the chip has failed, results could be mixed. It might be fine, but the battery gauge is wrong. The computer might complain about battery health or even refuse to boot. It might boot and run but refuse to charge the pack.

 

There shouldn't be any risk of damaging the computer. Worst outcome might be that the chip has failed short internally and dumps the cells' combined voltage on to the SMBus pins without current limiting, but those pins should be voltage clamped by the zener diodes and current limited by the series resistors shown in the application notes.

 

I say "shouldn't be", the health of the IC and the clamping diodes are unknown at this point. Proceed at your own risk.

 

 

Usual messing with IC disclaimer, gottcha :D

As I said I'm not foreign to this, but my mate and I mess with Arcade motherboards, so usually OLD chips with big pins and naked-eye followable traces.

 

Does this make sense though?

Should I be reading some sort of voltage at the + and - (3 pairs, 3 cells) pins of the battery output, post IC, if there wasn't a blown fuse?

 

3 reds and 3 blacks you'd imagine should read something, correct?

s-l1600.jpg

Share this post


Link to post
Share on other sites

Depends on how they've implemented it.

 

If it's straight from the datasheet application notes, then the supply will be interrupted until the controller knows the computer is present, and the output pins will show 0v.

 

I only see 2 non-power pins though, so perhaps this implementation always assumed the computer is present. In which case, there should be voltage at the outputs.

 

What does the known good battery show when disconnected?

Edited by SquallStrife

Share this post


Link to post
Share on other sites

What does the known good battery show when disconnected?

 

I didnt check, and it's quite a few damn screws to get at it again, lol.

 

 

I only see 2 non-power pins though, so perhaps this implementation always assumed the computer is present. In which case, there should be voltage at the outputs.

 

Considering the battery is "non-removable" that's entirely possible.

Share this post


Link to post
Share on other sites

The non-power pins on the connector should be SMBus clock and data, you should be able to interrogate the chip with an Arduino, even if the power output is not enabled: http://forum.arduino.cc/index.php?topic=167537.0

 

Im supremely keen on doing this.

Any chance you could explain like i'm 5 what needs to be done?

 

I can go via Jaycar tonight and grab an arduino.

 

I have a nano, but its being used for a wideband fuel sensor I programmed for the car.

Edited by Master_Scythe

Share this post


Link to post
Share on other sites

Not having the battery, it should "just" be a case of connecting the two non-power pins to the I2C pins on the Arduino, connect battery pack negative to Arduino ground, and 10K resistors from each of the I2C lines to Arduino Vcc (+5v, the datasheet says the SMB* pins on the IC are 5v tolerant), then run a sketch and see if you get data back. If it doesn't work, the clock and data lines might be reversed.

 

The link contains some sample code:

 

#include <i2cmaster.h>

int dev = 0x0B<<1;
int data_low = 0;
int data_high = 0;
int pec = 0;

void setup()
{
Serial.begin(9600);
i2c_init(); //Initialise the i2c bus
}

void getvoltage()
{
  i2c_start_wait(dev+I2C_WRITE);
  i2c_write(0x09);
  i2c_rep_start(dev+I2C_READ);
  data_low = i2c_readAck(); //Read 1 byte and then send ack
  data_high = i2c_readAck(); //Read 1 byte and then send ack
  pec = i2c_readNak();
  i2c_stop();

  double tempDataVoltage = 0x0000;
  tempDataVoltage = (data_high) *256 + data_low;
  double voltage = tempDataVoltage/3*10;
  //Serial.print("Spannung=");Serial.println(tempDataVolatge,HEX);
  Serial.print("Spannung in mV =");Serial.println(voltage,0);
}

void gettemperature()
{
  i2c_start_wait(dev+I2C_WRITE);
  i2c_write(0x08);
  i2c_rep_start(dev+I2C_READ);
  data_low = i2c_readAck(); //Read 1 byte and then send ack
  data_high = i2c_readAck(); //Read 1 byte and then send ack
  pec = i2c_readNak();
  i2c_stop();

  double tempDataTemperature = 0x0000;
  tempDataTemperature = (data_high) *256 + data_low;
  //Serial.print("Temperatur=");Serial.println(tempDataTemperature,HEX);
  double temperature=((tempDataTemperature/10)-273.15);
  Serial.print("Temperatur in Grad Celsius=");Serial.println(temperature,2);
}

void loop()
{

getvoltage();
gettemperature();
Serial.println("--------------------------------------------");
}
... but I'm not sure what model of battery it's for, although he uses 0x09 for Voltage and 0x08 for Temperature, which both align with the datasheet I linked earlier. He does mention he's using a third-party I2C library, which may or may not be necessary for this purpose (he mentions needing to fiddle with the start/stop bits, the built-in Wire.h might not do it). Without having the devices to hand, I couldn't verify for you.

 

The datasheet contains all the commands and response specs. Best thing to do is plop the above code into Arduino, wire everything up, hit go, and see what happens. Worst case, nothing.

 

They mention in the thread that some battery controllers SMBus devices don't quite follow the SMBus spec, so of course YMMV.

Edited by SquallStrife

Share this post


Link to post
Share on other sites

Thank you muchly!

So any arduino stuff I've done in the past has been me writing code to the Arduino to run standalone... things (like reporting AFR in a car).

 

How will this work? Will the PC receive the output?

Do I run it in a different way to how I've 'written' programs to the Arduino before?

 

Im glad we're both in the same city, one day I'm going to meet you and talk you bloody ear off absorbing your brains :P lol

Thanks so much for the help :)

Share this post


Link to post
Share on other sites

How will this work? Will the PC receive the output?

Do I run it in a different way to how I've 'written' programs to the Arduino before?

If you have a proper Arduino board with a USB connection, then yes, it manifests as a virtual COM port, and you'd just watch for data in a terminal program (PuTTY will do the trick) or the serial monitor built in to the Arduino IDE.

 

If you're using one of those ATMEGA328P-based micro/nano boards that's designed to go into a breadboard, then you'd need to find a way to interface the board's logic-level UART with your PC, like one of those FTDI adaptors.

Share this post


Link to post
Share on other sites

 

 

...the laptop is still so powerless it drops its CMOS settings when I remove AC...

 

Low main battery means it also drops the settings? As an aside here that smells suspiciously like the CMOS backup battery is also borked (I'm assuming that it's got one, for the price/specs it'd bloody well better have..).

 

And/or the BIOS itself is somewhat scrambled and needs a serious reset or even a full reflash to clear it out and restore some sanity to it.

Share this post


Link to post
Share on other sites

 

...the laptop is still so powerless it drops its CMOS settings when I remove AC...

 

Low main battery means it also drops the settings? As an aside here that smells suspiciously like the CMOS backup battery is also borked (I'm assuming that it's got one, for the price/specs it'd bloody well better have..).

 

And/or the BIOS itself is somewhat scrambled and needs a serious reset or even a full reflash to clear it out and restore some sanity to it.

 

 

yeah that little guy is dead too; but it wont matter if it had primary battery charge.

Share this post


Link to post
Share on other sites

 

How will this work? Will the PC receive the output?

Do I run it in a different way to how I've 'written' programs to the Arduino before?

If you have a proper Arduino board with a USB connection, then yes, it manifests as a virtual COM port, and you'd just watch for data in a terminal program (PuTTY will do the trick) or the serial monitor built in to the Arduino IDE.

 

If you're using one of those ATMEGA328P-based micro/nano boards that's designed to go into a breadboard, then you'd need to find a way to interface the board's logic-level UART with your PC, like one of those FTDI adaptors.

 

 

Ah I'd only been using nano's and writing programs.

I had no idea the 'full size boards' had that function.

 

very cool :)

Share this post


Link to post
Share on other sites

It depends how the nanos are connected. The ones I use have no USB connector, a 5-pin header on the short side for an FTDI adaptor for serial connectivity, but are programmed over SPI (I use a USBasp for this) and have no bootloader.

 

oOtkU.png

 

SPI programming uses RST, MOSI, MISO, SS, and SCK.

 

If your boards have a USB plug on them, and are programmed over the USB cable, then it has the serial functionality already. (Either using an ATMEGA32u4 or similar with on-die USB, or an ATMEGA328P with an FTDI chip on the board)

 

Ard_nano.jpg

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×