SparkFun LiPo Fuel Gauge

LiPo batteries are a great way to power your projects. They're small, lightweight, and pack a pretty good punch for their size. Unfortunately, even the best batteries eventually run low on power and when they do it's often unexpected (and at the worst time). Don't be caught by surprise next time your board suddenly powers-down! The SparkFun LiPo Fuel Gauge connects your battery to your project and uses a sophisticated algorithm to detect relative state of charge and direct A/D measurement of battery voltage. In other words, it tells your microcontroller how much 'fuel' is left in the tank. The LiPo Fuel Gauge communicates with your project over I2C and an alert pin also tells you when the charge has dropped below a certain percentage.

  • Fuel gauge system for single cell lithium ion batteries
  • Can be connected in circuit to monitor battery.
  • Hardware and Software Reset.
  • I2C Interface

SparkFun LiPo Fuel Gauge Product Help and Resources

Wireless Joystick Hookup Guide

January 5, 2017

A hookup guide for the SparkFun Wireless Joystick Kit.

LiPo Fuel Gauge (MAX1704X) Hookup Guide

February 23, 2023

Monitor your LiPo battery with the LiPo fuel gauge! In this tutorial, we will be using the MAX17043 and MAX17048 to monitor a single cell, LiPo battery over the Arduino Serial Monitor. We will also connect a display to view the output without the need to connect the microcontroller to a computer.

2 of 2 found this helpful:

Arduino Library for the SparkFun LiPo Fuel Gauge

We don't have an official library for the SparkFun LiPo Fuel Gauge, but this library and example code seems to work OK.

There is also another Arduino library that you can find in the Arduino library manager if you search for MAX1704X. This is written by Daniel Porrey.

Another alternative is to write the functions to read the MAX17043 in the sketch like example 3 and 4 in the Wireless Joystick tutorial.


Core Skill: Soldering

This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.

1 Soldering

Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels


Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

3 Electrical Prototyping

Skill Level: Competent - You will be required to reference a datasheet or schematic to know how to use a component. Your knowledge of a datasheet will only require basic features like power requirements, pinouts, or communications type. Also, you may need a power supply that?s greater than 12V or more than 1A worth of current.
See all skill levels


Comments

Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Member #1604350 / about 4 years ago / 1

    Will this work for a LiFePO4 4S battery?

    • santaimpersonator / about 4 years ago / 1

      As specified by the information listed under the Features tab, the version of the MAX1704X IC in the schematic/datasheet should be for single-cell batteries only (i.e MAX17043).

  • Member #718964 / about 4 years ago / 1

    Can I charge the battery while having this connected? I have an arduino-esque board with a built in lipoly charger. If it is helpful it is is the Adafruit feather M0 Bluefruit LE. The charger on the board runs the arduino off of the usb when connected and charges the battery at the same time. and I don't know if charging the battery while connected to this could do some damage.

    Thanks

  • j.tilghman / about 4 years ago / 1

    Will this work for 7.2v batteries or just 3.7v ?

    • santaimpersonator / about 4 years ago / 1

      As specified by the information listed under the Features tab, the version of the MAX1704X IC in the schematic/datasheet should be for single-cell batteries only (i.e MAX17043).

  • Member #426409 / about 5 years ago / 1

    My low-power project draws 30 microamps or less, but when I put this in place, it draws 1mA - even when I put it to sleep. Posted details here: http://forum.arduino.cc/index.php?topic=581247.0 Any advice?

  • Member #426409 / about 6 years ago / 1

    Mine always reads 256% charge / 5 Volts. I'm guessing that I've hooked it up wrong. There are + and - pins; and there are also VCC and GND pins. Do I hook the LiPo to + and -? Then do I run my load from VCC and GND?

    Basically I'm looking for a hookup diagram. I've seen conflicting videos re: hookup. Thanks for any help.

    • Member #426409 / about 6 years ago / 1

      I finally got it working. It turns out all I needed to connect was SDA, SCL, and B+ and B-. Did not need to connect GND, VCC, QST or ALT to get the VoltageSOC example from Arduinolib_MAX17043-Master working.

  • Member #906116 / about 7 years ago / 1

    Do I need a 5v step-up with this to power the arduino?

  • Member #803047 / about 8 years ago * / 1

    Are there any similar products to this that work with Lithium Ion batteries? I have several 12-Volt cylindrical-cell Lithium Ion batteries I would like to be able to get a fuel gauge for, but I haven't found any good ones.

    Do LiPo(s) and Li-Ion(s) function similarly enough that this would work for both?

  • Member #470208 / about 8 years ago / 1

    One of the best parts of SparkFun's designs is that there is usually a path to migrate from modules to an integrated system.

    The bummer about the MAX17043 is that it's non-stock from pretty much all the usual suspects: Digikey, Mauser, etc.

    Anyone know what's up with that? Is it end of life, is it that popular, or something else?

    Thanks!

  • Member #582885 / about 8 years ago / 1

    Okay, isn't there supposed to be an .ino file in the example code so that we can see how this fuel gauge works and how to grab the battery charge state? I do not know how to work with the files that are there. Matadormac

  • Member #716781 / about 8 years ago / 1

    If I had a 3S lipo, could I attach one sensor to cell #1, one to cell #2, and one to cell #3 to get a total combined capacity for the entire battery?

  • PalmTreesandPICs / about 13 years ago / 10

    so, when can we expect to see a Battery/Charger/fuel gage/current measuring/ boosting/with "system out" combo ?
    basically... a complete lipo solution package.
    you give it power say from a solar cell, usb, 7805, or what ever you can source power from... and you have a battery backed 4.2-3.0 V output...seamless... with no hassel.......
    you could include a switch maybe to boost to 5v the incoming power for better charging efficiencies or boost the outgoing power for 5v system operation.... mabey throw in a few comparators to make the power input have some hysterisis (only start charging when incoming voltage is 3V.....)
    i foresee power harvesting solutions.... spark fun... make this real!

    • ransomhall / about 13 years ago / 2

      +1. nice to know how much juice is left, but then I have to plug the LiPo into another board to charge it?

      • There are two separate pin headers where you can access the battery voltage. You can use one of them to connect a charger and, let's say, the other can connect to your system power.

        • Schilcote / about 12 years ago / 1

          Now, these two headers, could I hook up the Sparkfun 5v boost thingy up to one, and the Sparkfun LiPo charger up to the other? Regarding the charger, would I be able to run the device directly off of the charger input with this setup?

    • Yes, I would also be interested in something like this! As of right now I'm taking pieces and parts from SparkFun boards to basically make this... Would be nice to have a ALL-IN-ONE Solution!

    • baum / about 13 years ago / 1

      That would be heaven.

  • FoxxCommand / about 13 years ago / 4

    Would of been nice to see this incorporated into some kind of battery charger board as well...

  • Member #369150 / about 12 years ago / 3

    Would anyone be interested in a complete system? Charger, Fuel Gauge, Boost / Buck Power supply, low battery protection? I am considering designing this and selling on sparkfun, just wondering on interest?

    • Member #21368 / about 11 years ago / 1

      Been looking EVERYWHERE for an integrated solution like this and I can't find a good one! This is a great opportunity for you Spark Fun! A one board complete battery solution - plug the battery on one end, then connect the device on the other! You have all the pieces, just put it together into one (very small) board!

  • Member #150549 / about 13 years ago / 3

    This would be so perfect for me if it supported a 2-cell LIPO. There's even an IC that handles it (MAX17044G+U). I'm really hoping to see a 2-cell version of this board soon.. :)

    • Member #1450845 / about 5 years ago / 1

      Another +1 on this. Building a robot boat here with 2S LiPo powering an RPi via 5V regulator. Need to know when the battery will run down. I tried to see who sources any of these ICs to maybe swap the 17043 with 17044 but only a single supplier (mouser.com) sources the 17044 and that only in BGA form MAX17044X. I think the part on the Fuel Gauge is not the BGA part so it would not be compatible, even if it could just be reworked.

    • neilfred / about 11 years ago / 1

      Big +1 on this!

    • robotographer / about 13 years ago / 1

      I had actually bought this for that specific purpose, but upon reflection had purchased the wrong design. this will work great for one portion of my project, but a multi cell gauge would work better for larger projects like UAVs or tanks. really need a more expansive model. could two of these be linked to create a 2-cell or 3 to make a 3-cell? SFE any word?

      • schlick / about 11 years ago * / 1

        I was just thinking about this. I was looking for a fuel guage for my 3s battery packs. They are for R/C applications but I was thinking of building a DC/DC converter so I could used my R/C batteries to charge my cell phone while I'm playing Ingress. Draining a LiPo too far is really bad for them so I wanted something to monitor the R/C batteries.

        My R/C batteries have what is called a balance connector, which is basically a breakout for each cell so that it can be (re)charged independently. These little guys output I2C, so you need something to make that into people speak. I was thinking that I could connect one of these to each cell via the balance connector and send all the data to an Arduino (actually a teensy) with either some LEDs or a LCD display. This is turning out to be a pretty big project.

  • FromAussie / about 12 years ago / 2

    I cut the track that joins the Cell positive to the Chip VCC and pull up resistors. The track is easy to find, when looking at the back of the board, with the "Fuel Gauge" text at the top, the track to cut is the one that runs around (from 12 oclock to 3 oclock) the CELL -ve pad in the center of the board and attaches to the VCC pad on the right side.

    Once this track is cut, the VCC needs to be connected to a 3.3V (2.5V to 4.5V) supply, but you will have nicely isolated the LiPo voltage from the other supplies you have. This is for version V11

    • Andrew67 / about 12 years ago / 1

      Yeah the schematic was causing me to freak out (CELL and VDD tied with forced pullups? gonna kill my µCU!! D:) Does cutting that trace keep the SDL/SDA pullups to VCC? So it just unties +/VCC?

  • Member #110428 / about 12 years ago / 2

    For those looking for example arduino code, see: http://www.sparkfun.com/products/10711

  • chattmatt / about 12 years ago * / 2

    I've started a new library for this fuel gauge (based on Wire) available on Github: http://github.com/MattNewberry/MAX1704

    <br> Enjoy!

  • Member #698852 / about 9 years ago / 1

    ify7i

  • Member #698852 / about 9 years ago / 1

    Hi, I have a question regarding the schematic. VCC is the lipo positive terminal, that according to this schematic, is going to be connected to the VDD line through a 180 ohm resistor, to the ALERT pin through a 4.7 K resistor and to the I2C bus (SDA and SCL) through 4.7 K resistors. Shouldn't be a 3.3V regulator after the VCC line (battery) to have a stabilized voltage level on the I2C bus and on the other lines (not the CELL pin since the battery's capacity and voltage is measured there)? Best regards

  • Member #693939 / about 9 years ago / 1

    Hi folks,

    I've bought a couple of these fuel gauges, but am having trouble figuring out the hookup from the supplied information. Can you tell me precisely what the + and - are on this picture:

    https://cdn.sparkfun.com//assets/parts/5/2/7/9/10617-03.jpg

    It's not too apparent (to me, anyway) if they are JP1, JP5 or VDD ... I don't want to guess - it took months for my stuff to arrive from the UK, and I dislike blue smoke, trashed batteries and melted solar chargers ;-)

    Thanks,

    Brian

  • Member #383437 / about 9 years ago / 1

    I have been using this module for a month now with no issues until now. For some reason it is reading a fully charged lipo (2000mah) incorrectly. After being fully charged it is only reading the battery as 80% charged. I've been using the same battery since day 1, and it's being used on a low drain system (1-3ma).

    Any idea why this could be happening?

  • More example code for Arduino => https://github.com/awelters/LiPoFuelGauge.

  • Member #517027 / about 9 years ago / 1

    So, if I understand correctly - this is intended as an "in line" solution - right? I put my battery into the JST connector, then I can power my project from the OUTPUT vcc/gnd, as well as use the I2C to measure my juice. Yes? Any concerns when the output vcc/gnd are not used? Or if I was wrong to begin with, what is up with those connections period?

  • Member #514386 / about 9 years ago / 1

    I got the LiPo Fuel gauge perfectly work on Arduino uno (SDA and SCL Analog pins 4 and 5, GND Arduino @ GND Fuelgauge). I also got it just work nice and fine on Arduino Mega ADK (as SDA and SCL are located @ PINS 20 ans 21). So now i want to connect two Fuel gauges on the Arduino Mega ADK .... Any ideas how i could do that?

    • GlitchTech Science / about 9 years ago / 1

      I'd use either a multiplexer to switch the data lines between the two cells or a software base I2C so you can just use completely separate pins.

  • Member #645210 / about 9 years ago / 1

    :D can i test it by simply wiring it to some DC power source? or it has to be a lipo batery?

  • Twpsyn / about 9 years ago / 1

    Does anyone have a Fritzing part for this? I've been trying without success to convert the eagle file to fritzing, and am close to just giving up and not incorporating this into the project.

  • Member #529334 / about 10 years ago / 1

    i'm using a tenergy 11.1V pack in a high-output LED light project; currently, i've got the logic side regulated down to 9V. i'm only looking to pull the bat% off the Maxim chip, so i had planned to plug this board in behind the regulator on the logic side (i.e. CELL = 9V).

    (?) Am I fouling up the Maxim IC by feeding it regulated power -- (or stated another way) -- can one use this board to gauge a pack >5V via regulating the incoming power?

    namaste.

    • adamj537 / about 8 years ago / 1

      This should only be used with a single-cell Lithium-ion battery. Not a battery pack, and certainly not something as high as 9V.

  • STARscream / about 11 years ago / 1

    What if I need to use LiPo Fuel Gauge with this >> https://www.sparkfun.com/products/11360 battery pack as you see its complete with charging circuitry and all but I needed to also have the charge level read off it! is it fine. I see that this battery pack>> https://www.sparkfun.com/products/11360 uses a single cell LiPo so this would be fine with this LiPo power fuel gauge but what if I hack the battery pack and its too congested to access all the points to read the battery that I seek?

  • Matt66 / about 11 years ago / 1

    Excellent solution! But should have two pins JST for battery input, and output, for use with the Power Cell or any other ...

  • ChrisKo / about 11 years ago / 1

    Is there any limitation in the capacity of the battery?

  • Taha / about 11 years ago / 1

    So this is probably a really simple question, in reading the data sheet for MAX17043 and designing a circuit for it, i came across the following line

    Alert Output. Active-low interrupt signaling low state of charge. Connect to interrupt input of the system microprocessor.

    So my question is what exactly do they mean? Is the line usually HIGH and when the IC detects an Alert it will turn the Alert line LOW?

  • pratikshinde / about 11 years ago * / 1

    This example code did not work on atmega128A, After using sample code from this page, It worked fine :) http://www.nongnu.org/avr-libc/user-manual/group__twi__demo.html

  • Here is a library I put together that has proven helpful to me: https://github.com/awelters/LiPoFuelGauge. Hope it helps others.

  • schlick / about 11 years ago / 1

    Um, maybe I'm missing something, but can you set the address on these or is it permanently 0110110 (0x36)? If not how do you use more than one on your Arduino?

    • Kamiquasi / about 11 years ago / 1

      It's a fixed address, so you'll either have to use a software I²C library (.e. softi2c) to have things on a physically separate set of lines, or you'll have to switch between devices. There's specialized I²C multiplexers, see e.g. http://www.kerrywong.com/2012/10/08/i2c-multiplexer-shield-testing/. You could also try making your own guage using a chip that does have selectable/settable addresses (I'm assuming they're out there).

      Any particular reason you'd want to have, and monitor, more than 1 battery on the same system?

      • schlick / about 11 years ago / 1

        Hi Kamiquasi, Well see it is one battery, but multiple cells. The battery is usually used for R/C applications. It is a LiPo 11.1v 3S (three cells in series). They come standard with connector that breaks out each cell so that each cell can be charged evenly. This is usually called the balance connector. This is a good example: http://www.hobbyking.com/hobbyking/store/__6307__ZIPPY_Flightmax_1500mAh_3S1P_20C.html

        Anyway thanks for the advice, haven't been able to find another similar device, but I'm not sure I'm looking in the right places. I mentioned earlier in an earlier post that I'm trying to make a cell phone battery charger that uses the R/C battery to recharge my cell phone. I need a way to protect the LiPo from discharging too much and my plan was to use 3 of these fuel gauges and with an arduino to monitor the battery and turn off when the LiPo got too low. In the R/C world this capability is part of the electronic speed controller (ESC). If there is another easier way, I'd love suggestions.

        • Kamiquasi / about 11 years ago / 1

          ah, same project as 4 months back, then :) Yeah, I'm familiar with the RC batteries (I fly a heli from time to time) - unfortunately I don't know of anything like this product, but for a 3S (or 2S, or 4S, etc.). There's a few chips from TI (probably Maxim as well) that could do the job, but you'd have to design a board around it, etc.

          The I²C multiplexer approach could work for you. However, it may be easier to dig up a protection circuit (amazon, ebay, the usual, since that's your more immediate goal.
          Alternatively, you could try measuring the voltage of each cell directly on your arduino and do your own guesswork on 'charge', since that's what most of these ICs do (in a wide range of algorithms with trademarked names, though granted some also add ambient temperature and such into the mix), or just go by the voltage itself (cut off at 3.3V, 3.4V if on the cautious side).
          There's also some off-the-shelf field fuel gauges you could try, like the AKE PM3C. It's intended for continuous monitoring and gives visual indication when a cell goes low. Of course you'd have to actually be present in order to notice the red light, but you could try hacking it into input signals for the Arduino - though at that point, measuring directly seems just as sane :)

          Perhaps somebody else knows of an Arduino-hacker-friendly multi-cell monitoring solution; looking at the comments, it does seem a common request (and by looking at the lack of answers, one perhaps not yet catered to).

          • Member #86938 / about 10 years ago / 1

            Is it possible to run this across a single cell of a 3S battery (using the balance connector) and use the reading as indicative of all 3 cells (i.e. multiply the reading by 3 to get the full voltage)?

            • Kamiquasi / about 10 years ago / 1

              That's a tricky question to answer, The main reason for using a balancing charger in the first place is so that you don't get, say, 2 batteries at 3.4V and 1 battery at 4.3V and everything still looking fine at 11.1V total. The balancing charger will also help indicate when such a situation is more likely to occur because the batteries end up charging/discharging differently, and you might get a new cell (or typically a whole new pack). So if you put a monitor on only a single cell, you can't really be 100% sure that a reading on 1 cell is going to be indicative of readings on the other cells unless your balancing charger was quite recently used and indicated no problem. In that case I'd say it would be indicative..but still not a certainty.

              If you're trying to save money (or weight!) in a live monitoring case, perhaps it would be better to switch the fuel gauge to each cell independently, e.g. using an analog switch. This would require control circuitry (presumably that's not an issue given that the fuel gauge tends to be hooked up to a microcontroller anyway) and appropriate read-outs as well, though.. and I haven't checked to see if added resistance from said switch would throw off the monitoring.

  • dasankir / about 11 years ago / 1

    Anyone knows if this could be directly pugged to a SBC's I2C bus (Raspberry Pi, etc.) and be recognized out of the box by a linux driver?

    If not, is there such a board?

  • Keil / about 11 years ago * / 1

    I want to hook this up to a dev unit which I've been told uses an LTC3576 for battery charging -- the contacts I get on the board are +, -, SCL, SDA, and TC (thermistor sense). It does not have a fuel gauge so I was thinking of hooking this one up to it - if I understand correctly, the SCL, SDA, +, and - pins on the gauge would go to the exact same contacts on the board, the QST can be connected to GND and ALT can be left open if I'm not planning on using those... It seems the VCC is connected to the + already, so does it make sense to not connect it to anything additional if I'm fine with it sipping the power there?

  • Member #144735 / about 12 years ago / 1

    Hi,

    Did anyone tried using it when running a Lithium Polymer battery while dischraging it on high current? When i am not consuming any current it look fine but when I'm discharging it at 20A-30A I'm getting strange results..

    Thanks

  • Alex the Giant (Former SFE Engineer) / about 12 years ago / 1

    Digikey and Mouser no longer stock the MAX17043G+U, is there a good replacement IC I can use?

    • MikeGrusin / about 12 years ago / 1

      They're still listed as active production... You should be able to buy them straight from Maxim at the above link.

  • Where's the mounting holes!?

  • erich81 / about 12 years ago / 1

    how do you order the max17043's? I can't find them anywhere, I just need the IC's

  • Member #259898 / about 12 years ago / 1

    Where do I plug the QST into, when using Arduino?

  • Shade / about 13 years ago / 1

    Any chance of Just being able to get the IC itself?

    • erich81 / about 12 years ago * / 1

      nvm

    • Spike8888 / about 12 years ago / 1

      The data sheet states:

      "Clearing the ALERT bit while SOC is below the alert threshold does not generate another interrupt. The SOC register must first rise above and then fall below the alert threshold value before another interrupt is generated."

      What does this mean exactly. What if say the SOC has a range from 0 to 100, 100 being fully charged and 0 is totally dead. If I write 4 if cases where I set the threshold alert levels to below, 100, below 75, below 50, and below 25. if the SOC first goes below 100, the FW then sets it to 75. If that statement is true, it has to rise above 100 and THEN go below to 75 for me to get another interrupt. Am I reading this right?

      Thanks.

  • bobmct / about 13 years ago / 1

    I have been trying to use this device and still am having problems. I am using an Atmega328 at 3.3V, running at 8MHz and the example code from this page. I noticed in the schematic that there are pull-up resistors (4.7K) on the breakout board so I assumed that I do not need external pull-up resistors in order to use this I2C interface. Am I right?
    Has anyone else been able to get this to work with the example code?
    Also I have been searching for an Arduino library and example code without any luck. Has anyone found any working Arduino examples?

    • krh2o / about 13 years ago / 1

      To answer your other questions...
      Yes, the pullup resistors are included, so you don't need more. I haven't tried with Arduino/Atmega yet. For libraries, there's an i2c library for the arduino called Wire: http://arduino.cc/en/Reference/Wire

    • krh2o / about 13 years ago / 1

      From the datasheet and schematic I see a possible issue for 3.3V systems. They connected all the pullup resistors and the chips VDD to the battery voltage (labeled VCC), however Figure 7 in the datasheet shows the connections should be tied to the 3.3V of the microcontroller and isolated from the battery’s voltage, which could fluctuate from 2.6V to 4.2V. I think this could mean up to 4.2V signal levels on the 3.3V chip, but I’m not sure if this would actually cause a problem. Maybe try this out with a 5V Arduino? Looking at the signals with a logic probe or oscope might help. If I get I2C working on the datalogger (which runs at 3.3V) I’ll give this a try. Hopefully it’s just a code issue.

      • I was about to use this with a 3.3V setup too when I noticed this problem. Odds are, if you are using this in a system, you're going to regulate the battery voltage, either up to 5V or down to 3.3V. Point being that by tying this board's Vcc line directly to the battery, its logic lines are going to vary with the battery voltage. This seems like a bad idea, IMHO.
        This IC should be able to handle up to 5.5V inputs, but check that your system can handle IO voltages from 4.2V down to ~2.6V.
        Note, ATmega640/1280/1281/2560/2561 doesn't like inputs above Vcc +0.5V.
        edit: I would recommend separating Vcc and Vdd from the battery voltage and letting the user connect them if they want. Otherwise, I need to cut traces on this board.

        • DogP / about 12 years ago * / 2

          I agree that the pullups are a little weird. The I2C pins are open drain output, and I'd expect the host to pull them up... though if you're using this in a standalone config (just using the alert pin), maybe the chip would freak out. And since they pull up the alert pin, I assume that's an open drain output as well.

          The pullups won't cause damage on most systems though, since the ESD diodes (present on most chips) will shunt the higher voltage, and the pullup resistors will limit the current.

          I think the VCC pin is dangerous though... if you didn't fully understand the documentation, most would expect to power the chip through the VCC pin, but in this case, you'd end up connecting your 3.3V rail directly to the battery pack. Or, in a worse scenario, connect it to your 5V system VCC and set your LiPo on fire.

          It's nice that you don't need to connect regulated power to this (the datasheet recommended configurations show powering directly from the battery), but you just need to be extra careful and read the documentation. I'm just gonna leave the VCC header pin unpopulated to remind myself to not use it.

          BTW, in regards to the comment on Figure 7, that's showing the 2S version (MAX17044), which needs a regulated voltage. They don't recommend a regulator for the 1S version (MAX17043)... though they don't explicitly recommend against one either.

  • girlinmotio / about 13 years ago * / 1

    Great chip.

  • KirAsh4 / about 13 years ago / 1

    How about one for multi-cell packs? And I second mitpatterson suggestion of having LED indicators on board, 1 red, 2 yellow, 3 green (racing christmas tree style) with everything lit up when it's full and then progressivly turn them off as the power gets low, so the red is the last one to remain on.

  • EliTheIceMan / about 13 years ago / 1

    Does anyone know of a similar IC which performs the same functions as this MAX17043 but in a larger, hand-solderable package?
    Maybe like MSOP or bigger.

  • E.Mk / about 13 years ago / 1

    Can I connect this to the output pins of a PRT-10300 - Power cell lipo charger/booster and get the current state of charge?
    In other words, add onto the charger/booster abilities of the PRT-10300 by adding the ability to gauge the power that's left with this item?

  • mitpatterson / about 13 years ago / 1

    Would be nice to have something like this that could directly output to a few LED's (like you have "select" the "precision" of the output, 3, 5, 7 LED's, have the last one red, yellow or 2, rest green) or even just an output to our own LED's

  • Can you charge the battery while it is connected to this? Like if I connect a battery to this, then this to an Arduino FIO, can I charge the battery through the FIO still?

    • mct75 / about 13 years ago / 1

      I think you'd need to just run power off the FIO board and over to the vias on the fuel gauge. Considering it uses an ASIC for monitoring the SOC, I have a feeling maxim would have realised that you need to charge the thing at some point :P

  • Myles Grant / about 13 years ago / 1

    Only works with single cell lipos, from the datasheet.

  • Member #411466 / about 11 years ago / 0

    Hi all, anyone has a library to implement PIC microcontroller and CCS compiler, please if someone has a different library of Arduino, and who can help me, I have several days trying to implement the circuit but I could not communicate with the PIC by I2C.

