GitHunt

Logitech Unifying Protocol Implementation

Arduino nano and nRF24L01+ on breadboard

This project is an attempt to re-implement the proprietary Logitech Unifying protocol as a free and open C library.
The library is intended to be Arduino compatible while remaining compiler and hardware agnostic.
The goal of this project is to enable people to create custom keyboards and mice that are compatible with Logitech Unifying receivers.

Example

The provided Arduino example is dependent on the RF24 library.
https://github.com/nRF24/RF24

TODO

  • Add proper HID++ response payloads
  • Add more examples
  • General code cleanup

Done

  • Timing-critical packet transmission
  • Pairing with a receiver
  • HID++ error response payloads
  • Encrypted keystroke payloads
  • Add documentation
  • Add mouse payloads
  • Add multimedia payloads
  • Add wake up payloads

See also

Hacking Logitech Unifying DC612 talk
nRF24 pseudo-promiscuous mode
KeySweeper
MouseJack
KeyJack
KeySniffer
Of Mice And Keyboards
Logitech HID++ Specification
Official Logitech Firmware

Languages

C99.6%Makefile0.2%C++0.1%

Contributors

GNU General Public License v3.0
Created July 13, 2023
Updated February 21, 2026
decrazyo/unifying | GitHunt