Advertisement
Al_Ninyo

POV wand

Jan 26th, 2015
492
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 51.31 KB | None | 0 0
  1. //RadioShack POV Wand Arduino code
  2. //by Amanda Ghassaei
  3. //instructables.com/amandaghassaei
  4. //April 2012
  5.  
  6. //Added numbers, few russian letters and punctuation marks
  7. //by Al_Ninyo
  8. //alninyo.ru
  9. //Jan 2015
  10.  
  11. //for use with arduino uno or duemilanove with atmel328
  12.  
  13.  
  14. /*
  15.  * This program is free software; you can redistribute it and/or modify
  16.  * it under the terms of the GNU General Public License as published by
  17.  * the Free Software Foundation; either version 3 of the License, or
  18.  * (at your option) any later version.
  19.  *
  20.  * This program is distributed in the hope that it will be useful,
  21.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  22.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  23.  * GNU General Public License for more details.
  24. */
  25.  
  26. //in most of this code I have used the arduino portpin assignments to send data to pins, you can read more about how that works here: http://www.arduino.cc/en/Reference/PortManipulation
  27. //I've also included (and commented) the standard arduino library commands that perform the same functions and the port commands in case you are interested
  28.  
  29.  
  30. #include <avr/pgmspace.h>//need to store letter arrays in flash memory- or else we run out of space, more info here: http://arduino.cc/en/Reference/PROGMEM
  31.  
  32.  
  33. /*******************************************************************************
  34. THIS NEXT SECTION IS WHAT YOU'LL WANT TO EDIT TO CREATE YOUR OWN MESSAGES
  35. *******************************************************************************/
  36. // setup
  37. String povtext = "fnznKA!";//PUT YOUR MESSAGE HERE!!- must be in all caps, spaces are fine, no punctuation
  38. byte refreshrate = 1;//delay time for pixels to refresh in milliseconds- experiment with different values
  39.  
  40.  
  41.  //get length of string povtext
  42. int dimtext = povtext.length();
  43.  
  44. //letterArray to make sure firmare is loaded correctly- each led should light up in order upon turning on
  45. boolean load[]= {
  46. 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  47. 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  48. 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  49. 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  50. 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  51. 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  52. 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  53. 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  54. 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  55. 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  56. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  57. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  58. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
  59. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
  60. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
  61. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
  62. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
  63. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
  64. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
  65. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
  66. };
  67.  
  68.  
  69. //incoming data storage
  70. byte data1 = 0;//for portB
  71. byte data2 = 0;//for portC
  72. byte data3 = 0;//for portD
  73.  
  74. //variables
  75. byte n; //variable for loops
  76. byte t; //variable for loops
  77. byte l; //variable for loops
  78.  
  79. //The letters of the alphabet- edit the look of these if you want, just make sure the letters m and w are 15 pixels wide and the rest are 12 pixels
  80.  
  81. // Русская Б
  82. boolean letterb[] PROGMEM = {
  83.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  84.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  85.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  86.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  87.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  88.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  89.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  90.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  91.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  92.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  93.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  94.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  95.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  96.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  97.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  98.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  99.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  100.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  101.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  102.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  103. };
  104.  
  105.  
  106. // Русская Ф
  107. boolean letterFe[] PROGMEM = {
  108.   0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0,
  109.   0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0,
  110.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  111.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  112.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  113.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  114.   1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1,
  115.   1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1,
  116.   1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1,
  117.   1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1,
  118.   1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1,
  119.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  120.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  121.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  122.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  123.   0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0,
  124.   0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0,
  125.   0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0,
  126.   0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0,
  127.   0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0,
  128. };
  129.  
  130. // Русская И
  131. boolean letterAnd[] PROGMEM = {
  132.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  133.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  134.   1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1,
  135.   1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1,
  136.   1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1,
  137.   1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1,
  138.   1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1,
  139.   1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1,
  140.   1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
  141.   1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
  142.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  143.   1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,
  144.   1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,
  145.   1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1,
  146.   1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1,
  147.   1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1,
  148.   1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1,
  149.   1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1,
  150.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  151.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  152. };
  153.  
  154. // Русская П
  155. boolean letterPe[] PROGMEM = {
  156.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  157.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  158.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  159.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  160.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  161.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  162.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  163.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  164.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  165.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  166.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  167.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  168.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  169.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  170.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  171.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  172.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  173.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  174.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  175.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  176. };
  177.  
  178. // Русская З
  179. boolean letterZe[] PROGMEM = {
  180.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  181.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  182.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  183.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  184.   1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  185.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  186.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  187.   0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
  188.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  189.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  190.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  191.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  192.   0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
  193.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  194.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  195.   1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  196.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  197.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  198.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  199.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  200. };
  201.  
  202. boolean letter1[] PROGMEM = {
  203.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  204.   0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0,
  205.   0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
  206.   0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
  207.   1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
  208.   1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
  209.   1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  210.   1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  211.   1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  212.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  213.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  214.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  215.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  216.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  217.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  218.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  219.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  220.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  221.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  222.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  223. };
  224. boolean letter2[] PROGMEM = {
  225.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  226.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  227.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  228.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  229.   1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  230.   1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  231.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  232.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  233.   0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0,
  234.   0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0,
  235.   0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0,
  236.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  237.   0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
  238.   0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
  239.   0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
  240.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  241.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  242.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  243.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  244.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  245. };
  246. boolean letter3[] PROGMEM = {
  247.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  248.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  249.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  250.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  251.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  252.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  253.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  254.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  255.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  256.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  257.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  258.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  259.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  260.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  261.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  262.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  263.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  264.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  265.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  266.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  267. };
  268. boolean letter4[] PROGMEM = {
  269.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  270.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  271.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  272.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  273.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  274.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  275.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  276.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  277.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  278.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  279.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  280.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  281.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  282.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  283.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  284.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  285.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  286.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  287.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  288.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  289. };
  290. boolean letter5[] PROGMEM = {
  291.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  292.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  293.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  294.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  295.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  296.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  297.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  298.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  299.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  300.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  301.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  302.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  303.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  304.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  305.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  306.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  307.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  308.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  309.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  310.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  311. };
  312. boolean letter6[] PROGMEM = {
  313.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  314.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  315.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  316.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  317.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1,
  318.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  319.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  320.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  321.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  322.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  323.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  324.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  325.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  326.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  327.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  328.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  329.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  330.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  331.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  332.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  333. };
  334. boolean letter7[] PROGMEM = {
  335.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  336.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  337.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  338.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  339.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  340.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  341.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  342.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  343.   0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0,
  344.   0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0,
  345.   0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0,
  346.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  347.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  348.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  349.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  350.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  351.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  352.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  353.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  354.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  355. };
  356. boolean letter8[] PROGMEM = {
  357.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  358.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  359.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  360.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  361.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  362.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  363.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  364.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  365.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  366.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  367.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  368.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  369.   0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  370.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  371.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  372.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  373.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  374.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  375.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  376.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  377. };
  378. boolean letter9[] PROGMEM = {
  379.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  380.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  381.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  382.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  383.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  384.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  385.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  386.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  387.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  388.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  389.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  390.   0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  391.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  392.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  393.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  394.   1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  395.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  396.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  397.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  398.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  399. };
  400. boolean letterNULL[] PROGMEM = {
  401.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  402.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  403.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  404.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  405.   1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1,
  406.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  407.   1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1,
  408.   1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1,
  409.   1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1,
  410.   1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1,
  411.   1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1,
  412.   1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,
  413.   1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1,
  414.   1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1,
  415.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  416.   1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1,
  417.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  418.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  419.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  420.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  421. };
  422. boolean letterPLUS[] PROGMEM = {
  423.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  424.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  425.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  426.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  427.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  428.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  429.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  430.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  431.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  432.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  433.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  434.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  435.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  436.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  437.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  438.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  439.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  440.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  441.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  442.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  443. };
  444. boolean letterMINUS[] PROGMEM = {
  445.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  446.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  447.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  448.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  449.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  450.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  451.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  452.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  453.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  454.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  455.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  456.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  457.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  458.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  459.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  460.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  461.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  462.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  463.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  464.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  465. };
  466. boolean letterDOT[] PROGMEM = {
  467.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  468.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  469.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  470.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  471.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  472.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  473.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  474.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  475.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  476.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  477.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  478.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  479.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  480.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  481.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  482.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  483.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  484.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  485.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  486.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  487. };
  488. boolean letterCOMMA[] PROGMEM = {
  489.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  490.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  491.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  492.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  493.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  494.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  495.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  496.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  497.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  498.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  499.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  500.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  501.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  502.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  503.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  504.   0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0,
  505.   0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0,
  506.   0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0,
  507.   0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0,
  508.   0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
  509. };
  510. boolean letterVOSKL[] PROGMEM = {
  511.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  512.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  513.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  514.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  515.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  516.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  517.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  518.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  519.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  520.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  521.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  522.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  523.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  524.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  525.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  526.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  527.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  528.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  529.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  530.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  531. };
  532. boolean letterVOPROS[] PROGMEM = {
  533.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  534.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  535.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  536.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  537.   1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  538.   1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  539.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  540.   0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  541.   0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0,
  542.   0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0,
  543.   0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0,
  544.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  545.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  546.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  547.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  548.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  549.   0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
  550.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  551.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  552.   0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
  553. };
  554. boolean letterA[] PROGMEM = {
  555.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  556.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  557.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  558.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  559.   1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1,
  560.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  561.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  562.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  563.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  564.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  565.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  566.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  567.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  568.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  569.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  570.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  571.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  572.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  573.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  574.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  575. };
  576.  
  577. boolean letterB[] PROGMEM = {
  578.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  579.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  580.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  581.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  582.   1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1,
  583.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  584.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  585.   1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1,
  586.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  587.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  588.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  589.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  590.   1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1,
  591.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  592.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  593.   1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1,
  594.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  595.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  596.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  597.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  598. };
  599.  
  600. boolean letterC[] PROGMEM = {
  601.   0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0,
  602.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  603.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  604.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  605.   1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1,
  606.   1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
  607.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  608.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  609.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  610.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  611.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  612.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  613.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  614.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  615.   1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
  616.   1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1,
  617.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  618.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  619.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  620.   0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0,
  621. };
  622.  
  623. boolean letterD[] PROGMEM = {
  624.   1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  625.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  626.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  627.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  628.   1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1,
  629.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  630.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  631.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  632.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  633.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  634.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  635.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  636.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  637.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  638.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  639.   1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1,
  640.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  641.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  642.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  643.   1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  644. };
  645.  
  646. boolean letterE[] PROGMEM = {
  647.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  648.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  649.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  650.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  651.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  652.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  653.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  654.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  655.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  656.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  657.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  658.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  659.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  660.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  661.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  662.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  663.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  664.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  665.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  666.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  667. };
  668.  
  669. boolean letterF[] PROGMEM = {
  670.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  671.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  672.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  673.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  674.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  675.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  676.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  677.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  678.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  679.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  680.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  681.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  682.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  683.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  684.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  685.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  686.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  687.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  688.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  689.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  690. };
  691.  
  692. boolean letterG[] PROGMEM = {
  693.   0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0,
  694.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  695.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  696.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  697.   1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1,
  698.   1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
  699.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  700.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  701.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  702.   1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1,
  703.   1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1,
  704.   1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1,
  705.   1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1,
  706.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  707.   1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1,
  708.   1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1,
  709.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  710.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  711.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  712.   0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0,
  713. };
  714.  
  715. boolean letterH[] PROGMEM = {
  716.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  717.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  718.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  719.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  720.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  721.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  722.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  723.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  724.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  725.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  726.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  727.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  728.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  729.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  730.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  731.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  732.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  733.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  734.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  735.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  736. };
  737.  
  738. boolean letterI[] PROGMEM = {
  739.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  740.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  741.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  742.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  743.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  744.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  745.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  746.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  747.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  748.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  749.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  750.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  751.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  752.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  753.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  754.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  755.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  756.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  757.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  758.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  759. };
  760.  
  761. boolean letterJ[] PROGMEM = {
  762.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  763.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  764.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  765.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  766.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  767.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  768.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  769.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  770.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  771.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  772.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  773.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  774.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  775.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  776.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  777.   1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  778.   1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
  779.   1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
  780.   0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
  781.   0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
  782. };
  783.  
  784. boolean letterK[] PROGMEM = {
  785.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  786.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  787.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  788.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  789.   1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1,
  790.   1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1,
  791.   1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0,
  792.   1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0,
  793.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  794.   1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  795.   1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
  796.   1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  797.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  798.   1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0,
  799.   1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0,
  800.   1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0,
  801.   1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1,
  802.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  803.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  804.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  805. };
  806.  
  807. boolean letterL[] PROGMEM = {
  808.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  809.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  810.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  811.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  812.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  813.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  814.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  815.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  816.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  817.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  818.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  819.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  820.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  821.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  822.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  823.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  824.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  825.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  826.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  827.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  828. };
  829.  
  830. boolean letterM[] PROGMEM = {
  831.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  832.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  833.   1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
  834.   1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
  835.   1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1,
  836.   1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
  837.   1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
  838.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  839.   1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,
  840.   1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,
  841.   1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1,
  842.   1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1,
  843.   1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1,
  844.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  845.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  846.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  847.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  848.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  849.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  850.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  851. };
  852.  
  853. boolean letterN[] PROGMEM = {
  854.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  855.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  856.   1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1,
  857.   1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1,
  858.   1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1,
  859.   1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1,
  860.   1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1,
  861.   1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1,
  862.   1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,
  863.   1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,
  864.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  865.   1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
  866.   1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
  867.   1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1,
  868.   1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1,
  869.   1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1,
  870.   1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1,
  871.   1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1,
  872.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  873.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  874. };
  875.  
  876. boolean letterO[] PROGMEM = {
  877.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  878.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  879.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  880.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  881.   1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1,
  882.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  883.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  884.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  885.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  886.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  887.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  888.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  889.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  890.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  891.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  892.   1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1,
  893.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  894.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  895.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  896.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  897. };
  898.  
  899. boolean letterP[] PROGMEM = {
  900.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  901.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  902.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  903.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  904.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  905.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  906.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  907.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  908.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  909.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  910.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  911.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  912.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  913.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  914.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  915.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  916.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  917.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  918.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  919.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
  920. };
  921.  
  922. boolean letterQ[] PROGMEM = {
  923.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  924.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  925.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  926.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  927.   1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1,
  928.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  929.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  930.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  931.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  932.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  933.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  934.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  935.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  936.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  937.   1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1,
  938.   1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
  939.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  940.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  941.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  942.   0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1,
  943. };
  944.  
  945. boolean letterR[] PROGMEM = {
  946.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  947.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  948.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  949.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  950.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  951.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  952.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  953.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  954.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  955.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  956.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  957.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  958.   1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0,
  959.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  960.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  961.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  962.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  963.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  964.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  965.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  966. };
  967.  
  968. boolean letterS[] PROGMEM = {
  969.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  970.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  971.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  972.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  973.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1,
  974.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1,
  975.   1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
  976.   0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
  977.   0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
  978.   0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0,
  979.   0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0,
  980.   0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0,
  981.   0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0,
  982.   0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
  983.   1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
  984.   1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
  985.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  986.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  987.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  988.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  989. };
  990.  
  991. boolean letterT[] PROGMEM = {
  992.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  993.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  994.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  995.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  996.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  997.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  998.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  999.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1000.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1001.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1002.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1003.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1004.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1005.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1006.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1007.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1008.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1009.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1010.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1011.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1012. };
  1013.  
  1014. boolean letterU[] PROGMEM = {
  1015.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1016.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1017.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1018.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1019.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1020.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1021.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1022.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1023.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1024.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1025.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1026.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1027.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1028.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1029.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1030.   1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1,
  1031.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1032.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1033.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  1034.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  1035. };
  1036.  
  1037. boolean letterV[] PROGMEM = {
  1038.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1039.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1040.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1041.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1042.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1043.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1044.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1045.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1046.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1047.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1048.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1049.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1050.   0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0,
  1051.   0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0,
  1052.   0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0,
  1053.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  1054.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  1055.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  1056.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1057.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1058. };
  1059.  
  1060. boolean letterW[] PROGMEM = {
  1061.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  1062.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  1063.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  1064.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  1065.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  1066.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  1067.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  1068.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  1069.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  1070.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  1071.   1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
  1072.   1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1,
  1073.   1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1,
  1074.   1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1,
  1075.   1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,
  1076.   1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,
  1077.   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
  1078.   0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0,
  1079.   0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0,
  1080.   0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0,
  1081. };
  1082.  
  1083. boolean letterX[] PROGMEM = {
  1084.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1085.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1086.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1087.   0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0,
  1088.   0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0,
  1089.   0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0,
  1090.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  1091.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  1092.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  1093.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1094.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1095.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  1096.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  1097.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  1098.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  1099.   0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0,
  1100.   0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0,
  1101.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1102.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1103.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1104. };
  1105.  
  1106. boolean letterY[] PROGMEM = {
  1107.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1108.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1109.   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
  1110.   0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0,
  1111.   0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0,
  1112.   0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0,
  1113.   0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
  1114.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  1115.   0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
  1116.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1117.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1118.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1119.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1120.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1121.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1122.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1123.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1124.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1125.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1126.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1127. };
  1128.  
  1129. boolean letterZ[] PROGMEM = {
  1130.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1131.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1132.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1133.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1134.   0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0,
  1135.   0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0,
  1136.   0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0,
  1137.   0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0,
  1138.   0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0,
  1139.   0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0,
  1140.   0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
  1141.   0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0,
  1142.   0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0,
  1143.   0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
  1144.   0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
  1145.   0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
  1146.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1147.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1148.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1149.   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1150. };
  1151.  
  1152.   void sendToWand(boolean letterArray[]){//function to get array data
  1153.    
  1154.   for (t=0; t<12; t++){ //for each time step
  1155.  
  1156.   for (l=0; l<6; l++){ //for first six rows of data
  1157.     data1 = data1 << 1;//bitwise shift left
  1158.     data1 |= pgm_read_byte_near(letterArray + (l*12+t));//add next value from dataset
  1159.   }
  1160.   for (l=6; l<14; l++){ //for next eight rows of data
  1161.     data2 = data2 << 1;//bitwise shift left
  1162.     data2 |= pgm_read_byte_near(letterArray + (l*12+t));//add next value from dataset
  1163.   }
  1164.   for (l=14; l<20; l++){ //for next six rows of data
  1165.     data3 = data3 << 1;//bitwise shift left
  1166.     data3 |= pgm_read_byte_near(letterArray + (l*12+t));//add next value from dataset
  1167.   }
  1168.   //SET PINS:
  1169.   PORTB = data1;
  1170.   PORTD = data2;
  1171.   PORTC = data3;
  1172.   delay(refreshrate);
  1173.   //clear data storage
  1174.   data1=0;
  1175.   data2=0;
  1176.   data3=0;
  1177.   }
  1178.   }
  1179.  
  1180.   void sendToWandMW(boolean letterArray[]){//M and W are extra wide- they have a special function to get array data (with 15 time steps instead of 12)
  1181.    
  1182.   //send data to leds via port/pin manipulation
  1183.   for (t=0; t<15; t++){ //for each time step
  1184.  
  1185.   for (l=0; l<6; l++){ //for first six rows of data
  1186.     data1 = data1 << 1;//bitwise shift left
  1187.     data1 |= pgm_read_byte_near(letterArray + (l*15+t));//add next value from dataset
  1188.   }
  1189.   for (l=6; l<14; l++){ //for next eight rows of data
  1190.     data2 = data2 << 1;//bitwise shift left
  1191.     data2 |= pgm_read_byte_near(letterArray + (l*15+t));//add next value from dataset
  1192.   }
  1193.   for (l=14; l<20; l++){ //for next six rows of data
  1194.     data3 = data3 << 1;//bitwise shift left
  1195.     data3 |= pgm_read_byte_near(letterArray + (l*15+t));//add next value from dataset
  1196.   }
  1197.   //SET PINS:
  1198.   PORTB = data1;
  1199.   PORTD = data2;
  1200.   PORTC = data3;
  1201.   delay(refreshrate);
  1202.   //clear data storage
  1203.   data1=0;
  1204.   data2=0;
  1205.   data3=0;
  1206.   }
  1207.   }
  1208.  
  1209.  
  1210.   // //SAME AS ABOVE BUT WRITTEN USING ARDUINO LIBRARY COMMANDS:
  1211. //
  1212. //// for (t=0; t<12; t++){ //for each time step of matrix
  1213. ////
  1214. //// for (int pin= 13; pin>=0; pin--) {//this loop sets digital pins 0-13 either high or low depending on the value of the corresponding matrix element
  1215. ////   if (letterArray[(13-pin)*12+t]) {//if matrix element == 1 then turn led on
  1216. ////     digitalWrite(pin, HIGH);
  1217. ////   }
  1218. ////   else {//if matrix element == 0 then turn led off
  1219. ////     digitalWrite(pin, LOW);
  1220. ////   }
  1221. //// }
  1222. ////
  1223. //// //the following lines address the analog pins indivially and set them either high or low depending on matrix element
  1224. //// if (letterArray[14*12+t]) {//if matrix element == 1 then turn led on
  1225. ////   digitalWrite(A5, HIGH);
  1226. //// }
  1227. //// else {//if matrix element == 0 then turn led off
  1228. ////   digitalWrite(A5, LOW);
  1229. //// }
  1230. //// if (letterArray[15*12+t]) {
  1231. ////   digitalWrite(A4, HIGH);
  1232. //// }
  1233. //// else {
  1234. ////   digitalWrite(A4, LOW);
  1235. //// }
  1236. //// if (letterArray[16*12+t]) {
  1237. ////   digitalWrite(A3, HIGH);
  1238. //// }
  1239. //// else {
  1240. ////   digitalWrite(A3, LOW);
  1241. //// }
  1242. //// if (letterArray[17*12+t]) {
  1243. ////   digitalWrite(A2, HIGH);
  1244. //// }
  1245. //// else {
  1246. ////   digitalWrite(A2, LOW);
  1247. //// }
  1248. //// if (letterArray[18*12+t]) {
  1249. ////   digitalWrite(A1, HIGH);
  1250. //// }
  1251. //// else {
  1252. ////   digitalWrite(A1, LOW);
  1253. //// }
  1254. //// if (letterArray[19*12+t]) {
  1255. ////   digitalWrite(A0, HIGH);
  1256. //// }
  1257. //// else {
  1258. ////   digitalWrite(A0, LOW);
  1259. //// }
  1260. ////
  1261. ////
  1262. //// delay(refreshrate);//delay after each column of data is displayed
  1263. //// }//go to next time step
  1264.  
  1265.  
  1266. void setup() {
  1267.  
  1268.  //port/pin assignments- set all pins to output- more info here: http://www.arduino.cc/en/Reference/PortManipulation
  1269.   DDRB = 0xFF;//port b- digital pins 8-13
  1270.   DDRC = 0xFF;//port c- anlog pins 0-5
  1271.   DDRD = 0xFF;//port d- digital pins 0-7
  1272.  
  1273. //the three lines above are the same as setting all pins as outputs using arduino library:
  1274. //  pinMode(A0, OUTPUT);
  1275. //  pinMode(A1, OUTPUT);
  1276. //  pinMode(A2, OUTPUT);
  1277. //  pinMode(A3, OUTPUT);
  1278. //  pinMode(A4, OUTPUT);
  1279. //  pinMode(A5, OUTPUT);
  1280. //  
  1281. //  for (int pin=0; pin<14; pin++){
  1282. //    pinMode(pin, OUTPUT);
  1283. //  }
  1284.      
  1285.  //run intialization so we know device is working- leds should light up in order from top of wand to bottom
  1286.  for (byte j=0; j<20; j++){ //for each time step
  1287.  
  1288.   for (byte i=0; i<6; i++){ //for first six rows of data
  1289.     data1 = data1 << 1;//bitwise shift left
  1290.     data1 |= load[(i*20+j)];//add next value from dataset
  1291.   }
  1292.   for (byte i=6; i<14; i++){ //for next eight rows of data
  1293.     data2 = data2 << 1;//bitwise shift left
  1294.     data2 |= load[(i*20+j)];//add next value from dataset
  1295.   }
  1296.   for (byte i=14; i<20; i++){ //for next six rows of data
  1297.     data3 = data3 << 1;//bitwise shift left
  1298.     data3 |= load[(i*20+j)];//add next value from dataset
  1299.   }
  1300.   PORTB = data1;
  1301.   PORTD = data2;
  1302.   PORTC = data3;
  1303.   delay(100);
  1304.  
  1305.  }
  1306.  
  1307. ////SAME AS ABOVE LOOP, BUT USING ARDUINO LIBRARY:
  1308. // //turn on each LED one by one using arduino library commands
  1309. //  for (int pin= 13; pin>=0; pin--){//turn on each digital pin sequentially for 100ms
  1310. //    digitalWrite(pin, HIGH);
  1311. //    delay(100);
  1312. //    digitalWrite(pin,LOW);
  1313. //  }
  1314. //  //the following lines turn on each analog pin individually
  1315. //  digitalWrite(A5, HIGH);
  1316. //  delay(100);
  1317. //  digitalWrite(A5,LOW);
  1318. //  digitalWrite(A4, HIGH);
  1319. //  delay(100);
  1320. //  digitalWrite(A4,LOW);
  1321. //  digitalWrite(A3, HIGH);
  1322. //  delay(100);
  1323. //  digitalWrite(A3,LOW);
  1324. //  digitalWrite(A2, HIGH);
  1325. //  delay(100);
  1326. //  digitalWrite(A2,LOW);
  1327. //  digitalWrite(A1, HIGH);
  1328. //  delay(100);
  1329. //  digitalWrite(A1,LOW);
  1330. //  digitalWrite(A0, HIGH);
  1331. //  delay(100);
  1332. //  digitalWrite(A0,LOW);
  1333.  
  1334.  //clear data storage
  1335.  data1 = 0;
  1336.  data2 = 0;
  1337.  data3 = 0;
  1338.  //clear ports- set all arduino pins to 0Volts
  1339.  PORTB = data1;
  1340.  PORTD = data2;
  1341.  PORTC = data3;
  1342.  }
  1343.  
  1344. void loop() {
  1345.  
  1346.   //space at beginning of text
  1347.    PORTB = 0;
  1348.    PORTD = 0;
  1349.    PORTC = 0;
  1350.    delay(refreshrate*3);
  1351.  
  1352.   for (n=0; n<dimtext; n++) {//go through each character of povtext and call function sendToWand to display letter
  1353.     if (povtext.charAt(n)=='.') {
  1354.       sendToWand(letterDOT);
  1355.       }
  1356.       else if (povtext.charAt(n)=='f') {
  1357.       sendToWandMW(letterFe);
  1358.     }
  1359.     else if (povtext.charAt(n)=='p') {
  1360.       sendToWandMW(letterPe);
  1361.     }
  1362.     else if (povtext.charAt(n)=='z') {
  1363.       sendToWand(letterZe);
  1364.       }
  1365.       else if (povtext.charAt(n)=='n') {
  1366.       sendToWand(letterAnd);
  1367.       }
  1368.     else if (povtext.charAt(n)=='!') {
  1369.       sendToWand(letterVOSKL);
  1370.       }
  1371.     else if (povtext.charAt(n)=='+') {
  1372.       sendToWand(letterPLUS);
  1373.       }
  1374.     else if (povtext.charAt(n)=='-') {
  1375.       sendToWand(letterMINUS);
  1376.       }
  1377.     else if (povtext.charAt(n)=='?') {
  1378.       sendToWand(letterVOPROS);
  1379.       }
  1380.     else if (povtext.charAt(n)==',') {
  1381.       sendToWand(letterCOMMA);
  1382.       }
  1383.     else if (povtext.charAt(n)=='1') {
  1384.       sendToWand(letter1);
  1385.       }
  1386.     else if (povtext.charAt(n)=='2') {
  1387.       sendToWand(letter2);
  1388.       }
  1389.     else if (povtext.charAt(n)=='3') {
  1390.       sendToWand(letter3);
  1391.       }
  1392.     else if (povtext.charAt(n)=='4') {
  1393.       sendToWand(letter4);
  1394.       }
  1395.     else if (povtext.charAt(n)=='5') {
  1396.       sendToWand(letter5);
  1397.       }
  1398.     else if (povtext.charAt(n)=='6') {
  1399.       sendToWand(letter6);
  1400.       }
  1401.     else if (povtext.charAt(n)=='7') {
  1402.       sendToWand(letter7);
  1403.       }
  1404.     else if (povtext.charAt(n)=='8') {
  1405.       sendToWand(letter8);
  1406.       }
  1407.     else if (povtext.charAt(n)=='9') {
  1408.       sendToWand(letter9);
  1409.       }
  1410.     else if (povtext.charAt(n)=='0') {
  1411.       sendToWand(letterNULL);
  1412.       }
  1413.     else if (povtext.charAt(n)=='A') {
  1414.       sendToWand(letterA);
  1415.       }
  1416.     else if (povtext.charAt(n)=='B') {
  1417.       sendToWand(letterB);
  1418.     }
  1419.     else if (povtext.charAt(n)=='C') {
  1420.       sendToWand(letterC);
  1421.     }
  1422.     else if (povtext.charAt(n)=='D') {
  1423.       sendToWand(letterD);
  1424.     }
  1425.     else if (povtext.charAt(n)=='E') {
  1426.       sendToWand(letterE);
  1427.     }
  1428.     else if (povtext.charAt(n)=='F') {
  1429.       sendToWand(letterF);
  1430.     }
  1431.     else if (povtext.charAt(n)=='G') {
  1432.       sendToWand(letterG);
  1433.     }
  1434.     else if (povtext.charAt(n)=='H') {
  1435.       sendToWand(letterH);
  1436.     }
  1437.     else if (povtext.charAt(n)=='I') {
  1438.       sendToWand(letterI);
  1439.     }
  1440.     else if (povtext.charAt(n)=='J') {
  1441.       sendToWand(letterJ);
  1442.     }
  1443.     else if (povtext.charAt(n)=='K') {
  1444.       sendToWand(letterK);
  1445.     }
  1446.     else if (povtext.charAt(n)=='L') {
  1447.       sendToWand(letterL);
  1448.     }
  1449.     else if (povtext.charAt(n)=='M') {
  1450.       sendToWandMW(letterM);
  1451.     }
  1452.     else if (povtext.charAt(n)=='N') {
  1453.       sendToWand(letterN);
  1454.     }
  1455.     else if (povtext.charAt(n)=='O') {
  1456.       sendToWand(letterO);
  1457.     }
  1458.     else if (povtext.charAt(n)=='P') {
  1459.       sendToWand(letterP);
  1460.     }
  1461.     else if (povtext.charAt(n)=='Q') {
  1462.       sendToWand(letterQ);
  1463.     }
  1464.     else if (povtext.charAt(n)=='R') {
  1465.       sendToWand(letterR);
  1466.     }
  1467.     else if (povtext.charAt(n)=='S') {
  1468.       sendToWand(letterS);
  1469.     }
  1470.     else if (povtext.charAt(n)=='T') {
  1471.       sendToWand(letterT);
  1472.     }
  1473.     else if (povtext.charAt(n)=='U') {
  1474.       sendToWand(letterU);
  1475.     }
  1476.     else if (povtext.charAt(n)=='V') {
  1477.       sendToWand(letterV);
  1478.     }
  1479.     else if (povtext.charAt(n)=='W') {
  1480.       sendToWandMW(letterW);
  1481.     }
  1482.     else if (povtext.charAt(n)=='X') {
  1483.       sendToWand(letterX);
  1484.     }
  1485.     else if (povtext.charAt(n)=='Y') {
  1486.       sendToWand(letterY);
  1487.     }
  1488.     else if (povtext.charAt(n)=='Z') {
  1489.       sendToWand(letterZ);
  1490.     }
  1491.     else if (povtext.charAt(n)==' ') {
  1492.       PORTB = 0;
  1493.       PORTD = 0;
  1494.       PORTC = 0;
  1495.    delay(refreshrate*3);//off for 3 pixels
  1496.     }
  1497.     //space between each character
  1498.     PORTB = 0;
  1499.     PORTD = 0;
  1500.     PORTC = 0;
  1501.    delay(refreshrate);
  1502.   }
  1503.  
  1504.   //space at end of text
  1505.    PORTB = 0;
  1506.    PORTD = 0;
  1507.    PORTC = 0;
  1508.    delay(refreshrate*3);
  1509. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement