 
 void loop()
 {
+  // Turn the builtin led on while working
+  ledPin.toggle();
+
+#ifdef USE_RTC
+  // Get the current time for logging
+  rtc.get_time(now);
+#endif
+
   // Issue a convert request and check for alarms
-  ledPin.toggle();
   DS18B20::convert_request(&owi, 12, true);
   owi.alarm_dispatch();
+
+  // Turn the builtin led off and sleep
   ledPin.toggle();
-  SLEEP(1);
+  SLEEP(2);
 }

void 
Thermometer::on_alarm() 
{ 
  // Read and print temperature. Do not need reset and precense pulse
  read_scratchpad(false);
  trace << Watchdog::millis() << PSTR(":ALARM:") << *this << endl; 
}

// Support macro to create name strings in program memory for devices
#define THERMOMETER(name)			\
  const char name ## _PSTR[] PROGMEM = #name;	\
  Thermometer name(&owi, name ## _PSTR)

// The devices connected to the one-wire bus
THERMOMETER(outdoors);

 * pin(D7). They may be in parasite power mode.
 *
 * Note that temperature is only read on an alarm. A conversion
 * request is issued every 2 seconds. The request is boardcasted to all
 * connected devices (i.e. a single command is sent without rom
 * address).
  *
