Ask HN: Are there any standard monochrome low resolution resolutions?

25 points by bestcoder ↗ HN
I have a rad idea for a low resolution one color pixel display. For example, 20x80 would be very challenging but probably totally worth it.

The thing is I'm going to need to display stuff on it so I need character glyphs and little graphics and stuff like that. Are there any standard glyphs or libraries for resolutions that small?

36 comments

[ 3.6 ms ] story [ 108 ms ] thread
I don't know of any offhand, you might want to look for "pixel art" libraries.
I can’t help about the displays but must mention that I had a hard time understanding the subject line you posted. You might rewrite it to something like: “Are there any monochrome, low resolution displays?”
The title makes no sense to me either. Asking if there are any small resolutions is like asking if there are any small numbers.
I also have a hard time understanding the question, but reading the text, it asks a different question:

“The thing is I'm going to need to display stuff on it so I need character gloves and little graphics and stuff like that. Are there any standard glyphs or libraries for resolutions that small?”

Because of that and the use of ‘one color’, I think/guess the OP has a 80×20 display that isn’t black and white (say a LED panel), and looks for fonts that can be used on it (I would go look at https://int10h.org/oldschool-pc-fonts/ or https://damieng.com/blog/2011/02/20/typography-in-8-bits-sys..., or look at old Mac and Windows bitmap fonts for those (warning: copyright laws may apply)) and, possibly, libraries to show an UI on it.

I went with your suggestion but changed a little I think I made it worse
Any idea what a "character glove" is? A web search just turns up halloween costumes. Does he mean glyph?
pixel size is dependent on the display size
In terms of hardware, pixel size is a fixed, literal specification of the actual display panel independent of its size.
There are as many pixels on my iphone as there are on my TV. Wtf do you mean its a fixed size?
Those aren’t screen pixels, they’re software abstractions of your screen pixels. Your iPhone has more actual pixels than your TV.
This project seems to imply DejaVu Sans can be used on a 5-pixel-height display, although that's based on a very surface-level skim of the repo: https://github.com/rnauber/ESPHomeMatrixLED

I'd suggest that your best bet in general would be to look at any projects using these kinds of LED dot matrix marquee displays. I was able to find a lot of arduino tutorials with a google search, there's probably relevant code with some of those. Good luck!

You mean PC controllable?

There are lot's of displays available, but most of them are geared to electronics projects. You'll need at least an arduino or some such to drive it.

Yeah I'm not sure how to drive it either. I'd like to use any sp32 but that only has like 40 gpios max. I think you can set up logic gates or something I don't even know what that means except very superficially superficially I'll cross that bridge when I get there
Look into addressable leds like the WS2812... you can wire them up in series (or buy them pre-soldered on tape) and you can control hundreds of RGB leds independently with just two wires.

Adafruit sells tape as well as matrices of the stuff which might be what you’re looking for

if you’re dead set on controlling individual LEDs look up “charlieplexing” which will let you use n pins to control n^2-n LEDs
This display sounds very similar to LCDs, for which you can get row/column driver ICs.

> I think you can set up logic gates or something I don't even know what that means except very superficially superficially I'll cross that bridge when I get there

It sounds like this bridge is a long way in the distance.

There are I2C matrix displays that shouldn't need many GPIO ports.
Many years ago there was a VT-100 terminal program called VT-10-Squared for the Atari 8 bit computers that managed to produce legible characters that were only 3 pixels wide.

IIRC, it had both upper and lower case, as well as the special VT-100 graphics characters. It was definitely usable, if somewhat headache-inducing when used to consume many screens of text.

It worked by drawing the characters in "high resolution" graphics mode (320x192! Woohoo!) so you could use mainframe software on the Atari, which normally only supported 40 columns of text.

Looks like the software is still hanging around the various Atari archives... it might be worth extracting the font, if licensing permits.

OpenBSD's default console font Spleen has a 5x8 version which, which is fairly legible while still looking nice:

https://github.com/fcambus/spleen

Any smaller than that and you're getting into ugly territory.

The smallest size at which English capital and lowercase letters are differentiable is 3x5, so 5x8 is pretty close to that minimum possible size. Any smaller and some letters become ambiguous or lose too much information to be unique (e.g., B vs 8). I haven’t checked to see if 3x5 can include symbols though, only the letters and numbers.
Oh, it's definitely possible to go lower than 5x8 and include symbols, but the issue is aesthetics. A lot of your lowercase letters are going to look taller than they usually would, which can be a distraction when reading.

If you don't care about appearances and just whether or not every character is distinct enough to be understood, then I think 4x6 is probably the limit, but I'd be happy to be proven wrong.

Here is a 4x4 font: https://simplifier.neocities.org/4x4.html .

BESM-6 used to show CPU registers content with lights ( http://www.mailcom.com/besm6/ ); with this font, each 48-bit register could show 3 letters.

Look, I'm not going to deny its legibility, but I (and this is my opinion only) don't like it's appearance. It's pretty impressive considering the constraints though. This is what I meant by ugly territory in my original comment.
I think the 4x4 is legible only when you are already used to it and/or have the the full font as a reference. There are several letters and numbers which, when seen on their own, cannot be unambiguously deciphered.
That 5x8 font was completely legible to my six-decade old eyes! Sweet.
I used to entertain myself during math class designing tiny fonts for my HP48. And I have 0 design skill. The constraints are so tight if you want really tiny fonts at that level that there aren't that many options anyhow. It's fun and easy to just make some.

For stuff more in the 8 pixel range, there a ton of stuff. If you give a full 20 pixels to one line you can use almost any font you like.

For rendering images you may want to look at ordered dithering, based on a paper by Bryce Bayer (my father).

https://en.wikipedia.org/wiki/Ordered_dithering

At higher resolutions there are better methods, so this is now ancient technology. You might recognize this dither pattern from the graphics on old DEC computer boxes...

This is mostly a chip datasheet, but it describes a widespread set of glyphs used for cheap monochrome alphanumeric displays.

https://www.sparkfun.com/datasheets/LCD/HD44780.pdf

I had to look this up once, in search of "flat" and "natural" symbols for music. Turns out I had to create my own.

The HP48 calculator had a 131x64 display, and there was a bunch of third party software that wanted to cram lots on the screen, and so there were a lot of third party fonts [1]. You would have to figure out how to decode the file format though.

[1] https://www.hpcalc.org/hp48/utils/fonts/

Generally anything low res is hand-designed on a pixel by pixel basis (whether monochrome or limited colours). For fonts the lowest legible is 5x8 (depending of your definition of 'legible', e.g. the alphabet as printed on a seven-segment display).

You could look back at early graphics fonts/icons, e.g. early X11 or after that Mac and Windows for inspiration. Also graphics LCD displays (e.g. one or two lines of 16 chars) and then there's the BBC Microbit with its 5x5 display - lots of creative stuff there, the stock demo it comes with does text and graphics (and the code is online).

There are quite a few character-generator ROM images out there on the web from the early days of 'Home Computers', especially for the 'TV Typewriter' kits which had a 16 line, 64 char per line display. Most of those used (IIRC) an 8x8 character grid which included blank rows and columns to act as character-to-character and line-to-line separators.