GitPedia

Unifying

FOSS re-implementation of the Logitech Unifying protocol

From decrazyo·Updated June 3, 2026·View on GitHub·

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. The project is written primarily in C, distributed under the GNU General Public License v3.0 license, first published in 2023. Key topics include: keyboard, logitech, mouse, nrf24, nrf24l01.

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

Contributors

Showing top 1 contributor by commit count.

View all contributors on GitHub →

This article is auto-generated from decrazyo/unifying via the GitHub API.Last fetched: 6/15/2026