Hacker News new | ask | show | jobs
by rektide 1108 days ago
Great ask. There's no reason devices couldn't negotiate lower power. With USB-PD, power sources offer Power Delivery Objects: different charge modes they can do. It's up to devices to pick.

Right now most devices pick the highest power option (that they can handle). For a variety of reasons, it would be super sweet if we could pick lower power options! Maybe it's a multi-device charger & you want to leave more capacity for other devices. Maybe you want to slow charge your battery to extend it's life.

Almost every usb-pd device can accept lower power options, if plugged into a charger which doesn't offer the maximum rate. The only thing missing today is software, is user control over the power delivery negotiation process. Very very achievable, with minimal effort.

3 comments

Notably, depending on the device, it may not actually pick the highest option it could handle. It may automatically adjust the voltage over time (state of charge, usually, dictates this) to compensate.
There's also an optional usb-pd PPS (programmable power supply) where the device can ask for a specific voltage with 20mV granularity & adjust the ask on the fly. This let's devices just pass through power directly to battery while still letting them finely control charge curves. Neat stuff.

But even just adjusting between, I to make up an example, 15V while charging battery, down to 9V after charged, is quite possible. I forget specifics but I almost think I remember there being a minimum amperage draw, so devices canr just ask for 20V then just sip 0.01 amps... They are required to step down to lower voltages if they need so little power. I'm not sure about this though!

PD interposer device that can mask PDOs?
Yes!
I hadn't considered such a widget until your post, but now that you mention it I would totally buy one.
> Very very achievable, with minimal effort.

Not with how complicated the whole stack is...

We still can't say "don't charge if other device has no AC power" even tho that info can be propagated via USB-PD...

I genuinely don't think it's that complicated. There's a perception about that, but look at the wire protocol for a couple devices & it starts to feel extremely rote extremely quick.

There's a very old very extensive USB HID spec for a ton of battery & charger telemetry things, that for no good reason was never implemented. I'm not sure if USB-PD has overlapping way of sharing data like "is the other side also running on battery?" but we have had the technical possibility of answering that (and how much charge is left what the battery voltage is, but getting low power alarms, more) for literally decades & shame on us for never having implemented it.

> I genuinely don't think it's that complicated. There's a perception about that, but look at the wire protocol for a couple devices & it starts to feel extremely rote extremely quick.

USB-PD standard is 500+ pages. I remember some early adopters (before ready-made usb-pd controllers were available) complained about that, that the PD code was far bigger than rest of their gadget code. Hell, just look at amount of PD stuff that was subtly or not-so-subtly implemented wrong.

And it's like, they decided to invent their whole own PHY and wire protocol instead of just using CAN or one of the RSXXX ones, for no discernable gain.

Sure it is easier now but not because standard is, but because chip manufacturers made chips specifically to handle that mess...