]> git.tnoah.ca Git - lora-radio.git/commitdiff
Added RAK4631 e-ink display support
authorjacob.eva <x00010@disroot.org>
Mon, 20 May 2024 19:14:16 +0000 (20:14 +0100)
committerjacob.eva <x00010@disroot.org>
Mon, 20 May 2024 19:14:16 +0000 (20:14 +0100)
Bluetooth.h
Boards.h
Display.h
Graphics.h
Power.h
RNode_Firmware_CE.ino

index 38951f759c7d231416c315711fec99b8cce84ceb..d1d339a59fc737a443917ceefd98bbdbafbf23cd 100644 (file)
 // You should have received a copy of the GNU General Public License
 // along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
-#if MCU_VARIANT == MCU_ESP32
-  
-
-#elif MCU_VARIANT == MCU_NRF52
-#endif
-
 #if MCU_VARIANT == MCU_ESP32
   #if HAS_BLUETOOTH == true
     #include "BluetoothSerial.h"
@@ -265,6 +259,8 @@ void bt_disable_pairing() {
 
 void bt_pairing_complete(uint16_t conn_handle, uint8_t auth_status) {
     if (auth_status == BLE_GAP_SEC_STATUS_SUCCESS) {
+      bt_state = BT_STATE_CONNECTED;
+      cable_state = CABLE_STATE_DISCONNECTED;
       bt_disable_pairing();
     } else {
       bt_ssp_pin = 0;
@@ -285,11 +281,6 @@ bool bt_passkey_callback(uint16_t conn_handle, uint8_t const passkey[6], bool ma
     return false;
 }
 
-void bt_connect_callback(uint16_t conn_handle) {
-    bt_state = BT_STATE_CONNECTED;
-    cable_state = CABLE_STATE_DISCONNECTED;
-}
-
 void bt_disconnect_callback(uint16_t conn_handle, uint8_t reason) {
     bt_state = BT_STATE_ON;
 }
@@ -308,10 +299,9 @@ bool bt_setup_hw() {
     Bluefruit.configPrphBandwidth(BANDWIDTH_MAX);
     Bluefruit.autoConnLed(false);
     if (Bluefruit.begin()) {
-      Bluefruit.setTxPower(4);    // Check bluefruit.h for supported values
+      Bluefruit.setTxPower(8);    // Check bluefruit.h for supported values
       Bluefruit.Security.setIOCaps(true, true, false);
       Bluefruit.Security.setPairPasskeyCallback(bt_passkey_callback);
-      Bluefruit.Periph.setConnectCallback(bt_connect_callback);
       Bluefruit.Periph.setDisconnectCallback(bt_disconnect_callback);
       Bluefruit.Security.setPairCompleteCallback(bt_pairing_complete);
       const ble_gap_addr_t gap_addr = Bluefruit.getAddr();
@@ -348,7 +338,6 @@ void bt_start() {
 
     blebas.begin();
 
-    // non-connectable advertising
     Bluefruit.Advertising.addFlags(BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
     Bluefruit.Advertising.addTxPower();
 
index 0eb5c2b7538e13d5367ccc48e32072eb394a7e0a..310543943387a126c9246a5614c05e2be7611ac0 100644 (file)
--- a/Boards.h
+++ b/Boards.h
   #define BOARD_GENERIC_NRF52 0x50
   #define BOARD_RAK4631       0x51
 
+  #define OLED 0x01
+  #define EINK_BW 0x02
+  #define EINK_3C 0x03
+
   #if defined(__AVR_ATmega1284P__)
     #define PLATFORM PLATFORM_AVR
     #define MCU_VARIANT MCU_1284P
 
     #elif BOARD_MODEL == BOARD_TBEAM
       #define HAS_DISPLAY true
+      #define DISPLAY OLED
       #define HAS_PMU true
       #define HAS_BLUETOOTH true
       #define HAS_BLE true
 
     #elif BOARD_MODEL == BOARD_LORA32_V1_0
       #define HAS_DISPLAY true
+      #define DISPLAY OLED
       #define HAS_BLUETOOTH true
       #define HAS_BLE true
       #define HAS_CONSOLE true
 
     #elif BOARD_MODEL == BOARD_LORA32_V2_0
       #define HAS_DISPLAY true
+      #define DISPLAY OLED
       #define HAS_BLUETOOTH true
       #define HAS_BLE true
       #define HAS_CONSOLE true
 
     #elif BOARD_MODEL == BOARD_LORA32_V2_1
       #define HAS_DISPLAY true
+      #define DISPLAY OLED
       #define HAS_BLUETOOTH true
       #define HAS_BLE true
       #define HAS_PMU true
 
     #elif BOARD_MODEL == BOARD_HELTEC32_V2
       #define HAS_DISPLAY true
+      #define DISPLAY OLED
       #define HAS_BLUETOOTH true
       #define HAS_CONSOLE true
       #define HAS_EEPROM true
 
     #elif BOARD_MODEL == BOARD_RNODE_NG_20
       #define HAS_DISPLAY true
+      #define DISPLAY OLED
       #define HAS_BLUETOOTH true
       #define HAS_NP true
       #define HAS_CONSOLE true
 
     #elif BOARD_MODEL == BOARD_RNODE_NG_21
       #define HAS_DISPLAY true
+      #define DISPLAY OLED
       #define HAS_BLUETOOTH true
       #define HAS_CONSOLE true
       #define HAS_PMU true
       #define HAS_TCXO true
 
       #define HAS_DISPLAY true
+      #define DISPLAY OLED
       #define HAS_CONSOLE false
       #define HAS_BLUETOOTH false
       #define HAS_BLE true
   #elif MCU_VARIANT == MCU_NRF52
     #if BOARD_MODEL == BOARD_RAK4631
       #define HAS_EEPROM false
-      #define HAS_DISPLAY false
+      #define HAS_DISPLAY true
+      #define DISPLAY EINK_3C
       #define HAS_BLUETOOTH false
       #define HAS_BLE true
       #define HAS_CONSOLE false
-      #define HAS_PMU false
+      #define HAS_PMU true
       #define HAS_NP false
       #define HAS_SD false
       #define HAS_TCXO true
       const int pin_miso = 45;
       const int pin_busy = 46;
       const int pin_dio = 47;
+
+      const int pin_disp_cs = SS;
+      const int pin_disp_dc = WB_IO1;
+      const int pin_disp_reset = -1;
+      const int pin_disp_busy = WB_IO4;
+      const int pin_disp_en = WB_IO2;
+
       const int pin_led_rx = LED_BLUE;
       const int pin_led_tx = LED_GREEN;
       const int pin_tcxo_enable = -1;
index dd244759e49a0686ffae7ce10aad75e46e26271f..d566a53a967cf9f573f063c8acf05d5e73c06d2d 100644 (file)
--- a/Display.h
+++ b/Display.h
 // You should have received a copy of the GNU General Public License
 // along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
-#include "Graphics.h"
-#include <Wire.h>
+
 #include <Adafruit_GFX.h>
+
+#if DISPLAY == OLED
+#include <Wire.h>
 #include <Adafruit_SSD1306.h>
-#include "Fonts/Org_01.h"
 #define DISP_W 128
 #define DISP_H 64
+#elif DISPLAY == EINK_BW || DISPLAY == EINK_3C
+void (*display_callback)();
+void display_add_callback(void (*callback)()) {
+    display_callback = callback;
+}
+void busyCallback(const void* p) {
+    display_callback();
+}
+#endif
+#if DISPLAY == EINK_BW
+// use GxEPD2 because adafruit EPD support for partial refresh is bad
+#include <GxEPD2_BW.h>
+#include <SPI.h>
+#elif DISPLAY == EINK_3C
+#include <GxEPD2_3C.h>
+#include <SPI.h>
+#endif
+
+#include "Fonts/Org_01.h"
 #if BOARD_MODEL == BOARD_RNODE_NG_20 || BOARD_MODEL == BOARD_LORA32_V2_0
+  #if BOARD_TYPE == OLED
   #define DISP_RST -1
   #define DISP_ADDR 0x3C
+  #endif
 #elif BOARD_MODEL == BOARD_TBEAM
+  #if BOARD_TYPE == OLED
   #define DISP_RST 13
   #define DISP_ADDR 0x3C
   #define DISP_CUSTOM_ADDR true
+  #endif
 #elif BOARD_MODEL == BOARD_HELTEC32_V2 || BOARD_MODEL == BOARD_LORA32_V1_0
+  #if BOARD_TYPE == OLED
   #define DISP_RST 16
   #define DISP_ADDR 0x3C
   #define SCL_OLED 15
   #define SDA_OLED 4
+  #endif
 #elif BOARD_MODEL == BOARD_HELTEC32_V3
   #define DISP_RST 21
   #define DISP_ADDR 0x3C
   #define SCL_OLED 18
   #define SDA_OLED 17
 #elif BOARD_MODEL == BOARD_RNODE_NG_21
+  #if BOARD_TYPE == OLED
   #define DISP_RST -1
   #define DISP_ADDR 0x3C
+  #endif
 #elif BOARD_MODEL == BOARD_RNODE_NG_22
+  #if BOARD_TYPE == OLED
   #define DISP_RST 21
   #define DISP_ADDR 0x3C
   #define SCL_OLED 17
   #define SDA_OLED 18
+  #endif
+#elif BOARD_MODEL == BOARD_RAK4631
+  #if DISPLAY == OLED
+  // todo: add support for OLED board
+  #elif DISPLAY == EINK_BW
+  #define DISP_W 250
+  #define DISP_H 122
+  #define DISP_ADDR -1
+  #define DISPLAY_MODEL GxEPD2_213_BN
+  #elif DISPLAY == EINK_3C
+  #define DISP_W 250
+  #define DISP_H 122
+  #define DISP_ADDR -1
+  #define DISPLAY_MODEL GxEPD2_213_Z98c 
+  #endif
 #else
   #define DISP_RST -1
   #define DISP_ADDR 0x3C
   #define DISP_CUSTOM_ADDR true
 #endif
 
+#define UNSCALED_MAX 64
+
 #define SMALL_FONT &Org_01
 
+#include "Graphics.h"
+
+#if BOARD_MODEL != BOARD_RAK4631
+// support for BOARD_RAK4631 OLED not implemented yet
+#if DISPLAY == OLED
 Adafruit_SSD1306 display(DISP_W, DISP_H, &Wire, DISP_RST);
+float disp_target_fps = 7;
+#endif
+#endif
+#if BOARD_MODEL == BOARD_RAK4631
+#if DISPLAY == EINK_BW
+GxEPD2_BW<DISPLAY_MODEL, DISPLAY_MODEL::HEIGHT> display(DISPLAY_MODEL(pin_disp_cs, pin_disp_dc, pin_disp_reset, pin_disp_busy));
+float disp_target_fps = 0.2;
+#elif DISPLAY == EINK_3C
+GxEPD2_3C<DISPLAY_MODEL, DISPLAY_MODEL::HEIGHT> display(DISPLAY_MODEL(pin_disp_cs, pin_disp_dc, pin_disp_reset, pin_disp_busy));
+float disp_target_fps = 0.05; // refresh usually takes longer on 3C, hence 4x the refresh period
+#endif
+#else
+// add more eink compatible boards here
+#endif
 
 #define DISP_MODE_UNKNOWN   0x00
 #define DISP_MODE_LANDSCAPE 0x01
@@ -63,14 +128,20 @@ uint8_t disp_mode = DISP_MODE_UNKNOWN;
 uint8_t disp_ext_fb = false;
 unsigned char fb[512];
 uint32_t last_disp_update = 0;
-uint8_t disp_target_fps = 7;
 int disp_update_interval = 1000/disp_target_fps;
 uint32_t last_page_flip = 0;
 int page_interval = 4000;
 bool device_signatures_ok();
 bool device_firmware_ok();
 
+#if DISPLAY == OLED
 #define WATERFALL_SIZE 46
+#elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+#define WATERFALL_SIZE 92
+#else
+// add more eink compatible boards here
+#endif
+
 int waterfall[WATERFALL_SIZE];
 int waterfall_head = 0;
 
@@ -79,28 +150,35 @@ int p_ad_y = 0;
 int p_as_x = 0;
 int p_as_y = 0;
 
+#if DISPLAY == OLED
 GFXcanvas1 stat_area(64, 64);
 GFXcanvas1 disp_area(64, 64);
+#elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+GFXcanvas1 stat_area(DISP_H, DISP_W/2);
+GFXcanvas1 disp_area(DISP_H, DISP_W/2);
+#endif
 
 void update_area_positions() {
   if (disp_mode == DISP_MODE_PORTRAIT) {
     p_ad_x = 0;
     p_ad_y = 0;
     p_as_x = 0;
-    p_as_y = 64;
+    p_as_y = DISP_H;
   } else if (disp_mode == DISP_MODE_LANDSCAPE) {
     p_ad_x = 0;
     p_ad_y = 0;
-    p_as_x = 64;
+    p_as_x = DISP_H;
     p_as_y = 0;
   }
 }
 
 uint8_t display_contrast = 0x00;
+#if DISPLAY == OLED
 void set_contrast(Adafruit_SSD1306 *display, uint8_t contrast) {
-    display->ssd1306_command(SSD1306_SETCONTRAST);
-    display->ssd1306_command(contrast);
+    display.ssd1306_command(SSD1306_SETCONTRAST);
+    display.ssd1306_command(contrast);
 }
+#endif
 
 bool display_init() {
   #if HAS_DISPLAY
@@ -131,6 +209,20 @@ bool display_init() {
       delay(50);
       digitalWrite(pin_display_en, HIGH);
       Wire.begin(SDA_OLED, SCL_OLED);
+    #elif BOARD_MODEL == BOARD_RAK4631
+      #if DISPLAY == OLED
+      #elif DISPLAY == EINK_BW || DISPLAY == EINK_3C
+      pinMode(pin_disp_en, INPUT_PULLUP);
+      digitalWrite(pin_disp_en, HIGH);
+      display.init(0, true, 10, false, SPI, SPISettings(4000000, MSBFIRST, SPI_MODE0));
+      display.setPartialWindow(0, 0, DISP_W, DISP_H);
+
+      // Because refreshing this display can take some time, sometimes serial
+      // commands will be missed. Therefore, during periods where the device is
+      // waiting for the display to update, it will poll the serial buffer to
+      // check for any commands from the host.
+      display.epd2.setBusyCallback(busyCallback);
+      #endif
     #endif
 
     #if DISP_CUSTOM_ADDR == true
@@ -144,11 +236,18 @@ bool display_init() {
       uint8_t display_address = DISP_ADDR;
     #endif
 
-    
+
+    #if DISPLAY == OLED
     if(!display.begin(SSD1306_SWITCHCAPVCC, display_address)) {
+    #elif DISPLAY == EINK_BW || DISPLAY == EINK_3C
+    // don't check if display is actually connected
+    if(false) {
+    #endif
       return false;
     } else {
-      set_contrast(&display, display_contrast);
+      #if DISPLAY == OLED
+        set_contrast(&display, display_contrast);
+      #endif
       #if BOARD_MODEL == BOARD_RNODE_NG_20
         disp_mode = DISP_MODE_PORTRAIT;
         display.setRotation(3);
@@ -170,6 +269,11 @@ bool display_init() {
       #elif BOARD_MODEL == BOARD_HELTEC32_V2
         disp_mode = DISP_MODE_PORTRAIT;
         display.setRotation(1);
+      #elif BOARD_MODEL == BOARD_RAK4631
+        #if DISPLAY == OLED
+        #elif DISPLAY == EINK_BW || DISPLAY == EINK_3C
+        disp_mode = DISP_MODE_PORTRAIT;
+        #endif
       #elif BOARD_MODEL == BOARD_HELTEC32_V3
         disp_mode = DISP_MODE_PORTRAIT;
         // Antenna conx up
@@ -193,9 +297,9 @@ bool display_init() {
       display.cp437(true);
 
       #if HAS_EEPROM
-      uint8_t display_intensity = EEPROM.read(eeprom_addr(ADDR_CONF_DINT));
+      display_intensity = EEPROM.read(eeprom_addr(ADDR_CONF_DINT));
       #elif MCU_VARIANT == MCU_NRF52
-      uint8_t display_intensity = eeprom_read(eeprom_addr(ADDR_CONF_DINT));
+      display_intensity = eeprom_read(eeprom_addr(ADDR_CONF_DINT));
       #endif
 
       return true;
@@ -207,39 +311,83 @@ bool display_init() {
 
 void draw_cable_icon(int px, int py) {
   if (cable_state == CABLE_STATE_DISCONNECTED) {
-    stat_area.drawBitmap(px, py, bm_cable+0*32, 16, 16, SSD1306_WHITE, SSD1306_BLACK);
+    #if DISPLAY == OLED
+        stat_area.drawBitmap(px, py, bm_cable+0*32, 16, 16, SSD1306_WHITE, SSD1306_BLACK);
+    #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+        stat_area.drawBitmap(px, py, bm_cable+0*128, 30, 32, GxEPD_WHITE, GxEPD_BLACK);
+    #endif
   } else if (cable_state == CABLE_STATE_CONNECTED) {
-    stat_area.drawBitmap(px, py, bm_cable+1*32, 16, 16, SSD1306_WHITE, SSD1306_BLACK);
+    #if DISPLAY == OLED
+        stat_area.drawBitmap(px, py, bm_cable+1*32, 16, 16, SSD1306_WHITE, SSD1306_BLACK);
+    #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+        stat_area.drawBitmap(px, py, bm_cable+1*128, 30, 32, GxEPD_WHITE, GxEPD_BLACK);
+    #endif
   }
 }
 
 void draw_bt_icon(int px, int py) {
   if (bt_state == BT_STATE_OFF) {
-    stat_area.drawBitmap(px, py, bm_bt+0*32, 16, 16, SSD1306_WHITE, SSD1306_BLACK);
+    #if DISPLAY == OLED
+        stat_area.drawBitmap(px, py, bm_bt+0*32, 16, 16, SSD1306_WHITE, SSD1306_BLACK);
+    #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+        stat_area.drawBitmap(px, py, bm_bt+0*128, 30, 32, GxEPD_WHITE, GxEPD_BLACK);
+    #endif
   } else if (bt_state == BT_STATE_ON) {
-    stat_area.drawBitmap(px, py, bm_bt+1*32, 16, 16, SSD1306_WHITE, SSD1306_BLACK);
+    #if DISPLAY == OLED
+        stat_area.drawBitmap(px, py, bm_bt+1*32, 16, 16, SSD1306_WHITE, SSD1306_BLACK);
+    #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+        stat_area.drawBitmap(px, py, bm_bt+1*128, 30, 32, GxEPD_WHITE, GxEPD_BLACK);
+    #endif
   } else if (bt_state == BT_STATE_PAIRING) {
-    stat_area.drawBitmap(px, py, bm_bt+2*32, 16, 16, SSD1306_WHITE, SSD1306_BLACK);
+    #if DISPLAY == OLED
+        stat_area.drawBitmap(px, py, bm_bt+2*32, 16, 16, SSD1306_WHITE, SSD1306_BLACK);
+    #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+        stat_area.drawBitmap(px, py, bm_bt+2*128, 30, 32, GxEPD_WHITE, GxEPD_BLACK);
+    #endif
   } else if (bt_state == BT_STATE_CONNECTED) {
-    stat_area.drawBitmap(px, py, bm_bt+3*32, 16, 16, SSD1306_WHITE, SSD1306_BLACK);
+    #if DISPLAY == OLED
+        stat_area.drawBitmap(px, py, bm_bt+3*32, 16, 16, SSD1306_WHITE, SSD1306_BLACK);
+    #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+        stat_area.drawBitmap(px, py, bm_bt+3*128, 30, 32, GxEPD_WHITE, GxEPD_BLACK);
+    #endif
   } else {
-    stat_area.drawBitmap(px, py, bm_bt+0*32, 16, 16, SSD1306_WHITE, SSD1306_BLACK);
+    #if DISPLAY == OLED
+        stat_area.drawBitmap(px, py, bm_bt+0*32, 16, 16, SSD1306_WHITE, SSD1306_BLACK);
+    #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+        stat_area.drawBitmap(px, py, bm_bt+0*128, 30, 32, GxEPD_WHITE, GxEPD_BLACK);
+    #endif
   }
 }
 
 void draw_lora_icon(int px, int py) {
   if (radio_online) {
-    stat_area.drawBitmap(px, py, bm_rf+1*32, 16, 16, SSD1306_WHITE, SSD1306_BLACK);
+    #if DISPLAY == OLED
+        stat_area.drawBitmap(px, py, bm_rf+1*32, 16, 16, SSD1306_WHITE, SSD1306_BLACK);
+    #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+        stat_area.drawBitmap(px, py, bm_rf+1*128, 30, 32, GxEPD_WHITE, GxEPD_BLACK);
+    #endif
   } else {
-    stat_area.drawBitmap(px, py, bm_rf+0*32, 16, 16, SSD1306_WHITE, SSD1306_BLACK);
+    #if DISPLAY == OLED
+        stat_area.drawBitmap(px, py, bm_rf+0*32, 16, 16, SSD1306_WHITE, SSD1306_BLACK);
+    #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+        stat_area.drawBitmap(px, py, bm_rf+0*128, 30, 32, GxEPD_WHITE, GxEPD_BLACK);
+    #endif
   }
 }
 
 void draw_mw_icon(int px, int py) {
   if (mw_radio_online) {
-    stat_area.drawBitmap(px, py, bm_rf+3*32, 16, 16, SSD1306_WHITE, SSD1306_BLACK);
+    #if DISPLAY == OLED
+        stat_area.drawBitmap(px, py, bm_rf+3*32, 16, 16, SSD1306_WHITE, SSD1306_BLACK);
+    #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+        stat_area.drawBitmap(px, py, bm_rf+3*128, 30, 32, GxEPD_WHITE, GxEPD_BLACK);
+    #endif
   } else {
-    stat_area.drawBitmap(px, py, bm_rf+2*32, 16, 16, SSD1306_WHITE, SSD1306_BLACK);
+    #if DISPLAY == OLED
+        stat_area.drawBitmap(px, py, bm_rf+2*32, 16, 16, SSD1306_WHITE, SSD1306_BLACK);
+    #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+        stat_area.drawBitmap(px, py, bm_rf+2*128, 30, 32, GxEPD_WHITE, GxEPD_BLACK);
+    #endif
   }
 }
 
@@ -257,34 +405,71 @@ void draw_battery_bars(int px, int py) {
         }
 
         if (battery_indeterminate && battery_state == BATTERY_STATE_CHARGING) {
-          stat_area.fillRect(px-2, py-2, 18, 7, SSD1306_BLACK);
-          stat_area.drawBitmap(px-2, py-2, bm_plug, 17, 7, SSD1306_WHITE, SSD1306_BLACK);
+          #if DISPLAY == OLED
+              stat_area.fillRect(px-2, py-2, 18, 7, SSD1306_BLACK);
+              stat_area.drawBitmap(px-2, py-2, bm_plug, 17, 7, SSD1306_WHITE, SSD1306_BLACK);
+          #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+              stat_area.fillRect(px-2, py-2, 24, 9, GxEPD_BLACK);
+              stat_area.drawBitmap(px-2, py-5, bm_plug, 34, 13, GxEPD_WHITE, GxEPD_BLACK);
+          #endif
         } else {
           if (battery_state == BATTERY_STATE_CHARGED) {
-            stat_area.fillRect(px-2, py-2, 18, 7, SSD1306_BLACK);
-            stat_area.drawBitmap(px-2, py-2, bm_plug, 17, 7, SSD1306_WHITE, SSD1306_BLACK);
+            #if DISPLAY == OLED
+                stat_area.fillRect(px-2, py-2, 18, 7, SSD1306_BLACK);
+                stat_area.drawBitmap(px-2, py-2, bm_plug, 17, 7, SSD1306_WHITE, SSD1306_BLACK);
+            #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+                stat_area.fillRect(px-2, py-2, 24, 9, GxEPD_BLACK);
+                stat_area.drawBitmap(px-2, py-5, bm_plug, 34, 13, GxEPD_WHITE, GxEPD_BLACK);
+            #endif
           } else {
-            // stat_area.fillRect(px, py, 14, 3, SSD1306_BLACK);
-            stat_area.fillRect(px-2, py-2, 18, 7, SSD1306_BLACK);
-            stat_area.drawRect(px-2, py-2, 17, 7, SSD1306_WHITE);
-            stat_area.drawLine(px+15, py, px+15, py+3, SSD1306_WHITE);
-            if (battery_value > 7) stat_area.drawLine(px, py, px, py+2, SSD1306_WHITE);
-            if (battery_value > 20) stat_area.drawLine(px+1*2, py, px+1*2, py+2, SSD1306_WHITE);
-            if (battery_value > 33) stat_area.drawLine(px+2*2, py, px+2*2, py+2, SSD1306_WHITE);
-            if (battery_value > 46) stat_area.drawLine(px+3*2, py, px+3*2, py+2, SSD1306_WHITE);
-            if (battery_value > 59) stat_area.drawLine(px+4*2, py, px+4*2, py+2, SSD1306_WHITE);
-            if (battery_value > 72) stat_area.drawLine(px+5*2, py, px+5*2, py+2, SSD1306_WHITE);
-            if (battery_value > 85) stat_area.drawLine(px+6*2, py, px+6*2, py+2, SSD1306_WHITE);
+            #if DISPLAY == OLED
+                stat_area.fillRect(px, py, 14, 3, SSD1306_BLACK);
+                stat_area.fillRect(px-2, py-2, 18, 7, SSD1306_BLACK);
+                stat_area.drawRect(px-2, py-2, 17, 7, SSD1306_WHITE);
+                stat_area.drawLine(px+15, py, px+15, py+3, SSD1306_WHITE);
+                if (battery_value > 7) stat_area.drawLine(px, py, px, py+2, SSD1306_WHITE);
+                if (battery_value > 20) stat_area.drawLine(px+1*2, py, px+1*2, py+2, SSD1306_WHITE);
+                if (battery_value > 33) stat_area.drawLine(px+2*2, py, px+2*2, py+2, SSD1306_WHITE);
+                if (battery_value > 46) stat_area.drawLine(px+3*2, py, px+3*2, py+2, SSD1306_WHITE);
+                if (battery_value > 59) stat_area.drawLine(px+4*2, py, px+4*2, py+2, SSD1306_WHITE);
+                if (battery_value > 72) stat_area.drawLine(px+5*2, py, px+5*2, py+2, SSD1306_WHITE);
+                if (battery_value > 85) stat_area.drawLine(px+6*2, py, px+6*2, py+2, SSD1306_WHITE);
+            #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+                stat_area.fillRect(px, py, 20, 5, GxEPD_BLACK);
+                stat_area.fillRect(px-2, py-4, 34, 19, GxEPD_BLACK);
+                stat_area.drawRect(px-2, py-2, 23, 9, GxEPD_WHITE);
+                stat_area.drawLine(px+21, py, px+21, py+5, GxEPD_WHITE);
+                if (battery_value > 0) stat_area.drawLine(px, py, px, py+4, GxEPD_WHITE);
+                if (battery_value >= 10) stat_area.drawLine(px+1*2, py, px+1*2, py+4, GxEPD_WHITE);
+                if (battery_value >= 20) stat_area.drawLine(px+2*2, py, px+2*2, py+4, GxEPD_WHITE);
+                if (battery_value >= 30) stat_area.drawLine(px+3*2, py, px+3*2, py+4, GxEPD_WHITE);
+                if (battery_value >= 40) stat_area.drawLine(px+4*2, py, px+4*2, py+4, GxEPD_WHITE);
+                if (battery_value >= 50) stat_area.drawLine(px+5*2, py, px+5*2, py+4, GxEPD_WHITE);
+                if (battery_value >= 60) stat_area.drawLine(px+6*2, py, px+6*2, py+4, GxEPD_WHITE);
+                if (battery_value >= 70) stat_area.drawLine(px+7*2, py, px+7*2, py+4, GxEPD_WHITE);
+                if (battery_value >= 80) stat_area.drawLine(px+8*2, py, px+8*2, py+4, GxEPD_WHITE);
+                if (battery_value >= 90) stat_area.drawLine(px+9*2, py, px+9*2, py+4, GxEPD_WHITE);
+            #endif
           }
         }
       } else {
+        #if DISPLAY == OLED
         stat_area.fillRect(px-2, py-2, 18, 7, SSD1306_BLACK);
         stat_area.drawBitmap(px-2, py-2, bm_plug, 17, 7, SSD1306_WHITE, SSD1306_BLACK);
+        #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+        stat_area.fillRect(px-2, py-2, 24, 9, GxEPD_BLACK);
+        stat_area.drawBitmap(px-2, py-5, bm_plug, 34, 13, GxEPD_WHITE, GxEPD_BLACK);
+        #endif
       }
     }
   } else {
+    #if DISPLAY == OLED
     stat_area.fillRect(px-2, py-2, 18, 7, SSD1306_BLACK);
     stat_area.drawBitmap(px-2, py-2, bm_plug, 17, 7, SSD1306_WHITE, SSD1306_BLACK);
+    #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+    stat_area.fillRect(px-2, py-2, 24, 9, GxEPD_BLACK);
+    stat_area.drawBitmap(px-2, py-5, bm_plug, 34, 13, GxEPD_WHITE, GxEPD_BLACK);
+    #endif
   }
 }
 
@@ -301,8 +486,8 @@ void draw_quality_bars(int px, int py) {
   if (quality > 100.0) quality = 100.0;
   if (quality < 0.0) quality = 0.0;
 
+  #if DISPLAY == OLED
   stat_area.fillRect(px, py, 13, 7, SSD1306_BLACK);
-  // Serial.printf("Last SNR: %.2f\n, quality: %.2f\n", snr, quality);
   if (quality > 0)  stat_area.drawLine(px+0*2, py+7, px+0*2, py+6, SSD1306_WHITE);
   if (quality > 15) stat_area.drawLine(px+1*2, py+7, px+1*2, py+5, SSD1306_WHITE);
   if (quality > 30) stat_area.drawLine(px+2*2, py+7, px+2*2, py+4, SSD1306_WHITE);
@@ -310,6 +495,38 @@ void draw_quality_bars(int px, int py) {
   if (quality > 60) stat_area.drawLine(px+4*2, py+7, px+4*2, py+2, SSD1306_WHITE);
   if (quality > 75) stat_area.drawLine(px+5*2, py+7, px+5*2, py+1, SSD1306_WHITE);
   if (quality > 90) stat_area.drawLine(px+6*2, py+7, px+6*2, py+0, SSD1306_WHITE);
+  #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+  stat_area.fillRect(px, py, 26, 14, GxEPD_BLACK);
+  if (quality > 0) {
+      stat_area.drawLine(px+0*4, py+14, px+0*4, py+6, GxEPD_WHITE);
+      stat_area.drawLine(px+0*4+1, py+14, px+0*4+1, py+6, GxEPD_WHITE);
+  }
+  if (quality > 15) {
+      stat_area.drawLine(px+1*4, py+14, px+1*4, py+5, GxEPD_WHITE);
+      stat_area.drawLine(px+1*4+1, py+14, px+1*4+1, py+5, GxEPD_WHITE);
+  }
+  if (quality > 30) {
+      stat_area.drawLine(px+2*4, py+14, px+2*4, py+4, GxEPD_WHITE);
+      stat_area.drawLine(px+2*4+1, py+14, px+2*4+1, py+4, GxEPD_WHITE);
+  }
+  if (quality > 45) {
+      stat_area.drawLine(px+3*4, py+14, px+3*4, py+3, GxEPD_WHITE);
+      stat_area.drawLine(px+3*4+1, py+14, px+3*4+1, py+3, GxEPD_WHITE);
+  }
+  if (quality > 60) {
+      stat_area.drawLine(px+4*4, py+14, px+4*4, py+2, GxEPD_WHITE);
+      stat_area.drawLine(px+4*4+1, py+14, px+4*4+1, py+2, GxEPD_WHITE);
+  }
+  if (quality > 75) {
+      stat_area.drawLine(px+5*4, py+14, px+5*4, py+1, GxEPD_WHITE);
+      stat_area.drawLine(px+5*4+1, py+14, px+5*4+1, py+1, GxEPD_WHITE);
+  }
+  if (quality > 90) {
+      stat_area.drawLine(px+6*4, py+14, px+6*4, py+0, GxEPD_WHITE);
+      stat_area.drawLine(px+6*4+1, py+14, px+6*4+1, py+0, GxEPD_WHITE);
+  }
+  #endif
+  // Serial.printf("Last SNR: %.2f\n, quality: %.2f\n", snr, quality);
 }
 
 #define S_RSSI_MIN -135.0
@@ -324,8 +541,8 @@ void draw_signal_bars(int px, int py) {
   if (signal > 100.0) signal = 100.0;
   if (signal < 0.0) signal = 0.0;
 
+  #if DISPLAY == OLED
   stat_area.fillRect(px, py, 13, 7, SSD1306_BLACK);
-  // Serial.printf("Last SNR: %.2f\n, quality: %.2f\n", snr, quality);
   if (signal > 85) stat_area.drawLine(px+0*2, py+7, px+0*2, py+0, SSD1306_WHITE);
   if (signal > 72) stat_area.drawLine(px+1*2, py+7, px+1*2, py+1, SSD1306_WHITE);
   if (signal > 59) stat_area.drawLine(px+2*2, py+7, px+2*2, py+2, SSD1306_WHITE);
@@ -333,12 +550,48 @@ void draw_signal_bars(int px, int py) {
   if (signal > 33) stat_area.drawLine(px+4*2, py+7, px+4*2, py+4, SSD1306_WHITE);
   if (signal > 20) stat_area.drawLine(px+5*2, py+7, px+5*2, py+5, SSD1306_WHITE);
   if (signal > 7)  stat_area.drawLine(px+6*2, py+7, px+6*2, py+6, SSD1306_WHITE);
+  #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+  stat_area.fillRect(px, py, 26, 14, GxEPD_BLACK);
+  if (signal > 85) {
+      stat_area.drawLine(px+0*4, py+14, px+0*4, py+0, GxEPD_WHITE);
+      stat_area.drawLine(px+0*4+1, py+14, px+0*4+1, py+0, GxEPD_WHITE);
+  }
+  if (signal > 72) {
+      stat_area.drawLine(px+1*4, py+14, px+1*4, py+1, GxEPD_WHITE);
+      stat_area.drawLine(px+1*4+1, py+14, px+1*4+1, py+1, GxEPD_WHITE);
+  }
+  if (signal > 59) {
+      stat_area.drawLine(px+2*4, py+14, px+2*4, py+2, GxEPD_WHITE);
+      stat_area.drawLine(px+2*4+1, py+14, px+2*4+1, py+2, GxEPD_WHITE);
+  }
+  if (signal > 46) {
+      stat_area.drawLine(px+3*4, py+14, px+3*4, py+3, GxEPD_WHITE);
+      stat_area.drawLine(px+3*4+1, py+14, px+3*4+1, py+3, GxEPD_WHITE);
+  }
+  if (signal > 33) {
+      stat_area.drawLine(px+4*4, py+14, px+4*4, py+4, GxEPD_WHITE);
+      stat_area.drawLine(px+4*4+1, py+14, px+4*4+1, py+4, GxEPD_WHITE);
+  }
+  if (signal > 20) {
+      stat_area.drawLine(px+5*4, py+14, px+5*4, py+5, GxEPD_WHITE);
+      stat_area.drawLine(px+5*4+1, py+14, px+5*4+1, py+5, GxEPD_WHITE);
+  }
+  if (signal > 7)  {
+      stat_area.drawLine(px+6*4, py+14, px+6*4, py+6, GxEPD_WHITE);
+      stat_area.drawLine(px+6*4+1, py+14, px+6*4+1, py+6, GxEPD_WHITE);
+  }
+  #endif
+  // Serial.printf("Last SNR: %.2f\n, quality: %.2f\n", snr, quality);
 }
 
 #define WF_RSSI_MAX -60
 #define WF_RSSI_MIN -135
 #define WF_RSSI_SPAN (WF_RSSI_MAX-WF_RSSI_MIN)
+#if DISPLAY == OLED
 #define WF_PIXEL_WIDTH 10
+#elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+#define WF_PIXEL_WIDTH 22
+#endif
 void draw_waterfall(int px, int py) {
   int rssi_val = current_rssi;
   if (rssi_val < WF_RSSI_MIN) rssi_val = WF_RSSI_MIN;
@@ -348,55 +601,101 @@ void draw_waterfall(int px, int py) {
   waterfall[waterfall_head++] = rssi_normalised;
   if (waterfall_head >= WATERFALL_SIZE) waterfall_head = 0;
 
+  #if DISPLAY == OLED
   stat_area.fillRect(px,py,WF_PIXEL_WIDTH, WATERFALL_SIZE, SSD1306_BLACK);
+  #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+  stat_area.fillRect(px,py,WF_PIXEL_WIDTH, WATERFALL_SIZE, GxEPD_BLACK);
+  #endif
   for (int i = 0; i < WATERFALL_SIZE; i++){
     int wi = (waterfall_head+i)%WATERFALL_SIZE;
     int ws = waterfall[wi];
     if (ws > 0) {
-      stat_area.drawLine(px, py+i, px+ws-1, py+i, SSD1306_WHITE);
+      #if DISPLAY == OLED
+        stat_area.drawLine(px, py+i, px+ws-1, py+i, SSD1306_WHITE);
+      #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+        stat_area.drawLine(px, py+i, px+ws-1, py+i, GxEPD_WHITE);
+      #endif
     }
   }
 }
 
-bool stat_area_intialised = false;
+bool stat_area_initialised = false;
 void draw_stat_area() {
   if (device_init_done) {
-    if (!stat_area_intialised) {
-      stat_area.drawBitmap(0, 0, bm_frame, 64, 64, SSD1306_WHITE, SSD1306_BLACK);
-      stat_area_intialised = true;
+    if (!stat_area_initialised) {
+      #if DISPLAY == OLED
+        stat_area.drawBitmap(0, 0, bm_frame, 64, 64, SSD1306_WHITE, SSD1306_BLACK);
+      #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+        stat_area.drawBitmap(0, 0, bm_frame, stat_area.width(), stat_area.height(), GxEPD_WHITE, GxEPD_BLACK);
+      #endif
+      stat_area_initialised = true;
     }
 
+    #if DISPLAY == OLED
     draw_cable_icon(3, 8);
     draw_bt_icon(3, 30);
     draw_lora_icon(45, 8);
     draw_mw_icon(45, 30);
     draw_battery_bars(4, 58);
+    #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+    draw_cable_icon(6, 18);
+    draw_bt_icon(6, 60);
+    draw_lora_icon(86, 18);
+    draw_mw_icon(86, 60);
+    draw_battery_bars(8, 113);
+    #endif
     if (radio_online) {
+      #if DISPLAY == OLED
       draw_quality_bars(28, 56);
       draw_signal_bars(44, 56);
       draw_waterfall(27, 4);
+      #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+      draw_quality_bars(53, 109);
+      draw_signal_bars(83, 109);
+      draw_waterfall(50, 8);
+      #endif
     }
   }
 }
 
 void update_stat_area() {
   if (eeprom_ok && !firmware_update_mode && !console_active) {
-    
     draw_stat_area();
     if (disp_mode == DISP_MODE_PORTRAIT) {
+      #if DISPLAY == OLED
       display.drawBitmap(p_as_x, p_as_y, stat_area.getBuffer(), stat_area.width(), stat_area.height(), SSD1306_WHITE, SSD1306_BLACK);
+      #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+      display.drawBitmap(p_as_x, p_as_y, stat_area.getBuffer(), stat_area.width(), stat_area.height(), GxEPD_WHITE, GxEPD_BLACK);
+      #endif
     } else if (disp_mode == DISP_MODE_LANDSCAPE) {
+      #if DISPLAY == OLED
       display.drawBitmap(p_as_x+2, p_as_y, stat_area.getBuffer(), stat_area.width(), stat_area.height(), SSD1306_WHITE, SSD1306_BLACK);
       if (device_init_done && !disp_ext_fb) display.drawLine(p_as_x, 0, p_as_x, 64, SSD1306_WHITE);
+      #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+      display.drawBitmap(p_as_x+2, p_as_y, stat_area.getBuffer(), stat_area.width(), stat_area.height(), GxEPD_WHITE, GxEPD_BLACK);
+      if (device_init_done && !disp_ext_fb) display.drawLine(p_as_x, 0, p_as_x, DISP_W/2, GxEPD_WHITE);
+      #endif
     }
 
   } else {
     if (firmware_update_mode) {
+      #if DISPLAY == OLED
       display.drawBitmap(p_as_x, p_as_y, bm_updating, stat_area.width(), stat_area.height(), SSD1306_BLACK, SSD1306_WHITE);
+      #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+      display.drawBitmap(p_as_x, p_as_y, bm_updating, stat_area.width(), stat_area.height(), GxEPD_BLACK, GxEPD_WHITE);
+      #endif
     } else if (console_active && device_init_done) {
+      #if DISPLAY == OLED
       display.drawBitmap(p_as_x, p_as_y, bm_console, stat_area.width(), stat_area.height(), SSD1306_BLACK, SSD1306_WHITE);
+      #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+      display.drawBitmap(p_as_x, p_as_y, bm_console, stat_area.width(), stat_area.height(), GxEPD_BLACK, GxEPD_WHITE);
+      #endif
       if (disp_mode == DISP_MODE_LANDSCAPE) {
+        #if DISPLAY == OLED
         display.drawLine(p_as_x, 0, p_as_x, 64, SSD1306_WHITE);
+        #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+        display.drawLine(p_as_x, 0, p_as_x, DISP_W/2, GxEPD_WHITE);
+        #endif
       }
     }
   }
@@ -410,101 +709,189 @@ void draw_disp_area() {
     uint8_t p_by = 37;
     if (disp_mode == DISP_MODE_LANDSCAPE || firmware_update_mode) {
       p_by = 18;
-      disp_area.fillRect(0, 0, disp_area.width(), disp_area.height(), SSD1306_BLACK);
+      #if DISPLAY == OLED
+        disp_area.fillRect(0, 0, disp_area.width(), disp_area.height(), SSD1306_BLACK);
+      #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+        disp_area.fillRect(0, 0, disp_area.width(), disp_area.height(), GxEPD_BLACK);
+      #endif
     }
-    if (!device_init_done) disp_area.drawBitmap(0, p_by, bm_boot, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
-    if (firmware_update_mode) disp_area.drawBitmap(0, p_by, bm_fw_update, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+    #if DISPLAY == OLED
+      if (!device_init_done) disp_area.drawBitmap(0, p_by, bm_boot, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+      if (firmware_update_mode) disp_area.drawBitmap(0, p_by, bm_fw_update, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+    #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+      if (!device_init_done) disp_area.drawBitmap(0, p_by, bm_boot, disp_area.width(), 54, GxEPD_WHITE);
+      if (firmware_update_mode) disp_area.drawBitmap(0, p_by, bm_fw_update, disp_area.width(), 54, GxEPD_WHITE, GxEPD_BLACK);
+    #endif
   } else {
     if (!disp_ext_fb or bt_ssp_pin != 0) {
       if (radio_online && display_diagnostics) {
-        disp_area.fillRect(0,8,disp_area.width(),37, SSD1306_BLACK); disp_area.fillRect(0,37,disp_area.width(),27, SSD1306_WHITE);
-        disp_area.setFont(SMALL_FONT); disp_area.setTextWrap(false); disp_area.setTextColor(SSD1306_WHITE);
-
-        disp_area.setCursor(2, 13);
-        disp_area.print("On");
-        disp_area.setCursor(14, 13);
-        disp_area.print("@");
-        disp_area.setCursor(21, 13);
-        disp_area.printf("%.1fKbps", (float)lora_bitrate/1000.0);
-
-        //disp_area.setCursor(31, 23-1);
-        disp_area.setCursor(2, 23-1);
-        disp_area.print("Airtime:");
+        #if DISPLAY == OLED
+          disp_area.fillRect(0,8,disp_area.width(),37, SSD1306_BLACK); disp_area.fillRect(0,37,disp_area.width(),27, SSD1306_WHITE);
+          disp_area.setFont(SMALL_FONT); disp_area.setTextWrap(false); disp_area.setTextColor(SSD1306_WHITE);
+
+          disp_area.setCursor(2, 13);
+          disp_area.print("On");
+          disp_area.setCursor(14, 13);
+          disp_area.print("@");
+          disp_area.setCursor(21, 13);
+          disp_area.printf("%.1fKbps", (float)lora_bitrate/1000.0);
+
+          disp_area.setCursor(2, 23-1);
+          disp_area.print("Airtime:");
+
+          disp_area.setCursor(11, 33-1);
+          if (total_channel_util < 0.099) {
+            disp_area.printf("%.1f%%", airtime*100.0);
+          } else {
+            disp_area.printf("%.0f%%", airtime*100.0);
+          }
+
+          disp_area.drawBitmap(2, 26-1, bm_hg_low, 5, 9, SSD1306_WHITE, SSD1306_BLACK);
+
+          disp_area.setCursor(32+11, 33-1);
+
+          if (longterm_channel_util < 0.099) {
+            disp_area.printf("%.1f%%", longterm_airtime*100.0);
+          } else {
+            disp_area.printf("%.0f%%", longterm_airtime*100.0);
+          }
+          disp_area.drawBitmap(32+2, 26-1, bm_hg_high, 5, 9, SSD1306_WHITE, SSD1306_BLACK);
+
+          disp_area.setTextColor(SSD1306_BLACK);
+
+          disp_area.setCursor(2, 46);
+          disp_area.print("Channel");
+          disp_area.setCursor(38, 46);
+          disp_area.print("Load:");
+
+          disp_area.setCursor(11, 57);
+          if (total_channel_util < 0.099) {
+            disp_area.printf("%.1f%%", total_channel_util*100.0);
+          } else {
+            disp_area.printf("%.0f%%", total_channel_util*100.0);
+          }
+          disp_area.drawBitmap(2, 50, bm_hg_low, 5, 9, SSD1306_BLACK, SSD1306_WHITE);
         
-        disp_area.setCursor(11, 33-1);
-        if (total_channel_util < 0.099) {
-          //disp_area.printf("%.1f%%", total_channel_util*100.0);
-          disp_area.printf("%.1f%%", airtime*100.0);
-        } else {
-          //disp_area.printf("%.0f%%", total_channel_util*100.0);
-          disp_area.printf("%.0f%%", airtime*100.0);
-        }
-        disp_area.drawBitmap(2, 26-1, bm_hg_low, 5, 9, SSD1306_WHITE, SSD1306_BLACK);
+          disp_area.setCursor(32+11, 57);
+          if (longterm_channel_util < 0.099) {
+            disp_area.printf("%.1f%%", longterm_channel_util*100.0);
+          } else {
+            disp_area.printf("%.0f%%", longterm_channel_util*100.0);
+          }
+          disp_area.drawBitmap(32+2, 50, bm_hg_high, 5, 9, SSD1306_BLACK, SSD1306_WHITE);
 
-        disp_area.setCursor(32+11, 33-1);
-        if (longterm_channel_util < 0.099) {
-          //disp_area.printf("%.1f%%", longterm_channel_util*100.0);
-          disp_area.printf("%.1f%%", longterm_airtime*100.0);
-        } else {
-          //disp_area.printf("%.0f%%", longterm_channel_util*100.0);
-          disp_area.printf("%.0f%%", longterm_airtime*100.0);
-        }
-        disp_area.drawBitmap(32+2, 26-1, bm_hg_high, 5, 9, SSD1306_WHITE, SSD1306_BLACK);
+        #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+          disp_area.fillRect(0,12,disp_area.width(),57, GxEPD_BLACK); disp_area.fillRect(0,69,disp_area.width(),56, GxEPD_WHITE);
+          disp_area.setFont(SMALL_FONT); disp_area.setTextWrap(false); disp_area.setTextColor(GxEPD_WHITE);
+          disp_area.setTextSize(2); // scale text 2x
+
+          disp_area.setCursor(2, 22);
+          disp_area.print("On");
+          disp_area.setCursor(14*2, 22);
+          disp_area.print("@");
+          disp_area.setCursor(21*2, 22);
+          disp_area.printf("%.1fKbps", (float)lora_bitrate/1000.0);
+
+          disp_area.setCursor(2, 36);
+          disp_area.print("Airtime:");
+
+          disp_area.setCursor(7+12, 53);
+          if (total_channel_util < 0.099) {
+            disp_area.printf("%.1f%%", airtime*100.0);
+          } else {
+            disp_area.printf("%.0f%%", airtime*100.0);
+          }
 
+          disp_area.drawBitmap(2, 41, bm_hg_low, 10, 18, GxEPD_WHITE, GxEPD_BLACK);
 
-        disp_area.setTextColor(SSD1306_BLACK);
-        disp_area.setCursor(2, 46);
-        disp_area.print("Channel");
-        disp_area.setCursor(38, 46);
-        disp_area.print("Load:");
+          disp_area.setCursor(64+17, 53);
+          if (longterm_channel_util < 0.099) {
+            disp_area.printf("%.1f%%", longterm_airtime*100.0);
+          } else {
+            disp_area.printf("%.0f%%", longterm_airtime*100.0);
+          }
+          disp_area.drawBitmap(64, 41, bm_hg_high, 10, 18, GxEPD_WHITE, GxEPD_BLACK);
+
+          disp_area.setTextColor(GxEPD_BLACK);
+
+          disp_area.setCursor(2, 88);
+          disp_area.print("Channel");
+          disp_area.setCursor(38*2, 88);
+          disp_area.print("Load:");
         
-        disp_area.setCursor(11, 57);
-        if (total_channel_util < 0.099) {
-          //disp_area.printf("%.1f%%", airtime*100.0);
-          disp_area.printf("%.1f%%", total_channel_util*100.0);
-        } else {
-          //disp_area.printf("%.0f%%", airtime*100.0);
-          disp_area.printf("%.0f%%", total_channel_util*100.0);
-        }
-        disp_area.drawBitmap(2, 50, bm_hg_low, 5, 9, SSD1306_BLACK, SSD1306_WHITE);
+          disp_area.setCursor(7+12, 110);
+          if (total_channel_util < 0.099) {
+            disp_area.printf("%.1f%%", total_channel_util*100.0);
+          } else {
+            disp_area.printf("%.0f%%", total_channel_util*100.0);
+          }
+          disp_area.drawBitmap(2, 98, bm_hg_low, 10, 18, GxEPD_BLACK, GxEPD_WHITE);
 
-        disp_area.setCursor(32+11, 57);
-        if (longterm_channel_util < 0.099) {
-          //disp_area.printf("%.1f%%", longterm_airtime*100.0);
-          disp_area.printf("%.1f%%", longterm_channel_util*100.0);
-        } else {
-          //disp_area.printf("%.0f%%", longterm_airtime*100.0);
-          disp_area.printf("%.0f%%", longterm_channel_util*100.0);
-        }
-        disp_area.drawBitmap(32+2, 50, bm_hg_high, 5, 9, SSD1306_BLACK, SSD1306_WHITE);
+          disp_area.setCursor(64+17, 110);
+          if (longterm_channel_util < 0.099) {
+            disp_area.printf("%.1f%%", longterm_channel_util*100.0);
+          } else {
+            disp_area.printf("%.0f%%", longterm_channel_util*100.0);
+          }
+          disp_area.drawBitmap(64, 98, bm_hg_high, 10, 18, GxEPD_BLACK, GxEPD_WHITE);
+        #endif
 
       } else {
         if (device_signatures_ok()) {
-          disp_area.drawBitmap(0, 0, bm_def_lc, disp_area.width(), 37, SSD1306_WHITE, SSD1306_BLACK);      
+          #if DISPLAY == OLED
+            disp_area.drawBitmap(0, 0, bm_def_lc, disp_area.width(), 37, SSD1306_WHITE, SSD1306_BLACK);
+          #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+            disp_area.drawBitmap(0, 0, bm_def_lc, disp_area.width(), 71, GxEPD_WHITE, GxEPD_BLACK);
+          #endif
         } else {
-          disp_area.drawBitmap(0, 0, bm_def, disp_area.width(), 37, SSD1306_WHITE, SSD1306_BLACK);      
+          #if DISPLAY == OLED
+            disp_area.drawBitmap(0, 0, bm_def, disp_area.width(), 37, SSD1306_WHITE, SSD1306_BLACK);
+          #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+            disp_area.drawBitmap(0, 0, bm_def, disp_area.width(), 71, GxEPD_WHITE, GxEPD_BLACK);
+          #endif
         }
       }
 
       if (!hw_ready || radio_error || !device_firmware_ok()) {
         if (!device_firmware_ok()) {
-          disp_area.drawBitmap(0, 37, bm_fw_corrupt, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+          #if DISPLAY == OLED
+            disp_area.drawBitmap(0, 37, bm_fw_corrupt, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+          #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+            disp_area.drawBitmap(0, 71, bm_fw_corrupt, disp_area.width(), 54, GxEPD_WHITE, GxEPD_BLACK);
+          #endif
         } else {
           if (!modem_installed) {
-            disp_area.drawBitmap(0, 37, bm_no_radio, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+            #if DISPLAY == OLED
+              disp_area.drawBitmap(0, 37, bm_no_radio, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+            #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+              disp_area.drawBitmap(0, 71, bm_no_radio, disp_area.width(), 54, GxEPD_WHITE, GxEPD_BLACK);
+            #endif
           } else {
-            disp_area.drawBitmap(0, 37, bm_hwfail, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+            #if DISPLAY == OLED
+              disp_area.drawBitmap(0, 37, bm_hwfail, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+            #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+              disp_area.drawBitmap(0, 71, bm_hwfail, disp_area.width(), 54, GxEPD_WHITE, GxEPD_BLACK);
+            #endif
           }
         }
       } else if (bt_state == BT_STATE_PAIRING and bt_ssp_pin != 0) {
         char *pin_str = (char*)malloc(DISP_PIN_SIZE+1);
         sprintf(pin_str, "%06d", bt_ssp_pin);
 
-        disp_area.drawBitmap(0, 37, bm_pairing, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+        #if DISPLAY == OLED
+          disp_area.drawBitmap(0, 37, bm_pairing, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+        #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+          disp_area.drawBitmap(0, 71, bm_pairing, disp_area.width(), 54, GxEPD_WHITE, GxEPD_BLACK);
+        #endif
         for (int i = 0; i < DISP_PIN_SIZE; i++) {
           uint8_t numeric = pin_str[i]-48;
-          uint8_t offset = numeric*5;
-          disp_area.drawBitmap(7+9*i, 37+16, bm_n_uh+offset, 8, 5, SSD1306_WHITE, SSD1306_BLACK);
+          #if DISPLAY == OLED
+            uint8_t offset = numeric*5;
+            disp_area.drawBitmap(7+9*i, 37+16, bm_n_uh+offset, 8, 5, SSD1306_WHITE, SSD1306_BLACK);
+          #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+            uint8_t offset = numeric*20;
+            disp_area.drawBitmap(14+17*i, 71+32, bm_n_uh+offset, 10, 10, GxEPD_WHITE, GxEPD_BLACK);
+          #endif
         }
         free(pin_str);
       } else {
@@ -516,64 +903,119 @@ void draw_disp_area() {
 
         if (radio_online) {
           if (!display_diagnostics) {
-            disp_area.drawBitmap(0, 37, bm_online, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+            #if DISPLAY == OLED
+              disp_area.drawBitmap(0, 37, bm_online, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+            #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+              disp_area.drawBitmap(0, 71, bm_online, disp_area.width(), 54, GxEPD_WHITE, GxEPD_BLACK);
+            #endif
           }
         } else {
           if (disp_page == 0) {
             if (true || device_signatures_ok()) {
-              disp_area.drawBitmap(0, 37, bm_checks, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+              #if DISPLAY == OLED
+                disp_area.drawBitmap(0, 37, bm_checks, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+              #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+                disp_area.drawBitmap(0, 71, bm_checks, disp_area.width(), 54, GxEPD_WHITE, GxEPD_BLACK);
+              #endif
             } else {
-              disp_area.drawBitmap(0, 37, bm_nfr, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+              #if DISPLAY == OLED
+                disp_area.drawBitmap(0, 37, bm_nfr, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+              #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+                disp_area.drawBitmap(0, 71, bm_nfr, disp_area.width(), 54, GxEPD_WHITE, GxEPD_BLACK);
+              #endif
             }
           } else if (disp_page == 1) {
             if (!console_active) {
-              disp_area.drawBitmap(0, 37, bm_hwok, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+              #if DISPLAY == OLED
+                disp_area.drawBitmap(0, 37, bm_hwok, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+              #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+                disp_area.drawBitmap(0, 71, bm_hwok, disp_area.width(), 54, GxEPD_WHITE, GxEPD_BLACK);
+              #endif
             } else {
-              disp_area.drawBitmap(0, 37, bm_console_active, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+              #if DISPLAY == OLED
+                disp_area.drawBitmap(0, 37, bm_console_active, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+              #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+                disp_area.drawBitmap(0, 71, bm_console_active, disp_area.width(), 54, GxEPD_WHITE, GxEPD_BLACK);
+              #endif
             }
           } else if (disp_page == 2) {
-            disp_area.drawBitmap(0, 37, bm_version, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+            #if DISPLAY == OLED
+              disp_area.drawBitmap(0, 37, bm_version, disp_area.width(), 27, SSD1306_WHITE, SSD1306_BLACK);
+            #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+              disp_area.drawBitmap(0, 71, bm_version, disp_area.width(), 54, GxEPD_WHITE, GxEPD_BLACK);
+            #endif
             char *v_str = (char*)malloc(3+1);
             sprintf(v_str, "%01d%02d", MAJ_VERS, MIN_VERS);
             for (int i = 0; i < 3; i++) {
-              uint8_t numeric = v_str[i]-48; uint8_t bm_offset = numeric*5;
+              #if DISPLAY == OLED
               uint8_t dxp = 20;
-              if (i == 1) dxp += 9*1+4;
+              uint8_t numeric = v_str[i]-48; uint8_t bm_offset = numeric*5;
               if (i == 2) dxp += 9*2+4;
-              disp_area.drawBitmap(dxp, 37+16, bm_n_uh+bm_offset, 8, 5, SSD1306_WHITE, SSD1306_BLACK);
+              #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+              uint8_t dxp = 43;
+              uint8_t numeric = v_str[i]-48; uint8_t bm_offset = numeric*20;
+              if (i == 2) dxp += 9*2+6;
+              #endif
+              if (i == 1) dxp += 9*1+4;
+              #if DISPLAY == OLED
+               disp_area.drawBitmap(dxp, 37+16, bm_n_uh+bm_offset, 8, 5, SSD1306_WHITE, SSD1306_BLACK);
+              #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+              // add gap manually rather than oversizing bitmap, as the gfx lib fills in the extra space with black
+              disp_area.drawBitmap(dxp, 71+32, bm_n_uh+bm_offset, 10, 10, GxEPD_WHITE, GxEPD_BLACK);
+              #endif
             }
             free(v_str);
+            #if DISPLAY == OLED
             disp_area.drawLine(27, 37+19, 28, 37+19, SSD1306_BLACK);
-            disp_area.drawLine(27, 37+20, 28, 37+20, SSD1306_BLACK);
+            disp_area.drawLine(27, 37+19, 28, 37+19, SSD1306_BLACK);
+            #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+            disp_area.drawLine(27, 37+20, 28, 37+20, GxEPD_BLACK);
+            disp_area.drawLine(27, 37+20, 28, 37+20, GxEPD_BLACK);
+            #endif
           }
         }
       }
     } else {
-      disp_area.drawBitmap(0, 0, fb, disp_area.width(), disp_area.height(), SSD1306_WHITE, SSD1306_BLACK);
+      #if DISPLAY == OLED
+        disp_area.drawBitmap(0, 0, fb, disp_area.width(), disp_area.height(), SSD1306_WHITE, SSD1306_BLACK);
+      #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+        disp_area.drawBitmap(0, 0, fb, disp_area.width(), disp_area.height(), GxEPD_WHITE, GxEPD_BLACK);
+      #endif
     }
   }
 }
 
 void update_disp_area() {
   draw_disp_area();
-  display.drawBitmap(p_ad_x, p_ad_y, disp_area.getBuffer(), disp_area.width(), disp_area.height(), SSD1306_WHITE, SSD1306_BLACK);
+  #if DISPLAY == OLED
+    display.drawBitmap(p_ad_x, p_ad_y, disp_area.getBuffer(), disp_area.width(), disp_area.height(), SSD1306_WHITE, SSD1306_BLACK);
+  #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+    display.drawBitmap(p_ad_x, p_ad_y, disp_area.getBuffer(), disp_area.width(), disp_area.height(), GxEPD_WHITE, GxEPD_BLACK);
+  #endif
   if (disp_mode == DISP_MODE_LANDSCAPE) {
     if (device_init_done && !firmware_update_mode && !disp_ext_fb) {
+      #if DISPLAY == OLED
       display.drawLine(0, 0, 0, 63, SSD1306_WHITE);
+      #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+      display.drawLine(0, 0, 0, 63, GxEPD_WHITE);
+      #endif
     }
   }
 }
 
 void update_display(bool blank = false) {
   if (blank) {
+    #if DISPLAY == OLED
     if (display_contrast != display_intensity) {
       display_contrast = display_intensity;
       set_contrast(&display, display_contrast);
     }
     display.clearDisplay();
+    #endif
     display.display();    
   } else {
     if (millis()-last_disp_update >= disp_update_interval) {
+      #if DISPLAY == OLED
       if (display_contrast != display_intensity) {
         display_contrast = display_intensity;
         set_contrast(&display, display_contrast);
@@ -582,6 +1024,13 @@ void update_display(bool blank = false) {
       update_stat_area();
       update_disp_area();
       display.display();
+      #elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
+      display.setFullWindow();
+      display.fillScreen(GxEPD_WHITE);
+      update_stat_area();
+      update_disp_area();
+      display.display(true);
+      #endif
       last_disp_update = millis();
     }
   }
index 3f1daf591c116816cf1c572fa52b1d7e0bbb9ed2..7e92bd663ff10586652328602dd8261bf51a8def 100644 (file)
@@ -13,6 +13,9 @@
 // You should have received a copy of the GNU General Public License
 // along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
+#if DISP_H == UNSCALED_MAX
+// use 64px wide graphics
+
 const unsigned char bm_cable [] PROGMEM = {
    0x00, 0x00, 0x00, 0x1c, 0x00, 0x38, 0x07, 0xfc, 0x08, 0x38, 0x10, 0x1c, 0x10, 0x00, 0x08, 0x00, 
    0x07, 0xc0, 0x00, 0x20, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x07, 0xc0, 0x08, 0x00, 0x10, 0x00, 
@@ -20,17 +23,6 @@ const unsigned char bm_cable [] PROGMEM = {
    0xf1, 0x8f, 0x02, 0x16, 0x02, 0x23, 0x01, 0x20, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 };
 
-const unsigned char bm_rf [] PROGMEM = {
-   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0xc4, 
-   0x4a, 0xaa, 0x4a, 0xce, 0x6e, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
-   0x00, 0x00, 0x07, 0xe0, 0x08, 0x10, 0x13, 0xc8, 0x04, 0x20, 0x01, 0x80, 0x00, 0x00, 0x4e, 0xc4, 
-   0x4a, 0xaa, 0x4a, 0xce, 0x6e, 0xaa, 0x00, 0x00, 0x01, 0x80, 0x04, 0x20, 0x03, 0xc0, 0x00, 0x00, 
-   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x4e, 
-   0x31, 0x48, 0x61, 0xca, 0x74, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
-   0x00, 0x00, 0x07, 0xe0, 0x08, 0x10, 0x13, 0xc8, 0x04, 0x20, 0x01, 0x80, 0x00, 0x00, 0x71, 0x4e, 
-   0x31, 0x48, 0x61, 0xca, 0x74, 0x4e, 0x00, 0x00, 0x01, 0x80, 0x04, 0x20, 0x03, 0xc0, 0x00, 0x00
-};
-
 const unsigned char bm_bt [] PROGMEM = {
    0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x40, 0x00, 0x00, 0x05, 0x10, 0x00, 0x00, 0x01, 0x40, 
    0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x05, 0x10, 0x00, 0x00, 0x11, 0x40, 0x00, 0x00, 0x01, 0x00, 
@@ -42,6 +34,17 @@ const unsigned char bm_bt [] PROGMEM = {
    0x29, 0x94, 0x11, 0x48, 0x03, 0x20, 0x05, 0x10, 0x09, 0x20, 0x01, 0x40, 0x01, 0x80, 0x01, 0x00
 };
 
+const unsigned char bm_rf [] PROGMEM = {
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0xc4,
+   0x4a, 0xaa, 0x4a, 0xce, 0x6e, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x07, 0xe0, 0x08, 0x10, 0x13, 0xc8, 0x04, 0x20, 0x01, 0x80, 0x00, 0x00, 0x4e, 0xc4,
+   0x4a, 0xaa, 0x4a, 0xce, 0x6e, 0xaa, 0x00, 0x00, 0x01, 0x80, 0x04, 0x20, 0x03, 0xc0, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x4e,
+   0x31, 0x48, 0x61, 0xca, 0x74, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x07, 0xe0, 0x08, 0x10, 0x13, 0xc8, 0x04, 0x20, 0x01, 0x80, 0x00, 0x00, 0x71, 0x4e,
+   0x31, 0x48, 0x61, 0xca, 0x74, 0x4e, 0x00, 0x00, 0x01, 0x80, 0x04, 0x20, 0x03, 0xc0, 0x00, 0x00
+};
+
 const unsigned char bm_boot [] PROGMEM = {
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
@@ -59,6 +62,92 @@ const unsigned char bm_boot [] PROGMEM = {
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
 };
 
+const unsigned char bm_no_radio [] PROGMEM = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xc7, 0x0e, 0x71, 0xfc, 0xce, 0x38, 0x7f,
+   0xc9, 0x93, 0x26, 0x64, 0xfc, 0x4c, 0x9c, 0xff, 0xc3, 0x83, 0x26, 0x64, 0xfc, 0x0c, 0x9c, 0xff,
+   0xc3, 0x93, 0x26, 0x64, 0xfc, 0x8c, 0x9c, 0xff, 0xc9, 0x93, 0x0e, 0x71, 0xfc, 0xce, 0x3c, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x8e, 0x4c, 0xcc, 0x3f, 0xff, 0xfc, 0xff,
+   0xcf, 0x26, 0x4c, 0x4c, 0x9f, 0xff, 0xfb, 0x7f, 0xc3, 0x26, 0x4c, 0x0c, 0x9f, 0xff, 0xfb, 0x7f,
+   0xcf, 0x26, 0x4c, 0x8c, 0x9f, 0xff, 0xf7, 0xbf, 0xcf, 0x8f, 0x1c, 0xcc, 0x3f, 0xff, 0xf4, 0xbf,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xec, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xec, 0xdf,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdc, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdc, 0xef,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbc, 0xf7,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7c, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfb,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+};
+
+const unsigned char bm_hwfail [] PROGMEM = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe4, 0xe3, 0x87, 0x0e, 0x73, 0x8e, 0x1c, 0x3f,
+   0xe4, 0xc9, 0x93, 0x26, 0x53, 0x26, 0x4c, 0xff, 0xe0, 0xc1, 0x87, 0x26, 0x53, 0x06, 0x1c, 0x3f,
+   0xe4, 0xc9, 0x87, 0x26, 0x03, 0x26, 0x1c, 0xff, 0xe4, 0xc9, 0x93, 0x0f, 0x27, 0x26, 0x4c, 0x3f,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xe1, 0xc7, 0x33, 0xc9, 0x87, 0x0f, 0xf9, 0xff, 0xe7, 0x93, 0x33, 0xc9, 0x93, 0x3f, 0xf6, 0xff,
+   0xe1, 0x83, 0x33, 0xc9, 0x87, 0x0f, 0xf6, 0xff, 0xe7, 0x93, 0x33, 0xc9, 0x87, 0x3f, 0xef, 0x7f,
+   0xe7, 0x93, 0x30, 0xe3, 0x93, 0x0f, 0xe9, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd9, 0xbf,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd9, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb9, 0xdf,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb9, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xef,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x79, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf9, 0xf7,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0f,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+};
+
+const unsigned char bm_console [] PROGMEM = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff,
+   0xff, 0xff, 0xe0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0x1f, 0xcf, 0xff, 0xff, 0xf3, 0xf8, 0xff,
+   0xfe, 0x3f, 0x9f, 0xff, 0xff, 0xf9, 0xfc, 0x7f, 0xfc, 0x7f, 0x99, 0xe6, 0x61, 0x99, 0xfe, 0x3f,
+   0xf8, 0xe7, 0x99, 0x26, 0x67, 0x99, 0xe7, 0x1f, 0xf9, 0xc7, 0x99, 0x26, 0x61, 0x99, 0xe3, 0x9f,
+   0xf1, 0x8f, 0x98, 0x06, 0x67, 0x99, 0xf1, 0x8f, 0xf3, 0x9f, 0x9c, 0xce, 0x67, 0x99, 0xf9, 0xcf,
+   0xf3, 0x99, 0x9f, 0xff, 0xff, 0xf9, 0x99, 0xcf, 0xf3, 0x99, 0x9f, 0xff, 0xff, 0xf9, 0x99, 0xcf,
+   0xf3, 0x9f, 0x9f, 0xe3, 0x83, 0xf9, 0xf9, 0xcf, 0xf1, 0x8f, 0x9f, 0xc9, 0x93, 0xf9, 0xf1, 0x8f,
+   0xf9, 0xc7, 0x9f, 0xc1, 0x83, 0xf9, 0xe3, 0x9f, 0xf8, 0xe7, 0x9f, 0xc9, 0x9f, 0xf9, 0xe7, 0x1f,
+   0xfc, 0x7f, 0x9f, 0xc9, 0x9f, 0xf9, 0xfe, 0x3f, 0xfe, 0x3f, 0x9f, 0xff, 0xff, 0xf9, 0xfc, 0x7f,
+   0xff, 0x1f, 0xcf, 0xff, 0xff, 0xf3, 0xf8, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x07, 0xff, 0xff,
+   0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff,
+   0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfd, 0xff, 0x7f, 0xdf, 0xf7, 0xfd, 0xff, 0x7f,
+   0xfd, 0xff, 0x7f, 0xdf, 0xf7, 0xfd, 0xff, 0x7f, 0xfd, 0xff, 0x7f, 0xdf, 0xf7, 0xfd, 0xff, 0x7f,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x78, 0x1e, 0x07, 0x81, 0xe0, 0x78, 0x1f,
+   0xef, 0xbb, 0xee, 0xfb, 0xbe, 0xef, 0xbb, 0xef, 0xe8, 0xda, 0xb6, 0x9d, 0xb3, 0x6d, 0xda, 0x37,
+   0xef, 0xda, 0xf6, 0xb5, 0xad, 0x6c, 0xdb, 0xf7, 0xe8, 0x5a, 0x36, 0x95, 0xad, 0x6c, 0xda, 0x97,
+   0xef, 0xdb, 0xf6, 0x85, 0xb3, 0x6c, 0xda, 0x97, 0xea, 0x5a, 0x36, 0xb5, 0xb3, 0x6c, 0xdb, 0xf7,
+   0xef, 0xda, 0xf6, 0xa5, 0xad, 0x6f, 0xda, 0x57, 0xe8, 0x5a, 0xb6, 0x85, 0xad, 0x6c, 0xda, 0x57,
+   0xef, 0xdb, 0xf6, 0xfd, 0xbf, 0x6f, 0xdb, 0xf7, 0xe0, 0x18, 0x06, 0x01, 0x80, 0x60, 0x18, 0x07,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xfe, 0x42, 0x7c, 0x60, 0xf0, 0x78, 0x3c, 0x7f, 0xfe, 0x4a, 0x7c, 0x64, 0xf2, 0x79, 0x3c, 0x7f,
+   0xfe, 0x43, 0xfe, 0x64, 0xf2, 0x79, 0x3e, 0x7f, 0xfe, 0x4e, 0x7e, 0x64, 0x92, 0x49, 0x26, 0x7f,
+   0xfe, 0x4e, 0x7e, 0x60, 0x90, 0x48, 0x26, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+};
+
+const unsigned char bm_pairing [] PROGMEM = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xf0, 0xe3, 0x98, 0x73, 0x33, 0x87, 0xff, 0xff, 0xf2, 0xc9, 0x99, 0x33, 0x13, 0x3f, 0xff,
+   0xff, 0xf0, 0xc1, 0x98, 0x73, 0x03, 0x27, 0xff, 0xff, 0xf3, 0xc9, 0x98, 0x73, 0x23, 0x27, 0xff,
+   0xff, 0xf3, 0xc9, 0x99, 0x33, 0x33, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+};
+
 const unsigned char bm_fw_update [] PROGMEM = {
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
@@ -76,20 +165,20 @@ const unsigned char bm_fw_update [] PROGMEM = {
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
 };
 
-const unsigned char bm_console_active [] PROGMEM = {
+const unsigned char bm_version [] PROGMEM = {
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x8e, 0x67, 0x0e, 0x39, 0xe1, 0xff, 
-   0xff, 0x93, 0x26, 0x26, 0x7c, 0x99, 0xe7, 0xff, 0xff, 0x9f, 0x26, 0x07, 0x1c, 0x99, 0xe1, 0xff, 
-   0xff, 0x93, 0x26, 0x47, 0xcc, 0x99, 0xe7, 0xff, 0xff, 0xc7, 0x8e, 0x66, 0x1e, 0x38, 0x61, 0xff, 
+   0xff, 0x99, 0x86, 0x1e, 0x19, 0xc7, 0x33, 0xff, 0xff, 0x99, 0x9e, 0x4c, 0xf9, 0x93, 0x13, 0xff,
+   0xff, 0xc3, 0x86, 0x1e, 0x39, 0x93, 0x03, 0xff, 0xff, 0xc3, 0x9e, 0x1f, 0x99, 0x93, 0x23, 0xff,
+   0xff, 0xe7, 0x86, 0x4c, 0x39, 0xc7, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3c, 0x70, 0xcc, 0xcc, 0x3f, 0xff, 
-   0xff, 0xfc, 0x99, 0x39, 0xcc, 0xcc, 0xff, 0xff, 0xff, 0xfc, 0x19, 0xf9, 0xce, 0x1c, 0x3f, 0xff, 
-   0xff, 0xfc, 0x99, 0x39, 0xce, 0x1c, 0xff, 0xff, 0xff, 0xfc, 0x9c, 0x79, 0xcf, 0x3c, 0x3f, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
+   0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
 };
 
@@ -128,40 +217,6 @@ const unsigned char bm_updating [] PROGMEM = {
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
 };
 
-const unsigned char bm_version [] PROGMEM = {
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0x99, 0x86, 0x1e, 0x19, 0xc7, 0x33, 0xff, 0xff, 0x99, 0x9e, 0x4c, 0xf9, 0x93, 0x13, 0xff, 
-   0xff, 0xc3, 0x86, 0x1e, 0x39, 0x93, 0x03, 0xff, 0xff, 0xc3, 0x9e, 0x1f, 0x99, 0x93, 0x23, 0xff, 
-   0xff, 0xe7, 0x86, 0x4c, 0x39, 0xc7, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
-};
-
-const unsigned char bm_fw_corrupt [] PROGMEM = {
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x30, 0xe7, 0x33, 0x9c, 0x70, 0xe1, 0xff, 
-   0xcf, 0x32, 0x62, 0x32, 0x99, 0x32, 0x67, 0xff, 0xc3, 0x30, 0xe0, 0x32, 0x98, 0x30, 0xe1, 0xff, 
-   0xcf, 0x30, 0xe5, 0x30, 0x19, 0x30, 0xe7, 0xff, 0xcf, 0x32, 0x67, 0x39, 0x39, 0x32, 0x61, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xc7, 0x0e, 0x1c, 0x98, 0x70, 0xfc, 0xff, 
-   0xc9, 0x93, 0x26, 0x4c, 0x99, 0x39, 0xfb, 0x7f, 0xcf, 0x93, 0x0e, 0x1c, 0x98, 0x79, 0xfb, 0x7f, 
-   0xc9, 0x93, 0x0e, 0x1c, 0x99, 0xf9, 0xf7, 0xbf, 0xe3, 0xc7, 0x26, 0x4e, 0x39, 0xf9, 0xf4, 0xbf, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xec, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xec, 0xdf, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdc, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdc, 0xef, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbc, 0xf7, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7c, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfb, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
-};
-
 static unsigned char bm_def[] PROGMEM = {
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb4, 0x61, 0x10, 0x8c, 0x23, 0xc4, 0x3f, 0xff, 
    0xb5, 0xa7, 0xb7, 0xb5, 0xed, 0xed, 0xbf, 0xff, 0xb5, 0xb9, 0xb4, 0xb4, 0x6d, 0xed, 0xbf, 0xff, 
@@ -206,6 +261,57 @@ const unsigned char bm_def_lc [] PROGMEM = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 };
 
+const unsigned char bm_hwok [] PROGMEM = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xf2, 0x71, 0xc3, 0x87, 0x39, 0xc7, 0x0e, 0x1f, 0xf2, 0x64, 0xc9, 0x93, 0x29, 0x93, 0x26, 0x7f,
+   0xf0, 0x60, 0xc3, 0x93, 0x29, 0x83, 0x0e, 0x1f, 0xf2, 0x64, 0xc3, 0x93, 0x01, 0x93, 0x0e, 0x7f,
+   0xf2, 0x64, 0xc9, 0x87, 0x93, 0x93, 0x26, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x33, 0x30, 0xff, 0x8e, 0x4f, 0xff,
+   0xff, 0xf3, 0x13, 0x39, 0xff, 0x26, 0x1f, 0xff, 0xff, 0xf3, 0x03, 0x39, 0xff, 0x26, 0x3f, 0xff,
+   0xff, 0xf3, 0x23, 0x39, 0xff, 0x26, 0x1f, 0xff, 0xff, 0xf3, 0x33, 0x39, 0xff, 0x8e, 0x4f, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xc3, 0x0e, 0x67, 0xf8, 0x70, 0xe3, 0x87, 0x33, 0xe7, 0x27, 0x0f, 0xf9, 0x33, 0xc9, 0x93, 0x87,
+   0xe7, 0x0f, 0x9f, 0xf8, 0x70, 0xc1, 0x93, 0xcf, 0xe7, 0x0f, 0x0f, 0xf8, 0x73, 0xc9, 0x93, 0xcf,
+   0xe7, 0x26, 0x67, 0xf9, 0x30, 0xc9, 0x87, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+};
+
+const unsigned char bm_console_active [] PROGMEM = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x8e, 0x67, 0x0e, 0x39, 0xe1, 0xff,
+   0xff, 0x93, 0x26, 0x26, 0x7c, 0x99, 0xe7, 0xff, 0xff, 0x9f, 0x26, 0x07, 0x1c, 0x99, 0xe1, 0xff,
+   0xff, 0x93, 0x26, 0x47, 0xcc, 0x99, 0xe7, 0xff, 0xff, 0xc7, 0x8e, 0x66, 0x1e, 0x38, 0x61, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3c, 0x70, 0xcc, 0xcc, 0x3f, 0xff,
+   0xff, 0xfc, 0x99, 0x39, 0xcc, 0xcc, 0xff, 0xff, 0xff, 0xfc, 0x19, 0xf9, 0xce, 0x1c, 0x3f, 0xff,
+   0xff, 0xfc, 0x99, 0x39, 0xce, 0x1c, 0xff, 0xff, 0xff, 0xfc, 0x9c, 0x79, 0xcf, 0x3c, 0x3f, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+};
+
+const unsigned char bm_checks [] PROGMEM = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0x0c, 0x99, 0xc7, 0x0f,
+   0xe6, 0x00, 0x7f, 0x93, 0x3c, 0x99, 0x93, 0x3f, 0xe6, 0x00, 0x7f, 0x93, 0x0e, 0x39, 0x9f, 0x0f,
+   0xff, 0xff, 0xff, 0x93, 0x3e, 0x39, 0x93, 0x3f, 0xff, 0xff, 0xff, 0x87, 0x0f, 0x79, 0xc7, 0x0f,
+   0xe6, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x39, 0x30, 0xe3, 0x93, 0x87,
+   0xe6, 0x00, 0x7c, 0x99, 0x33, 0xc9, 0x87, 0x3f, 0xe6, 0x00, 0x7c, 0xf8, 0x30, 0xcf, 0x8f, 0x8f,
+   0xff, 0xff, 0xfc, 0x99, 0x33, 0xc9, 0x87, 0xe7, 0xff, 0xff, 0xfe, 0x39, 0x30, 0xe3, 0x93, 0x0f,
+   0xe6, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x00, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x9c, 0x3c, 0x78, 0x70, 0xc3, 0x0f,
+   0xe6, 0x0d, 0x3c, 0x99, 0x33, 0xe7, 0xcf, 0x27, 0xe6, 0x04, 0x7c, 0x38, 0x38, 0xf1, 0xc3, 0x27,
+   0xff, 0xfe, 0xfc, 0xf9, 0x3e, 0x7c, 0xcf, 0x27, 0xff, 0xff, 0xfc, 0xf9, 0x30, 0xe1, 0xc3, 0x0f,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+};
+
 const unsigned char bm_frame [] PROGMEM = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x00, 
@@ -241,85 +347,32 @@ const unsigned char bm_frame [] PROGMEM = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xaa, 0x8a, 0xaa, 0x80
 };
 
-const unsigned char bm_console [] PROGMEM = {
+const unsigned char bm_online [] PROGMEM = {
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff, 
-   0xff, 0xff, 0xe0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0x1f, 0xcf, 0xff, 0xff, 0xf3, 0xf8, 0xff, 
-   0xfe, 0x3f, 0x9f, 0xff, 0xff, 0xf9, 0xfc, 0x7f, 0xfc, 0x7f, 0x99, 0xe6, 0x61, 0x99, 0xfe, 0x3f, 
-   0xf8, 0xe7, 0x99, 0x26, 0x67, 0x99, 0xe7, 0x1f, 0xf9, 0xc7, 0x99, 0x26, 0x61, 0x99, 0xe3, 0x9f, 
-   0xf1, 0x8f, 0x98, 0x06, 0x67, 0x99, 0xf1, 0x8f, 0xf3, 0x9f, 0x9c, 0xce, 0x67, 0x99, 0xf9, 0xcf, 
-   0xf3, 0x99, 0x9f, 0xff, 0xff, 0xf9, 0x99, 0xcf, 0xf3, 0x99, 0x9f, 0xff, 0xff, 0xf9, 0x99, 0xcf, 
-   0xf3, 0x9f, 0x9f, 0xe3, 0x83, 0xf9, 0xf9, 0xcf, 0xf1, 0x8f, 0x9f, 0xc9, 0x93, 0xf9, 0xf1, 0x8f, 
-   0xf9, 0xc7, 0x9f, 0xc1, 0x83, 0xf9, 0xe3, 0x9f, 0xf8, 0xe7, 0x9f, 0xc9, 0x9f, 0xf9, 0xe7, 0x1f, 
-   0xfc, 0x7f, 0x9f, 0xc9, 0x9f, 0xf9, 0xfe, 0x3f, 0xfe, 0x3f, 0x9f, 0xff, 0xff, 0xf9, 0xfc, 0x7f, 
-   0xff, 0x1f, 0xcf, 0xff, 0xff, 0xf3, 0xf8, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x07, 0xff, 0xff, 
-   0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 
-   0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfd, 0xff, 0x7f, 0xdf, 0xf7, 0xfd, 0xff, 0x7f, 
-   0xfd, 0xff, 0x7f, 0xdf, 0xf7, 0xfd, 0xff, 0x7f, 0xfd, 0xff, 0x7f, 0xdf, 0xf7, 0xfd, 0xff, 0x7f, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x78, 0x1e, 0x07, 0x81, 0xe0, 0x78, 0x1f, 
-   0xef, 0xbb, 0xee, 0xfb, 0xbe, 0xef, 0xbb, 0xef, 0xe8, 0xda, 0xb6, 0x9d, 0xb3, 0x6d, 0xda, 0x37, 
-   0xef, 0xda, 0xf6, 0xb5, 0xad, 0x6c, 0xdb, 0xf7, 0xe8, 0x5a, 0x36, 0x95, 0xad, 0x6c, 0xda, 0x97, 
-   0xef, 0xdb, 0xf6, 0x85, 0xb3, 0x6c, 0xda, 0x97, 0xea, 0x5a, 0x36, 0xb5, 0xb3, 0x6c, 0xdb, 0xf7, 
-   0xef, 0xda, 0xf6, 0xa5, 0xad, 0x6f, 0xda, 0x57, 0xe8, 0x5a, 0xb6, 0x85, 0xad, 0x6c, 0xda, 0x57, 
-   0xef, 0xdb, 0xf6, 0xfd, 0xbf, 0x6f, 0xdb, 0xf7, 0xe0, 0x18, 0x06, 0x01, 0x80, 0x60, 0x18, 0x07, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xfe, 0x42, 0x7c, 0x60, 0xf0, 0x78, 0x3c, 0x7f, 0xfe, 0x4a, 0x7c, 0x64, 0xf2, 0x79, 0x3c, 0x7f, 
-   0xfe, 0x43, 0xfe, 0x64, 0xf2, 0x79, 0x3e, 0x7f, 0xfe, 0x4e, 0x7e, 0x64, 0x92, 0x49, 0x26, 0x7f, 
-   0xfe, 0x4e, 0x7e, 0x60, 0x90, 0x48, 0x26, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
-};
-
-
-const unsigned char bm_checks [] PROGMEM = {
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0x0c, 0x99, 0xc7, 0x0f, 
-   0xe6, 0x00, 0x7f, 0x93, 0x3c, 0x99, 0x93, 0x3f, 0xe6, 0x00, 0x7f, 0x93, 0x0e, 0x39, 0x9f, 0x0f, 
-   0xff, 0xff, 0xff, 0x93, 0x3e, 0x39, 0x93, 0x3f, 0xff, 0xff, 0xff, 0x87, 0x0f, 0x79, 0xc7, 0x0f, 
-   0xe6, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x39, 0x30, 0xe3, 0x93, 0x87, 
-   0xe6, 0x00, 0x7c, 0x99, 0x33, 0xc9, 0x87, 0x3f, 0xe6, 0x00, 0x7c, 0xf8, 0x30, 0xcf, 0x8f, 0x8f, 
-   0xff, 0xff, 0xfc, 0x99, 0x33, 0xc9, 0x87, 0xe7, 0xff, 0xff, 0xfe, 0x39, 0x30, 0xe3, 0x93, 0x0f, 
-   0xe6, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x00, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x9c, 0x3c, 0x78, 0x70, 0xc3, 0x0f, 
-   0xe6, 0x0d, 0x3c, 0x99, 0x33, 0xe7, 0xcf, 0x27, 0xe6, 0x04, 0x7c, 0x38, 0x38, 0xf1, 0xc3, 0x27, 
-   0xff, 0xfe, 0xfc, 0xf9, 0x3e, 0x7c, 0xcf, 0x27, 0xff, 0xff, 0xfc, 0xf9, 0x30, 0xe1, 0xc3, 0x0f, 
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0x1c, 0x66, 0x61, 0x8c, 0x24, 0x90, 0x87,
+   0xe6, 0x49, 0x22, 0x4f, 0x24, 0xe4, 0x93, 0x93, 0xe6, 0x18, 0x20, 0x63, 0x3c, 0x26, 0x30, 0x87,
+   0xe6, 0x19, 0x24, 0x79, 0x24, 0xe6, 0x33, 0x87, 0xe6, 0x49, 0x26, 0x43, 0x8c, 0x27, 0x70, 0x93,
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
-};
-
-const unsigned char bm_hwfail [] PROGMEM = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xe6, 0x73, 0xe7, 0x33, 0x87, 0xff,
+   0xff, 0xe4, 0xe2, 0x73, 0xe7, 0x13, 0x9f, 0xff, 0xff, 0xe4, 0xe0, 0x73, 0xe7, 0x03, 0x87, 0xff,
+   0xff, 0xe4, 0xe4, 0x73, 0xe7, 0x23, 0x9f, 0xff, 0xff, 0xf1, 0xe6, 0x70, 0xe7, 0x33, 0x87, 0xff,
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe4, 0xe3, 0x87, 0x0e, 0x73, 0x8e, 0x1c, 0x3f, 
-   0xe4, 0xc9, 0x93, 0x26, 0x53, 0x26, 0x4c, 0xff, 0xe0, 0xc1, 0x87, 0x26, 0x53, 0x06, 0x1c, 0x3f, 
-   0xe4, 0xc9, 0x87, 0x26, 0x03, 0x26, 0x1c, 0xff, 0xe4, 0xc9, 0x93, 0x0f, 0x27, 0x26, 0x4c, 0x3f, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xe1, 0xc7, 0x33, 0xc9, 0x87, 0x0f, 0xf9, 0xff, 0xe7, 0x93, 0x33, 0xc9, 0x93, 0x3f, 0xf6, 0xff, 
-   0xe1, 0x83, 0x33, 0xc9, 0x87, 0x0f, 0xf6, 0xff, 0xe7, 0x93, 0x33, 0xc9, 0x87, 0x3f, 0xef, 0x7f, 
-   0xe7, 0x93, 0x30, 0xe3, 0x93, 0x0f, 0xe9, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd9, 0xbf, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd9, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb9, 0xdf, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb9, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xef, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x79, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf9, 0xf7, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0f, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
 };
 
-const unsigned char bm_no_radio [] PROGMEM = {
+const unsigned char bm_fw_corrupt [] PROGMEM = {
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xc7, 0x0e, 0x71, 0xfc, 0xce, 0x38, 0x7f, 
-   0xc9, 0x93, 0x26, 0x64, 0xfc, 0x4c, 0x9c, 0xff, 0xc3, 0x83, 0x26, 0x64, 0xfc, 0x0c, 0x9c, 0xff, 
-   0xc3, 0x93, 0x26, 0x64, 0xfc, 0x8c, 0x9c, 0xff, 0xc9, 0x93, 0x0e, 0x71, 0xfc, 0xce, 0x3c, 0xff, 
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x30, 0xe7, 0x33, 0x9c, 0x70, 0xe1, 0xff,
+   0xcf, 0x32, 0x62, 0x32, 0x99, 0x32, 0x67, 0xff, 0xc3, 0x30, 0xe0, 0x32, 0x98, 0x30, 0xe1, 0xff,
+   0xcf, 0x30, 0xe5, 0x30, 0x19, 0x30, 0xe7, 0xff, 0xcf, 0x32, 0x67, 0x39, 0x39, 0x32, 0x61, 0xff,
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x8e, 0x4c, 0xcc, 0x3f, 0xff, 0xfc, 0xff, 
-   0xcf, 0x26, 0x4c, 0x4c, 0x9f, 0xff, 0xfb, 0x7f, 0xc3, 0x26, 0x4c, 0x0c, 0x9f, 0xff, 0xfb, 0x7f, 
-   0xcf, 0x26, 0x4c, 0x8c, 0x9f, 0xff, 0xf7, 0xbf, 0xcf, 0x8f, 0x1c, 0xcc, 0x3f, 0xff, 0xf4, 0xbf, 
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xc7, 0x0e, 0x1c, 0x98, 0x70, 0xfc, 0xff,
+   0xc9, 0x93, 0x26, 0x4c, 0x99, 0x39, 0xfb, 0x7f, 0xcf, 0x93, 0x0e, 0x1c, 0x98, 0x79, 0xfb, 0x7f,
+   0xc9, 0x93, 0x0e, 0x1c, 0x99, 0xf9, 0xf7, 0xbf, 0xe3, 0xc7, 0x26, 0x4e, 0x39, 0xf9, 0xf4, 0xbf,
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xec, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xec, 0xdf, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdc, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdc, 0xef, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbc, 0xf7, 
@@ -328,90 +381,1329 @@ const unsigned char bm_no_radio [] PROGMEM = {
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
 };
 
+const unsigned char bm_plug [] PROGMEM = {
+   0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x7f, 0x80, 0x55, 0xfc, 0x00, 0xaa, 0xfc, 0x00, 0x00,
+   0x7f, 0x80, 0x00, 0x1c, 0x00
+};
+
+const unsigned char bm_hg_low [] PROGMEM = {
+   0xf8, 0x88, 0x88, 0x50, 0x20, 0x50, 0x88, 0xf8, 0xf8
+};
+
+const unsigned char bm_hg_high [] PROGMEM = {
+   0xf8, 0x88, 0xf8, 0x70, 0x20, 0x70, 0xf8, 0xf8, 0xf8
+};
+
+const unsigned char bm_n_uh [] PROGMEM = {
+   0x07, 0x27, 0x27, 0x27, 0x07, 0x8f, 0x8f, 0xcf, 0xcf, 0xcf, 0x07, 0xe7, 0x07, 0x3f, 0x07, 0x07,
+   0xe7, 0xc7, 0xe7, 0x07, 0x27, 0x27, 0x07, 0xe7, 0xe7, 0x07, 0x3f, 0x07, 0xe7, 0x07, 0x07, 0x3f,
+   0x07, 0x27, 0x07, 0x07, 0xc7, 0xcf, 0x9f, 0x1f, 0x07, 0x27, 0x07, 0x27, 0x07, 0x07, 0x27, 0x07,
+   0xe7, 0xe7
+};
+
+#elif DISP_H == 122
+// use 122px wide graphics
+
+const unsigned char bm_bt [] PROGMEM = {
+   // 30 x 128px
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x60, 0x00, 0x02, 0x06, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x04, 0x00, 0x00, 0x66, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x04, 0x00, 0x00, 0x66, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x60, 0x00, 0x02, 0x06, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00,
+   0x00, 0x07, 0x80, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x06, 0x60, 0x00, 0x01, 0x86, 0x18, 0x00,
+   0x01, 0x86, 0x18, 0x00, 0x00, 0x66, 0x04, 0x00, 0x00, 0x66, 0x04, 0x00, 0x00, 0x1e, 0x18, 0x00,
+   0x00, 0x1e, 0x18, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x07, 0x80, 0x00,
+   0x00, 0x07, 0x80, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x1e, 0x18, 0x00,
+   0x00, 0x1e, 0x18, 0x00, 0x00, 0x66, 0x04, 0x00, 0x00, 0x66, 0x04, 0x00, 0x01, 0x86, 0x18, 0x00,
+   0x01, 0x86, 0x18, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x07, 0x80, 0x00,
+   0x00, 0x07, 0x80, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00,
+   0x00, 0x07, 0x80, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x06, 0x60, 0x00, 0x01, 0x86, 0x18, 0x00,
+   0x01, 0x86, 0x18, 0x00, 0x00, 0x66, 0x04, 0x00, 0x00, 0x66, 0x04, 0x00, 0x00, 0x1e, 0x18, 0x00,
+   0x00, 0x1e, 0x18, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x06, 0x60, 0x00, 0x0d, 0x87, 0x84, 0xc0,
+   0x0d, 0x87, 0x84, 0xc0, 0x00, 0x06, 0x60, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x1e, 0x18, 0x00,
+   0x00, 0x1e, 0x18, 0x00, 0x00, 0x66, 0x04, 0x00, 0x00, 0x66, 0x04, 0x00, 0x01, 0x86, 0x18, 0x00,
+   0x01, 0x86, 0x18, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x07, 0x80, 0x00,
+   0x00, 0x07, 0x80, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00,
+   0x00, 0x07, 0x80, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x06, 0x60, 0x00, 0x01, 0x86, 0x18, 0x00,
+   0x01, 0x86, 0x18, 0x00, 0x00, 0x66, 0x04, 0x00, 0x00, 0x66, 0x04, 0x00, 0x00, 0x1e, 0x18, 0x00,
+   0x00, 0x1e, 0x18, 0x00, 0x02, 0x06, 0x63, 0x00, 0x02, 0x06, 0x63, 0x00, 0x0d, 0x87, 0x84, 0xc0,
+   0x0d, 0x87, 0x84, 0xc0, 0x02, 0x06, 0x63, 0x00, 0x02, 0x06, 0x63, 0x00, 0x00, 0x1e, 0x18, 0x00,
+   0x00, 0x1e, 0x18, 0x00, 0x00, 0x66, 0x04, 0x00, 0x00, 0x66, 0x04, 0x00, 0x01, 0x86, 0x18, 0x00,
+   0x01, 0x86, 0x18, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x07, 0x80, 0x00,
+   0x00, 0x07, 0x80, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+const unsigned char bm_rf [] PROGMEM = {
+   // 30 x 128px
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xf9, 0xe0, 0xc0, 0x30, 0xf9, 0xe0, 0xc0,
+   0x30, 0x99, 0x99, 0x30, 0x30, 0x99, 0x99, 0x30, 0x30, 0x99, 0xe1, 0xf0, 0x30, 0x99, 0xe1, 0xf0,
+   0x3c, 0xf9, 0x99, 0x30, 0x3c, 0xf9, 0x99, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00, 0x7f, 0xf8, 0x00,
+   0x00, 0x80, 0x06, 0x00, 0x00, 0x80, 0x06, 0x00, 0x03, 0x1f, 0xe1, 0x00, 0x03, 0x1f, 0xe1, 0x00,
+   0x00, 0x60, 0x18, 0x00, 0x00, 0x60, 0x18, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x07, 0x80, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xf9, 0xe0, 0xc0, 0x30, 0xf9, 0xe0, 0xc0,
+   0x30, 0x99, 0x99, 0x30, 0x30, 0x99, 0x99, 0x30, 0x30, 0x99, 0xe1, 0xf0, 0x30, 0x99, 0xe1, 0xf0,
+   0x3c, 0xf9, 0x99, 0x30, 0x3c, 0xf9, 0x99, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x07, 0x80, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x60, 0x18, 0x00, 0x00, 0x60, 0x18, 0x00,
+   0x00, 0x1f, 0xe0, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x06, 0x61, 0xf0, 0x3f, 0x06, 0x61, 0xf0,
+   0x0f, 0x06, 0x61, 0x00, 0x0f, 0x06, 0x61, 0x00, 0x3c, 0x07, 0xe1, 0x30, 0x3c, 0x07, 0xe1, 0x30,
+   0x3f, 0x60, 0x61, 0xf0, 0x3f, 0x60, 0x61, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00, 0x7f, 0xf8, 0x00,
+   0x00, 0x80, 0x06, 0x00, 0x00, 0x80, 0x06, 0x00, 0x03, 0x1f, 0xe1, 0x00, 0x03, 0x1f, 0xe1, 0x00,
+   0x00, 0x60, 0x18, 0x00, 0x00, 0x60, 0x18, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x07, 0x80, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x06, 0x61, 0xf0, 0x3f, 0x06, 0x61, 0xf0,
+   0x0f, 0x06, 0x61, 0x00, 0x0f, 0x06, 0x61, 0x00, 0x3c, 0x07, 0xe1, 0x30, 0x3c, 0x07, 0xe1, 0x30,
+   0x3f, 0x60, 0x61, 0xf0, 0x3f, 0x60, 0x61, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x07, 0x80, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x60, 0x18, 0x00, 0x00, 0x60, 0x18, 0x00,
+   0x00, 0x1f, 0xe0, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+
+const unsigned char bm_cable [] PROGMEM = {
+   // 30 x 64px
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x00, 0x07, 0xc0,
+   0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x7f, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0xc0,
+   0x01, 0x80, 0x1f, 0x00, 0x01, 0x80, 0x1f, 0x00, 0x02, 0x00, 0x07, 0xc0, 0x02, 0x00, 0x07, 0xc0,
+   0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00,
+   0x00, 0x7f, 0xe0, 0x00, 0x00, 0x7f, 0xe0, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00,
+   0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00,
+   0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x7f, 0xe0, 0x00, 0x00, 0x7f, 0xe0, 0x00,
+   0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x61, 0x80, 0x00, 0x00, 0x61, 0x80, 0x00,
+   0x00, 0x60, 0x60, 0x3c, 0x00, 0x60, 0x60, 0x3c, 0x01, 0x80, 0x60, 0xf0, 0x01, 0x80, 0x60, 0xf0,
+   0xfe, 0x07, 0x83, 0xfc, 0xfe, 0x07, 0x83, 0xfc, 0x00, 0x18, 0x04, 0xf0, 0x00, 0x18, 0x04, 0xf0,
+   0x00, 0x18, 0x18, 0x3c, 0x00, 0x18, 0x18, 0x3c, 0x00, 0x06, 0x18, 0x00, 0x00, 0x06, 0x18, 0x00,
+   0x00, 0x01, 0xe0, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+const unsigned char bm_boot [] PROGMEM = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xe0, 0x3f, 0x00, 0xf1, 0xe1, 0xe3, 0xf0, 0x3f, 0x01, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xe1, 0x0f, 0x07, 0xe1, 0xe1, 0xe1, 0xe0, 0x1f, 0x0f, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xe1, 0x0f, 0x0f, 0xf0, 0xe1, 0xe1, 0xc3, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xe1, 0x0f, 0x00, 0xf8, 0x07, 0xe1, 0xc3, 0xff, 0x01, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xe1, 0x0f, 0x07, 0xf8, 0x07, 0xe1, 0xc3, 0x9f, 0x0f, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xe1, 0x0f, 0x0f, 0xfc, 0x07, 0xe1, 0xe1, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xe0, 0x3f, 0x00, 0xfe, 0x1f, 0xe1, 0xf0, 0x3f, 0x01, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xfe, 0x01, 0xe0, 0x3f, 0x03, 0xe0, 0x1f, 0x80, 0x70, 0xf0, 0xf1, 0xf8, 0x07, 0xff, 0xc0,
+   0xff, 0xfc, 0x3f, 0xf0, 0x7e, 0x21, 0xe0, 0x87, 0xc1, 0xf0, 0xf0, 0x71, 0xf1, 0xff, 0xff, 0xc0,
+   0xff, 0xfc, 0x3f, 0xf8, 0x7c, 0x00, 0xe0, 0x87, 0xe1, 0xf0, 0xf0, 0x21, 0xe1, 0xff, 0xff, 0xc0,
+   0xff, 0xfe, 0x07, 0xf8, 0x7c, 0x00, 0xe0, 0x1f, 0xe1, 0xf0, 0xf0, 0x01, 0xe1, 0x87, 0xff, 0xc0,
+   0xff, 0xff, 0xe1, 0xf8, 0x7c, 0x20, 0xe0, 0x1f, 0xe1, 0xf0, 0xf0, 0x81, 0xe1, 0x87, 0xff, 0xc0,
+   0xff, 0xff, 0xe3, 0xf8, 0x7c, 0x30, 0xe0, 0x0f, 0xe1, 0xf0, 0xf0, 0xc1, 0xf0, 0x0f, 0xff, 0xc0,
+   0xff, 0xf8, 0x07, 0xf8, 0xfc, 0x30, 0xf1, 0x87, 0xe1, 0xf0, 0xf0, 0xf1, 0xf8, 0x1f, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0
+};
+
+const unsigned char bm_fw_update [] PROGMEM = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xf1, 0xc7, 0x80, 0xfc, 0x03, 0xfc, 0x1f, 0x80, 0xf8, 0xf1, 0xf1, 0xf8, 0x0f, 0xff, 0xc0,
+   0xff, 0xe1, 0x87, 0x80, 0x7c, 0x03, 0xf8, 0x1f, 0x80, 0xf0, 0xf0, 0xf1, 0xf8, 0x0f, 0xff, 0xc0,
+   0xff, 0xe1, 0x87, 0x84, 0x3c, 0x31, 0xf0, 0x87, 0xc1, 0xf0, 0xf0, 0x71, 0xe1, 0xff, 0xff, 0xc0,
+   0xff, 0xe1, 0x87, 0x84, 0x3c, 0x30, 0xe0, 0x87, 0xe1, 0xf0, 0xf0, 0x21, 0xe1, 0xff, 0xff, 0xc0,
+   0xff, 0xe1, 0x87, 0x80, 0x7c, 0x30, 0xe0, 0x07, 0xe1, 0xf0, 0xf0, 0x01, 0xe1, 0x8f, 0xff, 0xc0,
+   0xff, 0xe1, 0x87, 0x80, 0xfc, 0x30, 0xe0, 0x07, 0xe1, 0xf0, 0xf0, 0x01, 0xe1, 0x87, 0xff, 0xc0,
+   0xff, 0xe1, 0x87, 0x87, 0xfc, 0x30, 0xe0, 0x87, 0xe1, 0xf0, 0xf0, 0x81, 0xe1, 0x87, 0xff, 0xc0,
+   0xff, 0xf0, 0x87, 0x87, 0xfc, 0x31, 0xe1, 0x87, 0xe1, 0xf0, 0xf0, 0xc1, 0xe1, 0x8f, 0xff, 0xc0,
+   0xff, 0xf8, 0x1f, 0x87, 0xfc, 0x03, 0xe1, 0x87, 0xe1, 0xf0, 0xf0, 0xe1, 0xf8, 0x1f, 0xff, 0xc0,
+   0xff, 0xfc, 0x1f, 0x8f, 0xfc, 0x03, 0xf1, 0xc7, 0xe3, 0xf8, 0xf1, 0xf1, 0xf8, 0x1f, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xc0, 0x78, 0x78, 0x0f, 0xc3, 0xf1, 0xe1, 0xf8, 0xfe, 0x0f, 0xc0, 0x7e, 0x03, 0xff, 0xc0,
+   0xff, 0xc0, 0x78, 0x78, 0x07, 0xc3, 0xe1, 0xe1, 0xf8, 0x7c, 0x0f, 0xc0, 0x3e, 0x03, 0xff, 0xc0,
+   0xff, 0xc3, 0xf8, 0x78, 0x43, 0xc1, 0xc1, 0xe1, 0xb8, 0x78, 0xc3, 0xc2, 0x1e, 0x1f, 0xff, 0xc0,
+   0xff, 0xc3, 0xf8, 0x78, 0x43, 0xc0, 0x81, 0xe1, 0x98, 0x70, 0xc3, 0xc2, 0x1e, 0x1f, 0xff, 0xc0,
+   0xff, 0xc0, 0x78, 0x78, 0x07, 0xc0, 0x01, 0xe1, 0x98, 0x70, 0x03, 0xc0, 0x3e, 0x03, 0xff, 0xc0,
+   0xff, 0xc0, 0x78, 0x78, 0x0f, 0xc0, 0x01, 0xe1, 0x90, 0x70, 0x03, 0xc0, 0x7e, 0x03, 0xff, 0xc0,
+   0xff, 0xc3, 0xf8, 0x78, 0x0f, 0xc2, 0x21, 0xe0, 0x00, 0x70, 0xc3, 0xc0, 0x7e, 0x1f, 0xff, 0xc0,
+   0xff, 0xc7, 0xf8, 0x78, 0x07, 0xc3, 0x61, 0xe0, 0x00, 0xf0, 0xc3, 0xc0, 0x3e, 0x1f, 0xff, 0xc0,
+   0xff, 0xc7, 0xf8, 0x78, 0x43, 0xc3, 0xe1, 0xf8, 0x41, 0xf0, 0xc3, 0xc2, 0x1e, 0x03, 0xff, 0xc0,
+   0xff, 0xc7, 0xf8, 0x78, 0xe3, 0xc3, 0xf1, 0xf8, 0x63, 0xf8, 0xc3, 0xc7, 0x1e, 0x03, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0
+};
+
+const unsigned char bm_version [] PROGMEM = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xc7, 0x8f, 0x80, 0xf0, 0x1f, 0xe0, 0x3e, 0x3f, 0x03, 0xf1, 0xe1, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0x87, 0x87, 0x00, 0xf0, 0x0f, 0xe0, 0x3e, 0x3f, 0x03, 0xf0, 0xe1, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0x87, 0x87, 0x07, 0xf0, 0x87, 0xc7, 0xfe, 0x3e, 0x31, 0xf0, 0x61, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xc7, 0x8f, 0x07, 0xf0, 0x87, 0xc7, 0xfe, 0x3c, 0x30, 0xf0, 0x21, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xe0, 0x1f, 0x00, 0xf0, 0x0f, 0xe0, 0x7e, 0x3c, 0x30, 0xf0, 0x01, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xe0, 0x1f, 0x00, 0xf0, 0x0f, 0xe0, 0x7e, 0x3c, 0x30, 0xf0, 0x01, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xe0, 0x1f, 0x07, 0xf0, 0x0f, 0xfe, 0x3e, 0x3c, 0x30, 0xf0, 0x81, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xe0, 0x3f, 0x07, 0xf0, 0x0f, 0xfe, 0x3e, 0x3e, 0x31, 0xf1, 0xc1, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xf8, 0x7f, 0x00, 0xf0, 0x87, 0xc0, 0x7e, 0x3f, 0x03, 0xf1, 0xe1, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xf8, 0x7f, 0x80, 0xf1, 0xc7, 0xc0, 0x7e, 0x3f, 0x03, 0xf1, 0xe1, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0
+};
+
+const unsigned char bm_def [] PROGMEM = {
+0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+0xcf, 0x70, 0x78, 0x0e, 0x0c, 0x03, 0x07, 0x80, 0x60, 0xff, 0x03, 0x01, 0xff, 0xff, 0xff, 0xc0,
+0xcf, 0x20, 0x78, 0x0e, 0x0c, 0x07, 0x07, 0x80, 0xe0, 0xff, 0x87, 0x01, 0xff, 0xff, 0xff, 0xc0,
+0xcf, 0x23, 0x98, 0x7f, 0x1c, 0xff, 0x39, 0x9f, 0xe7, 0x3f, 0xcf, 0x39, 0xff, 0xff, 0xff, 0xc0,
+0xcf, 0x27, 0x98, 0x7f, 0x3c, 0xff, 0x39, 0x8f, 0xe7, 0x3f, 0xcf, 0x39, 0xff, 0xff, 0xff, 0xc0,
+0xcf, 0x27, 0x9f, 0x8f, 0x3c, 0xc3, 0x39, 0x81, 0xe7, 0x3f, 0xcf, 0x39, 0xff, 0xff, 0xff, 0xc0,
+0xce, 0x27, 0x9f, 0x07, 0x1c, 0x03, 0x39, 0x80, 0xe7, 0x3f, 0x87, 0x39, 0xff, 0xff, 0xff, 0xc0,
+0xc0, 0x27, 0x98, 0x06, 0x0c, 0x03, 0x39, 0x80, 0x60, 0x33, 0x03, 0x01, 0xff, 0xff, 0xff, 0xc0,
+0xe0, 0x77, 0xfc, 0x0e, 0x1e, 0x07, 0x7d, 0xc0, 0xe0, 0x3f, 0x87, 0x01, 0xff, 0xff, 0xff, 0xc0,
+0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x03, 0xff, 0xf0, 0x7c, 0x07, 0x83, 0xff, 0xc0, 0xff, 0xfc, 0x0f, 0xff, 0xe0, 0x00, 0x00, 0x00,
+0x03, 0xff, 0xf8, 0x7e, 0x0f, 0xc3, 0xff, 0xe1, 0xff, 0xfc, 0x0f, 0xff, 0xe0, 0x00, 0x00, 0x00,
+0x03, 0xff, 0xfc, 0x7f, 0x0f, 0xcf, 0xff, 0xf1, 0xff, 0xfc, 0x3f, 0xff, 0xe0, 0x00, 0x00, 0x00,
+0x03, 0xff, 0xfe, 0x7f, 0x8f, 0xcf, 0xff, 0xf9, 0xff, 0xfc, 0x3f, 0xff, 0xe0, 0x00, 0x00, 0x00,
+0x03, 0xf0, 0x7e, 0x7f, 0xff, 0xcf, 0xc1, 0xf9, 0xf8, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x03, 0xf0, 0x7e, 0x7f, 0xff, 0xcf, 0xc1, 0xf9, 0xf8, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x03, 0xff, 0xf8, 0x7f, 0xff, 0xcf, 0xc1, 0xf9, 0xf8, 0x3f, 0x3f, 0xe0, 0x00, 0x00, 0x00, 0x00,
+0x03, 0xff, 0xf8, 0x7f, 0xff, 0xcf, 0xc1, 0xf9, 0xf8, 0x3f, 0x3f, 0xe0, 0x00, 0x00, 0x00, 0x00,
+0x03, 0xff, 0xf8, 0x7e, 0xff, 0xcf, 0xc1, 0xf9, 0xf8, 0x3f, 0x3f, 0xe0, 0x00, 0x00, 0x00, 0x00,
+0x03, 0xff, 0xf8, 0x7e, 0x7f, 0xcf, 0xc1, 0xf9, 0xf8, 0x3f, 0x3f, 0xe0, 0x00, 0x00, 0x00, 0x00,
+0x03, 0xf0, 0x7e, 0x7e, 0x3f, 0xcf, 0xc1, 0xf9, 0xf8, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x03, 0xe0, 0x7e, 0x7e, 0x1f, 0xcf, 0xc1, 0xf9, 0xf8, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x03, 0xe0, 0x7e, 0x7e, 0x0f, 0xcf, 0xff, 0xf9, 0xff, 0xfc, 0x3f, 0xff, 0xe0, 0x00, 0x00, 0x00,
+0x03, 0xe0, 0x7e, 0x7e, 0x0f, 0xcf, 0xff, 0xf1, 0xff, 0xfc, 0x1f, 0xff, 0xe0, 0x00, 0x00, 0x00,
+0x03, 0xe0, 0x7e, 0x7e, 0x0f, 0xc3, 0xff, 0xe1, 0xff, 0xf0, 0x0f, 0xff, 0xe0, 0x00, 0x00, 0x00,
+0x03, 0xe0, 0x3c, 0x3c, 0x07, 0x83, 0xff, 0xc0, 0xff, 0xf0, 0x07, 0xff, 0xc0, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x33, 0x26, 0x66, 0x66, 0xcc, 0xcc, 0xd9, 0x99, 0x99, 0x33, 0x33, 0x26, 0x66, 0x66, 0xcc, 0x00,
+0x0c, 0x89, 0x99, 0x99, 0x33, 0x33, 0x26, 0x66, 0x64, 0x4c, 0xcc, 0xc9, 0x99, 0x99, 0x32, 0x00,
+0x0c, 0x89, 0x99, 0x99, 0x33, 0x33, 0x26, 0x66, 0x64, 0x4c, 0xcc, 0xc9, 0x99, 0x99, 0x33, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x07, 0x00, 0x70, 0x20, 0x20, 0x81, 0x04, 0x10, 0x40, 0x82, 0x0f, 0x04, 0x04, 0x00,
+0x00, 0x00, 0x07, 0x80, 0xf0, 0x30, 0x61, 0x81, 0x86, 0x30, 0xc0, 0xc6, 0x1f, 0x86, 0x0c, 0x00,
+0x00, 0x00, 0x18, 0x41, 0x0c, 0x38, 0xe1, 0xe7, 0x86, 0x30, 0xf0, 0xc6, 0x06, 0x01, 0x10, 0x00,
+0x00, 0x00, 0x18, 0x41, 0x0c, 0x3c, 0xe1, 0xe7, 0x86, 0x30, 0xf0, 0xc6, 0x06, 0x01, 0x30, 0x00,
+0x00, 0x00, 0x18, 0x01, 0x0c, 0x33, 0x61, 0x99, 0x86, 0x30, 0xc8, 0xc6, 0x06, 0x00, 0xc0, 0x00,
+0x00, 0x00, 0x18, 0x01, 0x0c, 0x32, 0x21, 0x89, 0x86, 0x30, 0xcd, 0xc6, 0x06, 0x00, 0xc0, 0x00,
+0x00, 0x00, 0x18, 0x41, 0x0c, 0x30, 0x21, 0x81, 0x86, 0x30, 0xc3, 0xc6, 0x06, 0x00, 0xc0, 0x00,
+0x00, 0x00, 0x08, 0x41, 0x0c, 0x30, 0x21, 0x81, 0x86, 0x30, 0xc3, 0xc6, 0x06, 0x00, 0xc0, 0x00,
+0x00, 0x00, 0x07, 0x80, 0xf0, 0x30, 0x21, 0x81, 0x81, 0xc0, 0xc0, 0xc6, 0x06, 0x00, 0xc0, 0x00,
+0x00, 0x00, 0x03, 0x00, 0x70, 0x00, 0x20, 0x80, 0x01, 0xc0, 0x00, 0x82, 0x00, 0x00, 0x40, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x0f, 0xc3, 0x1f, 0x81, 0x81, 0x0c, 0x0c, 0x0e, 0x07, 0xe0, 0xfc, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x0e, 0x03, 0x1c, 0x01, 0xc3, 0x0c, 0x0c, 0x00, 0x07, 0x00, 0xe0, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x0c, 0x03, 0x18, 0x61, 0xe7, 0x0c, 0xcc, 0x31, 0x86, 0x18, 0xc0, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x0f, 0x83, 0x1f, 0x81, 0xdb, 0x0c, 0xcc, 0x3f, 0x87, 0xe0, 0xf8, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x0f, 0xc3, 0x1f, 0x81, 0x99, 0x0c, 0xcc, 0x3f, 0x87, 0xe0, 0xfc, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x0e, 0x03, 0x1d, 0x81, 0x81, 0x0c, 0xcc, 0x31, 0x87, 0xe0, 0xe0, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x0c, 0x03, 0x19, 0x81, 0x81, 0x0c, 0xcc, 0x21, 0x86, 0x60, 0xc0, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x0c, 0x03, 0x18, 0x61, 0x81, 0x03, 0x30, 0x21, 0x86, 0x10, 0xfc, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x0c, 0x02, 0x08, 0x61, 0x81, 0x03, 0x30, 0x20, 0x86, 0x10, 0x7c, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+const unsigned char bm_def_lc [] PROGMEM = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xcf, 0x70, 0x78, 0x0e, 0x0c, 0x03, 0x07, 0xc0, 0x60, 0xff, 0x03, 0x01, 0xff, 0xff, 0xff, 0xc0,
+   0xcf, 0x20, 0x78, 0x0e, 0x0c, 0x07, 0x07, 0x80, 0xe0, 0x7f, 0x87, 0x01, 0xff, 0xff, 0xff, 0xc0,
+   0xcf, 0x23, 0x98, 0x7f, 0x1c, 0xff, 0x39, 0x9f, 0xe7, 0x3f, 0xcf, 0x39, 0xff, 0xff, 0xff, 0xc0,
+   0xcf, 0x27, 0x98, 0x7f, 0x3c, 0xff, 0x39, 0x8f, 0xe7, 0x3f, 0xcf, 0x39, 0xff, 0xff, 0xff, 0xc0,
+   0xcf, 0x27, 0x9f, 0x8f, 0x3c, 0xc3, 0x39, 0x81, 0xe7, 0x3f, 0xcf, 0x39, 0xff, 0xff, 0xff, 0xc0,
+   0xce, 0x27, 0x9f, 0x07, 0x1c, 0x03, 0x39, 0x80, 0xe7, 0x3f, 0x8f, 0x39, 0xff, 0xff, 0xff, 0xc0,
+   0xc0, 0x27, 0x98, 0x06, 0x0c, 0x03, 0x39, 0x80, 0x60, 0x33, 0x03, 0x01, 0xff, 0xff, 0xff, 0xc0,
+   0xe0, 0x77, 0xfc, 0x0e, 0x0e, 0x07, 0x7d, 0xc0, 0xf0, 0x3f, 0x87, 0x81, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x01, 0xff, 0xf0, 0x3c, 0x07, 0x81, 0xff, 0xc0, 0xff, 0xf8, 0x07, 0xff, 0xc0, 0x00, 0x00, 0x00,
+   0x03, 0xff, 0xf8, 0x7e, 0x0f, 0xc3, 0xff, 0xe1, 0xff, 0xfc, 0x0f, 0xff, 0xe0, 0x00, 0x00, 0x00,
+   0x03, 0xff, 0xfc, 0x7f, 0x0f, 0xcf, 0xff, 0xf9, 0xff, 0xfc, 0x1f, 0xff, 0xe0, 0x00, 0x00, 0x00,
+   0x03, 0xff, 0xfe, 0x7f, 0x8f, 0xcf, 0xff, 0xf9, 0xff, 0xfc, 0x3f, 0xff, 0xe0, 0x00, 0x00, 0x00,
+   0x03, 0xf0, 0x7e, 0x7f, 0xff, 0xcf, 0xc1, 0xf9, 0xf8, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x03, 0xf0, 0x7e, 0x7f, 0xff, 0xcf, 0xc1, 0xf9, 0xf8, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x03, 0xff, 0xf8, 0x7f, 0xff, 0xcf, 0xc1, 0xf9, 0xf8, 0x3f, 0x3f, 0xe0, 0x00, 0x00, 0x00, 0x00,
+   0x03, 0xff, 0xf8, 0x7f, 0xff, 0xcf, 0xc1, 0xf9, 0xf8, 0x3f, 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x00,
+   0x03, 0xff, 0xf8, 0x7e, 0xff, 0xcf, 0xc1, 0xf9, 0xf8, 0x3f, 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x00,
+   0x03, 0xff, 0xf8, 0x7e, 0x7f, 0xcf, 0xc1, 0xf9, 0xf8, 0x3f, 0x3f, 0xe0, 0x00, 0x00, 0x00, 0x00,
+   0x03, 0xf0, 0x7e, 0x7e, 0x3f, 0xcf, 0xc1, 0xf9, 0xf8, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x03, 0xe0, 0x7e, 0x7e, 0x1f, 0xcf, 0xc1, 0xf9, 0xf8, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x03, 0xe0, 0x7e, 0x7e, 0x0f, 0xcf, 0xff, 0xf9, 0xff, 0xfc, 0x3f, 0xff, 0xe0, 0x00, 0x00, 0x00,
+   0x03, 0xe0, 0x7e, 0x7e, 0x0f, 0xcf, 0xff, 0xf9, 0xff, 0xfc, 0x1f, 0xff, 0xe0, 0x00, 0x00, 0x00,
+   0x03, 0xe0, 0x7e, 0x7e, 0x0f, 0xc3, 0xff, 0xe1, 0xff, 0xf0, 0x0f, 0xff, 0xe0, 0x00, 0x00, 0x00,
+   0x03, 0xe0, 0x3c, 0x7c, 0x07, 0x83, 0xff, 0xe0, 0xff, 0xf0, 0x0f, 0xff, 0xe0, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x33, 0x26, 0x66, 0x66, 0x4c, 0xcc, 0xc9, 0x99, 0x99, 0x33, 0x33, 0x32, 0x66, 0x66, 0x4c, 0x00,
+   0x0c, 0xc9, 0x99, 0x99, 0x33, 0x33, 0x26, 0x66, 0x66, 0x4c, 0xcc, 0xc9, 0x99, 0x99, 0x32, 0x00,
+   0x0c, 0xc9, 0x99, 0x99, 0x33, 0x33, 0x26, 0x66, 0x66, 0x4c, 0xcc, 0xc9, 0x99, 0x99, 0x33, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x03, 0x81, 0xf0, 0x1f, 0x08, 0x08, 0x01, 0xc0, 0x1c, 0x08, 0x08, 0x20, 0x40, 0x7c, 0x00,
+   0x00, 0x07, 0x81, 0xf8, 0x3f, 0x0c, 0x08, 0x01, 0xe0, 0x3c, 0x0c, 0x18, 0x60, 0x60, 0x7c, 0x00,
+   0x00, 0x08, 0x61, 0x84, 0x38, 0x0e, 0x08, 0x06, 0x10, 0x43, 0x0e, 0x38, 0x79, 0xe1, 0x00, 0x00,
+   0x00, 0x08, 0x61, 0x84, 0x38, 0x0f, 0x08, 0x06, 0x10, 0x43, 0x0f, 0x38, 0x79, 0xe1, 0x00, 0x00,
+   0x00, 0x08, 0x61, 0xf8, 0x3f, 0x0c, 0x88, 0x06, 0x00, 0x43, 0x0c, 0xd8, 0x66, 0x60, 0x70, 0x00,
+   0x00, 0x08, 0x61, 0xf0, 0x3f, 0x0c, 0xd8, 0x06, 0x00, 0x43, 0x0c, 0x88, 0x66, 0x60, 0x70, 0x00,
+   0x00, 0x08, 0x61, 0x80, 0x30, 0x0c, 0x38, 0x06, 0x18, 0x43, 0x0c, 0x08, 0x60, 0x60, 0x0c, 0x00,
+   0x00, 0x08, 0x61, 0x80, 0x38, 0x0c, 0x38, 0x06, 0x10, 0x43, 0x0c, 0x08, 0x60, 0x60, 0x0c, 0x00,
+   0x00, 0x07, 0x81, 0x80, 0x3f, 0x0c, 0x18, 0x01, 0xe0, 0x3c, 0x0c, 0x08, 0x60, 0x61, 0xf0, 0x00,
+   0x00, 0x03, 0x81, 0x00, 0x1f, 0x08, 0x08, 0x00, 0xc0, 0x1c, 0x08, 0x08, 0x20, 0x41, 0xf0, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xc6, 0x06, 0x07, 0xc3, 0xf0, 0xf8, 0x60, 0x60, 0x7c, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe0, 0xe0, 0x70, 0xe0, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x01, 0x98, 0x18, 0x00, 0xc0, 0xc0, 0x79, 0xe1, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x70, 0xe0, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x60, 0x07, 0x00, 0xc0, 0xf8, 0x66, 0x60, 0x70, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x00, 0x40, 0xc0, 0xc0, 0x60, 0x60, 0x08, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x60, 0x00, 0x40, 0xc0, 0xc0, 0x60, 0x60, 0x0c, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x60, 0x1f, 0x00, 0xc0, 0xf8, 0x60, 0x61, 0xf0, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x60, 0x1f, 0x00, 0xc0, 0xf8, 0x60, 0x61, 0xf0, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
 const unsigned char bm_hwok [] PROGMEM = {
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xf2, 0x71, 0xc3, 0x87, 0x39, 0xc7, 0x0e, 0x1f, 0xf2, 0x64, 0xc9, 0x93, 0x29, 0x93, 0x26, 0x7f, 
-   0xf0, 0x60, 0xc3, 0x93, 0x29, 0x83, 0x0e, 0x1f, 0xf2, 0x64, 0xc3, 0x93, 0x01, 0x93, 0x0e, 0x7f, 
-   0xf2, 0x64, 0xc9, 0x87, 0x93, 0x93, 0x26, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x33, 0x30, 0xff, 0x8e, 0x4f, 0xff, 
-   0xff, 0xf3, 0x13, 0x39, 0xff, 0x26, 0x1f, 0xff, 0xff, 0xf3, 0x03, 0x39, 0xff, 0x26, 0x3f, 0xff, 
-   0xff, 0xf3, 0x23, 0x39, 0xff, 0x26, 0x1f, 0xff, 0xff, 0xf3, 0x33, 0x39, 0xff, 0x8e, 0x4f, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xc3, 0x0e, 0x67, 0xf8, 0x70, 0xe3, 0x87, 0x33, 0xe7, 0x27, 0x0f, 0xf9, 0x33, 0xc9, 0x93, 0x87, 
-   0xe7, 0x0f, 0x9f, 0xf8, 0x70, 0xc1, 0x93, 0xcf, 0xe7, 0x0f, 0x0f, 0xf8, 0x73, 0xc9, 0x93, 0xcf, 
-   0xe7, 0x26, 0x67, 0xf9, 0x30, 0xc9, 0x87, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0x1c, 0x7e, 0x0f, 0xe0, 0x3f, 0x01, 0xf8, 0x7e, 0x3f, 0x03, 0xf0, 0x1f, 0x80, 0xff, 0xc0,
+   0xff, 0x08, 0x7e, 0x07, 0xc0, 0x3f, 0x00, 0xf8, 0x7e, 0x3f, 0x03, 0xf0, 0x1f, 0x80, 0xff, 0xc0,
+   0xff, 0x08, 0x78, 0x43, 0xc3, 0x0f, 0x08, 0x78, 0x6e, 0x3e, 0x31, 0xf0, 0x87, 0x87, 0xff, 0xc0,
+   0xff, 0x08, 0x78, 0x41, 0xc3, 0x0f, 0x08, 0x78, 0x66, 0x3c, 0x30, 0xf0, 0x87, 0x87, 0xff, 0xc0,
+   0xff, 0x00, 0x78, 0x01, 0xc0, 0x3f, 0x08, 0x78, 0x66, 0x3c, 0x00, 0xf0, 0x1f, 0x80, 0xff, 0xc0,
+   0xff, 0x00, 0x78, 0x01, 0xc0, 0x3f, 0x08, 0x78, 0x44, 0x3c, 0x00, 0xf0, 0x1f, 0x80, 0xff, 0xc0,
+   0xff, 0x08, 0x78, 0x41, 0xc0, 0x3f, 0x08, 0x78, 0x00, 0x3c, 0x30, 0xf0, 0x1f, 0x87, 0xff, 0xc0,
+   0xff, 0x08, 0x78, 0x61, 0xc0, 0x3f, 0x08, 0x78, 0x00, 0x3c, 0x30, 0xf0, 0x1f, 0x87, 0xff, 0xc0,
+   0xff, 0x08, 0x78, 0x61, 0xc3, 0x0f, 0x00, 0xfe, 0x10, 0x7c, 0x30, 0xf0, 0x87, 0x80, 0xff, 0xc0,
+   0xff, 0x1c, 0x78, 0x63, 0xe3, 0x0f, 0x01, 0xfe, 0x38, 0xfe, 0x31, 0xf1, 0xc7, 0x80, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x3e, 0x3c, 0x3c, 0x7c, 0x07, 0xff, 0xfe, 0x0f, 0xc7, 0x1f, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x1e, 0x1c, 0x3c, 0x3c, 0x07, 0xff, 0xfc, 0x0f, 0xc2, 0x1f, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x1e, 0x0c, 0x3c, 0x3e, 0x1f, 0xff, 0xf8, 0xc3, 0xc0, 0x3f, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x1e, 0x04, 0x3c, 0x3e, 0x1f, 0xff, 0xf0, 0xc3, 0xc0, 0x7f, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x1e, 0x00, 0x3c, 0x3e, 0x1f, 0xff, 0xf0, 0xc3, 0xc0, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x1e, 0x00, 0x3c, 0x3e, 0x1f, 0xff, 0xf0, 0xc3, 0xc0, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x1e, 0x10, 0x3c, 0x3e, 0x1f, 0xff, 0xf0, 0xc3, 0xc0, 0x7f, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x1e, 0x38, 0x3c, 0x3e, 0x1f, 0xff, 0xf8, 0xc3, 0xc0, 0x3f, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x1e, 0x3c, 0x3c, 0x3e, 0x1f, 0xff, 0xfc, 0x0f, 0xc2, 0x1f, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x3e, 0x3c, 0x3c, 0x7f, 0x1f, 0xff, 0xfe, 0x0f, 0xc7, 0x1f, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xf0, 0x1f, 0x01, 0xf8, 0xf8, 0xff, 0xff, 0x01, 0xf8, 0x0f, 0xc1, 0xfc, 0x07, 0xe3, 0xe3, 0xc0,
+   0xf0, 0x1e, 0x01, 0xf8, 0x70, 0xff, 0xfe, 0x01, 0xf8, 0x0f, 0xc0, 0xf8, 0x07, 0xe1, 0xc3, 0xc0,
+   0xf8, 0x3e, 0x18, 0x7c, 0x03, 0xff, 0xfe, 0x18, 0x78, 0x7f, 0x0c, 0x78, 0x21, 0xf0, 0x07, 0xc0,
+   0xfc, 0x3e, 0x18, 0x7e, 0x03, 0xff, 0xfe, 0x18, 0x78, 0x7f, 0x0c, 0x38, 0x61, 0xf8, 0x0f, 0xc0,
+   0xfc, 0x3e, 0x01, 0xff, 0x07, 0xff, 0xfe, 0x01, 0xf8, 0x0f, 0x00, 0x38, 0x61, 0xfc, 0x1f, 0xc0,
+   0xfc, 0x3e, 0x01, 0xff, 0x07, 0xff, 0xfe, 0x01, 0xf8, 0x0f, 0x00, 0x38, 0x61, 0xfe, 0x3f, 0xc0,
+   0xfc, 0x3e, 0x01, 0xfe, 0x03, 0xff, 0xfe, 0x01, 0xf8, 0x7f, 0x0c, 0x38, 0x61, 0xfe, 0x3f, 0xc0,
+   0xfc, 0x3e, 0x01, 0xfc, 0x03, 0xff, 0xfe, 0x01, 0xf8, 0x7f, 0x0c, 0x38, 0x21, 0xfe, 0x3f, 0xc0,
+   0xfc, 0x3e, 0x18, 0x78, 0x70, 0xff, 0xfe, 0x18, 0x78, 0x0f, 0x0c, 0x38, 0x07, 0xfe, 0x3f, 0xc0,
+   0xfc, 0x7f, 0x18, 0x78, 0xf8, 0xff, 0xff, 0x18, 0x78, 0x0f, 0x0c, 0x7c, 0x07, 0xfe, 0x3f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0
 };
 
-const unsigned char bm_nfr [] PROGMEM = {
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xfc, 0x38, 0x66, 0x67, 0x1c, 0x3f, 0xff, 0xff, 0xfc, 0x99, 0xe6, 0x66, 0x4c, 0xff, 
-   0xff, 0x9f, 0xfc, 0x98, 0x70, 0xe6, 0x7c, 0x3f, 0xff, 0x6f, 0xfc, 0x99, 0xf0, 0xe6, 0x4c, 0xff, 
-   0xff, 0x6f, 0xfc, 0x38, 0x79, 0xe7, 0x1c, 0x3f, 0xfe, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xfe, 0x97, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x9b, 0xe6, 0x71, 0xc3, 0xe1, 0xc7, 0x0f, 
-   0xfd, 0x9b, 0xe2, 0x64, 0xe7, 0xe7, 0x93, 0x27, 0xfb, 0x9d, 0xe0, 0x64, 0xe7, 0xe1, 0x93, 0x0f, 
-   0xfb, 0x9d, 0xe4, 0x64, 0xe7, 0xe7, 0x93, 0x0f, 0xf7, 0xfe, 0xe6, 0x71, 0xe7, 0xe7, 0xc7, 0x27, 
-   0xf7, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x9f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xef, 0xff, 0x7f, 0xf8, 0x71, 0xcf, 0x0f, 0xff, 0xf0, 0x00, 0xff, 0xf3, 0xe4, 0xcf, 0x3f, 0xff, 
-   0xff, 0xff, 0xff, 0xf8, 0xe0, 0xcf, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x64, 0xcf, 0x3f, 0xff, 
-   0xff, 0xff, 0xff, 0xf0, 0xe4, 0xc3, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+const unsigned char bm_console_active [] PROGMEM = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xe0, 0x7f, 0x83, 0xf1, 0xf1, 0xf8, 0x0f, 0xe0, 0xfc, 0x7f, 0xc0, 0x7f, 0xff, 0xc0,
+   0xff, 0xff, 0xe0, 0x7f, 0x03, 0xf0, 0xe1, 0xf8, 0x0f, 0xc0, 0xfc, 0x3f, 0x80, 0x7f, 0xff, 0xc0,
+   0xff, 0xff, 0xc6, 0x3e, 0x10, 0xf0, 0x61, 0xe1, 0xff, 0x84, 0x3c, 0x3f, 0x87, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0x86, 0x3e, 0x30, 0xf0, 0x21, 0xe1, 0xff, 0x0c, 0x3c, 0x3f, 0x87, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0x87, 0xfe, 0x30, 0xf0, 0x01, 0xf8, 0x3f, 0x0c, 0x3c, 0x3f, 0x80, 0x7f, 0xff, 0xc0,
+   0xff, 0xff, 0x87, 0xfe, 0x30, 0xf0, 0x01, 0xf8, 0x1f, 0x0c, 0x3c, 0x3f, 0x80, 0x7f, 0xff, 0xc0,
+   0xff, 0xff, 0x86, 0x3e, 0x30, 0xf0, 0x81, 0xff, 0x8f, 0x0c, 0x3c, 0x3f, 0x87, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xc6, 0x3e, 0x10, 0xf0, 0xc1, 0xff, 0x8f, 0x84, 0x3c, 0x3f, 0x87, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xe0, 0x7f, 0x03, 0xf0, 0xe1, 0xe0, 0x1f, 0xc0, 0xfc, 0x07, 0x80, 0x7f, 0xff, 0xc0,
+   0xff, 0xff, 0xe0, 0x7f, 0x83, 0xf1, 0xf1, 0xe0, 0x3f, 0xe0, 0xfc, 0x07, 0xc0, 0x7f, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xf8, 0x3f, 0xc1, 0xfc, 0x07, 0x8f, 0x8f, 0x0f, 0x01, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xf0, 0x1f, 0xc0, 0xfc, 0x07, 0x87, 0x0f, 0x0f, 0x01, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xe1, 0x0f, 0x0c, 0x7e, 0x1f, 0x87, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xe1, 0x0f, 0x0c, 0x7e, 0x1f, 0x87, 0x87, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xe0, 0x0f, 0x0f, 0xfe, 0x1f, 0x87, 0xc0, 0x3f, 0x01, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xe0, 0x0f, 0x0f, 0xfe, 0x1f, 0x87, 0xc0, 0x3f, 0x01, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xe1, 0x0f, 0x0c, 0x7e, 0x1f, 0x87, 0xc0, 0x3f, 0x0f, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xe1, 0x0f, 0x0c, 0x7e, 0x1f, 0x87, 0xe0, 0x3f, 0x0f, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xe1, 0x0f, 0xc0, 0xfe, 0x1f, 0x87, 0xf0, 0xff, 0x01, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xe3, 0x8f, 0xc1, 0xff, 0x1f, 0x8f, 0xf8, 0xff, 0x01, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0
 };
 
-const unsigned char bm_online [] PROGMEM = {
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0x1c, 0x66, 0x61, 0x8c, 0x24, 0x90, 0x87, 
-   0xe6, 0x49, 0x22, 0x4f, 0x24, 0xe4, 0x93, 0x93, 0xe6, 0x18, 0x20, 0x63, 0x3c, 0x26, 0x30, 0x87, 
-   0xe6, 0x19, 0x24, 0x79, 0x24, 0xe6, 0x33, 0x87, 0xe6, 0x49, 0x26, 0x43, 0x8c, 0x27, 0x70, 0x93, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xe6, 0x73, 0xe7, 0x33, 0x87, 0xff, 
-   0xff, 0xe4, 0xe2, 0x73, 0xe7, 0x13, 0x9f, 0xff, 0xff, 0xe4, 0xe0, 0x73, 0xe7, 0x03, 0x87, 0xff, 
-   0xff, 0xe4, 0xe4, 0x73, 0xe7, 0x23, 0x9f, 0xff, 0xff, 0xf1, 0xe6, 0x70, 0xe7, 0x33, 0x87, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+const unsigned char bm_checks [] PROGMEM = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xf8, 0x0f, 0x8e, 0x3c, 0x7f, 0x07, 0xe0, 0x3f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf8, 0x0f, 0x0c, 0x3c, 0x3e, 0x07, 0xe0, 0x3f, 0xc0,
+   0xfc, 0x7c, 0x00, 0x00, 0xff, 0xff, 0x08, 0x78, 0x7f, 0x0c, 0x3c, 0x3c, 0x21, 0xe1, 0xff, 0xc0,
+   0xfc, 0x38, 0x00, 0x00, 0x7f, 0xff, 0x08, 0x78, 0x7f, 0x84, 0x3c, 0x38, 0x61, 0xe1, 0xff, 0xc0,
+   0xfc, 0x38, 0x00, 0x00, 0x7f, 0xff, 0x08, 0x78, 0x0f, 0xc0, 0xfc, 0x38, 0x7f, 0xe0, 0x3f, 0xc0,
+   0xfc, 0x7c, 0x00, 0x00, 0xff, 0xff, 0x08, 0x78, 0x0f, 0xc0, 0xfc, 0x38, 0x7f, 0xe0, 0x3f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x08, 0x78, 0x7f, 0xc0, 0xfc, 0x38, 0x61, 0xe1, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x08, 0x78, 0x7f, 0xe0, 0xfc, 0x3c, 0x21, 0xe1, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf8, 0x0f, 0xf1, 0xfc, 0x3e, 0x07, 0xe0, 0x3f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xf8, 0x0f, 0xfb, 0xfc, 0x7f, 0x07, 0xe0, 0x3f, 0xc0,
+   0xfc, 0x7c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xfc, 0x38, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xfc, 0x38, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xfc, 0x7c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x7f, 0x18, 0x78, 0x0f, 0xc1, 0xfc, 0x61, 0xf8, 0x0f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3e, 0x18, 0x78, 0x0f, 0xc0, 0xf8, 0x21, 0xf0, 0x0f, 0xc0,
+   0xfc, 0x7c, 0x00, 0x00, 0xff, 0xc2, 0x1e, 0x18, 0x78, 0x7f, 0x0c, 0x78, 0x07, 0xe1, 0xff, 0xc0,
+   0xfc, 0x38, 0x00, 0x00, 0x7f, 0xc3, 0x1e, 0x18, 0x78, 0x7f, 0x0c, 0x78, 0x07, 0xe1, 0xff, 0xc0,
+   0xfc, 0x38, 0x00, 0x00, 0x7f, 0xc3, 0xfe, 0x00, 0x78, 0x0f, 0x0f, 0xf8, 0x1f, 0xf0, 0x3f, 0xc0,
+   0xfc, 0x7c, 0x00, 0x00, 0xff, 0xc3, 0xfe, 0x00, 0x78, 0x0f, 0x0f, 0xf8, 0x1f, 0xf8, 0x1f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x1e, 0x18, 0x78, 0x7f, 0x0c, 0x78, 0x07, 0xff, 0x0f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0x1e, 0x18, 0x78, 0x7f, 0x0c, 0x78, 0x07, 0xff, 0x0f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3e, 0x18, 0x78, 0x0f, 0xc0, 0xf8, 0x21, 0xe0, 0x1f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x7f, 0x18, 0x78, 0x0f, 0xc1, 0xfc, 0x61, 0xe0, 0x3f, 0xc0,
+   0xfc, 0x7c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xfc, 0x38, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xfc, 0x38, 0x00, 0x00, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xfc, 0x7c, 0x00, 0x00, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0x8f, 0x87, 0xc0, 0x7f, 0xc1, 0xfe, 0x03, 0xf0, 0x1f, 0x01, 0xe0, 0x3f, 0xc0,
+   0xff, 0xff, 0xff, 0x87, 0x0f, 0xc0, 0x3f, 0x81, 0xfc, 0x03, 0xf0, 0x1e, 0x01, 0xe0, 0x1f, 0xc0,
+   0xfc, 0x7c, 0x01, 0xc6, 0x1f, 0xc2, 0x1f, 0x18, 0x78, 0x7f, 0xc3, 0xfe, 0x1f, 0xe1, 0x0f, 0xc0,
+   0xfc, 0x38, 0x01, 0xe4, 0x3f, 0xc2, 0x1e, 0x18, 0x78, 0x7f, 0xc3, 0xfe, 0x1f, 0xe1, 0x0f, 0xc0,
+   0xfc, 0x38, 0x00, 0x60, 0x7f, 0xc0, 0x3e, 0x00, 0x7c, 0x0f, 0xf0, 0x7e, 0x01, 0xe1, 0x0f, 0xc0,
+   0xfc, 0x7c, 0x00, 0x60, 0xff, 0xc0, 0x7e, 0x00, 0x7e, 0x07, 0xf0, 0x3e, 0x01, 0xe1, 0x0f, 0xc0,
+   0xff, 0xff, 0xff, 0xf1, 0xff, 0xc3, 0xfe, 0x18, 0x7f, 0xc3, 0xfe, 0x1e, 0x1f, 0xe1, 0x0f, 0xc0,
+   0xff, 0xff, 0xff, 0xfb, 0xff, 0xc3, 0xfe, 0x18, 0x7f, 0xc3, 0xfe, 0x1e, 0x1f, 0xe1, 0x0f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xfe, 0x18, 0x78, 0x07, 0xc0, 0x3e, 0x01, 0xe0, 0x1f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xff, 0x18, 0x78, 0x0f, 0xc0, 0x7f, 0x01, 0xe0, 0x3f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0
+};
+
+const unsigned char bm_frame [] PROGMEM = {
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x0f, 0xff, 0xff, 0xff, 0xfc, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0x00,
+   0x0f, 0xff, 0xff, 0xff, 0xfc, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0xc0, 0x00, 0x00, 0xc3, 0xfc, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0xc0, 0x00, 0x00, 0xc3, 0xfc, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0f, 0xff, 0xff, 0xff, 0xfc, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0x00,
+   0x0f, 0xff, 0xff, 0xff, 0xfc, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc0, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc0, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x0f, 0xff, 0xff, 0xff, 0xfc, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0x00,
+   0x0f, 0xff, 0xff, 0xff, 0xfc, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xc3, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0xc0, 0x00, 0x00, 0xc3, 0xfc, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0xc0, 0x00, 0x00, 0xc3, 0xfc, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x0f, 0xff, 0xff, 0xff, 0xfc, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0x00,
+   0x0f, 0xff, 0xff, 0xff, 0xfc, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
+   0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x66, 0x66, 0x66, 0x19, 0x99, 0x99, 0x98, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x66, 0x66, 0x66, 0x19, 0x99, 0x99, 0x98, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+const unsigned char bm_updating [] PROGMEM = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0x1f, 0xff, 0xf3, 0xf0, 0x77, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xf8, 0x1f, 0xff, 0xf3, 0xf0, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xf8, 0x9f, 0xff, 0xf3, 0xf3, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xf8, 0x9f, 0xff, 0xf3, 0xf2, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xf8, 0x1f, 0xff, 0xf3, 0xf0, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfc, 0x1f, 0xff, 0xfb, 0xf0, 0x77, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x0c, 0xff, 0xd9, 0x81, 0xff, 0xf3, 0x03, 0x07, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x0c, 0xff, 0xc9, 0x81, 0xff, 0xf3, 0x03, 0x03, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x4c, 0xff, 0xc9, 0x99, 0xff, 0xf3, 0x33, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x0c, 0xff, 0xc9, 0x81, 0xff, 0xf3, 0x03, 0x03, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x0c, 0xff, 0xc9, 0x81, 0xff, 0xf3, 0x03, 0x03, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x1f, 0xff, 0xff, 0xc3, 0xff, 0xff, 0x87, 0x87, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0xe1, 0xff, 0xe3, 0xc3, 0xfc, 0x3f, 0xf8, 0x77, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x40, 0xfc, 0xc1, 0x81, 0xf8, 0x33, 0x30, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x40, 0xfc, 0xc9, 0x81, 0xf9, 0x33, 0x30, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x4c, 0xfc, 0xc9, 0x99, 0xf9, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x40, 0xfc, 0xc1, 0x81, 0xf8, 0x33, 0x30, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0xc0, 0xfc, 0xc1, 0x81, 0xf8, 0x33, 0x30, 0x37, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0xe0, 0xe1, 0xdc, 0x1f, 0xb8, 0x3b, 0xf0, 0x77, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x40, 0xc0, 0xc8, 0x19, 0x98, 0x33, 0x30, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x44, 0xc8, 0xc8, 0x99, 0x99, 0x33, 0x32, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x4c, 0xcc, 0xc8, 0x99, 0x99, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x40, 0xc0, 0xc8, 0x19, 0x98, 0x33, 0x30, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0xe0, 0xc0, 0xdc, 0x19, 0x98, 0x33, 0x30, 0x77, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x0e, 0xc1, 0xdd, 0xc1, 0x83, 0xbb, 0x87, 0x07, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x0c, 0xc0, 0xc9, 0x81, 0x81, 0x33, 0x03, 0x03, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x4c, 0xcc, 0xc9, 0x99, 0x91, 0x33, 0x33, 0x23, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x4c, 0xcc, 0xc9, 0x99, 0x91, 0x33, 0x33, 0x23, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x0c, 0xc0, 0xc9, 0x81, 0x81, 0x33, 0x03, 0x03, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x0c, 0xc1, 0xdd, 0xc1, 0x83, 0xbb, 0x03, 0x07, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0xe0, 0xcc, 0xc1, 0x81, 0x98, 0x33, 0x30, 0x77, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x40, 0xcc, 0xc1, 0x81, 0x98, 0x33, 0x30, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x4c, 0xcc, 0xc9, 0x99, 0x99, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x44, 0xcc, 0xc9, 0x89, 0x99, 0x33, 0x32, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x40, 0xcc, 0xc1, 0x81, 0x98, 0x33, 0x30, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0xe0, 0xfd, 0xc1, 0xc3, 0xb8, 0x3b, 0xf0, 0x77, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf3, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf3, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf7, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0xef, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x87, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x4f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x03, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x4e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x77, 0x23, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x4c, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xf3, 0x23, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x4c, 0xf8, 0x00, 0x00, 0x00, 0x01, 0xf3, 0x03, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0xec, 0xfc, 0x00, 0x00, 0x00, 0x03, 0xf3, 0x07, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0xe0, 0xc7, 0x80, 0x00, 0x00, 0x1f, 0xb0, 0x77, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x40, 0xc3, 0xc0, 0x00, 0x00, 0x3f, 0x30, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x44, 0xcd, 0xe0, 0x00, 0x00, 0x7b, 0x32, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x44, 0xcc, 0xf0, 0x00, 0x00, 0xf3, 0x32, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x40, 0xc0, 0xf8, 0x00, 0x01, 0xf3, 0x30, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0xe0, 0xc1, 0xfc, 0x00, 0x03, 0xfb, 0x30, 0x77, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x0c, 0xc1, 0xdf, 0x80, 0x1f, 0xbb, 0x03, 0x07, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x0c, 0xc0, 0xcf, 0xc0, 0x3f, 0x33, 0x03, 0x03, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x4c, 0xcc, 0xcd, 0xe0, 0x7b, 0x33, 0x33, 0x23, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x4c, 0xc8, 0xc9, 0xf0, 0xf1, 0x33, 0x33, 0x23, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x0c, 0xc0, 0xc9, 0xff, 0xe1, 0x33, 0x03, 0x03, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x0e, 0xc1, 0xdd, 0xff, 0xe3, 0xbb, 0x87, 0x07, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0xe0, 0xcc, 0xc1, 0x81, 0x98, 0x33, 0x30, 0x77, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x40, 0xcc, 0xc1, 0x81, 0x98, 0x33, 0x30, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x4c, 0xcc, 0xc9, 0x99, 0x99, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x40, 0xcc, 0xc9, 0x81, 0x99, 0x33, 0x30, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x40, 0xcc, 0xc1, 0x81, 0x98, 0x33, 0x30, 0x33, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0xe1, 0xff, 0xc1, 0xc3, 0xf8, 0x3f, 0xf8, 0x77, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0
+};
+
+const unsigned char bm_fw_corrupt [] PROGMEM = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xf0, 0x1f, 0x1e, 0x03, 0xf8, 0xfc, 0x7c, 0x7e, 0x3f, 0x83, 0xf0, 0x1f, 0xc0, 0x7f, 0xff, 0xc0,
+   0xf0, 0x1e, 0x1e, 0x01, 0xf0, 0xfc, 0x38, 0x7e, 0x1f, 0x01, 0xf0, 0x0f, 0x80, 0x7f, 0xff, 0xc0,
+   0xf0, 0xfe, 0x1e, 0x10, 0xf0, 0x30, 0x38, 0x66, 0x1e, 0x10, 0xf0, 0x87, 0x87, 0xff, 0xff, 0xc0,
+   0xf0, 0xfe, 0x1e, 0x10, 0xf0, 0x30, 0x38, 0x66, 0x1e, 0x10, 0xf0, 0x87, 0x87, 0xff, 0xff, 0xc0,
+   0xf0, 0x1e, 0x1e, 0x01, 0xf0, 0x00, 0x38, 0x66, 0x1e, 0x00, 0xf0, 0x0f, 0x80, 0x7f, 0xff, 0xc0,
+   0xf0, 0x1e, 0x1e, 0x01, 0xf0, 0x00, 0x38, 0x26, 0x1e, 0x00, 0xf0, 0x0f, 0x80, 0x7f, 0xff, 0xc0,
+   0xf0, 0xfe, 0x1e, 0x01, 0xf0, 0xcc, 0x38, 0x00, 0x1e, 0x10, 0xf0, 0x0f, 0x87, 0xff, 0xff, 0xc0,
+   0xf0, 0xfe, 0x1e, 0x01, 0xf0, 0xcc, 0x3c, 0x00, 0x3e, 0x30, 0xf0, 0x0f, 0x87, 0xff, 0xff, 0xc0,
+   0xf0, 0xfe, 0x1e, 0x10, 0xf0, 0xfc, 0x3e, 0x18, 0x7e, 0x30, 0xf0, 0x87, 0x80, 0x7f, 0xff, 0xc0,
+   0xf1, 0xff, 0x1e, 0x38, 0xf8, 0xfc, 0x7f, 0x18, 0x7e, 0x38, 0xf1, 0xc7, 0xc0, 0x7f, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xfc, 0x1f, 0xe0, 0x7e, 0x03, 0xf0, 0x1f, 0xc6, 0x3e, 0x03, 0xf0, 0x1f, 0xfe, 0x1f, 0xff, 0xc0,
+   0xf8, 0x0f, 0xe0, 0x7e, 0x03, 0xf0, 0x0f, 0x86, 0x1e, 0x01, 0xf0, 0x1f, 0xfe, 0x1f, 0xff, 0xc0,
+   0xf0, 0x87, 0xc6, 0x3e, 0x10, 0xf0, 0x87, 0x86, 0x1e, 0x10, 0xfc, 0x3f, 0xf9, 0xef, 0xff, 0xc0,
+   0xf0, 0xc7, 0x86, 0x1e, 0x10, 0xf0, 0x87, 0x86, 0x1e, 0x10, 0xfc, 0x3f, 0xf9, 0xe7, 0xff, 0xc0,
+   0xf0, 0xff, 0x86, 0x1e, 0x03, 0xf0, 0x0f, 0x86, 0x1e, 0x01, 0xfc, 0x3f, 0xf9, 0xe7, 0xff, 0xc0,
+   0xf0, 0xff, 0x86, 0x1e, 0x03, 0xf0, 0x0f, 0x86, 0x1e, 0x03, 0xfc, 0x3f, 0xf9, 0xe7, 0xff, 0xc0,
+   0xf0, 0xc7, 0x86, 0x1e, 0x03, 0xf0, 0x0f, 0x86, 0x1e, 0x1f, 0xfc, 0x3f, 0xe7, 0xfb, 0xff, 0xc0,
+   0xf0, 0x87, 0xc6, 0x3e, 0x03, 0xf0, 0x0f, 0xc6, 0x3e, 0x3f, 0xfc, 0x3f, 0xe7, 0xf9, 0xff, 0xc0,
+   0xf8, 0x0f, 0xe0, 0x7e, 0x10, 0xf0, 0x87, 0xe0, 0x7e, 0x3f, 0xfc, 0x3f, 0xe6, 0x19, 0xff, 0xc0,
+   0xfc, 0x1f, 0xe0, 0x7e, 0x38, 0xf1, 0xc7, 0xe0, 0x7e, 0x3f, 0xfc, 0x7f, 0xe6, 0x19, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0x1e, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9e, 0x1e, 0x7f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9e, 0x1e, 0x7f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9e, 0x1e, 0x7f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7e, 0x1f, 0x3f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7e, 0x1f, 0x3f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7e, 0x1f, 0x3f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7e, 0x1f, 0xbf, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xcf, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xcf, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xfe, 0x1f, 0xcf, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xfe, 0x1f, 0xef, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xfe, 0x1f, 0xf3, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xfe, 0x1f, 0xf3, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x0f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x0f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0
 };
 
 const unsigned char bm_pairing [] PROGMEM = {
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xf0, 0xe3, 0x98, 0x73, 0x33, 0x87, 0xff, 0xff, 0xf2, 0xc9, 0x99, 0x33, 0x13, 0x3f, 0xff, 
-   0xff, 0xf0, 0xc1, 0x98, 0x73, 0x03, 0x27, 0xff, 0xff, 0xf3, 0xc9, 0x98, 0x73, 0x23, 0x27, 0xff, 
-   0xff, 0xf3, 0xc9, 0x99, 0x33, 0x33, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x03, 0xf8, 0x3f, 0x1f, 0x01, 0xf8, 0xf8, 0xf1, 0xfc, 0x07, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x01, 0xf0, 0x3f, 0x0e, 0x01, 0xf8, 0x70, 0xf0, 0xf8, 0x07, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x11, 0xe3, 0x0f, 0x0e, 0x18, 0x78, 0x70, 0x30, 0xf0, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x11, 0xc3, 0x0f, 0x0e, 0x18, 0x78, 0x70, 0x30, 0xf1, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x01, 0xc0, 0x0f, 0x0e, 0x01, 0xf8, 0x70, 0x00, 0xf1, 0xc7, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x03, 0xc0, 0x0f, 0x0e, 0x01, 0xf8, 0x70, 0x00, 0xf1, 0x87, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x1f, 0xc3, 0x0f, 0x0e, 0x01, 0xf8, 0x70, 0xc0, 0xf1, 0x87, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x1f, 0xc3, 0x0f, 0x0e, 0x01, 0xf8, 0x70, 0xc0, 0xf0, 0x87, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x1f, 0xc3, 0x0f, 0x0e, 0x18, 0x78, 0x70, 0xf0, 0xf8, 0x1f, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x3f, 0xe3, 0x0f, 0x1f, 0x18, 0x78, 0xf8, 0xf1, 0xfc, 0x1f, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0
 };
 
-const unsigned char bm_n_uh [] PROGMEM = {
-   0x07, 0x27, 0x27, 0x27, 0x07, 0x8f, 0x8f, 0xcf, 0xcf, 0xcf, 0x07, 0xe7, 0x07, 0x3f, 0x07, 0x07, 
-   0xe7, 0xc7, 0xe7, 0x07, 0x27, 0x27, 0x07, 0xe7, 0xe7, 0x07, 0x3f, 0x07, 0xe7, 0x07, 0x07, 0x3f, 
-   0x07, 0x27, 0x07, 0x07, 0xc7, 0xcf, 0x9f, 0x1f, 0x07, 0x27, 0x07, 0x27, 0x07, 0x07, 0x27, 0x07, 
-   0xe7, 0xe7
+const unsigned char bm_online [] PROGMEM = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xf0, 0x1c, 0x07, 0xe0, 0xf8, 0xf1, 0xf0, 0x1e, 0x0f, 0x80, 0xc3, 0x1c, 0x60, 0x18, 0x0f, 0xc0,
+   0xf0, 0x18, 0x07, 0xc0, 0x70, 0xf0, 0xe0, 0x1e, 0x07, 0x00, 0xc3, 0x08, 0x60, 0x18, 0x07, 0xc0,
+   0xf8, 0x38, 0x21, 0x84, 0x30, 0x30, 0xc3, 0xf8, 0x43, 0x07, 0xc3, 0x08, 0x61, 0xf8, 0x43, 0xc0,
+   0xfc, 0x38, 0x21, 0x84, 0x30, 0x30, 0xc3, 0xf8, 0x63, 0x07, 0xc3, 0x08, 0x61, 0xf8, 0x43, 0xc0,
+   0xfc, 0x38, 0x07, 0x80, 0x30, 0x00, 0xe0, 0x78, 0x7f, 0x00, 0xc3, 0x80, 0xe0, 0x18, 0x07, 0xc0,
+   0xfc, 0x38, 0x07, 0x80, 0x30, 0x00, 0xf0, 0x38, 0x7f, 0x00, 0xc3, 0xc1, 0xe0, 0x18, 0x0f, 0xc0,
+   0xfc, 0x38, 0x07, 0x84, 0x30, 0xc0, 0xfe, 0x18, 0x63, 0x07, 0xc3, 0xc1, 0xe1, 0xf8, 0x0f, 0xc0,
+   0xfc, 0x38, 0x07, 0x86, 0x30, 0xc0, 0xfe, 0x18, 0x43, 0x07, 0xc3, 0xc1, 0xe1, 0xf8, 0x07, 0xc0,
+   0xfc, 0x38, 0x21, 0x86, 0x30, 0xf0, 0xc0, 0x3e, 0x07, 0x00, 0xc3, 0xe3, 0xe0, 0x18, 0x43, 0xc0,
+   0xfc, 0x7c, 0x61, 0x8e, 0x38, 0xf1, 0xc0, 0x7e, 0x0f, 0x80, 0xc3, 0xf7, 0xe0, 0x18, 0xe3, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x0f, 0xf8, 0xf1, 0xfc, 0x7f, 0xe3, 0xf8, 0xf1, 0xfc, 0x07, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x07, 0xf0, 0xf0, 0xf8, 0x7f, 0xe1, 0xf0, 0xf0, 0xf8, 0x07, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xf8, 0x43, 0xf0, 0x30, 0xf8, 0x7f, 0xe1, 0xf0, 0x30, 0xf8, 0x3f, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xf8, 0x61, 0xf0, 0x30, 0xf8, 0x7f, 0xe1, 0xf0, 0x30, 0xf8, 0x3f, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xf8, 0x61, 0xf0, 0x00, 0xf8, 0x7f, 0xe1, 0xf0, 0x00, 0xf8, 0x07, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xf8, 0x61, 0xf0, 0x00, 0xf8, 0x7f, 0xe1, 0xf0, 0x00, 0xf8, 0x07, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xf8, 0x61, 0xf0, 0xc0, 0xf8, 0x7f, 0xe1, 0xf0, 0xc0, 0xf8, 0x3f, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xf8, 0x43, 0xf0, 0xc0, 0xf8, 0x3f, 0xe1, 0xf0, 0xc0, 0xf8, 0x3f, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x07, 0xf0, 0xf0, 0xf8, 0x07, 0xe1, 0xf0, 0xf0, 0xf8, 0x07, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xfe, 0x0f, 0xf8, 0xf1, 0xfc, 0x07, 0xe3, 0xf8, 0xf1, 0xfc, 0x07, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0
+};
+
+const unsigned char bm_console [] PROGMEM = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xfe, 0x07, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xf8, 0x1f, 0xff, 0xc0,
+   0xff, 0xfe, 0x0f, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xfc, 0x1f, 0xff, 0xc0,
+   0xff, 0xf8, 0x1f, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xfe, 0x07, 0xff, 0xc0,
+   0xff, 0xf8, 0x3f, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0x07, 0xff, 0xc0,
+   0xff, 0xf0, 0x7f, 0xff, 0x0f, 0x0f, 0xf1, 0xe1, 0xe0, 0x3c, 0x3c, 0x3f, 0xff, 0x81, 0xff, 0xc0,
+   0xff, 0xe0, 0xff, 0xff, 0x0f, 0x0f, 0xe1, 0xe1, 0xe0, 0x3c, 0x3c, 0x3f, 0xff, 0xc1, 0xff, 0xc0,
+   0xff, 0xc1, 0xf8, 0x7f, 0x0f, 0x0c, 0x21, 0xe1, 0xe1, 0xfc, 0x3c, 0x3f, 0x87, 0xe0, 0xff, 0xc0,
+   0xff, 0xc3, 0xf0, 0x7f, 0x0f, 0x0c, 0x21, 0xe1, 0xe0, 0x3c, 0x3c, 0x3f, 0x83, 0xf0, 0x7f, 0xc0,
+   0xff, 0xc7, 0xe0, 0x7f, 0x0f, 0x0c, 0x21, 0xe1, 0xe0, 0x3c, 0x3c, 0x3f, 0x81, 0xf8, 0x7f, 0xc0,
+   0xff, 0x87, 0xc0, 0xff, 0x0f, 0x00, 0x01, 0xe1, 0xe0, 0x3c, 0x3c, 0x3f, 0xc0, 0xf8, 0x3f, 0xc0,
+   0xff, 0x07, 0x81, 0xff, 0x0f, 0x00, 0x01, 0xe1, 0xe1, 0xfc, 0x3c, 0x3f, 0xe0, 0x78, 0x3f, 0xc0,
+   0xff, 0x07, 0x83, 0xff, 0x0f, 0x80, 0x03, 0xe1, 0xe1, 0xfc, 0x3c, 0x3f, 0xf0, 0x7c, 0x3f, 0xc0,
+   0xff, 0x0f, 0x87, 0xff, 0x0f, 0xc3, 0xc7, 0xe1, 0xe1, 0xfc, 0x3c, 0x3f, 0xf8, 0x7e, 0x3f, 0xc0,
+   0xff, 0x0f, 0x87, 0xcf, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3c, 0x78, 0x7e, 0x3f, 0xc0,
+   0xff, 0x0f, 0x87, 0x87, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x38, 0x78, 0x7e, 0x3f, 0xc0,
+   0xff, 0x0f, 0x87, 0x87, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x38, 0x78, 0x7e, 0x3f, 0xc0,
+   0xff, 0x0f, 0x87, 0x87, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3c, 0x78, 0x7e, 0x3f, 0xc0,
+   0xff, 0x0f, 0x87, 0xff, 0x0f, 0xff, 0xf0, 0x7f, 0x00, 0xff, 0xfc, 0x3f, 0xf8, 0x7e, 0x3f, 0xc0,
+   0xff, 0x0f, 0x87, 0xff, 0x0f, 0xff, 0xe0, 0x7e, 0x00, 0x7f, 0xfc, 0x3f, 0xf8, 0x7c, 0x3f, 0xc0,
+   0xff, 0x07, 0x83, 0xff, 0x0f, 0xff, 0xc2, 0x1e, 0x10, 0x7f, 0xfc, 0x3f, 0xf0, 0x78, 0x3f, 0xc0,
+   0xff, 0x07, 0x81, 0xff, 0x0f, 0xff, 0xc2, 0x1e, 0x18, 0x7f, 0xfc, 0x3f, 0xe0, 0x78, 0x3f, 0xc0,
+   0xff, 0x87, 0xe0, 0xff, 0x0f, 0xff, 0xc0, 0x1e, 0x00, 0x7f, 0xfc, 0x3f, 0xc0, 0xf8, 0x7f, 0xc0,
+   0xff, 0xc3, 0xe0, 0x7f, 0x0f, 0xff, 0xc0, 0x1e, 0x00, 0xff, 0xfc, 0x3f, 0x81, 0xf8, 0x7f, 0xc0,
+   0xff, 0xc1, 0xf8, 0x7f, 0x0f, 0xff, 0xc2, 0x1e, 0x1f, 0xff, 0xfc, 0x3f, 0x83, 0xe0, 0x7f, 0xc0,
+   0xff, 0xc1, 0xf8, 0x7f, 0x0f, 0xff, 0xc6, 0x1e, 0x1f, 0xff, 0xfc, 0x3f, 0x87, 0xe0, 0xff, 0xc0,
+   0xff, 0xe0, 0x7f, 0xff, 0x0f, 0xff, 0xc6, 0x1e, 0x1f, 0xff, 0xfc, 0x3f, 0xff, 0x81, 0xff, 0xc0,
+   0xff, 0xf0, 0x7f, 0xff, 0x0f, 0xff, 0xc7, 0x1e, 0x1f, 0xff, 0xfc, 0x3f, 0xff, 0x83, 0xff, 0xc0,
+   0xff, 0xf8, 0x1f, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xfe, 0x07, 0xff, 0xc0,
+   0xff, 0xfc, 0x1f, 0xff, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xfe, 0x0f, 0xff, 0xc0,
+   0xff, 0xfe, 0x07, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xf8, 0x1f, 0xff, 0xc0,
+   0xff, 0xff, 0x07, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xf8, 0x1f, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xc0,
+   0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xc0,
+   0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
+   0xff, 0xe7, 0xff, 0xfe, 0x7f, 0xff, 0xcf, 0xff, 0xf9, 0xff, 0xff, 0x3f, 0xff, 0xe7, 0xff, 0xc0,
+   0xff, 0xe7, 0xff, 0xfe, 0x7f, 0xff, 0xcf, 0xff, 0xf9, 0xff, 0xff, 0x3f, 0xff, 0xe7, 0xff, 0xc0,
+   0xff, 0xe7, 0xff, 0xfe, 0x7f, 0xff, 0xcf, 0xff, 0xf9, 0xff, 0xff, 0x3f, 0xff, 0xe7, 0xff, 0xc0,
+   0xff, 0xe7, 0xff, 0xfe, 0x7f, 0xff, 0xcf, 0xff, 0xf9, 0xff, 0xff, 0x3f, 0xff, 0xe7, 0xff, 0xc0,
+   0xff, 0xf7, 0xff, 0xfe, 0xff, 0xff, 0xdf, 0xff, 0xf9, 0xff, 0xff, 0x3f, 0xff, 0xe7, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xfe, 0x00, 0xff, 0xc0, 0x0f, 0xf8, 0x01, 0xff, 0x00, 0x3f, 0xe0, 0x07, 0xfc, 0x00, 0xff, 0xc0,
+   0xfc, 0x00, 0x7f, 0x80, 0x0f, 0xf0, 0x01, 0xfe, 0x00, 0x3f, 0xc0, 0x03, 0xf8, 0x00, 0x7f, 0xc0,
+   0xfc, 0xff, 0x9f, 0x9f, 0xf3, 0xf3, 0xfe, 0x7e, 0x7f, 0xcf, 0xcf, 0xf9, 0xf8, 0xff, 0x3f, 0xc0,
+   0xfc, 0xff, 0x9f, 0x9f, 0xf3, 0xf3, 0xff, 0x7e, 0x7f, 0xef, 0xcf, 0xfd, 0xf9, 0xff, 0xbf, 0xc0,
+   0xfc, 0xc1, 0xef, 0x9b, 0xbc, 0xf3, 0x1f, 0x9e, 0x78, 0xf3, 0xcf, 0x7e, 0x79, 0x83, 0xcf, 0xc0,
+   0xfc, 0xc1, 0xe7, 0x99, 0xbc, 0xf3, 0x1f, 0x9e, 0x78, 0x73, 0xcf, 0x3e, 0x79, 0x83, 0xcf, 0xc0,
+   0xfc, 0xff, 0xe7, 0x99, 0xfc, 0xf3, 0x3d, 0x9e, 0x67, 0x33, 0xcf, 0x1e, 0x79, 0xff, 0xcf, 0xc0,
+   0xfc, 0xff, 0xe7, 0x99, 0xfc, 0xf3, 0x39, 0x9e, 0x67, 0x33, 0xcf, 0x0e, 0x79, 0xff, 0xcf, 0xc0,
+   0xfc, 0xc0, 0x67, 0x98, 0x3c, 0xf3, 0x19, 0x9e, 0x67, 0x33, 0xcf, 0x0e, 0x79, 0xb8, 0xcf, 0xc0,
+   0xfc, 0xc0, 0x67, 0x98, 0x3c, 0xf3, 0x09, 0x9e, 0x67, 0x33, 0xcf, 0x0e, 0x79, 0x98, 0x4f, 0xc0,
+   0xfc, 0xff, 0xe7, 0x9f, 0xfc, 0xf3, 0x01, 0x9e, 0x78, 0x73, 0xcf, 0x0e, 0x79, 0x98, 0x4f, 0xc0,
+   0xfc, 0xff, 0xe7, 0x9f, 0xfc, 0xf3, 0x01, 0x9e, 0x78, 0x73, 0xcf, 0x0e, 0x79, 0x98, 0xcf, 0xc0,
+   0xfc, 0xdc, 0x67, 0x98, 0x3c, 0xf3, 0x39, 0x9e, 0x78, 0x73, 0xcf, 0x0e, 0x79, 0xff, 0xcf, 0xc0,
+   0xfc, 0xdc, 0x67, 0x98, 0x3c, 0xf3, 0x39, 0x9e, 0x78, 0x73, 0xcf, 0x1e, 0x79, 0xff, 0xcf, 0xc0,
+   0xfc, 0xff, 0xe7, 0x99, 0xfc, 0xf3, 0x31, 0x9e, 0x67, 0x33, 0xcf, 0xfe, 0x79, 0x8e, 0xcf, 0xc0,
+   0xfc, 0xff, 0xe7, 0x99, 0xfc, 0xf3, 0x21, 0x9e, 0x67, 0x33, 0xcf, 0xfe, 0x79, 0x86, 0x4f, 0xc0,
+   0xfc, 0xc0, 0x67, 0x99, 0xbc, 0xf3, 0x01, 0x9e, 0x67, 0x33, 0xcf, 0x1e, 0x79, 0x86, 0x4f, 0xc0,
+   0xfc, 0xc0, 0x67, 0x9b, 0xbc, 0xf3, 0x01, 0x9e, 0x6f, 0xb3, 0xcf, 0x1e, 0x79, 0x8e, 0xcf, 0xc0,
+   0xfc, 0xff, 0xe7, 0x9f, 0xfc, 0xf3, 0xff, 0x9e, 0x7f, 0xf3, 0xcf, 0xfe, 0x79, 0xff, 0xcf, 0xc0,
+   0xfc, 0xff, 0xe7, 0x9f, 0xfc, 0xf3, 0xff, 0x9e, 0x7f, 0xf3, 0xcf, 0xfe, 0x79, 0xff, 0xcf, 0xc0,
+   0xfc, 0x00, 0x07, 0x80, 0x00, 0xf0, 0x00, 0x1e, 0x00, 0x03, 0xc0, 0x00, 0x78, 0x00, 0x0f, 0xc0,
+   0xfc, 0x00, 0x07, 0x80, 0x00, 0xf0, 0x00, 0x1e, 0x00, 0x03, 0xc0, 0x00, 0x7c, 0x00, 0x0f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xfc, 0xf0, 0x3c, 0xff, 0xe1, 0xf0, 0x0f, 0xfc, 0x07, 0xfe, 0x03, 0xff, 0x0f, 0xff, 0xc0,
+   0xff, 0xf8, 0x60, 0x18, 0x7f, 0xc0, 0xe0, 0x07, 0xf8, 0x03, 0xfc, 0x01, 0xfe, 0x07, 0xff, 0xc0,
+   0xff, 0xf8, 0x60, 0x18, 0x7f, 0xc0, 0xe0, 0x07, 0xf8, 0x03, 0xfc, 0x01, 0xfe, 0x07, 0xff, 0xc0,
+   0xff, 0xf8, 0x61, 0x98, 0x7f, 0xc0, 0xe1, 0x87, 0xf8, 0x43, 0xfc, 0x31, 0xfe, 0x07, 0xff, 0xc0,
+   0xff, 0xf8, 0x60, 0x1f, 0xff, 0xe0, 0xe1, 0x87, 0xf8, 0x43, 0xfc, 0x31, 0xff, 0x07, 0xff, 0xc0,
+   0xff, 0xf8, 0x60, 0x1f, 0xff, 0xf0, 0xe1, 0x87, 0xf8, 0x43, 0xfc, 0x31, 0xff, 0x87, 0xff, 0xc0,
+   0xff, 0xf8, 0x60, 0xf8, 0xff, 0xf0, 0xe1, 0x87, 0x38, 0x43, 0x9c, 0x31, 0xcf, 0x87, 0xff, 0xc0,
+   0xff, 0xf8, 0x61, 0xf8, 0x7f, 0xf0, 0xe1, 0x86, 0x18, 0x43, 0x0c, 0x31, 0x87, 0x87, 0xff, 0xc0,
+   0xff, 0xf8, 0x61, 0xf8, 0x7f, 0xf0, 0xe0, 0x06, 0x18, 0x03, 0x0c, 0x01, 0x87, 0x87, 0xff, 0xc0,
+   0xff, 0xf8, 0x61, 0xf8, 0xff, 0xf0, 0xf0, 0x06, 0x18, 0x03, 0x0c, 0x01, 0x87, 0x87, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0
+};
+
+const unsigned char bm_hwfail [] PROGMEM = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xfc, 0x71, 0xf8, 0x3f, 0x80, 0xfc, 0x07, 0xe1, 0xf8, 0xfe, 0x0f, 0xc0, 0x7e, 0x03, 0xff, 0xc0,
+   0xfc, 0x21, 0xf8, 0x1f, 0x00, 0xfc, 0x03, 0xe1, 0xf8, 0x7c, 0x0f, 0xc0, 0x3e, 0x03, 0xff, 0xc0,
+   0xfc, 0x21, 0xe1, 0x8f, 0x04, 0x3c, 0x21, 0xe1, 0xb8, 0x78, 0xc3, 0xc2, 0x1e, 0x1f, 0xff, 0xc0,
+   0xfc, 0x21, 0xe1, 0x87, 0x04, 0x3c, 0x21, 0xe1, 0x98, 0x70, 0xc3, 0xc2, 0x1e, 0x1f, 0xff, 0xc0,
+   0xfc, 0x01, 0xe0, 0x07, 0x00, 0xfc, 0x21, 0xe1, 0x98, 0x70, 0x03, 0xc0, 0x3e, 0x03, 0xff, 0xc0,
+   0xfc, 0x01, 0xe0, 0x07, 0x00, 0xfc, 0x21, 0xe1, 0x90, 0x70, 0x03, 0xc0, 0x7e, 0x03, 0xff, 0xc0,
+   0xfc, 0x21, 0xe1, 0x87, 0x00, 0xfc, 0x21, 0xe0, 0x00, 0x70, 0xc3, 0xc0, 0x7e, 0x1f, 0xff, 0xc0,
+   0xfc, 0x21, 0xe1, 0x87, 0x00, 0xfc, 0x21, 0xe0, 0x00, 0xf0, 0xc3, 0xc0, 0x3e, 0x1f, 0xff, 0xc0,
+   0xfc, 0x21, 0xe1, 0x87, 0x04, 0x3c, 0x03, 0xf8, 0x41, 0xf0, 0xc3, 0xc2, 0x1e, 0x03, 0xff, 0xc0,
+   0xfc, 0x71, 0xe1, 0x8f, 0x8c, 0x3c, 0x07, 0xf8, 0x63, 0xf8, 0xc3, 0xc7, 0x1e, 0x03, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xfc, 0x07, 0xe0, 0x7e, 0x3c, 0x3f, 0xc7, 0x1e, 0x03, 0xf8, 0x0f, 0xff, 0xf8, 0x7f, 0xff, 0xc0,
+   0xfc, 0x07, 0xe0, 0x7e, 0x3c, 0x3f, 0xc6, 0x1e, 0x01, 0xf0, 0x0f, 0xff, 0xf8, 0x7f, 0xff, 0xc0,
+   0xfc, 0x3f, 0xc6, 0x3e, 0x3c, 0x3f, 0xc6, 0x1e, 0x10, 0xf0, 0xff, 0xff, 0xe7, 0x9f, 0xff, 0xc0,
+   0xfc, 0x3f, 0x86, 0x1e, 0x3c, 0x3f, 0xc6, 0x1e, 0x10, 0xf0, 0xff, 0xff, 0xe7, 0x9f, 0xff, 0xc0,
+   0xfc, 0x07, 0x80, 0x1e, 0x3c, 0x3f, 0xc6, 0x1e, 0x01, 0xf0, 0x0f, 0xff, 0xe7, 0x9f, 0xff, 0xc0,
+   0xfc, 0x07, 0x80, 0x1e, 0x3c, 0x3f, 0xc6, 0x1e, 0x01, 0xf0, 0x0f, 0xff, 0xe7, 0x9f, 0xff, 0xc0,
+   0xfc, 0x3f, 0x86, 0x1e, 0x3c, 0x3f, 0xc6, 0x1e, 0x01, 0xf0, 0xff, 0xff, 0xdf, 0xef, 0xff, 0xc0,
+   0xfc, 0x3f, 0x86, 0x1e, 0x3c, 0x3f, 0xc2, 0x1e, 0x01, 0xf0, 0xff, 0xff, 0x9f, 0xe7, 0xff, 0xc0,
+   0xfc, 0x3f, 0x86, 0x1e, 0x3c, 0x03, 0xe0, 0x3e, 0x10, 0xf0, 0x0f, 0xff, 0x98, 0x67, 0xff, 0xc0,
+   0xfc, 0x7f, 0xc6, 0x3e, 0x3c, 0x03, 0xf0, 0x7e, 0x38, 0xf8, 0x0f, 0xff, 0x98, 0x67, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x78, 0x7b, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x78, 0x79, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x78, 0x79, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x78, 0x79, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xf8, 0x7e, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xf8, 0x7e, 0x7f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xf8, 0x7e, 0x7f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xf8, 0x7e, 0x7f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff, 0x3f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff, 0x3f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf8, 0x7f, 0x3f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf8, 0x7f, 0xbf, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xf8, 0x7f, 0xcf, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xf8, 0x7f, 0xcf, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x3f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x3f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0
+};
+
+const unsigned char bm_no_radio [] PROGMEM = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xfc, 0x71, 0xf8, 0x3f, 0x80, 0xfc, 0x07, 0xe1, 0xf8, 0xfe, 0x0f, 0xc0, 0x7e, 0x03, 0xff, 0xc0,
+   0xfc, 0x21, 0xf8, 0x1f, 0x00, 0xfc, 0x03, 0xe1, 0xf8, 0x7c, 0x0f, 0xc0, 0x3e, 0x03, 0xff, 0xc0,
+   0xfc, 0x21, 0xe1, 0x8f, 0x04, 0x3c, 0x21, 0xe1, 0xb8, 0x78, 0xc3, 0xc2, 0x1e, 0x1f, 0xff, 0xc0,
+   0xfc, 0x21, 0xe1, 0x87, 0x04, 0x3c, 0x21, 0xe1, 0x98, 0x70, 0xc3, 0xc2, 0x1e, 0x1f, 0xff, 0xc0,
+   0xfc, 0x01, 0xe0, 0x07, 0x00, 0xfc, 0x21, 0xe1, 0x98, 0x70, 0x03, 0xc0, 0x3e, 0x03, 0xff, 0xc0,
+   0xfc, 0x01, 0xe0, 0x07, 0x00, 0xfc, 0x21, 0xe1, 0x90, 0x70, 0x03, 0xc0, 0x7e, 0x03, 0xff, 0xc0,
+   0xfc, 0x21, 0xe1, 0x87, 0x00, 0xfc, 0x21, 0xe0, 0x00, 0x70, 0xc3, 0xc0, 0x7e, 0x1f, 0xff, 0xc0,
+   0xfc, 0x21, 0xe1, 0x87, 0x00, 0xfc, 0x21, 0xe0, 0x00, 0xf0, 0xc3, 0xc0, 0x3e, 0x1f, 0xff, 0xc0,
+   0xfc, 0x21, 0xe1, 0x87, 0x04, 0x3c, 0x03, 0xf8, 0x41, 0xf0, 0xc3, 0xc2, 0x1e, 0x03, 0xff, 0xc0,
+   0xfc, 0x71, 0xe1, 0x8f, 0x8c, 0x3c, 0x07, 0xf8, 0x63, 0xf8, 0xc3, 0xc7, 0x1e, 0x03, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xfc, 0x07, 0xe0, 0x7e, 0x3c, 0x3f, 0xc7, 0x1e, 0x03, 0xf8, 0x0f, 0xff, 0xf8, 0x7f, 0xff, 0xc0,
+   0xfc, 0x07, 0xe0, 0x7e, 0x3c, 0x3f, 0xc6, 0x1e, 0x01, 0xf0, 0x0f, 0xff, 0xf8, 0x7f, 0xff, 0xc0,
+   0xfc, 0x3f, 0xc6, 0x3e, 0x3c, 0x3f, 0xc6, 0x1e, 0x10, 0xf0, 0xff, 0xff, 0xe7, 0x9f, 0xff, 0xc0,
+   0xfc, 0x3f, 0x86, 0x1e, 0x3c, 0x3f, 0xc6, 0x1e, 0x10, 0xf0, 0xff, 0xff, 0xe7, 0x9f, 0xff, 0xc0,
+   0xfc, 0x07, 0x80, 0x1e, 0x3c, 0x3f, 0xc6, 0x1e, 0x01, 0xf0, 0x0f, 0xff, 0xe7, 0x9f, 0xff, 0xc0,
+   0xfc, 0x07, 0x80, 0x1e, 0x3c, 0x3f, 0xc6, 0x1e, 0x01, 0xf0, 0x0f, 0xff, 0xe7, 0x9f, 0xff, 0xc0,
+   0xfc, 0x3f, 0x86, 0x1e, 0x3c, 0x3f, 0xc6, 0x1e, 0x01, 0xf0, 0xff, 0xff, 0xdf, 0xef, 0xff, 0xc0,
+   0xfc, 0x3f, 0x86, 0x1e, 0x3c, 0x3f, 0xc2, 0x1e, 0x01, 0xf0, 0xff, 0xff, 0x9f, 0xe7, 0xff, 0xc0,
+   0xfc, 0x3f, 0x86, 0x1e, 0x3c, 0x03, 0xe0, 0x3e, 0x10, 0xf0, 0x0f, 0xff, 0x98, 0x67, 0xff, 0xc0,
+   0xfc, 0x7f, 0xc6, 0x3e, 0x3c, 0x03, 0xf0, 0x7e, 0x38, 0xf8, 0x0f, 0xff, 0x98, 0x67, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x78, 0x7b, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x78, 0x79, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x78, 0x79, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x78, 0x79, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xf8, 0x7e, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xf8, 0x7e, 0x7f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xf8, 0x7e, 0x7f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xf8, 0x7e, 0x7f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff, 0x3f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff, 0x3f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf8, 0x7f, 0x3f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf8, 0x7f, 0xbf, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xf8, 0x7f, 0xcf, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xf8, 0x7f, 0xcf, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x3f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x3f, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0
 };
 
 const unsigned char bm_plug [] PROGMEM = {
-   0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x7f, 0x80, 0x55, 0xfc, 0x00, 0xaa, 0xfc, 0x00, 0x00, 
-   0x7f, 0x80, 0x00, 0x1c, 0x00
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00,
+   0x00, 0x03, 0xf0, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xc0, 0x00, 0x00, 0x3f, 0xff, 0xc0, 0x33, 0x33,
+   0xff, 0xf0, 0x00, 0x33, 0x33, 0xff, 0xf0, 0x00, 0xcc, 0xcc, 0xff, 0xf0, 0x00, 0xcc, 0xcc, 0xff,
+   0xf0, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xc0, 0x00, 0x00, 0x3f, 0xff, 0xc0, 0x00, 0x00, 0x03, 0xf0,
+   0x00, 0x00, 0x00, 0x03, 0xf0, 0x00
 };
 
 const unsigned char bm_hg_low [] PROGMEM = {
-   0xf8, 0x88, 0x88, 0x50, 0x20, 0x50, 0x88, 0xf8, 0xf8
+   0xff, 0xc0, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x33, 0x00, 0x33, 0x00,
+   0x0c, 0x00, 0x0c, 0x00, 0x33, 0x00, 0x33, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xc0, 0xff, 0xc0,
+   0xff, 0xc0, 0xff, 0xc0
 };
 
 const unsigned char bm_hg_high [] PROGMEM = {
-   0xf8, 0x88, 0xf8, 0x70, 0x20, 0x70, 0xf8, 0xf8, 0xf8
-};
\ No newline at end of file
+   0xff, 0xc0, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xc0, 0xff, 0xc0, 0x3f, 0x00, 0x3f, 0x00,
+   0x0c, 0x00, 0x0c, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0xff, 0xc0, 0xff, 0xc0, 0xff, 0xc0, 0xff, 0xc0,
+   0xff, 0xc0, 0xff, 0xc0
+};
+
+const unsigned char bm_n_uh [] PROGMEM = {
+       0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00,
+       0x00, 0x00, 0x00, 0x00, // 0
+    0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xf0, 0xc0, 0xf0, 0xc0, 0xf0, 0xc0, 0xf0, 0xc0,
+       0xf0, 0xc0, 0xf0, 0xc0, // 1
+       0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xc0, 0x0f, 0xc0,
+       0x00, 0x00, 0x00, 0x00, // 2
+       0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0xfc, 0x00, 0xfc, 0x00,
+       0x00, 0x00, 0x00, 0x00, // 3
+       0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0xfc, 0x00,
+       0xfc, 0x00, 0xfc, 0x00, // 4
+       0x00, 0x00, 0x00, 0x00, 0x0f, 0xc0, 0x0f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0xfc, 0x00,
+       0x00, 0x00, 0x00, 0x00, // 5
+    0x00, 0x00, 0x00, 0x00, 0x0f, 0xc0, 0x0f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x0c, 0x00,
+       0x00, 0x00, 0x00, 0x00, // 6
+    0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0xf0, 0xc0, 0xf0, 0xc0, 0xc3, 0xc0, 0xc3, 0xc0,
+    0x03, 0xc0, 0x03, 0xc0, // 7
+    0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x0c, 0x00,
+       0x00, 0x00, 0x00, 0x00, // 8
+       0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0xfc, 0x00,
+       0xfc, 0x00, 0xfc, 0x00 // 9
+};
+
+#endif
+
+
+const unsigned char bm_nfr [] PROGMEM = {
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
+   0xff, 0xff, 0xfc, 0x38, 0x66, 0x67, 0x1c, 0x3f, 0xff, 0xff, 0xfc, 0x99, 0xe6, 0x66, 0x4c, 0xff, 
+   0xff, 0x9f, 0xfc, 0x98, 0x70, 0xe6, 0x7c, 0x3f, 0xff, 0x6f, 0xfc, 0x99, 0xf0, 0xe6, 0x4c, 0xff, 
+   0xff, 0x6f, 0xfc, 0x38, 0x79, 0xe7, 0x1c, 0x3f, 0xfe, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
+   0xfe, 0x97, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x9b, 0xe6, 0x71, 0xc3, 0xe1, 0xc7, 0x0f, 
+   0xfd, 0x9b, 0xe2, 0x64, 0xe7, 0xe7, 0x93, 0x27, 0xfb, 0x9d, 0xe0, 0x64, 0xe7, 0xe1, 0x93, 0x0f, 
+   0xfb, 0x9d, 0xe4, 0x64, 0xe7, 0xe7, 0x93, 0x0f, 0xf7, 0xfe, 0xe6, 0x71, 0xe7, 0xe7, 0xc7, 0x27, 
+   0xf7, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x9f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 
+   0xef, 0xff, 0x7f, 0xf8, 0x71, 0xcf, 0x0f, 0xff, 0xf0, 0x00, 0xff, 0xf3, 0xe4, 0xcf, 0x3f, 0xff, 
+   0xff, 0xff, 0xff, 0xf8, 0xe0, 0xcf, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x64, 0xcf, 0x3f, 0xff, 
+   0xff, 0xff, 0xff, 0xf0, 0xe4, 0xc3, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+};
diff --git a/Power.h b/Power.h
index 07eef084c052048a09d9a522c4c646cf7d276633..395f629439f8692446407e961a1d0ba2ea66b11e 100644 (file)
--- a/Power.h
+++ b/Power.h
   int bat_charged_samples = 0;
   bool bat_voltage_dropping = false;
   float bat_delay_v = 0;
+#elif BOARD_MODEL == BOARD_RAK4631
+#include "nrfx_power.h"
+#define BAT_C_SAMPLES   7
+#define BAT_D_SAMPLES   2
+#define BAT_V_MIN       2.75
+#define BAT_V_MAX       4.2
+#define BAT_V_FLOAT     4.22
+#define BAT_SAMPLES     5
+#define VBAT_MV_PER_LSB (0.73242188F) // 3.0V ADC range and 12 - bit ADC resolution = 3000mV / 4096
+#define VBAT_DIVIDER_COMP (1.73)      // Compensation factor for the VBAT divider
+#define VBAT_MV_PER_LSB_FIN (VBAT_DIVIDER_COMP * VBAT_MV_PER_LSB)
+#define PIN_VBAT WB_A0
+float bat_p_samples[BAT_SAMPLES];
+float bat_v_samples[BAT_SAMPLES];
+uint8_t bat_samples_count = 0;
+int bat_discharging_samples = 0;
+int bat_charging_samples = 0;
+int bat_charged_samples = 0;
+bool bat_voltage_dropping = false;
+float bat_delay_v = 0;
 #endif
 
 uint32_t last_pmu_update = 0;
@@ -193,6 +213,66 @@ void measure_battery() {
     else {
       battery_ready = false;
     }
+
+  #elif BOARD_MODEL == BOARD_RAK4631
+    battery_installed = true;
+    battery_indeterminate = false;
+
+    bat_v_samples[bat_samples_count%BAT_SAMPLES] = (float)(analogRead(PIN_VBAT)) * VBAT_MV_PER_LSB_FIN;
+
+    if (bat_v_samples[bat_samples_count%BAT_SAMPLES] < 3300) {
+        bat_p_samples[bat_samples_count%BAT_SAMPLES] = 0;
+    }
+    else if (bat_v_samples[bat_samples_count%BAT_SAMPLES] < 3600)
+    {
+        bat_v_samples[bat_samples_count%BAT_SAMPLES] -= 3300;
+        bat_p_samples[bat_samples_count%BAT_SAMPLES] = bat_v_samples[bat_samples_count%BAT_SAMPLES] / 30;
+    } else {
+        bat_v_samples[bat_samples_count%BAT_SAMPLES] -= 3600;
+    }
+    bat_p_samples[bat_samples_count%BAT_SAMPLES] = 10 + (bat_v_samples[bat_samples_count%BAT_SAMPLES] * 0.15F);
+
+    bat_samples_count++;
+    if (!battery_ready && bat_samples_count >= BAT_SAMPLES) {
+      battery_ready = true;
+    }
+
+    battery_percent = 0;
+    for (uint8_t bi = 0; bi < BAT_SAMPLES; bi++) {
+        battery_percent += bat_p_samples[bi];
+    }
+    battery_percent = battery_percent/BAT_SAMPLES;
+
+    battery_voltage = 0;
+    for (uint8_t bi = 0; bi < BAT_SAMPLES; bi++) {
+        battery_voltage += bat_v_samples[bi];
+    }
+    battery_voltage = battery_voltage/BAT_SAMPLES;
+
+    if (bat_delay_v == 0) bat_delay_v = battery_voltage;
+    if (battery_percent > 100.0) battery_percent = 100.0;
+    if (battery_percent < 0.0) battery_percent = 0.0;
+
+    if (bat_samples_count%BAT_SAMPLES == 0) {
+        if (battery_voltage < bat_delay_v && battery_voltage < BAT_V_FLOAT) {
+            bat_voltage_dropping = true;
+        } else {
+            bat_voltage_dropping = false;
+        }
+        bat_samples_count = 0;
+    }
+
+    nrfx_power_usb_state_t usbstate = nrfx_power_usbstatus_get();
+    if (usbstate == NRFX_POWER_USB_STATE_CONNECTED || usbstate == NRFX_POWER_USB_STATE_READY) {
+        // charging
+        battery_state = BATTERY_STATE_CHARGING;
+    } else {
+        battery_state = BATTERY_STATE_DISCHARGING;
+    }
+
+    if (battery_percent >= 98) {
+        battery_state = BATTERY_STATE_CHARGED;
+    }
   #endif
 
   if (battery_ready) {
@@ -341,6 +421,21 @@ bool init_pmu() {
     PMU->setPowerKeyPressOffTime(XPOWERS_POWEROFF_4S);
 
     return true; 
+  #elif BOARD_MODEL == BOARD_RAK4631
+    // board doesn't have PMU but we can measure batt voltage
+
+    // prep ADC for reading battery level
+    analogReference(AR_INTERNAL_3_0);
+
+    // Set the resolution to 12-bit (0..4095)
+    analogReadResolution(12);
+
+    // Let the ADC settle
+    delay(1);
+
+    // Get a single ADC sample and throw it away
+    float raw = analogRead(PIN_VBAT);
+    return true;
   #else
     return false;
   #endif
index 4410a91b7a20e3b18a911b6b332b53029039908e..1745a21141c0c5767452825cfaa748d3cd4f4b9c 100644 (file)
@@ -166,6 +166,11 @@ void setup() {
       eeprom_update(eeprom_addr(ADDR_CONF_DSET), CONF_OK_BYTE);
       eeprom_update(eeprom_addr(ADDR_CONF_DINT), 0xFF);
     }
+    #if DISPLAY == EINK_BW || DISPLAY == EINK_3C
+    // Poll and process incoming serial commands whilst e-ink display is
+    // refreshing to make device still seem responsive
+    display_add_callback(process_serial);
+    #endif
     disp_ready = display_init();
     update_display();
   #endif
@@ -1310,6 +1315,11 @@ void loop() {
   #endif
 }
 
+void process_serial() {
+      buffer_serial();
+      if (!fifo_isempty(&serialFIFO)) serial_poll();
+}
+
 void sleep_now() {
   #if HAS_SLEEP == true
     #if BOARD_MODEL == BOARD_RNODE_NG_22