Battery management is a tedious but necessary problem that becomes more of a hassle with lithium-ion technology. As we’re all very aware, such batteries need a bit of care to be utilized safely, and as such, a huge plethora of ICs are available to perform the relevant duties. Hackaday.IO user [Erik] clearly spent some time dropping down the same old set of ICs to manage a battery in their applications, so they created a drop-in castellated PCB to manage all this.
The little board, measuring just a smidge over 22 x 16mm, packs a fair amount of capability, with an ATTiny1616 to make it customisable. The Injoinic tech IP2312, which is intended to be supplied from USB sources, takes care of charging with a programmable current set by a resistor, as is typical. The battery output is switched by a beefy MOSFET, with the output first passing through a measurement resistor and being sensed by an INA219 bidirectional current monitor. This might be useful for monitoring charging via the microcontroller. An APX803 low-voltage lockout/supervisor IC enables an LD56100 LDO to ensure no load is supplied to the battery below the low-voltage threshold. This is important! This provides a 3.3V rail to all the other ICs on the board, which is always on when the battery voltage is high enough. Utilising interrupts in the ATTiny firmware means the controller remains mostly asleep, consuming as little power as possible and preserving battery standby time. Temperature measurement is courtesy of the TMP102 with a ADS1015 quad channel 12-bit delta-sigma ADC also wedged in for some auxiliary sensing. These additional analog channels are not actually used by the module but are presented on the IOs. These could be very handy for detecting external inputs relevant to battery management with some custom Arduino-compatible firmware.
Implementation-wise, [Erik] provides PCB footprint details for both Eagle and KiCAD and an example application circuit detailing hookup and programming. So long as you ensure the UDPI pin in connected to a UART as shown in the application circuit, developing and uploading custom application code should be simple. Check out the project GitHub for more details.
Topics of power management and batteries are plentiful. Here’s a nice, hackable power meter for starters. Here’s an interesting story about extracting perfectly useable LiPo cells from perfectly useless disposable vapes and, finally, a possible method for mitigating electrode damage due to constant current charging.
Interested!
Oh, so it is 2 boards! The Title Photo shows the daughterboard, the USB-C power ports are on the larger board.
No the title photo is the PMG001, it is the BMS. The second board is an application using the PMG001 or maybe a development board with 2 serial to USB interfaces.
It’s a demo board for the module which provides 2xch340c for UPDI and serial for attiny (so it’s useable and debuggable with arduino since serial over updi isn’t supported), also a battery connector and two buttons.
There’s actually a third board which is mounted with screws onto the demo board to ‘clamp’ usb-c connectors so they don’t come off the board with repeated (careless) use, but it’s still on the way from the fab so there’s no pictures of it.
But the main idea is to use the module itself as a part of other projects.
I wish I could buy these boards from Seeed Studio, Banggood, or AliExpress!
Love it!
I’ve been meaning to make my own BMS for some time now. This one looks very feature full. My version is going to be the same but everything will be done by discrete BJTs and FETs, besides the MCU
Still love to see no trace of TP4056 and DW01A in this design. Yes they’re cheap but they’re not very good at all
huge plethora > enormous abundance?
Colossal cornucopia?
Profuse plentitude
Bigly Huge!
Or just provide the battery on connector and reuse an external charger for every project.
Really depends on the project. Want something to travel with? For me, I would take something with this, I only need one PD brick and USB c cable for all my devices. Something hacky that you’ll have at your bench/desk regularly? Something where every gram or square cm matters? External charger is great.
i’ve repeatedly felt the draw of this kind of project for my own purposes. built a lipo charger out of discrete transistors, then used the max1555 on a little sot-23 breakout board.
but this is 2024 and on aliexpress / temu sort of sites it seems like you can buy just about any kind of (low-wattage) charge / boost / buck regulator for pennies! i got a board with TP4056 and DW01A for only $2 and it came with 4 extra copies!
Neat project. What about just using a PMIC like Nordic’s nPM1300? It has 2 ldo’s, 2 buck converters, 4 gpio, 3 leds, bat charging, hooks up to usb, I2C, bat fuel gauge and sleep at less than 1uA. All inside an 11x16mm area.
I was hoping this could be used to rebuild power tool packs, but it only supports a single cell. Nice idea, though.