TermDriver

My goal for this summer is to finish and ship several hardware projects. So far these have been:

  1. SPIDriver - the campaign is about to enter its last week on Crowd Supply
  2. The Gameduino 3 7" version - still available in the store
  3. TermDriver - today!
Yes, TermDriver is available today in the Excamera Store.

It's a terminal emulator for embedded systems. It outputs a crisp text display to a VGA monitor, and supports standard ANSI escape sequences. It has a single input, a 115200-baud serial line. So if your CPU can output serial, it can drive a standard VGA monitor.

The full product page is here, so I won't duplicate what's written there. Instead here I'll talk about TermDriver's internals.

Hardware

TermDriver is two parts: The EFM8 is a tiny 8051-based microcontroller. All the firmware fits in 2K bytes, so this design can use the very smallest EFM8 that SiLabs has. This makes me happy. The EFM8 feels like just the right amount of computer for the task.

The BT810 is normally used to drive LCD panels but it can generate an excellent VGA signal with an appropriate crystal and some external resistors. I worked out the video timings with Ken Boak (@monsonite) for the EVITA board in 2016. By using a 13 MHz crystal, the BT810 produces beautiful 1024x768 video at 60 Hz. The analog color output is generated by four resistors for each color channel.

Firmware

The firmware is a protocol converter. Its input is a stream of bytes on the serial line, and the output is a command stream for the EVE graphic controller. The functionality is very simple: reproduce the look and feel of text-mode PC, including all the ANSI.SYS escape codes.

The total code size is under 1600 bytes, so it fits on the 2K microcontroller with room to spare. The major parts are:

Production

The TermDriver PCBs are made by JLPCB, a Chinese manufacturer. We assemble and test each TermDriver here in California. There are a few new tricks we're using to make assembly go faster, and I'll talk about those in a future update.


Thanks for reading! If you know anyone who might be interested, please encourage them to subscribe. And if there's something you want me to write about or feature, please let me know. Thanks again.