     Serial.print(" FAILED - got 0x");
     Serial.println(b, HEX);
     digitalWrite(ERROR_PIN, 1);
-    while (true) ; // halt
+
+    while (digitalRead(START_PIN) == 0)
+        ;
+    RESET();
 }
 
 static void sendByte (uint8_t b) {

    digitalWrite(GREEN_PIN, 0); pinMode(GREEN_PIN, OUTPUT);
    pinMode(START_PIN, INPUT_PULLUP);

if (1) {
    resetTarget(true);

    Serial.print("  Connecting: ");

        Target.write(Serial.read());
    if (Target.available())
        Serial.write(Target.read());
    if (digitalRead(START_PIN))  // inverted logicgg
        RESET();
}
