         bundleIn = new OSCBundle();
     }
     
+    unsigned long now = millis();
+    checkLedStatus(now);
+    
     // keying action
     readKeys(); 
     if (keyState != lastKeyState) {
-        colorDebug();
-
         if (LaserTrigger == mode) {
             if (keyState) {
                 laserOn();


////////////////////////////////////////////////////////////////////////////////

const int totalModes = 6;

typedef enum { 
    Text = 0,
    LaserTrigger,
    LaserPointer,
    Mash
} Mode;

const char *modeNames[] = {
    "Text",
    "LaserTrigger",
    "LaserPointer",
    "Mash"
};
    
const unsigned long modeColors[] = {
    RGB_BLUE,   // Text
    RGB_BLACK,  // LaserTrigger
    RGB_RED,    // LaserPointer
    RGB_WHITE   // Mash
};

Mode mode;

void setMode(int m) {
    mode = (Mode) m;
}

unsigned long getModeColor() {
    return modeColors[mode];      
}

int modeValueOf(const char *name) {
    int i;
    for (i = 0; i < totalModes; i++) {
        if (!strcmp(name, modeNames[i])) {
            osc.sendInfo("identified mode as %d", i);
            return i;
        }
    }
    
    osc.sendError("no such mode: %s", name);
    
    return Text;
}




    int length = m.getDataLength(0);
    if (length >= morseBufferLength) {
        errorCue();
        osc.sendError("Morse message is too long");
        return;
    } else {
