 #define CONTRAST_ADDR 109
 #define CUSTOMCHARBANKS_ADDR 110  
 // 110 thru 430 !
-#define LAST_ADDR 431
+#define GPO_1_START_ONOFF_ADDR 431
+#define GPO_2_START_ONOFF_ADDR 432
+#define GPO_3_START_ONOFF_ADDR 434
+#define GPO_4_START_ONOFF_ADDR 435
+#define LAST_ADDR 436
 #define EEPROM_END 511
 
-uint8_t COLS = 16;
-uint8_t ROWS = 2;
+uint8_t COLS = EEPROM.read(COLS_ADDR);
+uint8_t ROWS = EEPROM.read(ROWS_ADDR);
 uint8_t x, y;
 
 extern unsigned int __bss_end;

    if (brightness != EEPROM.read(BACKLIGHT_BRIGHTNESS_ADDR))
      EEPROM.write(BACKLIGHT_BRIGHTNESS_ADDR, brightness);
    setBacklight(EEPROM.read(BACKLIGHT_R_ADDR), EEPROM.read(BACKLIGHT_G_ADDR), EEPROM.read(BACKLIGHT_B_ADDR));
}

void setBacklight(uint8_t r, uint8_t g, uint8_t b) {

    
  uint8_t brightness = EEPROM.read(BACKLIGHT_BRIGHTNESS_ADDR);
  // normalize the red LED
  r = map(r, 0, 255, 0, 100);
  b = map(b, 0, 255, 0, 190);

  r = map(r, 0, 255, 0, brightness);
  g = map(g, 0, 255, 0, brightness);
  b = map(b, 0, 255, 0, brightness);

  analogWrite(REDLITE, r);
  analogWrite(GREENLITE, g);
