Jump to content


Photo

Laptop battery wont charge


  • Please log in to reply
24 replies to this topic

#1 Master_Scythe

Master_Scythe

    Titan

  • Hero
  • 20,381 posts
  • Location:QLD

Posted 07 February 2018 - 11:57 AM

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, 07 February 2018 - 12:47 PM.

Wherever you go in life, watch out for Scythe, the tackling IT support guy.

"I don't care what race you are, not one f*cking bit, if you want to be seen as a good people, you go in there and you f*ck up the people who (unofficially) represent you in a negative light!"


#2 SquallStrife

SquallStrife

    Really knows where his towel is

  • Atomican
  • 17,998 posts

Posted 07 February 2018 - 12:30 PM

A fault in the laptop maybe? What happens if you connect your bench power supply to the computer's battery contacts?
SyDjDDk.png [retro swim] | AzpUvwG.png @retroswimau | q5O6HgO.png +RetroSwim
四時半を待っています!

#3 Master_Scythe

Master_Scythe

    Titan

  • Hero
  • 20,381 posts
  • Location:QLD

Posted 07 February 2018 - 12:46 PM

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, 07 February 2018 - 12:54 PM.

Wherever you go in life, watch out for Scythe, the tackling IT support guy.

"I don't care what race you are, not one f*cking bit, if you want to be seen as a good people, you go in there and you f*ck up the people who (unofficially) represent you in a negative light!"


#4 Jeruselem

Jeruselem

    Guru

  • Atomican
  • 14,453 posts
  • Location:Not Trump-Land

Posted 07 February 2018 - 01:04 PM

Can't get an Chinese knock-off copy off eBAY?


DOWN DOWN, the Dow Jones is DOWN.

DOWN DOWN, the ASX is DOWN.


#5 SquallStrife

SquallStrife

    Really knows where his towel is

  • Atomican
  • 17,998 posts

Posted 07 February 2018 - 01:52 PM

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://batteryuniver...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.
SyDjDDk.png [retro swim] | AzpUvwG.png @retroswimau | q5O6HgO.png +RetroSwim
四時半を待っています!

#6 Master_Scythe

Master_Scythe

    Titan

  • Hero
  • 20,381 posts
  • Location:QLD

Posted 07 February 2018 - 02:19 PM

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://batteryuniver...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, 07 February 2018 - 02:21 PM.

Wherever you go in life, watch out for Scythe, the tackling IT support guy.

"I don't care what race you are, not one f*cking bit, if you want to be seen as a good people, you go in there and you f*ck up the people who (unofficially) represent you in a negative light!"


#7 Rybags

Rybags

    Immortal

  • Super Hero
  • 35,326 posts

Posted 07 February 2018 - 03:23 PM

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.



#8 SquallStrife

SquallStrife

    Really knows where his towel is

  • Atomican
  • 17,998 posts

Posted 07 February 2018 - 03:39 PM

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)?
SyDjDDk.png [retro swim] | AzpUvwG.png @retroswimau | q5O6HgO.png +RetroSwim
四時半を待っています!

#9 Master_Scythe

Master_Scythe

    Titan

  • Hero
  • 20,381 posts
  • Location:QLD

Posted 07 February 2018 - 04:16 PM

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, 07 February 2018 - 04:17 PM.

Wherever you go in life, watch out for Scythe, the tackling IT support guy.

"I don't care what race you are, not one f*cking bit, if you want to be seen as a good people, you go in there and you f*ck up the people who (unofficially) represent you in a negative light!"


#10 SquallStrife

SquallStrife

    Really knows where his towel is

  • Atomican
  • 17,998 posts

Posted 08 February 2018 - 08:07 AM

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/l.../bq20z45-r1.pdf

Edited by SquallStrife, 08 February 2018 - 09:57 AM.

SyDjDDk.png [retro swim] | AzpUvwG.png @retroswimau | q5O6HgO.png +RetroSwim
四時半を待っています!

