• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Duo Li-ion Battery

micheledipaola

Well-known member
I am super interested in this, and would love to get every detail, from parts info to what PLA/color used for 3d printing the case, to how to open the original battery case without cracking it etc etc.

I will follow with a lot of attention, and thank you for what you did so far!

 
Last edited by a moderator:

sutekh

Well-known member
Alright, I promised an update...

The ideal diodes arrived and they work nicely! Under full load, I'm only seeing a ~.2v drop, but (because of course there's a but) I'm still getting low-power alerts from the OS throughout much of the discharge cycle. The OE pack contains 10 NiMH cells in series, which should measure from ~1.5vdc per cell charged to 900mv discharged (15v - 9v overall), and I'd surmised that a Li-Ion replacement outputting 12.6v - 10.5v should fall nicely within that range. I think the problem lies in the fact that NiMH cells spend most of their discharge cycle at ~1.2v, and only drop off rapidly toward .9v at the very end of their useful life. Even with the ideal diodes, under load my Li-Ion pack is measuring in the elevens throughout much of its discharge cycle, which the power manager is interpreting as a mostly discharged battery.

That "but" notwithstanding though, the pack works quite well! E.g., I ran the 280c for a few hours this afternoon with the added draw of an Etherdock and my wifi-module. I'm not really interested in trying to boost the output voltage with more internal electronics since it'd just waste energy, but I wonder if there might be a potential software solution? I suspect the acceptable voltage ranges are flashed onto the ROM or Power Manager (can anyone confirm?), and this passage from the Power Manager Developer Note is particularly interesting:

  • Reading the Status of the Battery and the Battery Charger 6: The Power Manager monitors the voltage level of the internal battery and warns the user when the voltage drops below a threshold value stored in parameter RAM. If the voltage continues to drop and falls below another, lower value stored in parameter RAM, the Power Manager puts the computer into the sleep state. The Power Manager provides a function that allows you to read the state of charge of the battery and the status of the battery charger.



Infuriatingly, neither that Developer Note, nor the Duo's, indicate WHAT those values are, or WHERE they originate from, but I'd bet an extension could override them. There is, for instance, an existing "Type III Battery" extension for Duo type III NiMH packs that ostensibly does something similar to make the OS / Power Manager play nicely with those higher-capacity batteries. I pulled that extension into ResEdit and HEX dumped it, but haven't made heads or tails of the instructions yet. I'd welcome assistance from someone with more experience in that arena than I have. I think all this hypothetical extension would need to do is update the value of "batteryLow" in PRAM to a slightly lower value.

Anyway, that annoying but mostly cosmetic wrinkle aside, here's an updated, accurate circuit diagram and BOM. I've also attached the STLs for any who want to 3D print the enclosure I designed. I printed mine using ABS (Octave's Gray) on my MakerBot 2X with 2 shells at 20% infill.

Duo 280c Battery - Schematic v2.png

Bill of Materials - PowerBook Duo 280c Battery


 


 


 


 


 




 


 


 


 


 


 


 


 




Name


Qty


P/N


MFG


Vendor


Unit Cost


Total Cost


URL / Notes




Apple OEM Duo Battery


1


M1499


Apple (Other?)


eBay


$15.00


$15.00


Needed for ID chip, thermistor, & contact pads. Wild guess on the price :)




Samsung 3500mAh Li-Ion


3


INR18650-35E


Samsung


Various


$8.04


$24.12


https://ebay.com/p/2155089627




Li-Ion CC/CV Charger


1


DD23CRTA


Eletechsup


AliExpress


$4.45


$4.45


https://aliexpress.com/item/32993044945.html




Li-Ion 3S BMS (10A)


1


HX-3S-01


Generic


Amazon


$2.33


$2.33


https://amazon.com/gp/product/B07T2P5XHS/ref=ppx_yo_dt_b_asin_title_o00_s01




Ideal Diode


2


YH11040A-2


???


AliExpress


$3.90


$7.80


https://aliexpress.com/item/1005001367556002.html




3D Printed Enclosure


1


N/A


Sutekh


N/A


--


$0.00


See attached Top / Bottom STL files




#4 x 3/4in Flat Head Screws


5


N/A


Various


Various


$0.06


$0.30


4 to hold the case together, one to secure it to the sliding lock




Misc 18 AWG wire, solder, etc.


N/A


N/A


Various


Various


$1.00


$1.00


I'm not going to itemize ever little thing, but you get the idea…




 


 


 


 


 


 


 


 




Total


 


 


 


 


 


$40.00


 


View attachment Duo 280c Battery Top.stl

View attachment Duo 280c Battery Bottom.stl

 
Last edited by a moderator:

aladds

Well-known member
Have you tried using the Insomnia extension from various Mac OS CD-ROM System Folders? I don't know how it does it, but I know it prevents PowerBooks from sleeping, even if the battery is low.

 

sutekh

Well-known member
Have you tried using the Insomnia extension from various Mac OS CD-ROM System Folders? I don't know how it does it, but I know it prevents PowerBooks from sleeping, even if the battery is low.


The way I understand it, the OS via Power Manager references values stored in PRAM (how they get there initially I don't know. OS? ROM?) to determine how it responds to various voltage conditions. After further observation, in the case of my Duo 280c, it warns at 11.4v, indicates the pack is critically low at 11.2v, and goes sleep at 11.0v.

Further reading has suggested that the voltage is measured by an ADC and assigned an 8-bit value, with 0 being the lowest (in this Duo's case, 11.0v), but the scale is apparently fixed (probably defined in ROM). While an extension could modify the warn and critical thresholds values in PRAM (setting both to 0 would, I think, suppress alerts completely), I don't believe the zero point can be moved to allow the laptop to remain on at a voltage below 11.0v.

I've played with a few different extensions, Insomnia included, but it just prevents the notebook from going into a timeout induced sleep (i.e., if configured to sleep after X minutes), but doesn't prevent the Duo from powering off when it reaches 11.0v :/

Without being able to draw below 11.0 volts, I can only access ~50% of the pack's capacity, so I think the only answer from here is an internal boost converter immediately behind D2. I'd really hoped to avoid that because a) complexity, b) inefficiency, and c) the pack output voltage is then fixed vs. variable depending upon capacity remaining. I'll have no indication that pack is nearing depletion until the BMS unceremoniously powers down at LVC. I suppose I could use a variable output boost converter and find a way to reference the output from the input voltage, but still less than ideal...

 
Last edited by a moderator:

Powerbook27364

Well-known member
Did anything else ever come of this? This seems worth doing to me even if it cuts off around 50% voltage. Currently I'm using a 2100mAh pack I rebuilt a few months ago, but a capacity increase would be great, especially if I can use higher mAh cells.
 
Top