Long gone are the days of parallel ports and serial ports. Now the USB port reigns supreme!
But USB is hard, and you just want to transfer your everyday serial data from a microcontroller to computer. What now? Enter the Adafruit CH9102F Friend, a version of the popular USB-Serial 'friend' breakouts that uses the affordable (and available) CH9102F - a 'near pin-compatible' to the CP2102N.
This board features the CH9102F USB-Serial chip that can upload code at 3Mbit/s for fast development time. It also has auto-reset for Arduino/ATmega328 boards so no noodling with pins and reset button pressings. The CH9102F has fairly good driver support, and for 99% of use cases is a fine replacement of the FTR232, FT231x or CP210x series. With a modern USB Type C connector, it's ready to rock on any kind of computer.
Some things Adafruit have noted as they have been working with this board:
- The RX LED blinks as you expect when data is received, however the TX LED does not blink constantly. Instead after a few seconds of data transmission the LED will blink slowly.
- On Linux, the CTS pin is not supported by the built in Linux kernel driver. Oddly enough, all the other flow control pins work perfectly fine - its just CTS that doesn't. You can fix it by installing an out-of-tree driver which Adafruit did on a Raspberry Pi. Fortunately, for uploading code to microcontrollers, almost all of them use RTS/DTR for auto-resetting so not having CTS isn't a big deal.
By default, Adafruit have set it up so that it matches their FTDI cables. The 6th pin is RTS, the power wire is +5V, and the signal levels are 3.3V (they are 5V compliant and should work in the vast majority of 3.3V and 5V signal systems). Works excellently with any Arduino, ESP8266, ESP32, or any other microcontroller that uses an 'FTDI port' for communications and upload.
There's also a full collection of all the modem control pins you may need on the side, in case you need the DTR, RI, DSR, etc. pins.
Each order comes with a fully assembled and tested board. Adafruit give you a right-angle socket header and some male header strip. You can solder in the socket header on the edge to make it 'FTDI-like' or solder the male headers in to plug it into a breadboard and get access to all the pins.
For Linux, you won't need a driver (unless you happen to need CTS support, see above).
For Windows and MacOS X, check our tutorial page on how to install drivers.
Technical Details
Github Repo with PCB files
Product Dimensions: 29.0mm x 17.8mm x 4.9mm / 1.1" x 0.7" x 0.2"
Product Weight: 2.2g / 0.1oz