   pinMode(GAUGE_PIN, INPUT_PULLUP);
   //digitalWrite(MODE_PIN, INPUT_PULLUP);
 
-  lcd.createChar(0, fill1);
-  lcd.createChar(1, fill2);
-  lcd.createChar(2, fill3);
-  lcd.createChar(3, fill4);
-  lcd.createChar(4, fill5);
-  lcd.createChar(5, fillMiddle);
+  // create a custom character
+  lcd.write(0xFE);
+  lcd.write(0x4E);
+  lcd.write((uint8_t)0);     // location #0
+  lcd.write((uint8_t)0x00);  // 8 bytes of character data
+  lcd.write(0x0A);
+  lcd.write(0x15);
+  lcd.write(0x11);
+  lcd.write(0x11);
+  lcd.write(0x0A);
+  lcd.write(0x04);
+  lcd.write((uint8_t)0x00);
+
+
+
+  //lcd.createChar(0, fill1);
+  //lcd.createChar(1, fill2);
+  //lcd.createChar(2, fill3);
+  //lcd.createChar(3, fill4);
+  //lcd.createChar(4, fill5);
+  //lcd.createChar(5, fillMiddle);
   
   octoModeGauges[0][0] = &engine_rpm;
   octoModeGauges[0][1] = &engine_map;

    //relax homeboy
  }*/
  if(true){
    lcd.setCursor(column, row);
    
    //delete previous bar if it is too long
    //todo optimize to only delete the needful

  if(!octoModeReady) {
    clear_mode();
    //left column of labels
    setSerialCursor(lcd,0, 0);
    lcd.print(octoModeGauges[octoIndex][0]->shortLabel);
    setSerialCursor(lcd,0, 1);
    lcd.print(octoModeGauges[octoIndex][1]->shortLabel);
    setSerialCursor(lcd,0, 2);
    lcd.print(octoModeGauges[octoIndex][2]->shortLabel);
    setSerialCursor(lcd,0, 3);
    lcd.print(octoModeGauges[octoIndex][3]->shortLabel);

    //draw dividing line
    setSerialCursor(lcd,9, 0);
    lcd.write(byte(5));
    setSerialCursor(lcd,9, 1);
    lcd.write(byte(5));
    setSerialCursor(lcd,9, 2);
    lcd.write(byte(5));
    setSerialCursor(lcd,9, 3);
    lcd.write(byte(5));

    //right column of labels
    setSerialCursor(lcd,11, 0);
    lcd.print(octoModeGauges[octoIndex][4]->shortLabel);
    setSerialCursor(lcd,11, 1);
    lcd.print(octoModeGauges[octoIndex][5]->shortLabel);
    setSerialCursor(lcd,11, 2);
    lcd.print(octoModeGauges[octoIndex][6]->shortLabel);
    setSerialCursor(lcd,11, 3);
    lcd.print(octoModeGauges[octoIndex][7]->shortLabel);

    octoModeReady = true;
  }
  
  setSerialCursor(lcd,4, 0);
  if(is_current_value_shorter(*octoModeGauges[octoIndex][0])) {
    lcd.print(F("     "));
    setSerialCursor(lcd,4, 0);
  }
  lcd.print(octoModeGauges[octoIndex][0]->currentValue, octoModeGauges[octoIndex][0]->decimalPlaces);

  setSerialCursor(lcd,4, 1);
  if(is_current_value_shorter(*octoModeGauges[octoIndex][1])) {
    lcd.print(F("     "));
    setSerialCursor(lcd,4, 1);
  }
  lcd.print(octoModeGauges[octoIndex][1]->currentValue, octoModeGauges[octoIndex][1]->decimalPlaces);

  setSerialCursor(lcd,4, 2);
  if(is_current_value_shorter(*octoModeGauges[octoIndex][2])) {
    lcd.print(F("     "));
    setSerialCursor(lcd,4, 2);
  }
  lcd.print(octoModeGauges[octoIndex][2]->currentValue, octoModeGauges[octoIndex][2]->decimalPlaces);

  setSerialCursor(lcd,4, 3);
  if(is_current_value_shorter(*octoModeGauges[octoIndex][3])) {
    lcd.print(F("     "));
    setSerialCursor(lcd,4, 3);
  }
  lcd.print(octoModeGauges[octoIndex][3]->currentValue, octoModeGauges[octoIndex][3]->decimalPlaces);

  setSerialCursor(lcd,15, 0);
  if(is_current_value_shorter(*octoModeGauges[octoIndex][4])) {
    lcd.print(F("     "));
    setSerialCursor(lcd,15, 0);
  }
  lcd.print(octoModeGauges[octoIndex][4]->currentValue, octoModeGauges[octoIndex][4]->decimalPlaces);

  setSerialCursor(lcd,15, 1);
  if(is_current_value_shorter(*octoModeGauges[octoIndex][5])) {
    lcd.print(F("     "));
    setSerialCursor(lcd,15, 1);
  }
  lcd.print(octoModeGauges[octoIndex][5]->currentValue, octoModeGauges[octoIndex][5]->decimalPlaces);

  setSerialCursor(lcd,15, 2);
  if(is_current_value_shorter(*octoModeGauges[octoIndex][6])) {
    lcd.print(F("     "));
    setSerialCursor(lcd,15, 2);
  }
  lcd.print(octoModeGauges[octoIndex][6]->currentValue, octoModeGauges[octoIndex][6]->decimalPlaces);

  setSerialCursor(lcd, 15, 3);
  if(is_current_value_shorter(*octoModeGauges[octoIndex][7])) {
    lcd.print(F("     "));
    setSerialCursor(lcd, 15, 3);
  }
  lcd.print(octoModeGauges[octoIndex][7]->currentValue, octoModeGauges[octoIndex][7]->decimalPlaces);
}
