   int32_t newHeading = messenger.readInt32Arg();
   if (newHeading > 180)
   {
-    digitalWrite(ledPin, HIGH);
+    setLED( HIGH);
     messenger.sendCmd(kDebug, "HEADING > 180");
   }
   else
   {
-    digitalWrite(ledPin, LOW);
+    setLED( LOW);
     messenger.sendCmd(kDebug, "HEADING < 180");
   }
 }
 
+// Update system LED and post state back to SPAD.neXt
+void setLED(int ledVal)
+{
+	digitalWrite(ledPin,ledVal);
+	// Update Led-Data on SPAD.neXt
+	if ((ledVal != lastLedState) && isReady)
+	{
+		lastLedState = ledVal;
+		messenger.sendCmd(kLed,ledVal);
+	}
+}
 // ------------------ M A I N  ----------------------
 
 // Setup function
 void setup()
 {
-  // Listen on serial connection for messages from the pc
 
   // 115200 is typically the maximum speed for serial over USB
   Serial.begin(115200);

  if (strcmp(szRequest, "INIT") == 0) {
    messenger.sendCmdStart(kRequest);
    messenger.sendCmdArg("SPAD");
    // Unique Device ID
    messenger.sendCmdArg(F("{DD7E3826-E439-4484-B186-A1443F3BC521}"));
    // Device Name for UI
    messenger.sendCmdArg("Arduino Demo");

  // Process incoming serial data, and perform callbacks
  messenger.feedinSerialData();

}
