 DHT dht(DHTPIN, DHTTYPE);
 AM2321 am2321;
 
+void p(const char *s) {
+#ifdef SERIAL_DEBUG
+  Serial.print(s);
+#endif
+}
+
 void setup() {
   Serial.begin(9600);
   Serial1.begin(57600);
+  p("A4 vs. G3 / DHT22 vs. SHT31\n");  
   g3.begin(9600);
   a4.begin(9600);
   dht.begin();
   if (!sht31.begin(0x44)) {
-    Serial.println("Couldn't find SHT31");
+    p("Couldn't find SHT31\n");
+    while(1) delay(1000);
   }
   delay(500);
 }

  t = dht.readTemperature();
  h = dht.readHumidity();
  if(!isnan(t) && !isnan(h)) {
    Serial.print("AM2302 :: temp=");
    Serial.print(t);
    Serial.print("   hum=");
    Serial.println(h);
  } else {
    t = -1;
    h = -1;
  }
  delay(100);
  am2321.read();
  Serial.print("AM2320 :: temp=");
  Serial.print(am2321.temperature / 10.0);
  Serial.print("   hum=");
  Serial.println(am2321.humidity / 10.0);
  delay(1000);
}


boolean readG3() {
  unsigned short x;
  byte data;
  unsigned short start = 0;
  pm10 = -1;
  pm25 = -1;
  pm100 = -1;
  memset(buf, 0, 24);
  g3.listen();
  for(x = 0; x < 24;) {
    if(g3.available()) {
      data = g3.read();
