         case EV_TXSTART:
             // this event tells us that a transmit is about to start.
             // but printing here is bad for timing.
-            lastTxChannel = LMIC.txChnl;
-            break;
+            Serial.print(F(": ch "));
+            Serial.print(unsigned(e.txChnl));
+            printRps(e.rps);
+            Serial.print(F(", datarate ")); Serial.print(unsigned(e.datarate));
+            Serial.print(F(", opmode ")); Serial.print(unsigned(e.opmode), HEX);
+            break;
+
+        case EV_RXSTART:
+            Serial.print(F(": freq="));
+            printFreq(e.freq);
+            printRps(e.rps);
+            Serial.print(F(", datarate ")); Serial.print(unsigned(e.datarate));
+            Serial.print(F(", opmode ")); Serial.print(unsigned(e.opmode), HEX);
+            Serial.print(F(", txend ")); Serial.print(e.txend); 
+            Serial.print(F(", delta ms ")); Serial.print(osticks2ms(e.time - e.txend));
+            break;
+
+        case EV_JOIN_TXCOMPLETE:
+            Serial.print(F(": saveIrqFlags 0x"));
+            Serial.print(unsigned(e.saveIrqFlags), HEX);
+            break;
+
         default:
-            Serial.print(F("Unknown event: "));
-            Serial.println((unsigned) ev);
-            break;
-    }
+            break;
+    }
+    Serial.println("");
 }
 
 /*

lmic_event_cb_t myEventCb;
lmic_rxmessage_cb_t myRxMessageCb;


/*


                              Serial.print("-");
                      Serial.print(nwkKey[i], HEX);
              }
            }
            break;
        /*
