ASCII/character table

“Corrections, suggestions, and new documentation should be posted to the Forum.”

I would like to suggest adding a ASCII/character table to the Arduino reference guide. As this guide is downloaded/include in the installation pack it would be convenient to included rahter than having to look one up on the internet somewhere. I offer the attached as a starting point.
ASCII_Table.xlsx used to generate table
ASCII_Table.htm single page html document (entire table)
ASCII_Table.pdf Acrobat file (2 pages)
ASCII_Table_001-1127.PNG codes 1 to 127
ASCII_Table_128-255.PNG codes 128-255

Tables include Binary (in two nibbles), Hex, Decimal and escape codes.
Extended codes (128-255) are from MS Linedraw (replicates MS DOS page).

ASCII_Table.ZIP (445 KB)

only one image attached..

ASCII tables above 128 differ quite a bit, e.g. depending on country code keyboard, so how many should be added?

any is better than none,

why not the basic one, and a note about localisum,
after all, the guide is for starters,

lets not complicate ..

In fact ASCII does NOT define codes above decimal 127 (ref: ASCII - Wikipedia)

The second page I chose is code page 437 that was used by MS DOS. I used the "MS Linedraw" font to represent it. .
(ref: Code page 437 - Wikipedia)
This is noted at the top of the page for the second half of the table (128-256).
Most of these codes still work at the DOS command prompt and are still supported by a few compilers like FreeBasic.,
I just look it up when needed, easier than trying to find it within the myriad of info hosted at

only one image attached…

I screwed up (again). Sorry 'bout that … :disappointed_relieved:
I have added the files to the first post.

I just look it up when needed, easier than trying to find it within the myriad of info hosted at

I was doing that ... but my internet connection is wireless and sometimes is is also connectionless. :roll_eyes:
My local Arduino reference index now has the html ASCII added.
I just thought it might be helpful for those individuals that are just starting in the Arduino environment.
From the number of posts you have I suspect you have been around for a while .... yes ???

I just noted that the reference page for “char” (Char.html) has a link to “ASCII chart” (ASCIIchart.html).

Characters are stored as numbers however. You can see the specific encoding in the ASCII chart. This means that it is possible to do arithmetic on characters, in which the ASCII value of the character is used (e.g. ‘A’ + 1 has the value 66, since the ASCII value of the capital letter A is 65). See Serial.println reference for more on how characters are translated to numbers.

The on-line version of the reference includes that page.
The one in the installation package does not.

Also i note that the reference includes this paragraph:
The char datatype is a signed type, meaning that it encodes numbers from -128 to 127. For an unsigned, one-byte (8 bit) data type, use the byte data type.

So decimal values on the second page should all be negative, yes ??
Somehow that just does not seem right.

void setup()
{ char buffer[34];
  Serial.begin (9600);
  for (int i= 192; i< (224); i++)
    { Serial.print(char(i));
  for (int i= -64; i< -32; i++)
    { Serial.print(char(i));
  for (int i= 0; i<32; i++)
    { buffer[i]= (192+i & 0xFF);
      Serial.print("  ");

//  Serial.println("================================");
//  for (int i= 0; i<32; i++)
//    { buffer[i]= (-64+i & 0xFF);
//    }
//  buffer[32]=0;
//  Serial.println(buffer);
  for (int i= 0; i<8; i++)
    { Serial.print(buffer[i], DEC);
      Serial.print(" ");
  for (int i= 0; i<8; i++)
    { Serial.print(buffer[i], HEX);
      Serial.print(" ");
  for (int i= 0; i<8; i++)
    { Serial.print(buffer[i], BIN);
      Serial.print(" ");


void loop(){;} //nada

I will be darned if I can tell the difference but they all do come back as negative.
This has something to do with char values over 127 wrapping back around to the negative side , yes ??