As a learning challenge, I built an Arduino-based VT100-compatible terminal emulator. I used a very tiny one-inch-square TFT screen based on the ILI9163C chipset. Originally I hoped to expand this to be a wearable gadget, but the form factor did not end up feeling quite right.
This project involved coding a VT100 command parser (i.e. ANSI escape codes) and a renderer to drive the screen. In addition, I experimented with fun techniques like sub-pixel rendering to fit more text on screen: by controlling RGB subcomponents individually, the 128-pixel-wide screen was able to fit up to 64 characters across (that is only 2 pixels per character). Needless to say, this was only barely readable, even with a magnification glass.
The code is open source, and I ended up reusing the parser and renderer for a different iteration with a larger screen.