Search This Blog

Sunday, July 29, 2018

Low cost VGA Terminal module - Project page

Projects / ChibiTerm Original post date: 03/04/2016

This is a VGA and keyboard interface module for embedded computers that need text output on a monitor. It can be connected to a VGA monitor, PS/2 keyboard and act as a VT100 terminal via TTL serial port. It boots up instantaneously so it doesn't miss critical power on messages from the host.

While there are a lot of ARM based VGA projects out there, this is an exercise to see what can be done with the low end STM32F030F4 that has only 4K of RAM and 16K of FLASH.

I named it ChibiTerm for its size: 0.7"x1.0" (17.78 mm x 25.4 mm)
(Chibi = Small in Japanese).

Small embedded microcontrollers do not usually come with a video output. The aim of this project is design a low cost stamp sized module that can be used to provide a VGA text display rendered at full 640x400 or 640x480 and interface with a PS/2 keyboard. The module acts as an embeddable VT100 terminal to the host via serial port. It takes care of the video generation, critical timing issues and simplifies the driver for the embedded host. The host only need to deal with sending/receiving characters and control code via serial port.

This is an DIY project with readily available parts. It can boot up instantaneously to catch console messages and consumes ~25mA at 3.3V for monochrome video (without the PS/2 keyboard). The module is small enough (0.7"x1.0") and cheap enough to be embedded in a design.


Project logs:

I have organized my project logs into different areas.




  1. VT100 implementation - specifications for the implementation
  2. VT100 - VTTest - The gold standard for VT100 compatibility test suite
  3. VT100 - Testing with Linux utils - still buggy




See license details on Github.

In general source code are GPLV3 unless otherwise stated and hardware are Creative Common 4.0 by-nc. Please contact me if you are interested for a commercial license under different terms.



Madis Kaal wrote 10/24/2017 at 23:22
I've branched the code and added VT100 emulation,


  1. Have you seen the article by Geoff Graham on an ASCII Video Terminal in Silicon Chip magazine, July 2014, pages 60-69? It looks very similar to what you are doing. Glad to see you making progress.

    1. I built one of those boards. I was very impressed with Geoff's code.


Note: Only a member of this blog may post a comment.