Introducing Nautilus: a tiny USB UART with selectable 5V / 3.3V operation
For those unfamiliar, a USB UART is basically a "serial port" that can be added to a computer, exposing TX / RX lines for electronic communication with a target device. These come in handy for many uses, probably the most common of which is getting a debug shell on some embedded Linux system.
Unfortunately, not all devices agree on the voltage level that should be used for such serial interfaces. Some devices are nice enough to "tolerate" a wide range of voltages, while some other less flexible ones simply fry up if you dare present them with an extra volt or two.
This is something I wanted to address for a long time now, but ironically I'd always left it on the side due to its simplicity, always thinking "nah that's so simple I'll just take a few hours whenever and make it later".
Of course, the frustration only grew every time I needed to pull out a level shifter to interface my old 5V USB UART with a 3.3V device...
After enough raging against a dead 74HC125 I decided it was time.
I got to work on the Nautilus and soon enough I had exactly what I wanted: a tiny device that could talk 3.3V as well as 5V. An easily-accessible slide switch allows selecting the I/O voltage and some LEDs indicate power and status.
In addition to the TX / RX lines, the Nautilus six-pin female header also exposes two grounds, the 3.3V reference output as well as VUSB (5V).