 
     //In the beginning just keep jumping forward and try to resync over lost single frames
     if (radioState.failedDwellsCount < 6 && radioState.channelEntryMillis + RX_CHANNEL_DWELL_TIME < currentMillis) {
-        hopFrequency(&radioState, true, radioState.channel);
+        radioState.failedDwellsCount++;
+
+#ifdef DEBUG_SERIAL
+        Serial.print("Sync forward on ch ");
+        Serial.print(radioState.channel);
+        Serial.print(" number ");
+        Serial.println(radioState.failedDwellsCount);
+#endif
+
+        hopFrequency(&radioState, true, radioState.channel, radioState.channelEntryMillis + RX_CHANNEL_DWELL_TIME);
         LoRa.receive();
-        radioState.failedDwellsCount++;
+        
     }
 
     // If we are loosing more frames, start jumping in the opposite direction since probably we are completely out of sync now
     if (radioState.failedDwellsCount >= 6 && radioState.channelEntryMillis + (RX_CHANNEL_DWELL_TIME * 5) < currentMillis) {
-        hopFrequency(&radioState, false, radioState.channel); //Start jumping in opposite direction to resync
+        hopFrequency(&radioState, false, radioState.channel, radioState.channelEntryMillis + RX_CHANNEL_DWELL_TIME); //Start jumping in opposite direction to resync
         LoRa.receive();
+
+#ifdef DEBUG_SERIAL
+        Serial.println("Sync backward");
+#endif
+
     }
 
 #endif

         * In case of TX module, hop right now
         */
#ifdef DEVICE_MODE_TX
        hopFrequency(&radioState, true, radioState.channel);
#endif

        LoRa.receive();

     * RX module hops to next channel after frame has been received
     */
#ifdef DEVICE_MODE_RX
    hopFrequency(radioState, true, radioState->lastReceivedChannel, millis());
    radioState->failedDwellsCount = 0; // We received a frame, so we can just reset this counter
    LoRa.receive(); //Put radio back into receive mode
#endif
