Can confirm that re-sending Request
every second works and the cable doesn’t restart.
I see two violations of USB PD spec here:
- ongoing communication is only required when Augmented PDO is selected by the Sink (and Source also needs to supply at least one of them in the initial
Source_Capabilities
)
- the interval is a lot shorter than
tPPSRequest
from USB PD spec
It should be fairly easy to patch EC firmware to keep sending Request
every second unconditionally. But EC firmware likely requires separate build for each mainboard mode, and I’m not yet sure that the source code on Github is up to date.
3 Likes
The option to have the adapter being completely passive is very attractive, but with how janky and under-documented EC firmware build process is (at least outside of Framework’s dev&qa processes) - it wouldn’t work well.
So, any recommendations on which IC would be the best to use here?
It would need to sit as a man-in-the-middle between MagSafe and laptop’s Type-C port and handle the non-standard bits that the cable is expecting.
FUSB302 I have at hand won’t really cut it, since it supports only one port and must be controlled externally (so it would be 2x FUSB302 + a microcontroller with custom firmware). There are probably some ICs out there that can handle all this in one package.
EDIT: FUSB15200 might’ve been a good fit, except that, despite touting “open-source” on the overview page, reference firmware is provided under a license which roughly boils down to “no, you absolutely, not in a million years, cannot make any of this or any derived work available under an open-source license. We will sue the shit out of you even if you simply ship your code to customers without having them sign an explicit license agreement”