I’ve released a new USB Power Delivery sink stack for embedded devices called pdsink:
• USB-PD Rev 3.2, SPR and EPR modes.
• Platform-agnostic C++ core.
• Reference: FUSB302B + FreeRTOS.
• MIT license.
Repo: https://github.com/pdsink/pdsinkMotivation: available PD stacks usually come with at least one hard constraint: • vendor lock-in / NDA / no public sources, • tied to a specific OS or framework, • incomplete feature set on the sink side (e.g. no EPR), • corner cases where behaviour doesn’t fully match the spec, • or they are difficult to extend to new TCPC / MCU combinations.
pdsink is an attempt to cover the most common “sink” (power consumer) use case with a small, readable stack that is easy to adapt to different platforms and controllers. People who deal with PD in practice may find the layering and extension model interesting compared to existing solutions.