When it comes to text, how small is too small? The experts say a six point font is the minimum for readability, but as [James Bowman] shows us, you can get away with half of that.
The goal is to produce a 40-character display on a 24 mm x 24 mm LCD that has a resolution of 240 x 240 to show a serial terminal (or other data) on the “TermDriver2” USB-to-Serial adapter. With 24 lines, that’s a line per millimeter: very small text. Three points, to be precise, half what the experts say you need. Diving this up into 40 columns gives a character cell of six by nine pixels. Is it enough?

Not by itself, no. That’s where the hack comes in: sub-pixel rendering. After all, a “white” pixel on an LCD is actually three elements: a red, a green, and a blue subpixel, stacked side-by-each. Drive each of those subpixels independently and 240 pixels now becomes 720. That’s plenty for a 40 column terminal.
The article discusses how, in general terms, they pulled off the subpixel rendering and kept the font as legible as possible. We think it’s a good try, though the colored fringe around the characters can be uncomfortable to look at for some people — and then we can’t forget the physical size of the characters being 1 mm tall.
If this trick were being used on a larger display with a 240-wide resolution, we’d say “yes, very legible, good job!”– but at this size? We hope we can find our reading glasses. Still, it’s a neat trick to have in your back pocket for driving low-resolution LCDs.
It may not surprise you that aside from improving legibility, subpixel rendering is also used for pixel (er, sub-pixel) art.

Older character generators used a cell of 5×7 pixels, or 5×9 if you wanted decenders. I like that look better than the color fringing.
The color fringing can be removed with math but the process was long patented by Microsoft Truetype. I suspect that patent has expired now.
I believe the technique is “box filter RGB decimation process”.
Indeed. The article claims the opposite:
“But the slight color fringing is a small trade-off against much better readability”
I’ve disabled sub pixel rendering for around 15 to 20 years. I much prefer sharp edges even though lines may look a bit jagged, then those weird colors all over the letters.
The article also states:
“But on LCD displays a pixel is really three vertical emitter elements, for red, green and blue.”
Which is an over simplification, Over the last 20+ years a gazillion amount of LCD’s have been made (and CRT’s before that) and among them, there has never been a standard of sub pixel order. In more modern times there are also LCD’s with a bayern pattern that have twice as much green pixels then of the other colors. Sizes of sub pixels may also depend on LED efficiency in for example OLED’s. Another problem is that I used a swivel stand for my monitor for a long time. In portrait mode for text, and I rotated it to landscape for CAD work.
And now I’m getting older, and eyesight is slowly diminishing. I can still easily read text with a “base height” of around 8 pixels, but I can barely see any difference whether subpixel rendering is on or off. On that level, my eyes themself blend in the edges. As a result, only the color fringes remain, especially when the sub pixel rendering settings don’t match the actual panel in the monitor.
I was also confused by that “3 point” thing. Those have nothing to do with pixels, but only with size. Apparently that was used as a certain fraction of a banana by some ancient and scrubby letterologists.
Some words to defend the author:
If you’ve got a know display, then sub pixel rendering can be made to (at least sort of) work, and on the real 240×240 LCD, the color fringing would nowhere be anything like in the 720×720 pixel screenshot shown here on hackaday.
I’ve tried a bit to look around, including on:
https://excamera.substack.com/p/what-ive-been-making-termdriver2
and as of yet, I have not found a (clear enough) photograph of the whole thing that actually shows the tiny letters rendered clearly. Showing some good photo’s that it actually works as intended is probably a good sales argument. But still, it’s not a product for me. I bought a 107cm 4k monitor partly because I’m getting older and don’t want to wear glasses to stare at text on a monitor.
If I was interested in a similar product, I’d tend to go towards a bluetooth to serial adapter and use a regular phone or tablet screen to show the text.
Yea ok you are old and wrote a book on a blog pertaining to a thing that is 30 years old
Yes we all age congratulations on this tragic discovery
I don’t mind the fringing – it reminds me of old computers with composite video – charming in that 5.25″ floppy kind of way. Alas, not everyone sees it that way.
Using leaded solder in a 2025 is just plain stupid. It’s not 2003 anymore where lead-free joints would go bust even if done at the factory. Today even a $3 soldering iron from Aliexpress can do lead-free joints like it’s nothing. Lead, just like asbestos, is not safe in any amount.
You can pry my lead from my cold dead hands
Just because you’re running to the finish line doesn’t mean I intend to pry poison solder out of you once you get there.
Lead does do wonders to my wine.
Lead is all around you. It’s still used in roofing, batteries, and light aircraft, where the lead is distributed in the atmosphere for all who live close to small airports to have a slightly lower IQ.
Leaded solder is a worry on the scale of lead acid batteries. It’s contained unless the landfill it ends up in leaches into ground water. As long as you wash your hands before sticking your fingers in your mouth.
Literally nobody, not in the article or in the source or any other comments here, mentioned lead.
What are you on about?
I wonder if reverse video (black text on white background) would improve perception of fringing?
Interesting idea. Does not look right on my monitor, but it’s probably not the right pitch.
But 6×9 is not that squishy. I recall C64 terminal emulators giving users 80 columns, with a 320 pixel display ( https://en.wikipedia.org/wiki/CBterm ). Not pretty.
Also recall text adventures, “You know, for those intellectual people with better imaginations. ‘You can’t get ye flask'”, using a 5×7 font.
Rendering a legible terminal in a specific modern antialiased font, on a tiny-in-all-ways screen (both small size and low resolution), is no small feat.
That said, for anyone working with a larger low-res display, or someone who wants to really push the limits of their eyesight and sanity, you can go way smaller than 6×9 pixels and still have quite legible text.
For an example of a subpixel font that really pushes the limits, look up Ken Perlin’s famous Tiny Font, which is proportional, but probably averages out to around 6×4 pixels.
There’s also an impressively legible 6×5 font that doesn’t use subpixels at all, just a tiny bit of grayscale antialiasing, by Adam Borowski (angband.pl)
Even as small as a 6×4 monochrome font can be surprisingly readable if you’re willing to limit yourself to alphanumerics and the most common punctuation. Not versatile enough for a terminal, but ok for rendering text. (also bear in mind that all my dimensions here include spacing between letters, so except for descenders like p and q, the actual characters in the font are only 5×3!)
Throw some optics in front and a esp32 behind them mount it all to a headset and pair with a wrist mounted keyboard/touchpad. Now you’re cyber decking
Find another friendly nerd with similar gear and you can engage in cyber docking 😛💀
We did subpixel rendering to get 40×24 and 80×24 on the Nintendo DS’s 256×192 screen. It was just barely readable for 80×24.
Just call it Apple II hi-res color text mode emulation.
Not sure how it translates to Points, but I once bought a laptop replacement battery and the little booklet that csme with it, with all the safety blurb, had tje lettering less than 1 mm tall. It was still readable.
Had a two volume dictionary that required a magnifying glass to read.
A 5×5 font on a monochrome display is really pushing it and somewhat hard to read already. Any smaller than that and you’ll have a hard time distinguishing each glyph from another. Been there, done that.
https://social.tchncs.de/@lasse/113413254427877480