This library is a port of the Google Chrome EC library. The goal is port the code to C++ and packge it as a library that can be used with Arduino, Particle, and other embedded applications. This code is very much a work in progress. Not all of it has been tested.
The FUSB302B is a USB Type-C port controller and BMC PHY. It allows configuring a USB-C port and sending USB Power Delivery messages. This library supports all the basic functionality. In addition, it supports the USB Type-C Port Manager (TCPM) interface, which should allow for this and other, similar libraries to be used with the more general USB Power Delivery library.
The included example shows some basic usage of this library. Without the USB PD library, any received message doesn't make much sense. An Apple USB-C laptop charger will send unsolisicated Source_Capabilities messages. These can be decoded manually by referring to the USB Power Delivery specification.
Next Development Steps
The next steps are to remove the Arduino-specific references to make the code more platform agnostic.
Questions, Comments, and Contributions
Pull requests are welcome. If you have questions or comments, you can email me directly at firstname.lastname@example.org.