Hi
I found I’m missing one feature which was on my previous Dell laptop. A power button from side.
The reason is that now I need to open my Framework laptop lid every time I want turn it on even it’s connected to my docking station.
I’m not sure if this is possible to achieve through USB-C but I hope it is because Lenovo can manage it somehow (is it proprietary? IDK).
Unfortunately yeah, every manufacturer seems to roll their own docking station button magic. Seems to be a bit of a gap in the specification.
I don’t know but would it be possible to use the Wake-on-LAN in order to power on/off the laptop? We could have a microcontroller that enumerates as ethernet NIC whose sole job is to send the WoL magic packet when a side button is pressed.
Are you looking to power on from fully off? I think that’s what most people want. But the ports are off then. Even if your card had its own battery, there will be no communication available.
If you just want to power on from a state short of full off, then I don’t think you need an ethernet WoL packet. Iirc people have said some keyboards are able to wake a Framework.
I was wondering if turning on the laptop via usb could be done in some kind of standardized way.
I mean, the EC (Embedded Controller) firmware is open source. If someone had the skill, they could probably modify it to not power off one or more ports. But then you’d have a power drain even when the laptop is “off”.
Just not sure how to accomplish a side power button in an expansion card without an added hardware (or software + power drain) modification inside the laptop.
Hmm, someone should test what exactly is required to trigger the FWL13’s boot-on-power-attach BIOS option. 20v plus full USB-PD communication, or something less. It’s been said that the FW is supposed to be able to charge from less. If I recall, even down to 5v. Now I don’t think it actually always charges from that low, because it’s buggy & not reliable, but it was supposed to. If boot-on-power-attach could be triggered with a mere 5v and no full USB-PD communication, well, there we go! Li-ion battery, voltage booster, button, li-ion charger chip.
I did some test on my FW16. When I used a 45W PD charger it did wake up by negotiating 12V. When I used a non PD usb C to A (so 5V) cable, it did not wake up. I do not have a 5V only PD charging brick to test with. Maybe the behavior is different on a FW13? I think it would most likely need PD negotiation to make it work.
Did it power on after some delay, or instantly?
Since there is not much room for a battery, it would be better if it only needed power to be maintained for a second. Especially if it needs a certain minium voltage and / or current.
Not sure if wol works on usb devices.
We do got access to the ec source code so it would be possible to do something with enough effort, though I suspect dell/lenovo/hp do it by sending custom pd messages and those are mostly handled by the pd controller which we unfortunately don’t have the code to.
If you are ok with it only working in the top left port and when the laptop has power you could theoretically make an expansion card with a microcontroller than acts as a ccd and sends a power up command to the ec over serial. Sounds extremely jank but it could actually work.
Would be nice if there was an open standard for usb-c power buttons though.
There is something borked at the (pretty sure at the pd controller level) with 5v charging on the amd platforms unfortunately.
<1 second before the power button led turned on.
Perhaps a power button expansion card could really be possible via abusing the boot-on-power-attach BIOS option.
I’m wondering if supplying significant current would even be required. In order to trigger boot, it might be enough to just claim you’re a USB-PD power supply able to provide adequate wattage. If so, then only 5v and minimal current could be all that’s needed. Possible using a small li-ion. Failing to actually provide the laptop’s requested charging current would be fine, as long as boot up was triggered.
For a USB-PD controller chip, the FUSB302B has some open libraries and code examples available, as it’s been used by a number of open source and open hw projects. It’s a DRP/SRC/SNK chip, capable of both requesting power and offering power, handling up to 100W.
We could advertise a 12V capability but always deliver a 5V. But this would need to be tested.
As for the FUSB302 I’ve used it in the past and have a working design for it. It’s a great chip but most software implementation only support UFP whereas we would need a DFP to advertise a power source capability. Maybe we there is one out there that could do it?
I believe UFP, DFP, DRD are for the data role. With SRC, SNK, DRP, for source, sink, Dual Role Power, being for the Power Delivery part.
I haven’t explored the FUSB302 much myself. I don’t know of one that has examples showing it in use. But in a searching, I ran into an extension of the FUSB302 USB-C-Explorer project’s firmware which appears to have PD source role as an option. Whether it actually works fully, as is, I don’t know.
Here’s where I found source, “PD_ROLE_SOURCE”, as an option
Having more experience with FUSB302, perhaps you could take a look, if you have free time.
Yes you’re right but before pd negotiation, the USB C start with a UFP SNK and a DFP SRC in order to keep compatibility with older usb c device. Only after PD negotiation that the swap can be done. Most library doesn’t even bother supporting for the SRC part because it requires extra circuitry that most board don’t have. I’m pretty sure graycatlabs never tested it as an SRC as most people want to power their board with it. You can see it here:
You do need to provide some power to power up the pd controller and ec but not a lot.
As far as I can tell from my ec adventures with the fw13 as it it it doesn’t care about the input voltage (well stuff like power limits and stuff assume the input voltage is what is negotiated but the charge controller is not configured to care about the voltage, just the current).
I did find an open source software pd solution that doesn’t need any chips somewhere on github but I did not get around to try it and it currently only supported sink mode. I do want to build a programmable fake source at some point. With the fw not caring about input voltage it should be kinda possible to hook up (protected and fused and everything of course) straight batteries without any voltage conversion and just advertise pd accordingly.