HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
fdivitto
FabGL
C++2019–2025
fdivitto / FabGL

FabGL

ESP32 Display Controller (VGA, PAL/NTSC Color Composite, SSD1306, ST7789, ILI9341), PS/2 Mouse and Keyboard Controller, Graphics Library, Sound Engine, Game Engine and ANSI/VT Terminal

7Distinct people
14Mentions
0Explicit recommenders
1.7KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

ESP32 Display Controller (VGA, PAL/NTSC Color Composite, SSD1306, ST7789, ILI9341), PS/2 Mouse and Keyboard Controller, Graphics Library, Sound Engine, Game Engine and ANSI/VT Terminal

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:03:16 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year14 dated mentions

Observed mentions: 2019-04-23 08:31:05 UTC to 2025-01-22 19:30:49 UTC.

0123452019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 5 mentions; 2 submissions, 3 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC523
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC312
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC202
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC202
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101

What Hacker News says

14 sources
Display controllers from the 8-bit era were simple conceptually but had a huge parts count, particularly it needs to have memory access logic very similar to what is in the microprocessor. The earliest home computers (TRS-80 Model I, Apple II) had a large parts count which was reduced in the next generation (TRS-80 Color Computer, VIC-20) because the glue logic and display controllers got the same LSI [1] treatment as the CPU. People who build modern real-hardware fantasy computers [2] struggle with the cost of the display controller if it is done in an authentic style so they wind up using an FPGA or microcontroller (amazingly easy to do with ESP32 [3]) This thing addresses the problem by reusing many of the parts between the CPU and display controller, plus the contrast is not so stark since the CPU part count is greater than 1, un
Read the rest
like the typical retrocomputer. It's fascinating! It's a minicomputer in the sense that it is built out of low-integration parts, but it is like a microcomputer in important ways, particularly having the closely integrated display controller. [1] https://vaibhav-pawale19.medium.com/integrated-circuits-ssi-... [2] http://www.commanderx16.com/ [3] https://github.com/fdivitto/FabGL
In Minimal 64x4 Home Computer
So did the other member of the "trinity", the TRS-80 model I. My mental picture is that the kind of display controller I'd like to build is about two large breadboards stuffed with 54xx chips. Such a thing is a bit simpler than a minimal CPU but not that much simpler because you need the stuff to interface with memory. I'd probably want to buy an oscilloscope and/or logic analyzer but maybe I could run it slow and use an AVR-8 Arduino to run test sequences. Almost everybody who builds throwback computers today uses either an FPGA or a microcontroller for the display controller. For instance https://github.com/fdivitto/FabGL is a highly flexible controller implemented for the ESP32 which can do tile-based graphics and sprites for games but also emulate an ANSI terminal. This is used in this SBC https://www.olimex.com/Products/Retro-Com
Read the rest
puters/AgonLight2/o... which I am going to highly recommend because this machine is compatible with the old Z80 machines but has a real 24 bit mode with 24 bit registers and also performs an order of magnitude better than any Z80 machine did back in the day. Modern systems usually avoid the unified memory model that was popular back in the day but that also usually held back the performance of the CPU because one way or another the VDC was stealing cycles. The AgonLight board communicates with the display controller through a serial port, for instance. This thing http://www.commanderx16.com/ has a memory mapped register for the address in video RAM the CPU wants to read/write and another for the data. The address register will auto-increment when access the data register so you can read or write video RAM at high speed just by repeatedly accessing the data register. The CX-16 uses an FPGA as a display controller https://github.com/X16Community/x16-docs/blob/master/X16%20R...
In Apple II graphics: More than you wanted to know
Clickable: https://www.youtube.com/watch?v=6bASIWiZPp8 On this device: https://www.aliexpress.com/item/33014937190.html With FabGL, from this repo: https://github.com/fdivitto/FabGL And if Turbo Pascal ain't enough for you: Emulating Altair 8800 on esp32 https://www.youtube.com/watch?v=MFYpXwqQZ_I Wordstar 4 word processor on esp32 https://www.youtube.com/watch?v=QiB7WgNVZLs Altair Basic on esp32 https://www.youtube.com/watch?v=7ZEusFKKmTg BBC Basic, Nevada Basic, forth, lisp on esp32 https://www.youtube.com/watch?v=y_Y5Z7Ks5yA CP/M Formatting C and D - MBASIC https://www.youtube.com/watch?v=yiSvToO-7sc
In Turbo Pascal 3 on $13 esp32 microcontroller

Turbo Pascal 3 on $13 esp32 microcontroller

https://www.youtube.com/watch?v=6bASIWiZPp8 On this device: https://www.aliexpress.com/item/33014937190.html With FabGL, from this repo: https://github.com/fdivitto/FabGL And if Turbo Pascal ain't enough for you: Emulating Altair 8800 on esp32 https://www.youtube.com/watch?v=MFYpXwqQZ_I Wordstar 4 word processor on esp32 https://www.youtube.com/watch?v=QiB7WgNVZLs Altair Basic on esp32 https://www.youtube.com/watch?v=7ZEusFKKmTg BBC Basic, Nevada Basic, forth, lisp on esp32 https://www.youtube.com/watch?v=y_Y5Z7Ks5yA CP/M Formatting C and D - MBASIC https://www.youtube.com/watch?v=yiSvToO-7sc
8 points · Open discussion
Just copying the whole post to make the links active: The machine has 8MB PSRAM so it can run micropython: https://docs.micropython.org/en/latest/esp32/tutorial/intro.... Videos of it in action: Network terminal: https://www.youtube.com/watch?v=n5c27-y5tm4&t=154s Collision detection: https://www.youtube.com/watch?v=q3OPSq4HhDE Double buffering: https://www.youtube.com/watch?v=TRQcIiWQCJw Space Invaders: https://www.youtube.com/watch?v=LL8J7tjxeXA Video modes: https://www.youtube.com/watch?v=Urp0rPukjzE&t=7s Github repo: https://github.com/fdivitto/FabGL Link to buy the machine: https://www.aliexpress.com/item/TTGO-VGA32-V1-1-Controller-P...
In New $14 esp32 VGA/mouse/keyboard/VT100 computer capable of running micropython

New $14 esp32 VGA/mouse/keyboard/VT100 computer capable of running micropython

58 points · Open discussion

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.