 const uint8_t PACKET_CALIBRATE    = 14;
 const uint8_t PACKET_BRIGHTNESS   = 15;
 const uint8_t PACKET_ANGLE        = 16;
-
-// where in EEPROM our node id is stored
-const int id_address = 0;
-const int calibration_address = 10;
+const uint8_t PACKET_BOOTLOADER   = 17;
+
+// where in EEPROM our node id is stored. The first 16 are reserved for the bootloader
+// Bootloader items
+const uint8_t ee_start_program_offset       = 0;
+const uint8_t ee_have_valid_program_offset  = 1;
+const uint8_t ee_program_version_offset     = 2;
+
+// Node items
+const uint8_t ee_id_offset                  = 16;
+const uint8_t ee_calibration_offset         = 17;
 
 // ----- globals ------------
 uint8_t    g_error = ERR_OK;

        case PACKET_CLEAR_ID:
            {
                g_node_id = NODE_ID_UNKNOWN;
                EEPROM.write(id_address, g_node_id);
                break;
            }
            

                if (g_node_id == NODE_ID_UNKNOWN)
                {
                    g_node_id = data[0];
                    EEPROM.write(ee_id_offset, g_node_id);
                }
                break;
            }
