github UltimateHackingKeyboard/firmware v12.3.5
12.3.5

2 days ago

Device Protocol: 4.14.1 | Module Protocol: 4.3.0 | Dongle Protocol: 1.0.2 | User Config: 8.3.0 | Hardware Config: 1.0.0 | Smart Macros: 3.1.0

  • Fix right battery indication on the OLED display when the right-side USB is disconnected.
  • Rename UHK 80 USB and BLE device names to make them easily distinguishable.
  • Implement a number of measures to make the communication between UHK 80 halves more reliable. Recent changes:
    • Set baud rate to 115200. (UART)
    • Check message consistency with CRC. (UART)
    • Redesign the UART protocol. (UART)
      • Use control sequences that are not likely to be triggered by a constant signal.
      • Explicitly start message frames to detect and ignore spurious signals or data originating from broken frames.
      • When such spurious signal is detected, disable UART for a couple of milliseconds to make sure that other threads get some CPU time.
      • Accept ping bytes from any traffic: we can't afford to reset the state sync state just because of a missed ping (e.g., because of a broken frame), as resending the data over a faulty connection would be likely to cause another reset.
    • Resend any corrupted or undelivered messages. (UART)
    • Explicitly check message sequence and order. (UART+NUS)
    • Fix a couple of deadlock scenarios and set low semaphore timeouts to prevent any uncaught scenarios. (UART+NUS)
    • Don't queue messages that were received multiple times, to prevent congestion. (UART)
    • Distinguish low and high priority messages and spread them in time to prevent congestion. (NUS+UART)

Don't miss a new firmware release

NewReleases is sending notifications on new releases.