Customer Reviews

4.3 out of 5

Based on 9 ratings:

Currently viewing all customer reviews.

2 of 2 found this helpful:

It Works!!

I've received my new fuel gauge in the mail just days after ordering. I am thrilled to say that it works great. I had previously purchased five of these from ebay and none of them worked. DO NOT BUY THESE FROM EBAY!! I can darn near guarantee that they will not work. All I did to make this work was connect the SDA, SCL, B+ & B-. Uploaded the same code I had used previously recommended by Arduino and written by Luca Dentella; http://www.lucadentella.it/max17043-libreria-per-arduino/

I will try the spark fun code some other time. I did this in just 3 minutes an am in a hurry to get back to other projects. Thank you Spark Fun!

1 of 1 found this helpful:

Great option to monitor LiPo battery cell

I bought this to interface with the Sparkfun weather shield so that I could monitor my solar / LiPo powered outdoor weather station. Without this board, I was not effectively able to determine the charge state of my battery. I have so far tested it indoors (without solar cell) and it seems to be doing its job very well. Monitoring the true state of charge on a LiPo is no easy task, but this board seems to know what it's doing. As I test, I hooked up my weather station and monitored a 2Ahr cell for over 24 hours, watching the charge state go from 90% to about 66% which is very believable given what I know about the station current draw. Pretty nice $10 add-on for my weather station.

