MAX7219 list of available characters that can be displayed.

Questions about deployment and use of Air Manager Instruments

Moderators: russ, Ralph

Message
Author
JackZ
Posts: 2262
Joined: Mon Feb 22, 2016 1:02 pm

MAX7219 list of available characters that can be displayed.

#1 Post by JackZ »

Hello. Here’s a question for @Ralph and @Corjan from one fellow simmer in the French cockpit builders’ forum:

The title sums it all: Can we currently display on the MAX7219 the « i », « J », « t » and « u/U » characters in the current AM implementation?
I read a list of available characters in the wiki and apparently only some of them are available:
... It can also display a alphabet characters, but since it is a 7-segment display, this is limited to A, b, C, c, d, E, F, H, h, L, l, O, o, P, and S.
Guess that « Y » and « Z » could be emulated by « 4 » and « 2 »
like « B » could be emulated by « 8 » and « G » by « 6 »?. It would be nice to have the complete list, instead of having to code the replacement.

Thanks

Jacques
Last edited by JackZ on Fri Feb 12, 2021 1:22 pm, edited 1 time in total.
My YouTube Chanel on the A320 (Real SOPs by an Airline Pilot IRL):
https://www.youtube.com/playlist?list=P ... 0Q6SBASRqJ

User avatar
Corjan
Posts: 2933
Joined: Thu Nov 19, 2015 9:04 am

Re: MAX7219 list of available characters that can be displayed.

#2 Post by Corjan »

Hi,


Maybe in a bit too much detail, but this is the character map this is used with AM embedded systems:

Code: Select all

