 REGISTRY_END(CM)
 
 // Status variables and registry
-REGISTRY_BLOB_VAR(uint16_t, vcc, "battery status (mV)", 0, true)
+struct sensor_t {
+  int16_t temperature;
+  uint16_t battery;
+};
+
+REGISTRY_BLOB_STRUCT(sensor_t, sensor, "sensor data", true)
 REGISTRY_BLOB_VAR(uint8_t, load, "processor load (%)", -1, true)
 REGISTRY_BLOB_VAR(uint16_t, errors, "error count", 0, false)
 
 REGISTRY_BEGIN(STATUS, "status") 	// 2
-  REGISTRY_BLOB_ITEM(vcc)		// 2.0
+  REGISTRY_BLOB_ITEM(sensor)		// 2.0
   REGISTRY_BLOB_ITEM(load)		// 2.1
   REGISTRY_BLOB_ITEM(errors)		// 2.2
 REGISTRY_END(STATUS)


  // Access reg root item (item list)
  item = reg.lookup(NULL);
  trace << item << endl;
  list = Registry::to_list(item);
  ASSERT(list != NULL);
  trace << list << endl;

  ASSERT(blob != NULL);
  bool flag;
  ASSERT(reg.get_value<bool>(blob, &flag));
  trace << flag << endl;
  flag = true;
  ASSERT(reg.set_value<bool>(blob, &flag));
  ASSERT(reg.get_value<bool>(blob, &flag));
  trace << flag << endl;

  // Access 3.2 illegal path
  path[0] = 3; 
