 #include <JeeLib.h>
 #include <avr/sleep.h>
 
+#define BOOST     0   // measure battery on analog pin if 1, else vcc after
+
 #define BLIP_NODE 22  // wireless node ID to use for sending blips
 #define BLIP_GRP  5   // wireless net group to use for sending blips
 #define BLIP_ID   1   // set this to a unique ID to disambiguate multiple nodes
 #define SEND_MODE 3   // set to 3 if fuses are e=06/h=DE/l=CE, else set to 2
 
 struct {
-  long ping;  // 32-bit counter
-  byte id;    // identity, should be different for each node
-  byte vcc1;  // VCC before transmit, 1.0V = 0 .. 6.0V = 250
-  byte vcc2;  // VCC after transmit, will be sent in next cycle
+  long ping;      // 32-bit counter
+  byte id :7;     // identity, should be different for each node
+  byte boost :1;  // whether compiled for boost chip or not
+  byte vcc1;      // VCC before transmit, 1.0V = 0 .. 6.0V = 250
+  byte vcc2;      // battery voltage (BOOST=1), or VCC after transmit (BOOST=0)
 } payload;
 
 volatile bool adcDone;

  
  if (vcc <= VCC_FINAL) { // hopeless, maybe we can get one last packet out
    sendPayload();
    vcc = payload.vcc2 = 1; // don't even try reading VCC after this send
  }

  if (vcc >= VCC_OK) { // enough energy for normal operation
    sendPayload();
    vcc = payload.vcc2 = vccRead(); // measure and remember the VCC drop
  }

  byte minutes = VCC_SLEEP_MINS(vcc);

  rf12_sleep(RF12_SLEEP);

  payload.id = BLIP_ID;
  payload.boost = BOOST;
}

static byte sendPayload () {
