Keyboard Printing with Teensy
Don't subtract absolute values:

    if (c &gt;= 'a' &amp;&amp; c &lt;= 'z') return c - 93;


It makes it hard to understand what you are doing when you subtract integer literals from character codes. I would normally expect some form of value that conveys some meaning. For example lets assume ASCII (You probably want your keyboard thing but I don't know the appropriate macro).

 if (c &gt;= 'a' &amp;&amp; c &lt;= 'z') return c + 3 - 'a';  // For some reason you want 'a' to map to 3
                                                // If we assume ASCII 'a' =&gt; 96 


 if (c &gt;= 'A' &amp;&amp; c &lt;= 'Z') return c + 4 - 'A';  // For some reason you want 'A' to map to 4
                                                // If we assume ASCII 'A' =&gt; 65


Either you have some other requirement that is not ASCII (very possible), you want 'a'/'A' to map to some non zero number or you have a bug. But it is hard to tell with the way you have written your code as the literal values 93 and 61 have no real meaning.