Max17043 - fuel gauge not working at all

Hello my friend,

I have bought a lipo fuel gauge (based on max17043 chip) on Ebay but it not working....

The board: http://www.winddeal.net/image/29718/29718-3.jpg The library: http://www.lucadentella.it/en/max17043-libreria-per-arduino/

I have connected SDA with SDA's Arduino, SCL with SCL, GND, VCC to +3.3V (I use 3.3V Arduino) But not working, the chip seem to don't respond. I have try wuth several libray -> same result // several lipo fuel gauge board -> same result, other arduino -> same result.

And I have tested with a board from SparkFun --> All is working (https://www.sparkfun.com/products/10617)

But I have several module from ebay and I want to use them !

This is the output with the library mentionned abose:

MAX17043 Example: reading voltage and SoC

Voltage: 5.0000V State of charge: 256.00%

Other example sketch:

MAX17043 Example: reading configuration values

Version: -1 Compensate value: 0xFF Alert treshold: 1% Alert triggered: YES

Have you some ideas of the problem ?

Thanks !

I have checked with the board of Sparkfun and they are only 2 différence between the boards:

1 - One resistance have not the same marking ->I have exchanged the resistors between the two board, and same result: sparkfun's board work weel, ebay's board -> KO.

2 - The two board have the chip "Max17043" but the series of letter and number on the second line are not the same (but it's probably production letter/number)

The PCB's traces are identical...

Someone have already buy this board on ebay or similar website ? (I have also order board from AlieExpress, and the board not working.......... >:( )

Nobody have some idea ?

I have made some search but I found nothing about my problem... these "chinese" board that I have bought are on many and many store, so this boards are working ?! All sellers don't sell not working board.....

I think the problem is on my side, but not finding where.....

The pull up resistor of 4.7K are already integrated on the pcb, so they have all the necessry component... (And as I say, with the board of sparkfun, no problem....)

:( :( :(

Hi Hexor

I have the same Problem, I bought 4 pcs on eBay, and all modules are not working. The module from exp-tech in Germany works well. Are there some fake chips mounted on the Chinese Modules?

Hexor,

I have been having the same problem. I ordered two modules off ebay and both are not working. I just ordered one from spark fun and hopefully it will yield a different result. I'll let you know how it turns out

Just tested out the module that I got from spark fun and it is finally working! The cheap modules I got off ebay are garbage.

I have also the same problem: Purchased several 17043 lipo fuel gauges from ebay. I have also purchased the Sparkfun ones. Sparkfun works without any problems on all libraries I have tried.

I have testet multiple modules of the clones: The difference is in the MAX17043: Where the Sparkfun has markings: Line1: 17043 Line2: 47A18. The clones have markings on Line1: 17043 Line2: 17A1U. The new Sparkfun have a black battery connector, the clones a white one. I have tried multiple libraries and also tried direct communications using I2C commands.

An interesting thing showed up in the testing with an I2C scanner: The Sparkfun uses address 0X36 and the clones 0X32. I though an adress change in the code would fix it, but unfortunately no: If I get values returned, they are “all over the place” - i.e. no consistent results.

I have also tried to change the I2C speed to slower speeds, but no change. I have also tried additional pull-up resistors on the SLC/SDA lines, but no change. I am pretty much out of options and ideas at this time…

I think the clone modules I purchased from 2 different vendors are made by the same manufacturer: They both contain what I assume is an jst battery cable where red and black wired are reversed. On the board it is pretty obvious where ground is compared with battery/power, but could trip some up I guess… All have the same markings on the max17043. Could they be counterfeit?

I have not gotten any relevant response from the first seller, and I will now contact the second seller to see their response. If anyone has purchased a clone that works - I appreciate a comment on the seller / channel.

having the same problem as well..

Hello, I have now testet "clone" LipoFuel Gauges from 3 different Chinese sellers, and all are not working.

I have cross checked with 2 batches from SparkFun, an all units from SparkFun works perfectly. I have tried with a number of libraries and also direct commands to the boards: All the symptoms point to the "clone" boards having defective or fake Max17043 chips.

The Sparkfun boards have a black jst battery connector, I think the older ones from Sparkfun might have been white (their web page shows white battery connector, but they are shipped with black ones).

The "clones" all have white battery connector. All the "clones" came with an incorrectly wired jst battery cable - so they might all be from the same production batch from the same manufacturer. So, if you see a board for sale with an included battery cable, stay away....

All the vendors just do the usual "crap" when confronted with these issues: - They loose their english knowledge - They ask if it's user or operator error - They finally after a lot of mails will offer refund if I return the goods

Since the postage is higher for a return than the value of the boards, the only option is to toss these fake stuff into the garbage can and stay with the Sparkfun ones.

$10 is a little expensive, but better to spend more for a working item than spending a lot of time and grief dealing with fakes from vendors with no scruples or customer support...

So, if any one can find a source of these boards working - and at a price of $5, that would be great. Until then I will spend $10 for the Sparkfun ones...

Just a heads up,

Bought 5pcs max17043G ICs on Aliexpress in July of last year, having issues aswell: I2C scanner detects at 0x32, after power cycle State of Charge register inexplicably starts counting down from 160% to 0% in a few minutes, does respond to Reset command but restarts countdown. Swapped clone IC with IC from Sparkfun board (set I2C address to 0x36), no more problems. Seller: HK WYD Electronics Co., Ltd.

Hi there, I had an ebay seller resend me one that I had purchased. I've connected a battery pack to it and I2C connection to a existing NodeMCU board (not using max17043 VCC and GND). I than ran the I2C Scanner sketch and 1 reponse.

I2C Device found at address 0x74!

However, subsequent scans have failed. Why would repeat scans fail?

I've check voltage on VCC and GND, and value are close to original values

eista: Hello, I have now testet "clone" LipoFuel Gauges from 3 different Chinese sellers, and all are not working.

I have cross checked with 2 batches from SparkFun, an all units from SparkFun works perfectly. I have tried with a number of libraries and also direct commands to the boards: All the symptoms point to the "clone" boards having defective or fake Max17043 chips.

The Sparkfun boards have a black jst battery connector, I think the older ones from Sparkfun might have been white (their web page shows white battery connector, but they are shipped with black ones).

The "clones" all have white battery connector. All the "clones" came with an incorrectly wired jst battery cable - so they might all be from the same production batch from the same manufacturer. So, if you see a board for sale with an included battery cable, stay away....

All the vendors just do the usual "crap" when confronted with these issues: - They loose their english knowledge - They ask if it's user or operator error - They finally after a lot of mails will offer refund if I return the goods

Since the postage is higher for a return than the value of the boards, the only option is to toss these fake stuff into the garbage can and stay with the Sparkfun ones.

$10 is a little expensive, but better to spend more for a working item than spending a lot of time and grief dealing with fakes from vendors with no scruples or customer support...

So, if any one can find a source of these boards working - and at a price of $5, that would be great. Until then I will spend $10 for the Sparkfun ones...

This ebay seller shown in these two video on the MAX17043 looks promising. I haven't tried it myself yet. Will post back if I do.

https://www.youtube.com/watch?v=3yHRrPDczK4&t=311s

This ebay seller shown in these two video on the MAX17043 looks promising. I haven't tried it myself yet. Will post back if I do.

Had noticed Julian's video, any news on that sellers module?

Did anyone get their MAX17043 fuel gauge from aliexpress to work? So far I'm having no luck myself.

The best I got out of them was finding one at i2c address 0x76, but it's not reading any useful values. The battery voltage reads between 2.0V for a 3.7Vlipo battery and 2.5volts if I connect it to 5V. SOC continuously reads 0%...

If someone still here in 2020! I'm one of happy owner of MAX17043 from AliExpress with 0x32 address. My sensor has same behavior after begin starts counting down from 160% to 0% and no voltage data in examples.

I did some researches and found that sensors could get voltage data but only once after quick-start and delay about 500 ms

i2cWrite16(0x4000, 0x06); // Send Quick-start(0x4000) to MAX17043_MODE register delay(500); mV = (1.25f * (float)(i2cRead16(0x02) >> 4)); // Get Data from VCELL

This is not how the SOC should work. But the SOC is alive and takes measurements. Maybe someone has moved on.

Interesting, been a while but does it also relay correct SOC register values after quick start and delay?

Additional research: seems SOC going to sleep after quick-start. There is one way to prevent going to sleep is permanent sent SOC to sleep and wake. Like this:

…skip…

#define PRINT_INTERVAL 1000
#define SLEEP_INTERVAL 700

…skip…

uint8_t sleep()
{
// Read config reg, so we don’t modify any other values:
uint16_t configReg = i2cRead16(MAX17043_CONFIG);

if (configReg & (1<<7)) {
return 5; // Already sleeping, do nothing but return an error
}
configReg |= (1<<7); // Set sleep bit

return i2cWrite16(configReg, MAX17043_CONFIG);
}

uint8_t wake()
{
// Read config reg, so we don’t modify any other values:
uint16_t configReg = i2cRead16(MAX17043_CONFIG);

if (!(configReg & (1<<7))) {
return 5; // Already awake, do nothing but return an error
}
configReg &= ~(1<<7); // Clear sleep bit

return i2cWrite16(configReg, MAX17043_CONFIG);
}

void loop()
{
static unsigned long lastMillis = 0;
static unsigned long lastSleep = 0;

if((millis() - lastSleep) > SLEEP_INTERVAL) {
lastSleep = millis();
sleep();
wake();
}

if((millis() - lastMillis) > PRINT_INTERVAL) {
lastMillis = millis();

Serial.print(“Now: “);
Serial.println(millis());
Serial.print(vcellMAX17043()); // print battery voltage
Serial.println(” mV 1st”);
Serial.print(percentMAX17043(), 2); // Print the battery percentage
Serial.println(" %");
}
}

Output:

…skip…
Discharge:

4188.75 mV 1st
40.82 %
Now: 2961054
vcell: D170
4188.75 mV 1st
40.82 %
Now: 2962055
vcell: D150
4186.25 mV 1st
40.82 %
Now: 2963056
vcell: D130
4183.75 mV 1st
40.82 %
Now: 2964057
vcell: D130
4183.75 mV 1st
41.19 %
Now: 2965058
vcell: D130
4183.75 mV 1st
41.19 %
Now: 2966059
vcell: D110
4181.25 mV 1st
41.19 %
Now: 2967060
vcell: D0F0
4178.75 mV 1st
41.19 %
Now: 2968061
vcell: D0F0
4178.75 mV 1st
41.19 %
Now: 2969062
vcell: D0F0
4178.75 mV 1st
41.19 %
Now: 2970063
vcell: D0D0
4176.25 mV 1st
41.19 %
Now: 2971064
vcell: D0D0

…skip…
Charge:
46.91 %
Now: 3086180
vcell: F2F0
4858.75 mV 1st
46.91 %
Now: 3087181
vcell: F2F0
4858.75 mV 1st
46.91 %
Now: 3088182
vcell: F310
4861.25 mV 1st
46.91 %
Now: 3089183
vcell: F310
4861.25 mV 1st
47.32 %
Now: 3090184
vcell: F310
4861.25 mV 1st
47.32 %
Now: 3091185
vcell: F310
4861.25 mV 1st
47.32 %
Now: 3092186
vcell: F310
4861.25 mV 1st
47.32 %

1 Like

Use an I2C scanner code to know the i2c address, it should be 0x32 for aliexpress and a different one for sparkfun (I donot remember the address). Also, the jst connector color is white for aliexpress and black for sparkfun. But aliexpress ones are not good for use. Their values fluctuate. Try to purchase the original one. I have spent a lot of time on this.

Workaholic:
Use an I2C scanner code to know the i2c address, it should be 0x32 for aliexpress and a different one for sparkfun (I donot remember the address).
Also, the jst connector color is white for aliexpress and black for sparkfun. But aliexpress ones are not good for use. Their values fluctuate. Try to purchase the original one. I have spent a lot of time on this.

Yes. My from AliExpress - 0x32 address, white connector.

Hmm, 40 something percent SOC @ 4.1-4.8V? Not right... Do you dare put 2 series cells on VCELL pin and see what it says? VCELL pin is rated to 12V, mind you, other pins max 6V.

Ps. Can't remember but is VDD pin connected to VCELL on board?