I've been quiet for a while, mostly because I've been working on a new USB-C board. Actually, the board didn't take the most time; that would be the firmware development. (Never underestimate firmware). The result is a cool piece of gear, a powerful development platform, and a stronger firmware library.
The USB-C Explorer is a development board with everything needed to start working with USB Type-C. It contains a USB-C port controller and Power Delivery PHY chip, a microcontroller, and several options for user interaction. Here are the hardware features.
- SAMD21E17A microcontroller
- FUSB302B USB PD PHY
- OLED Display
- Capacitive-sense slider
- Power header (up to 5 Amps)
- Debug port (UART and/or GPIO)
- SWD connector (Tag-Connect)
- Reset and User Buttons
- Onboard regulator, input up to 20 V.
The default firmware will identify as a USB Power Delivery Sink and list out all power capabilities from a corresponding Source. It will then request the highest power option. This voltage will be available on the power header. The example photo shows the capabilities of an Apple MacBook 87W Charger.
The default firmware also includes a USB bootloader. If you hold the User Button during reset, it will show up as a USB Mass Storage Device with a single file "FLASH.BIN". Copy the file to inspect the application firmware. Delete it and replace it with a new .bin file to rewrite the firmware. No programming cable is required.
To use the Single Wire Debug (SWD) function for live debugging, you will need a Tag-Connect TC2050-IDC-NL "plug of nails" cable and clip. You can then use an adapter to something like a Segger or J-Link.
The firmware library has also been redesigned from the ground up to support new platforms. The first of these is support for the Arduino M0. You can find that example here. The intention is that only four files, tcpm_driver.c/h and usb_pd_driver.c/h, need to be modified to support new microcontrollers. New pairs of files such as FUSB302.c/h can be added to support new Type-C Port Managers (TCPM chips).
You can purchase a board from my Tindie store. This design is open source under an MIT license. All hardware designs, documentation, and firmware are freely available. You can find all design files at this github repository. I welcome feedback, so please let me know what you think. In particular, help with firmware would be appreciated.