While suffering some serious fonter's block, here's another "wonky" experiment: this time, based on my "21st Century Dot Matrix" font. Random numbers were used to determine each dot's nudged position for the vertical (–½ / –¼ / 0 / +¼ / +½), and another set of random numbers for the horizontal. Each position had an equal 20% chance of placement.
On the previous "wonky" font ("Wonky Pins"), I adjusted some dots manually to be more visually pleasing, but I refrained from doing that here. Because so many dots were nudged to extreme positions (–½ & +½ vertically and horizontally) WITHOUT further adjustment, the printed text is still legible but definitely not as refined at "Wonky Pins"...
This typeface was also based on 2 sets of dots this time: one randomized set for an even number of dots across a row (6 or 8), and the other set for an odd number of dots (7). Sometimes, even dots and odd dots are used together on the same row in order to match the placement in the original design. These blocks are present in the "À" position. A slightly larger generic block in position "Á" is only present to prevent word processors from 'cutting off' dots nudged too far vertically up or down; initial test printings resulted in ½ dots being printed at those extremes.
Perhaps another "wonky" experiment will place the extreme ends at a lower chance of occurance (perhaps 10%) while the other three (–¼ / 0 / +¼) more at likely at 26.67% each. Or perhaps an even higher chance that the dot is not even nudged at all, with lower likelihoods as you move outwards to the extremes. This might alleviate the need for any manual adjustments, yet still get the point across that something... something has gone wonky with the printer...
Base ASCII plane from the character generator ROM of the ST7036 LCD controller, built as a fixed pitch font. This is missing the characters mapped on 0x00 through 0x1f, the first half of which could be user-defined characters loaded in RAM at run time, and hence really difficult to define in a font. I've also left off the katakana characters mapped from 0x80 to 0xFF, as I don't need them for my current requirement.
All charcters are 5x7 dots in a 6x8 dot character cell. All 6x8 dots are implemented on the panel, and the panels typically provide blank columns and rows between character cells, so I'm not entierly sure why the standard ROM image doesn't ever use the 6th column or 8th row. To mark the cell boundaries, I've included tick marks in each corner where that pixel is blank. If no extra leading or tracking is applied, those ticks will abut.
I've defined all of the obvious space characters to be blank, and also defined the Unicode NOT SIGN (U+00AC) as a blank to make it easier to draw screen images.