Star on GitHubStar2.4k stars

Case study

SF900 ESP32 Dongle: implementing the SF900 controller radio protocol

SF900 ESP32 Dongle implements the SF900/SF2000 controller's 2.4 GHz XN297L radio protocol on an ESP32-S3 receiver. It presents controller input as USB HID or BLE HID and includes a separate USB Wi-Fi mode.

Targets
Protocol
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Sources reviewed
Evidence class
C2 code & docs, no demo or download
Stars
2
Last commit
2026-07-18
Language
C

GitHub data as of 2026-11-10

Copy as MarkdownView JSONCite

Evidence

Observed
Code, documentation and a demo observed; no download method found.
Checked
2026-11-08

How evidence classes are assigned

Requirements & limits

  • Prerequisites: Requires an ESP32-S3 board, an XN297L radio and a USB-C OTG adapter for handheld use.
  • Prerequisites: Building the firmware requires PlatformIO.
  • License: MIT license; bundled third-party components retain their own licenses.

Cite

BibTeX

@misc{sf900-esp32-dongle-case,
  title = {{SF900 ESP32 Dongle: implementing the SF900 controller radio protocol}},
  howpublished = {\url{https://github.com/fernandoalves25/sf900-esp32-dongle}},
  url = {https://github.com/fernandoalves25/sf900-esp32-dongle},
  urldate = {2026-11-06},
  note = {Awesome REA entry: \url{https://awesomerea.org/resources/sf900-esp32-dongle-case/}}
}

Plain text

SF900 ESP32 Dongle: implementing the SF900 controller radio protocol. https://github.com/fernandoalves25/sf900-esp32-dongle (accessed 2026-11-06). Awesome REA entry: https://awesomerea.org/resources/sf900-esp32-dongle-case/

Useful? Star Awesome REA on GitHub2.4k

About this entry

The description was reviewed against primary sources.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · fernandoalves25/sf900-esp32-dongle · Revision f8b1436
  2. docs/PROTOCOL.md GitHub · fernandoalves25/sf900-esp32-dongle · Revision f8b1436

More in Protocols

All 720 entries in ProtocolsProtocols case studies (645)

↑↓ move↵ open⌘↵ new tab