Works great.

Using it on a Cypress app and seems to do its job.

some suggestions

It would be useful to breakout the 1k battery sensor from VCC. In my application I'm using one of these with a particle io photon. The vcc for the particle is 3.3v but the battery can range from 3.2 to almost 4 volts so they need to be separated. It would also be helpful to have the battery through holes in line with the other through holes.

What every designer of LiPo powered circuits need

These batteries are good at one thing, powering that circuit. But unlike a motor vehicle they can't tell you when a fill is needed. That can. My only gripe is one of, "Why is AVR code shown?"

A great tool!

Using this in a homemade remote control to monitor the LiPo battery. Works as described and I love the I2C interface - saves me some pins for other things.

Excellent - would recommend for anyone wanting to check on charge/voltage (static use) or monitoring (dynamically, in-circuit)!

LiPo Fuel Guage

I'm using this with a Particle Photon and it's working great! It's a bit pricy, but I love the SoC reading. Really helps when using solar panels and LiPo bats. Overall, great product.

Lets the magic smoke out, for want of a level shifter

Tried to use this with a Raspberry Pi 4B to read battery status, and wound up killing the touchscreen and nearly toasting the Pi, too.

The problem is that VCC is hooked up directly to the battery AND used for i2c pull-ups. Leaving off VCC probably works for 5V systems, but even with VCC disconnected, SDA and SCL are still pulled up using the battery's voltage (which varies from 3.2 to 4.2V). For a 3.3V system like the Pi, this is fatal.

If it has to be battery powered, then there should be i2c level shifters on the output. Or it should work like SPX-17715 and use a Qwiic connection to provide the pull-up's.

Sorry to hear that you ran into trouble using our Lip Fuel Gauge product. We will look into the issue you presented here and improve the product as needed. Should you want to fill out a return ticket we can see what we can do for you: https://www.sparkfun.com/returns