uLisp-esp32 VGA Mini Computer


I build another uLisp Mini Computer, this time it uses VGA output and a PS/2 keyboard,
using the very impressive library ‘FabGl’ from Fabrizio Di Vittorio and his
Loopback Terminal example (-> https://github.com/fdivitto/FabGL).

I used the TTGO VGA32 board (you can get the board at aliexpress or banggood (and probably others) for around 10-15 US$), but any ESP32 rev.1 board with a few resistors added should work. A circuit diagram is included in the repository of the FabGl library.

A screen resolution of 640x240 pixels is used, giving 80x25 characters for the terminal.
uLisp’s workspace size is 5081 lisp cells with this configuration.
With the ESP32-WROVER modules (4MB PSRAM) a higher resolution of 640x350 (maybe even higher)
should be possible when using my LargeWorkspace flag, but I haven’t tested this yet.

Here are some pictures of my uLisp-3.0a version supporting the VGA & PS2 keyboard,
I used my PC screen and a mini PS/2 keyboard:

Running (tak 18 12 6) needs 4189ms with this configuration, which is only about 1% slower than running it with uLisp-3.0a without VGA support.

Building uLisp 3.0a with FabGl support:

You can download the uLisp version from my github-page at https://github.com/Kaef/ulisp-esp.
Install the FabGl library with the arduino library manager and configure uLisp to
use FabGl (see defines around line 28-45 of ulisp-3.0a-esp.ino: comment out

Have fun!


I died and woke up in heaven - it’s '80 again! But better - we have flat screens and uLisp instead of DOS :D This is awesome!


Hi Kaef,

This is awesome. Thinking of building this !
Great work !


Hi Kaef ,

I’m a bit confused about which esp32 boards I can use ?



Hi Ronny,

I’m happy that you are interested in building this.
In general you can use any ESP32 board, the VGA output only requires 5 resistors (for 8 color mode) or 8 resistors for 64 color mode (I didn’t test to change colors from uLisp, but because terminal escape sequences are needed this should be easily possible). Two additional resistors are required for the PS/2 keyboard. You can find a circuit plan in the FabGl documentation on GitHub or maybe in the VGA32 board description at your reseller.
For my first test I used the ESP-VGA32 board, which has all necessary connectors for vga and keyoard. Unfortunately adding a sd-card to this board (to save uLisp code and images) is rather difficult, because the IOs are not lead out. Therefore I want to use a board with sd-card support and probably 4 MB PSRAM, I think the TTGO-T8 board should be fine. The changes need to be make to uLisp are minimal: changing some GPIO definitions and change the FabGl VGA setup call (if 8 color mode or other GPIO lines used). I have a T8 on my desk, but I think I can’t do the tests in december… (but I probably build a prototype in january).

Have fun,
best regards,


Hi Kaef ,

Thanks , I will order the TTGO-T8 board on banggood.