#11 Master_Scythe

Master_Scythe

    Titan

  • Hero
  • 20,381 posts
  • Location:QLD

Posted 08 February 2018 - 10:56 AM

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, 08 February 2018 - 11:00 AM.

Wherever you go in life, watch out for Scythe, the tackling IT support guy.

"I don't care what race you are, not one f*cking bit, if you want to be seen as a good people, you go in there and you f*ck up the people who (unofficially) represent you in a negative light!"


#12 SquallStrife

SquallStrife

    Really knows where his towel is

  • Atomican
  • 17,998 posts

Posted 08 February 2018 - 11:11 AM

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, 08 February 2018 - 11:21 AM.

SyDjDDk.png [retro swim] | AzpUvwG.png @retroswimau | q5O6HgO.png +RetroSwim
四時半を待っています!

#13 Master_Scythe

Master_Scythe

    Titan

  • Hero
  • 20,381 posts
  • Location:QLD

Posted 08 February 2018 - 11:27 AM

 

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


Wherever you go in life, watch out for Scythe, the tackling IT support guy.

"I don't care what race you are, not one f*cking bit, if you want to be seen as a good people, you go in there and you f*ck up the people who (unofficially) represent you in a negative light!"


#14 SquallStrife

SquallStrife

    Really knows where his towel is

  • Atomican
  • 17,998 posts

Posted 08 February 2018 - 12:10 PM

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, 08 February 2018 - 12:17 PM.

SyDjDDk.png [retro swim] | AzpUvwG.png @retroswimau | q5O6HgO.png +RetroSwim
四時半を待っています!

#15 Master_Scythe

Master_Scythe

    Titan

  • Hero
  • 20,381 posts
  • Location:QLD

Posted 08 February 2018 - 12:38 PM

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.


Wherever you go in life, watch out for Scythe, the tackling IT support guy.

"I don't care what race you are, not one f*cking bit, if you want to be seen as a good people, you go in there and you f*ck up the people who (unofficially) represent you in a negative light!"


#16 SquallStrife

SquallStrife

    Really knows where his towel is

  • Atomican
  • 17,998 posts

Posted 08 February 2018 - 01:28 PM

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...?topic=167537.0
SyDjDDk.png [retro swim] | AzpUvwG.png @retroswimau | q5O6HgO.png +RetroSwim
四時半を待っています!

#17 Master_Scythe

Master_Scythe

    Titan

  • Hero
  • 20,381 posts
  • Location:QLD

Posted 08 February 2018 - 01:40 PM

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...?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, 08 February 2018 - 01:40 PM.

Wherever you go in life, watch out for Scythe, the tackling IT support guy.

"I don't care what race you are, not one f*cking bit, if you want to be seen as a good people, you go in there and you f*ck up the people who (unofficially) represent you in a negative light!"


#18 SquallStrife

SquallStrife

    Really knows where his towel is

  • Atomican
  • 17,998 posts

Posted 08 February 2018 - 03:28 PM

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, 08 February 2018 - 03:33 PM.

SyDjDDk.png [retro swim] | AzpUvwG.png @retroswimau | q5O6HgO.png +RetroSwim
四時半を待っています!

#19 Master_Scythe

Master_Scythe

    Titan

  • Hero
  • 20,381 posts
  • Location:QLD

Posted 08 February 2018 - 04:25 PM

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 :)


Wherever you go in life, watch out for Scythe, the tackling IT support guy.

"I don't care what race you are, not one f*cking bit, if you want to be seen as a good people, you go in there and you f*ck up the people who (unofficially) represent you in a negative light!"


#20 SquallStrife

SquallStrife

    Really knows where his towel is

  • Atomican
  • 17,998 posts

Posted 09 February 2018 - 12:18 AM

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.
SyDjDDk.png [retro swim] | AzpUvwG.png @retroswimau | q5O6HgO.png +RetroSwim
四時半を待っています!




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users