USB-Cereal Enables Debugging of USB-C Device Drivers
Open source development tool originally from Google coming soon.
The USB-C connector introduced several innovations for devices. Many of us know them for their reversibility. Others see them as a universal charger. Yet, there are so many more pins available. For example, if you develop USB-C devices, two sideband or SBU pins are available for serial communication. 0xDA's Dmitrii Votintcev leveraged an open source project from Google to develop USB-Cereal, an open source development tool.
February 15, 2023 Update: USB Cereal is now live on CrowdSupply!
The unassuming box features three USB-C style connectors. On one side is a single port that connects to the target device — or device under test. On the opposing side are two more USB-C connectors. One is a pass-through to the target port, while the other is a debug port.
That debug port connects the USB-C's SBU1 and SBU2 pins to an FTDI FT232R. This chip provides a serial-to-USB conversion between the device under test, and the host debug computer. SBU stands for "sideband use." One option for these signals is logging or debugging information over serial/UART when you connect them to a development tool.
USB-Cereal supports devices that use either 1v8 or 3v3 signaling. However, the voltage detection is not automatic! Instead, you must select which voltage levels are appropriate for your device with a simple SPST-style slide switch.
0xDA does mention the USB-Cereal has a few caveats. First, this device does NOT support USB-C's reversible connections. This limitation is because the SBUx signals only work in one orientation. (Otherwise, TX and RX on the FTDI chip would not match up.) Second, this tool is intended for development, so it is not (technically) USB-C compliant.
However, you do not need special firmware or programming to use USB-Cereal. You only need to install the FTDI drivers if you do not have them already.
Update: To alliaviate supply constraint issues, 0xDA may subsitute a CP2102N for the FTDI FT232R IC. But the only functional difference would be OS-drivers.
This GitHub repository has the Altium schematic, PCB gerbers, and 3d-printable enclosure files for those who would like to make a USB-Cereal.
On the other hand, if you want to purchase one, you can back USB-Cereal's Crowd Supply campaign. The prices start at 49 USD with free shipping the US and 8 USD worldwide.