static const uint8_t char_table[] = {
    0b01111110,0b00110000,0b01101101,0b01111001,0b00110011,0b01011011,0b01011111,0b01110000, // Special
    0b01111111,0b01111011,0b01110111,0b00011111,0b00001101,0b00111101,0b01001111,0b01000111, // Special
    0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000, // Special
    0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000, // Special
    0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000, // ! - (
    0b00000000,0b00000000,0b00000000,0b00000000,0b10000000,0b00000001,0b10000000,0b00000000, // ) - /
    0b01111110,0b00110000,0b01101101,0b01111001,0b00110011,0b01011011,0b01011111,0b01110000, // 0 - 7
    0b01111111,0b01111011,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000, // 8 - ?
    0b00000000,0b01110111,0b00011111,0b00001101,0b00111101,0b01001111,0b01000111,0b00000000, // @ - G
    0b00110111,0b00000000,0b00000000,0b00000000,0b00001110,0b00000000,0b00000000,0b00000000, // H - O
    0b01100111,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000, // P - W
    0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00001000, // X - _
    0b00000000,0b01110111,0b00011111,0b00001101,0b00111101,0b01001111,0b01000111,0b00000000, // ' - g
    0b00110111,0b00000000,0b00000000,0b00000000,0b00001110,0b00000000,0b00010101,0b00011101, // h - o
    0b01100111,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000, // p - w
    0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000  // x - DEL
};
Each item (separated by comma's) is one character. It has 128 characters which map exactly to the first 128 characters in the ASCII table.
Each bit describes if a segment should be enabled. 0b00000000 = all off, 0b11111111 = all on.


Let me know if this makes sense, I would be happy to adjust this is certain characters are possible,

Corjan

User avatar
jph
Posts: 2846
Joined: Fri Apr 10, 2020 12:50 pm
Location: Somewhere over the rainbow..

Re: MAX7219 list of available characters that can be displayed.

#3 Post by jph »

Hi Corjan
The use of Y and T (classed as lower case) is often applicable - just as an example -

https://en.wikipedia.org/wiki/Seven-seg ... sentations

Many others are a waste of time as to their readability, but those two are good to go.

Cheers,
Joe
Joe. CISSP, MSc.

JackZ
Posts: 2262
Joined: Mon Feb 22, 2016 1:02 pm

Re: MAX7219 list of available characters that can be displayed.

#4 Post by JackZ »

Thanks Corjan.
To make it readable, one should know the segment numbering used for each bit.
i setup a quick rendering program to try to figure it out but ended up with garbage, using the habitual segment order here.
image.png
image.png (5.53 KiB) Viewed 4799 times
My YouTube Chanel on the A320 (Real SOPs by an Airline Pilot IRL):
https://www.youtube.com/playlist?list=P ... 0Q6SBASRqJ

JackZ
Posts: 2262
Joined: Mon Feb 22, 2016 1:02 pm

Re: MAX7219 list of available characters that can be displayed.

#5 Post by JackZ »

jph wrote: Fri Feb 12, 2021 1:33 pm Hi Corjan
The use of Y and T (classed as lower case) is often applicable - just as an example -

https://en.wikipedia.org/wiki/Seven-seg ... sentations

Many others are a waste of time as to their readability, but those two are good to go.

Cheers,
Joe
@jph good catch, the "r" would be nice too, to display "Error" for example..
My YouTube Chanel on the A320 (Real SOPs by an Airline Pilot IRL):
https://www.youtube.com/playlist?list=P ... 0Q6SBASRqJ

JackZ
Posts: 2262
Joined: Mon Feb 22, 2016 1:02 pm

Re: MAX7219 list of available characters that can be displayed.

#6 Post by JackZ »

Corjan wrote: Fri Feb 12, 2021 1:22 pm Hi,


Maybe in a bit too much detail, but this is the character map this is used with AM embedded systems:

Code: Select all

static const uint8_t char_table[] = {
    0b01111110,0b00110000,0b01101101,0b01111001,0b00110011,0b01011011,0b01011111,0b01110000, // Special
    0b01111111,0b01111011,0b01110111,0b00011111,0b00001101,0b00111101,0b01001111,0b01000111, // Special
    0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000, // Special
    0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000, // Special
    0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00100000,0b00000000, // ! - (
    0b00000000,0b00000000,0b00000000,0b00000000,0b10000000,0b00000001,0b10000000,0b00000000, // ) - /
    0b01111110,0b00110000,0b01101101,0b01111001,0b00110011,0b01011011,0b01011111,0b01110000, // 0 - 7
    0b01111111,0b01111011,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000, // 8 - ?
    0b00000000,0b01110111,0b00011111,0b00001101,0b00111101,0b01001111,0b01000111,0b00000000, // @ - G
    0b00110111,0b00000000,0b00000000,0b00000000,0b00001110,0b00000000,0b00000000,0b00000000, // H - O
    0b01100111,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000, // P - W
    0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00001000, // X - _
    0b00000000,0b01110111,0b00011111,0b00001101,0b00111101,0b01001111,0b01000111,0b00000000, // ' - g
    0b00110111,0b00000000,0b00000000,0b00000000,0b00001110,0b00000000,0b00010101,0b00011101, // h - o
    0b01100111,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000, // p - w
    0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000  // x - DEL
};
Each item (separated by comma's) is one character. It has 128 characters which map exactly to the first 128 characters in the ASCII table.
Each bit describes if a segment should be enabled. 0b00000000 = all off, 0b11111111 = all on.


Let me know if this makes sense, I would be happy to adjust this is certain characters are possible,

Corjan
@Corjan Thanks for adding the comments, it's clearer now! No wonder I had garbage for the first digits...
I figured eventually that the dp is the first bit, then it's the normal sequencing order for the segments.
image.png
image.png (6.92 KiB) Viewed 4791 times
Was finally able to display each character in sequence, I will come back to you shortly with a revised table, with the added missing characters

Jacques
Last edited by JackZ on Fri Feb 12, 2021 5:36 pm, edited 1 time in total.
My YouTube Chanel on the A320 (Real SOPs by an Airline Pilot IRL):
https://www.youtube.com/playlist?list=P ... 0Q6SBASRqJ

User avatar
Corjan
Posts: 2933
Joined: Thu Nov 19, 2015 9:04 am

Re: MAX7219 list of available characters that can be displayed.

#7 Post by Corjan »

Hi,

0b00000000 would translate to 0b.GFEDCBA I think.

Corjan

User avatar
Corjan
Posts: 2933
Joined: Thu Nov 19, 2015 9:04 am

Re: MAX7219 list of available characters that can be displayed.

#8 Post by Corjan »

Hi again,

I was wrong, this is how the max7219 does things:
7segment.png
7segment.png (19.08 KiB) Viewed 4790 times
Corjan

JackZ
Posts: 2262
Joined: Mon Feb 22, 2016 1:02 pm

Re: MAX7219 list of available characters that can be displayed.

#9 Post by JackZ »

@Corjan

here's the modified table:

I added G,I,J,M,O,S,U,Y,Z,r,q,t,u and z(as a Z)
I modified the B to be as 8 instead of b and l to be like L instead of I

Code: Select all

static const uint8_t char_table[] = {
    0b01111110,0b00110000,0b01101101,0b01111001,0b00110011,0b01011011,0b01011111,0b01110000, // Special
    0b01111111,0b01111011,0b01110111,0b00011111,0b00001101,0b00111101,0b01001111,0b01000111, // Special
    0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000, // Special
    0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000, // Special
    0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000, // ! - (
    0b00000000,0b00000000,0b00000000,0b00000000,0b10000000,0b00000001,0b10000000,0b00000000, // ) - /
    0b01111110,0b00110000,0b01101101,0b01111001,0b00110011,0b01011011,0b01011111,0b01110000, // 0 - 7
    0b01111111,0b01111011,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000, // 8 - ?
    0b00000000,0b01110111,0b01111111,0b00001101,0b00111101,0b01001111,0b01000111,0b01011110 // @ - G
    0b00110111,0b00000110,0b00111000,0b00000000,0b00001110,0b00000000,0b01110110,0b01111110, // H - O
    0b01100111,0b00000000,0b00000000,0b01011011,0b00001111,0b00111110,0b00000000,0b00000000, // P - W
    0b00000000,0b00111011,0b01101101,0b00000000,0b00000000,0b00000000,0b00000000,0b00001000, // X - _
    0b00000000,0b01110111,0b00011111,0b00001101,0b00111101,0b01001111,0b01000111,0b00000000, // ' - g
    0b00110111,0b00000100,0b00000000,0b00000000,0b00001110,0b00000000,0b00010101,0b00011101, // h - o
    0b01100111,0b01111011,0b00000101,0b01011011,0b00001111,0b00011100,0b00000000,0b00000000, // p - w
    0b00000000,0b00000000,0b01101101,0b00000000,0b00000000,0b00000000,0b00000000,0b00000000  // x - DEL
};
Jacques
Last edited by JackZ on Fri Feb 12, 2021 5:10 pm, edited 1 time in total.
My YouTube Chanel on the A320 (Real SOPs by an Airline Pilot IRL):
https://www.youtube.com/playlist?list=P ... 0Q6SBASRqJ

JackZ
Posts: 2262
Joined: Mon Feb 22, 2016 1:02 pm

Re: MAX7219 list of available characters that can be displayed.

#10 Post by JackZ »

Corjan wrote: Fri Feb 12, 2021 3:00 pm Hi again,

I was wrong, this is how the max7219 does things:
7segment.png

Corjan
Yep, that's what i figured, thanks
image.png
image.png (636 Bytes) Viewed 4770 times
image.png
image.png (650 Bytes) Viewed 4770 times
image.png
image.png (538 Bytes) Viewed 4770 times
image.png
image.png (538 Bytes) Viewed 4766 times
Last edited by JackZ on Fri Feb 12, 2021 5:28 pm, edited 1 time in total.
My YouTube Chanel on the A320 (Real SOPs by an Airline Pilot IRL):
https://www.youtube.com/playlist?list=P ... 0Q6SBASRqJ

Post Reply