byte addrarray[1500]; int addrcounter = 0; void setup() { Serial.begin(57600); for (int i = 2; i <= 9; i++) { pinMode(i, INPUT); } } void loop() { // Wait for serial input while (Serial.available() <= 0) { delay(200); } Serial.flush(); // Wait until GB is on byte bval = 0; while (bval == 0) { bval = 0; for (int z = 9; z >= 2; z--) { if (digitalRead(z) == HIGH) { bitWrite(bval, (z-2), HIGH); } } if (bval > 0) { // Starting up delay(50); // Skip the "noise" at 1ms } } while (addrcounter < 1500) { bval = 0; for (int z = 9; z >= 2; z--) { if (digitalRead(z) == HIGH) { bitWrite(bval, (z-2), HIGH); } } addrarray[addrcounter] = bval; addrcounter++; } for (int x = 0; x < addrcounter; x++) { for (int z = 7; z >= 0; z--) { if (bitRead(addrarray[x], z) == HIGH) { Serial.print("1"); } else { Serial.print("0"); } } Serial.print(" - "); Serial.println(addrarray[x], DEC); } addrcounter = 0; }