In order to create these digits, I need to create custom characters as show in the right side.
As the LCD can only store 8 characters, I can't store them all. So I thought, if I store the characters 0-7 in the LCD, then to produce characters 8,9 and 10, all i have to do is mirror 0, 2 and 3 respectively (i.e. left shift them twice).
Is that possible?
I saw articles like this, but didn't like the font as not all characters in the digit share the same width.
Honestly, I don't think this judgement is relevant. I've made some "ugly" displays that look pretty cool, or at least convey some novelty. For example, four 3x8 numbers on a 16x8 matrix, and tall characters on multiple 4 digit seven segment display rotated 90 degrees. It's all fun.
Go on. If the "font" was attractive it would be worth applying time and effort into making it work.
Yes, it possible to multiplex different user-defined characters to achieve some form of bit mapped graphics.
It looks HORRIBLE on a regular LCD.
Multiplexing might work on an OLED because they have a faster response.
But since you can buy COG GLCD displays very cheaply it seems better to just use graphics. i.e. low power for an LCD, attractive fonts, available in transreflective, ...
The idea behind using multiple user characters is not unreasonable. In practice you seldom need more than 8 user characters at any one time. However the proposed scheme uses 8 displaying "012"
You can only have eight custom characters at any given time. Changing a custom character while it is being displayed will change what you see on the display, so you cannot display a number, redefine the custom character, then display another number on the same screen.
Since you intend to display time, is there any combination of numbers that actually need more that eight of the custom characters simultaneously? Just hours and minutes does severely limit the possible number combinations.
They do seem a bit ugly on the picture that I've uploaded. I just made that just to get an idea of the mapping. But I tried creating the digits with my existing elements and they looked really good on the display.
Yes, all digits are 3 character wide. But the stroke width is different at some parts isn't it? Like The vertical strokes in the digit '0' is 5 pixel wide and horizontal stroke is just 3. Also you'll have to leave a column between two digits. If you don't, then it becomes very cluttered, right? So I intended to make the digits with stroke width of 3 pixel, which would leave enough space, even without leaving a column after a digit and i guess it makes the digits look more symmetric.
Hi
I found a problem with this library.
For numbers 1, 4 and 7 that don't use all spaces,
unwanted characters appear in places where it should be empty.
HD44780s can have one of two different character sets; European or Asian.
If it's the Asia set, it works correctly, if it's the European, the garbage appears.
The solution was to modify the library, putting char(32) instead of char(254).