I bought a 2nd-hand Lenovo USB-C PSU (ADLX65YLC3D) which indicates a range of voltages (20v, 15v, 9v, 5v) on the label. Tried to charge a few different bicycle lights but the charging indicators did not light up on any of them. I almost tossed it because the 2nd-hand market I bought from is definately dodgy. But then I tried to power a Rasberry Pi and it seems to work on that. So wtf? An a/c adapter either works or it doesn’t. What would cause this: works on some devices but not others? The Rasberry Pi needs 5v just as the bicycle lights. That is the default voltage for USB-c.
Welcome to the wonderful world of power delivery negotiations.
Basically your bike lights are too dumb to tell the power brick what they need. Use a cheap charger that will just send out the default without negotiation
Here is a 40MiB zipfile if you want the nitty gritty details: https://www.usb.org/document-library/usb-power-delivery

You are ending up in the PE_SRC_Disabled state on the source power delivery state machine.
Don’t understand why it wouldn’t provide like 5v 2a by default until a PD negotiation happens.
I have a USB C Dell dock which can whack out 180w but won’t power anything that doesn’t give it a proprietary Dell signal, making the USB C-ness of it fairly worthless.
The lights most likely do not have the extra circuitry to talk to the charger to negotiate voltages. Since it’s a charger that can change voltage as you stated then the device must be able to say “hey give me 5v”. You will need to use a dumber 5v only charger for those devices.
What would be the meaning of a default voltage then? My understanding of USB PD is that 5v is a default, which I took to mean it would deliver 5v in the absence of a handshake.
Yeah, but some power bricks want to be safe and wont give any power without power delivery negotiation. It’s not unreasonable, and it is safe, it wont burn anything out.

