Hacker News new | ask | show | jobs
by somewheres 3888 days ago

  Again, this is down to the sensitivity of lithium 
  batteries. If the charge of the battery falls below 
  the minimum safe level, the device will charge it 
  before allowing you to take power. There are a couple 
  of reasons – it's important to make sure the battery 
  doesn't fall into deep discharge, and to ensure that 
  device power isn't immediately cut off (=hard crash) 
  if the user subsequently disconnects the power before 
  the device charges to acceptable levels.
No. It comes down to mediocre design, and unfortunate misconceptions, and tunnel vision about what's worth designing for and what isn't.

1. If the main board is receiving power, it can use some of that power.

2. The user can pull the plug, and and cut power to the main board, and guess what, the main board can simply stop working without trying to consume power from a battery without enough power to operate safely.

3. The operating system can employ an architecture that tolerates hard faults, in the middle of code execution, and address them upon the next successful reboot. Yeah, that's expensive to develop, and yeah, Apple computers are expensive.

4. With each of these preceding points in place Deep Discharge of lithium batteries is irrelevant, because the main board is in control of whether or not the battery is even called into action at all. With AC power, no power needs to be sourced from the battery. Anxieties about a bricked device are circumvented with a durably designed OS. The end.

1 comments

It's more complex than you claim – I've worked with a few of these systems.

There are a lot of edge cases; consider that in some cases devices being used a full-blast power can draw more current when operating then a charging device can supply, meaning they can still discharge batteries even when AC power is available. (Apple example – smaller power adapter than supplied. Still technically works to charge, but not supply power. Or any arbitrary 500mA USB charger.)

Yeah, I don't doubt that you could probably engineer something that works. But would the complexity be worth it? Probably not. The fact that every modern device (Apple and otherwise) behave this way should suggest that it's not that easy – if it were, it wouldn't be implemented that way.