Star on GitHubStar2.4k stars

THE REVERSE ENGINEERING COLLECTION

Reverse-engineering case studies

Page 18 of 21, cases 3,401–3,600. 4,025 case studies from 5,191 curated resources, with documented reconstruction methods, scope, and original evidence.

Software reconstruction artifact reviews

Review artifacts from REA workflows and independent reconstructions. Each entry retains its original sources and known limits.

Reconstruction scope
Implemented features, known gaps and required original assets.
Available artifacts
Original code, releases or demos.
Evidence and attribution
Pinned sources, review dates and documented REA roles.
About these cases

Each case appears once under its primary subject, with all its target labels.

Cases 3,401–3,600 of 4,025

Protocols

645 cases

All sections

Node.js bridge that reads power and cadence from exercise bikes whose own apps or services are gone or closed, and re-broadcasts them as standard Bluetooth LE Cycling Power and Cycling Speed and Cadence sensors and as an ANT+ bike power profile, so that Zwift, TrainerRoad, bike computers and watches can use the bike. The author's development notes describe working out the Flywheel Home Bike's stats packets on its Bluetooth UART service after the vendor shut its home service down; Peloton support reads the bike's data cable through a USB serial adapter, while the Schwinn IC4 and Keiser M clients parse the standard Fitness Machine Service and Keiser's documented broadcasts. Bike and app compatibility is project-reported.

Python library that talks to Garmin watches over their proprietary GFDI V2 Bluetooth LE protocol, with no Garmin Connect, phone or cloud service. It implements the handshake, multi-link routing, COBS framing, CRC16 checks and protobuf service messages, streams typed readings such as heart rate, HRV, SpO2, stress, Body Battery and accelerometer data, and adds a simulator and recorded-session replay for work without hardware. Its acknowledgements credit Gadgetbridge for the protocol logic and schemas, while a published journal shows how the author decoded the accelerometer payload, which Gadgetbridge only logged, from labelled recordings.

Controls Bose headphones from Linux and macOS without the Bose app, account or cloud, through Python, Rust and C++ libraries and command-line tools that implement Bose’s BMAP protocol over Bluetooth RFCOMM. The author documents BMAP’s function blocks, operators, payload layouts and error codes in NOTES.md, reportedly worked out by probing RFCOMM channels, capturing Bluetooth traffic while changing settings in the Bose app and testing each operator, and the libraries cover noise cancellation, EQ, spatial audio, button remapping, profiles and device settings. Support is reported per model by the author and contributors.

Reconstructs the DUML-over-BLE protocol that DJI's Mimo app uses with the Osmo Pocket 3 camera as a Node.js library and CLI for scanning, pairing, gimbal commands and roughly 20 Hz position telemetry without the vendor app. The author reports working from a third party's Wireshark captures and dissector of Mimo traffic, a Go client and trial-and-error debugging; PROTOCOL.md documents the frame layout, CRC parameters, BLE characteristic roles and command IDs. A write-up and bundled patch trace seven bugs that kept the earlier node-osmo library from working with the camera, and the author reports that the patched library completed pairing, Wi-Fi setup and RTMP streaming.

Documents the Bluetooth Low Energy message format that DJI's proprietary MIMO app uses to control DJI Osmo devices, as artifacts produced while building the independent djictl CLI. The author derives the framing — a magic byte, length, protocol version, header CRC8, subsystem and message-id fields, a payload and a message CRC16 — from the author's own Android BLE logs, and ships a Wireshark dissector plus an annotated catalog of message types. Many message types are labelled as guesses or unknown; the author reports reaching working livestreaming on a DJI Osmo Pocket 3 and pausing further analysis.

Replaces the vendor phone app for the MXW01 “cat printer”, a small Bluetooth Low Energy thermal printer, with a Windows command-line client. The author reports starting from the iOS-only Moblin implementation and then reverse-engineering the vendor's phone app further, and the client sends CRC8-checked commands to one GATT service while streaming 384-pixel image lines in 1-bit or 4-bit grayscale. Several command IDs remain marked as unknown, and the author tested only this one printer model.

Reconstructs the A0 serial protocol of R2000-family 915 MHz UHF RFID desktop readers, which ship with only Windows software and an Android app, from the vendor app's native command encoder rather than its misleading Java SDK. A userspace CH340 driver, a Python CLI and GUI, and a small Android app then talk to the reader directly for inventory and tag-memory reads. docs/PROTOCOL.md records the frame layout, checksum, command table, response formats and the different field orders of READ and WRITE.

Documents the closed Bluetooth Low Energy GATT protocol of the Xiaomi Kettle, which the author reconstructed by decompiling the Mi Home Android app and disassembling its native encryption library. The write-up covers the connection and authentication handshake, the layout of status notifications and the writable settings characteristics, with a small Go reimplementation of the cipher helpers. The author built a kettle-to-MQTT bridge for Home Assistant from it but did not publish that code.

Documents the medium-speed CAN bus that links the 6000CD radio and the dashboard of a restyled (post-2006) Ford Fiesta MK5, worked out by tapping the bus at the radio's QuadLock connector with a Seeed CAN-BUS Shield on an Arduino Uno. The README describes 18 partly or fully decoded message IDs on the 125 kbit/s bus, with byte layouts and scaling formulas: radio text sent to the dashboard LCD over ISO-TP, station names, volume, CD track and steering-column mode and seek buttons, as well as broadcast clock, door, lock, reverse-gear, indicator, light, handbrake, airbag-lamp, pedal, RPM, speed, coolant, key-position, battery and partial VIN data. An incomplete Kayak .kcd definition encodes only the clock and gas-pedal/RPM/speed messages.

Decodes the undocumented Bluetooth Low Energy output of a Uniden R8 radar detector into a receive-only collector for a Raspberry Pi, with live telemetry, alert start/update/end events, SQLite history and optional MQTT and Home Assistant publishing. The author worked the protocol out from the wire on a real detector, building on earlier R8w findings from AegisX86/UnidenR8wlink, and grades every claim in PROTOCOL.md by its evidence: measured on this R8, seen on another model, decompiled from an app but untested, or inference. Unknown fields are carried through raw rather than given invented meanings.

Speaks the undocumented protocol of the Scanmatik SM3, a J2534 vehicle interface that otherwise talks only to its own Windows software, and exposes it to an Android phone as an ELM327 bridge with a diagnostics app on top. The author recovered the framing — a 16-byte header with sequence, CRC-based and sum-based check words, opcode and length — by capturing the device's bundled driver and measuring the replies, and docs/protocol.md separates what was established from what is still open. Reported results come from one Opel Astra J over five sessions with the car present.

Reimplements Apple Wireless Direct Link (AWDL), the proprietary Wi-Fi ad hoc protocol Apple devices use for peer-to-peer links such as AirDrop, as a user-space C daemon for Linux and macOS; the README calls it the result of reverse engineering by the Open Wireless Link project at TU Darmstadt's SEEMOO lab. OWL runs the master election, synchronises availability windows and the channel sequence, parses and crafts AWDL action and data frames, and provides an awdl0 virtual interface with a link-local IPv6 address, so unmodified IPv6 programs such as SEEMOO's OpenDrop AirDrop client can reach Apple devices. The authors describe the recovered protocol in a MobiCom 2018 paper.

QuestPad implements the Quest Touch controllers' private 2.4 GHz radio protocol on nRF52840 firmware so a computer can use them as a USB gamepad. Its protocol reference documents pairing, AES-CCM encrypted controller packets, 2 ms link frames and input data; the firmware exposes generic gamepad, DS4 and XInput modes.

Stadiacast recreates the network service used by the Stadia Controller's Wi-Fi firmware so the controller can connect to a local computer. The receiver answers boot and discovery requests, completes WebRTC and DTLS sessions, decodes input and sends rumble commands. Protocol notes record findings from firmware reading and live controller runs, with protobuf schemas and receiver code in the repository.

LibreMP casts desktop screens to Epson EasyMP projectors using a protocol reconstructed from Windows client packet captures. Its Rust core handles registration and login messages, projector QR decoding, JPEG tile streaming and changed-region updates; a CLI and Tauri interface use the same core. The project documents control on TCP 3620 and video on TCP 3621.

Sound Blaster AE-9 Linux support reconstructs card and Audio Control Module behavior using static analysis of Creative's Windows drivers and hardware observations. The included investigations document CtxHda.sys, CtxHdb.sys, and the ACM's SysEx-framed UART protocol; the driver implements selected playback and controls.

open-rknpu reconstructs a task-program interface for the Rockchip RV1103/RV1106 NPU from board experiments and black-box comparisons. Its Python compiler emits register commands, weight and quantization blocks, and a container for bounded static ONNX convolution graphs; a C runtime submits them through /dev/rknpu. Research files document register and numerical findings.

hardsid4u reconstructs the HardSID 4U USB protocol and implements a libusb Python driver for its SID-chip sockets. The investigation combines vendor-binary analysis, USB captures, and hardware probes to document command framing, initialization, register writes, timing, and flow control; a MIDI instrument uses the driver.

PyEilik implements control of an Eilik desk robot over a recovered USB serial protocol. Its C library and Python wrapper move four servos, read and update the 128×64 display, and play video with synchronized movement. The protocol reference documents 125000-baud framing, command IDs, checksums and acknowledgements.

libfprint-goodixtls reconstructs communication with the Goodix GXFP5187 SPI fingerprint sensor in the Huawei MateBook X Pro as a libfprint TOD driver. It reads a PSK from sensor RAM, establishes the sensor's TLS-PSK channel, decodes captured images, and uses local descriptors for host-side matching. The author reports enrolment and verification through fprintd and GNOME Settings; detailed reverse-engineering notes are kept outside the repository.

RazerStream replaces the retired control software for the Razer Stream Controller with a macOS app, Swift protocol library and CLI. Its documented device protocol runs over a USB serial port, performs a WebSocket upgrade, then exchanges framed commands and input events. The app configures touchscreen tiles, knobs, buttons and LEDs.

PocketPrinter5890 reconstructs the BLE printing protocol of Lidl's Tronic, SILVERCREST, and Parkside model 5890 pocket printers. Its specification documents activation writes, flow-control credits, and raster bands; Swift, Kotlin, and TypeScript libraries implement printing for Apple devices, Android, and browsers.

This parking-sensor investigation reconstructs the signal sent from a kit's controller to its display. Oscilloscope observations and tests with different sensor states identify fields in roughly 48-bit frames for sensor address, connection and proximity. A PlatformIO example for ATmega328P reads and reports the parsed frames.

pyhaseiq reconstructs the local WebSocket protocol of Hase iQ wood stoves used with the flamemonitor app and implements an asynchronous read-only Python client. The specification records base64-encoded request and response frames, serial dialogue and observation status for each finding; the client reads combustion phase, temperature and performance.

LED Controller uses BanlanX BLE commands to control SP611E-family LED strips from a desktop app. Its documentation maps GATT commands and state notifications, and reports probing an audio-feed message used by the controller’s music effects; included tools inspect advertisements, GATT state and Bluetooth captures.

vanmoof-certificates decodes the access certificates used with VanMoof SA5 and Series 6 bikes. It documents an Ed25519 signature followed by a CBOR payload containing bike serials, user identity, access role and expiry, and provides Go code to request, parse and check certificates. The source says the SA5 verification key was recovered from a bike BLE certificate.

Cosmic Byte Firestorm Controller implements a Linux client for the mouse's recovered USB settings protocol. Its Python CLI sends control and interrupt transfers to configure lighting effects, per-DPI indicator colours and sensitivity levels, while PROTOCOL.md records packet structures and command sequences.

FAAC E145 Gate Connect implements local control of an FAAC E145 gate through serial commands reconstructed from EasyBoard software traffic. The documentation lists POLL, OPEN, CLOSE and STOP byte sequences and describes their framing and checksum. The Python gateway adds position monitoring plus web, REST and MQTT interfaces.

TOZO Control provides a Linux GTK4 client for TOZO earbuds using a BLE GATT protocol recovered from the vendor's Android app. It sends commands to characteristic B611, receives notifications on B612, and documents GET and SET packet layouts and parameter IDs. The author reports testing the T10 model for battery, game mode, equalizer and balance controls.

BMS RS485 Service Suite documents an observed ASCII RS485 protocol for battery-management services and implements frame building and decoding in Node-RED. The specification covers framing, length and checksum fields, request and response rules and decoded service IDs; the wider suite connects JK and DALY BLE data to MQTT and dashboards.

K1 Pro OpenDeck Suite includes a Linux OpenDeck driver for the HOTSPOTEK/Mirabox Stream Dock K1 Pro based on its reverse-engineered USB/HID CRT protocol. The driver handles connection and keepalive messages, 64×64 JPEG key displays, RGB ring controls, and three knob inputs. Four accompanying plugins add generic OpenDeck functions.

Dell ControlVault 2 fingerprint on Linux adapts a locally obtained Broadcom driver to the older BCM5880 fingerprint reader through five signature-matched byte patches. The accompanying investigation maps the device’s USB endpoints, command header and driver checks. The author reports working capture, while enrollment and matching remain unreliable or unconfirmed.

epson-l3110-driver investigates the Epson L3110's USB printing exchanges while developing a Linux driver in C. Its notes use captured print-job traffic to identify the IEEE 1284 device ID, EJL session setup and ESC/P-R command framing. USB communication is still in progress, and the driver cannot yet print pages.

MS5 WiFi Microscope reconstructs the MS5 camera's UDP command and video protocol and supplies a Python client that serves its reassembled JPEG stream as MJPEG. The documentation specifies command headers, the OpenVideo port handshake, chunk layout and resolution queries; the author reports 1280×720 streaming at roughly 25–30 fps on MS5 hardware.

Magene L308 interop tools reconstruct the smart taillight's BLE control protocol and light_mode.bin pattern format. A protocol specification records GATT characteristics, command frames and upload sequences; browser, Python and Garmin clients use those findings to control settings and patterns directly.

ak820 implements macOS control of the AJAZZ AK820 Pro keyboard through its vendor HID feature-report protocol. The Python CLI sets the clock, RGB lighting, and sleep timer over USB; accompanying notes describe Windows-driver analysis, packet framing, transaction handshakes, and the unresolved key-remapping commands.

GameTrak Liberation implements a client for the GameTrak controller's reverse-engineered USB HID behavior. It sends the initialization and rolling-key keepalive messages needed for sustained reports, then exposes six-axis data through stdout, OSC, MIDI or WebSockets. Protocol notes, report captures and Processing and p5.js examples accompany the Python tools.

Cooper Hunter AC documents the COM1 UART and infrared control messages of CH-IF140RK and CH-IF140RK2 units with a Gree GRZQ3-R V1 board. The author inferred UART status fields by comparing packets while operating the infrared remote. The resulting ESPHome design receives UART status and sends control through an infrared signal path.

aw5d-linux drives the round LCD on an iBUYPOWER AW5/AW5D cooler from Linux using a 64-byte USB-HID output report. Its research notes document report ID 0x10 and byte positions for CPU usage, clock, temperature and gauge styling. The author reports a working display on one 3402:0407 unit; other device variants remain unconfirmed.

MyJBxHeadsetControl provides Stream Deck controls for the JBL Quantum 950 Wireless headset through its USB dongle's reverse-engineered HID exchange. It receives status packets for battery and sound modes, sends feature reports for settings, and uses the user's QuantumENGINE DLL to calculate EQ coefficients.

zlt reconstructs the LAN JSON API of the MTN ZLT T10D MAX router from its served JavaScript and observed responses. Its Python client handles reqproc requests, login and CSRF behavior, while a CLI and local dashboard expose signal, network mode, SMS and USSD operations. The protocol document identifies firmware-specific fields and porting limits.

claude-rc-api reconstructs the private HTTP interface used to control local Claude Code sessions from claude.ai/code. Its reference derives session endpoints, OAuth authentication, event envelopes, and streaming behavior from the CLI binary; a Python library and CLI use that interface to observe and steer sessions.

MSI Mystic Light on Linux implements lighting control for an MSI motherboard from USB traffic captured while MSI Center ran in a Windows VM. Its Python script sends a 290-byte HID Feature report to controller 0db0:0076, while the documentation maps modes, RGB palette bytes, brightness, direction and the flash-save flag.

j2208-band-tools implements a direct BLE client for J2208-family fitness bands using protocol findings recovered from the FitTrack Health companion app. Its Python tools read stored health history and live sensor values, probe GATT services and collect readings into SQLite. The author checked the documented 16-byte frame protocol against one Hume Band V2.

OpenPeats reconstructs the SoundPEATS earbud control protocol for desktop and Android clients. Its specification describes frames and opcodes derived from analysis of the official Android app and checked against SOUNDPEATS H3 hardware. Go and Kotlin implementations expose ANC, equalizer and multipoint controls, plus battery status.

hongtai-panel implements Linux control of a LovingCool AIO cooler LCD using a USB CDC-ACM serial protocol reconstructed from the vendor's Electron application. Its documentation describes control-frame layout, checksums, JSON replies, and opcodes; the client displays system statistics, media, or screen mirroring.

An ESPHome component recreates L&S Emotion Control remote commands so an ESP32 with a CC2500 radio can control furniture lights and reflect physical remote presses in Home Assistant. Its documented radio configuration uses MSK at 2436.2 MHz, a sync word, and 14-byte payloads carrying the remote ID, command, and value.

RND Companion reconstructs the Cymaforma RND Synth's SysEx control vocabulary and implements a C++ codec and companion plugin for patch seeds. The protocol notes identify framing and seed or status commands from a web app and one hardware capture. The client can use a direct MIDI port or host MIDI routing and stores a curated seed library.

viture-v2 documents and implements the USB HID protocol used by VITURE Gen2 XR glasses. The author matched usbmon captures to SDK frame logs, then wrote a Rust driver with hidraw, usbfs and io_uring transports for queries and IMU streams. Measurements and compatibility claims cover the VITURE Pro 2 XR.

BikeStation is a local Windows client for Echelon Connect exercise bikes built on community research into their proprietary Bluetooth LE protocol. It reads cadence and resistance telemetry, queries the bike's resistance range, writes motorized resistance commands and records rides without the vendor cloud.

PartyBox for Home Assistant replaces the JBL PartyBox phone app's control path with a Bluetooth client and MQTT entities. Its documented protocol was reconstructed from the JBL PartyBox Android app 3.14.20 and observed traffic, including command frames over GATT and ATT over classic Bluetooth.

mchose-linux reconstructs the MCHOSE mouse settings protocol and implements Linux CLI and GUI clients for it. Its documentation traces HID feature-report commands and configuration fields from the M HUB web bundle and an L7 Pro mouse. The clients read and change DPI, polling rate, lift-off distance and other stored settings.

K1C CFS without official Creality firmware reconstructs part of the Creality CFS RS-485 control protocol so a K1C running a community Klipper stack can operate the filament box. Its Python client and Klipper extension cover discovery, addressing, sensors, RFID, filament feed and retraction; the combined toolchange macro remains unfinished.

RedMagic Cooler for macOS reconstructs the REDMAGIC VC Cooler 6 Pro's Bluetooth control path in a menu bar app. It uses packet captures and vendor app observation to map GATT characteristics for cooling, fan speed, lighting and telemetry, and includes probe scripts for testing command bytes.

open-m711pro reconstructs the Redragon M711 Pro mouse's USB HID configuration exchanges from vendor-app traffic captured with usbmon and Wireshark. Its Python Linux driver and interfaces read and set lighting, DPI, button mappings and polling rate through hidraw, with packet builders tested against captured bytes.

Better RGB reconstructs the USB HID lighting protocol of Tongfang laptops with an ITE8291 keyboard controller and implements a Windows per-key RGB client. The author describes comparing vendor-software captures with visible lighting changes to identify feature-report commands, output-report buffers and key offsets.

aiowapy implements a Python client for WhatsApp Multi-Device using Noise transport, Signal sessions and a WABinary codec. Its protocol notes describe framing, pairing and message stanzas; the code also covers media, groups, app-state sync and SQLite session storage. The author reports extensive offline tests but no live end-to-end message delivery yet.

redmi-buds-linux reimplements Redmi and Xiaomi earbud controls on Linux using a documented variant of JieLi RCSP over Bluetooth Classic RFCOMM. The author derived the challenge-response transform from the companion app's native library and compared protocol behavior with a phone-to-buds HCI capture. Its Rust CLI and GTK app expose battery status, EQ, gestures and earbud finding; noise control is available on models with ANC.

The iPod Classic LCD investigation maps the 34-pin display connector and decodes its 18-lane RGB666, 8080-series bus using logic-analyser captures and electrical measurements. It documents command framing, initialization, power sequencing and pixel timing, and includes Python tools to decode captures and reconstruct screen images.

StargateCryo is a Rust dashboard that monitors and controls Intel Cryo cooling controllers over a documented reverse-engineered serial protocol. It adds controller telemetry, PID profiles, diagnostics, session history, and sensor integrations to an earlier open-source controller. The documented hardware evaluation covers one modified Gen 1 controller with a Gen 2 TEC.

OBOX Controller ViGEm Driver implements a Windows client for the Snail OBox Bluetooth gamepad using a documented HID protocol. Its Rust driver maps buttons, sticks and triggers to a ViGEmBus Xbox 360 controller and sends rumble and LED commands through HID output reports; the repository also includes a Python prototype.

An OsmoFresh Quella Pro investigation records reconstructed PCB schematics, identified components and a UART communication model for the water dispenser. The protocol notes distinguish main-to-display responses from display-to-main AA frames and give a SUM16 calculation, while leaving several payload meanings unresolved.

Colorful 2F4C:1018 reconstructs the HID commands used to drive a COLORFIRE motherboard's ARGB headers from vendor-app analysis and live probing. It identifies interface 2 as the lighting channel and documents 20-LED data reports followed by commit reports. Included OpenRGB controller code sends direct frames and host-rendered effects.

Deli XiangYinBao X1 reconstructs the portable label printer's proprietary Bluetooth printing protocol from HCI captures and Frida observations. It documents CRC32 framing, 384-dot bitmap encoding, replies, and print sequencing, with Python and JavaScript implementations, capture parsers, and regression tests.

Elan 04f3:0903 reconstructs a laptop fingerprint sensor's USB interface after analysis of its Windows driver DLLs and provides a Linux capture and authentication pipeline. The source identifies command, touch and raw-frame endpoints, then describes OpenCV preprocessing, ORB features and RANSAC matching for a PAM integration.

FIIL 耳机控制 implements a Windows client from reverse-engineered BLE GATT commands used by FIIL headphones. Protocol notes describe the fdb3 service, ff17 write and ff18 notification characteristics, message framing, unlock sequence and command responses. The desktop app controls supported modes and records raw traffic alongside parsed results.

atmos-lcd is a Windows client for the Cooler Master MasterLiquid Atmos II LCD built around a reverse-engineered USB HID protocol. It controls screen content, brightness, rotation, and stored media; the repository documents handshake and command framing and includes a C# probe and packet-capture parser.

B&K 2318 documents measured behavior of a vintage thermal printer's ZI 0054 serial interface, including XON/XOFF flow control, text commands, character sets, and graphics. An ESP32-C6 and SP3232 adapter connects a modern computer to the unmodified printer; the repository includes firmware, a Python client, probe scripts, and logs.

TCOMAS LG600 reconstructs the USB HID image-transfer protocol of a 480×480 cooler LCD from vendor-app traffic. Its Python package encodes images as JPEG, splits each frame into HID output reports, and streams them to the display. The documented report format and timing constraints are based on one tested LG600 unit.

Wanderer implements control software and a data plotter for an Elektrobit/Extrabit portable sensor device from around 1991. The author says the unit they examined measures ambient temperature and vibration, and reports reversing its serial protocol and reimplementing parts of the original Windows control software in Python.

autowonder-claude-executor reconstructs AutoWonder's scheduler-to-executor interface in a Node and TypeScript daemon that runs Claude Code for dispatched tasks. Its specification covers WebSocket dispatch frames, package checks, inventory heartbeats, handoff, checkpoints and crash recovery.

LocalAC reconstructs local control of a Gree Pular T3 air conditioner through its LAN protocol. The author documents UDP port 7000 discovery, a bind handshake, AES-GCM command envelopes and property behavior measured on one firmware version. A C# protocol library supports a CLI and .NET MAUI app for status, temperature and other controls.

Panoptes reconstructs the encryption layout of Hik-Connect live video streams for a self-hosted Hikvision DVR video wall. The author compares clear SPS data in SDP with encrypted in-band SPS, reports AES-128-ECB with the device verification code as key, and implements per-NAL decoding in an RTSP client that feeds go2rtc.

mchose-linux reconstructs MCHOSE A5 and AX5 Pro mouse settings on Linux from a decompiled Windows driver. It documents 65-byte HID Feature Reports, command groups and field offsets, then provides DPI and polling-rate controls, battery status and other settings through a CLI, GNOME extension and GTK app.

epson-scan-to-mac reconstructs Epson's Scan to Computer exchange for Macs from captured printer and Event Manager traffic. A Python listener answers SLPv2 discovery and PushScan requests, then asks Epson ScanSmart to scan; a separate WSD listener can save JPEGs directly. The protocol notes document the observed message flow and bytes for an EPSON L6270.

WDA Konfigurator reconstructs the configuration client for Microsoft Wireless Display Adapters. The author derived its CGI request protocol from original-app traffic and app inspection, then built a Windows GUI and CLI for settings and official firmware installation. The documented protocol covers commands, discovery, errors and firmware transfer for Gen 1, Gen 1.5 and Gen 3.

Guoran nixie clock documents the BLE control protocol of GANXIN IN1204M family clocks and implements it in a Web Bluetooth app and Home Assistant integration. The author derived the commands from the original Android app and the clock manual; the protocol document records GATT characteristics, message handling, and open questions.

Ecovacs Deebot X1 Local Control Research documents the robot's map format, ROS messages, state stream, and control services for local operation. The repository includes captured message definitions, scripts for querying and calling the ROS graph, and deployment notes for a separate Valetudo fork. The author reports working map, cleaning, and settings control on an X1 device.

MyEnergy Dashboard reconstructs Bluetooth control and telemetry for the INFINITY 1000 portable power station in a browser app. Its TypeScript protocol package builds frames, checks Modbus CRC, decodes device messages and runs a simulator, while the web interface exposes power readings and controls.

zte-cpe-sms reconstructs access to the internal SMS API of ZTE MC889 and related 5G CPE devices. Its protocol notes describe login hashing, an RSA session-key exchange, a token that must be recalculated after key exchange, and UCS-2 message encoding; Node.js CLI and web clients use those findings to read and send SMS.

Telly Remote controls a Telly TV through a Flipper Zero that emulates the TYRC-1 remote over Bluetooth HID and infrared. Its documentation records captured NEC extended infrared codes, Bluetooth advertisements and scan responses, and the PnP ID that selects the TV's key map; a local web server sends keys and menu sequences to the Flipper.

manifold-558s-ble reconstructs the testo 558s refrigeration manifold's Bluetooth LE message format from observed traffic between the device and its phone app. Its Python client subscribes to live pressure and temperature measurements, while companion scripts inspect GATT services and decode Android Bluetooth captures.

iMist implements local Home Assistant control for an aroma diffuser whose Bluetooth command format was inferred by observing reports while its buttons were pressed. Its protocol notes map the fff4 characteristic's aa MM LL mist and light bytes; the integration exposes state, color, mist, schedules, and a sleep timer.

Toshiba e-STUDIO2323AM/2823AM CUPS driver reconstructs the printers' PJL and JBIG-1 print stream from captured Windows GDI driver output. A CUPS raster filter and PPD generate jobs for a socket print queue, while protocol notes describe job envelopes, page blocks, paper options, and copy behavior. The author reports byte-level capture comparisons and printing on an e-STUDIO2323AM.

reticos-rgb reconstructs the Speedlink RETICOS RGB mouse's HID profile protocol from a capture of its vendor driver. Its Python tools read and back up the onboard profile, change lighting, DPI and polling settings, and decode exported .bkm profiles. The documentation maps feature reports and selected profile bytes.

SPL Lab Web replaces the measurement functions of the NEXT LAB bass meter's Windows software with a Node service, browser interface and Electron app. Its device protocol document draws on Ghidra decompilation, configuration files and live tests; the client reads USB serial data, computes measurements and exposes an HTTP/SSE API.

SainSmartDDS140 reimplements control of the SainSmart DDS140 USB oscilloscope through its recovered USB protocol. The author describes decompiling the vendor .NET app, examining its WinUSB wrapper and checking commands against hardware. A pyusb client exposes capture, calibration, recording and a local browser interface, while protocol notes document control transfers and interleaved channel samples.

haylou-rt-tools reconstructs selected Haylou RT LS05S watch interactions and the .tbwf watch-face format from device observation and study of the Hello Haylou app. Its Python tools query firmware and battery status, pair with the watch, show a text alert during pairing, build and check faces, and preview main text elements. The protocol notes specify BLE services, frame checksums, and command IDs.

A DJI RC Plus 2 investigation reconstructs its control-report protocol and maps the handheld’s sticks, wheels and buttons to gamepad input. The Android library decodes DUML reports, a tester displays live controls, and a Java SDL3 bridge presents them as an Xbox-style controller. Protocol notes give frame layout, checksums, keepalive and report rates.

AK820 Center implements a Linux configurator for the AJAZZ AK820 Pro keyboard using a vendor HID protocol recovered from the Windows DeviceDriver.exe. Its protocol notes describe 65-byte feature reports, transaction framing and command banks; the Qt application controls lighting, remapping, macros and TFT uploads over wired USB.

The Fisher & Paykel RF505BRNUX1 bridge decodes two 9600-baud serial links on the refrigerator's main board and exposes door, setting, compressor, defrost, and temperature states to Home Assistant. Its documentation specifies frame layout, CRC-16/MODBUS, addresses, and byte maps; an ESPHome configuration reads the links without transmitting.

Lightstick Vibed Studio reconstructs BLE control of the Super Junior Ver. 2 lightstick from study of the SMTOWN Android app and checks on hardware. A local FastAPI console scans the device, sends color and effect commands, and offers a byte-level packet lab. The repository also contains a protocol specification and an Android client awaiting hardware BLE testing.

IOTBT701 BLE LED Strip applies the protocol from the open-source lednetwf_ble integration to a Zengge-family Bluetooth light strip, checks it against the physical device and implements Windows C# clients. The notes describe GATT service FFFF, command characteristic FF01, status characteristic FF02, power and v3 color frames, plus device-specific hue behavior. A GUI maps screen color to the strip.

The Heat & Glo RC300 Homey app reimplements 433 MHz commands from the IntelliFire Plus RC300 fireplace remote. Captures made with Homey's RF recorder inform a documented 47-symbol frame layout; the app learns the user's remote address, sends on/off, flame, and fan commands, and receives remote state changes.

Silverbud implements a Windows manager for Galaxy Buds3 over Samsung's RFCOMM control channel. It parses framed status and battery messages and sends settings commands for noise control, equalization and finding earbuds; its protocol notes credit GalaxyBudsClient for base layouts and document Buds3 observations.

hiska-keg450-lcd reconstructs Linux control of the HISKA HX-KEG450 keyboard from vendor HID traffic captured under Wine. Its Python client sends images, animation, lighting, settings, and clock commands through hidraw, while protocol notes specify report sizes, opcodes, acknowledgments, and upload sequences.

DMR-39 Remote Bridge reconstructs remote control of the SUPER DMR-39 set-top box by probing its I2C front panel and capturing NEC infrared signals. The resulting ESP32-C3 firmware and Python tools expose mapped buttons through a web relay, with HDMI capture used to observe responses. The author reports mapping all 41 remote buttons.

pro2-linux reconstructs configuration of the Logitech G PRO 2 LIGHTSPEED mouse on Linux from its HID++ 2.0 exchanges and onboard profile format 0x07. Its Python tools and libratbag patch handle DPI, report rate, RGB and button settings, while protocol notes record feature IDs and report layouts.

BLE LED Matrix Controller investigates the BLE commands of an ATOTOZONE CI-VIALD19 96×20 LED matrix and supplies a Python uploader for GIFs and static images. Its notes record packet acknowledgments and commands for brightness and screen blanking; the author reports successful GIF uploads below 49,980 bytes.

lochinvar-native-modbus reconstructs the read-only Modbus register map exposed by Lochinvar Knight boilers through the SMART SYSTEM display's USB PC Connection port. Probe scripts and display comparisons identify telemetry for temperatures, firing rate, flame signal and counters; ESPHome and MQTT bridges publish readings to Home Assistant.

hd60-macos recreates host control of the original Elgato Game Capture HD60 on macOS from USB traces of Elgato's application. Its libusb driver uploads a user-extracted firmware image, replays trace-derived I²C initialization sequences, and streams H.264 video and audio as MPEG-TS to stdout, UDP, or OBS.

Lumalou Revival reconstructs control of the Fisher-Price Lumalou lamp after its app was discontinued. An ESPHome bridge and Python client implement the documented MPID BLE exchange, including ECDH session setup, AES-128-CTR packets and framed sound-and-light commands. The reference lists 68 opcodes; the author reports testing on one lamp.

Tonebook documents and implements MIDI control of the LIVTRA NanoCore guitar pedal from a browser. Its protocol notes map the documented control messages and observed SysEx framing used by the vendor app to name and save presets. The site applies song tones, adjusts parameters live, and stores presets on the pedal after confirmation.

Resonance reconstructs Sony headphone controls in a Windows app using a documented Bluetooth Classic MDR protocol. Its core library and CLI implement framing and commands for noise control, equalizer, battery, touch settings, and device switching; the protocol notes distinguish app-derived fields from device observations.

moldqueen controls Mould King building-block toys by encoding commands as BLE advertisements derived from a reconstructed device protocol. Raspberry Pi, Android and ESP32-S3 radio cores expose a shared WebSocket API to a browser client; the Mould King 13112 excavator is the documented hardware reference.

Minisforum MS-A1 EC fan / temperature driver documents the embedded controller's sensor command exchange and implements a Linux hwmon module for CPU temperature, board temperature and three fan RPM readings. The investigation records direct port I/O at 0x6C and 0x68, the 0xDD temperature and 0xD5 fan commands, and a command sweep used to examine the available interface.

NFC PM-Pro reconstructs the FURUI NFC PM-Pro reader's USB HID command exchange and implements a Linux GUI and CLI around it. The protocol notes describe report framing, RC4 encryption, CRC-16 and device commands; the client reads, writes and clones supported RFID cards, runs dictionary, nested, darkside and hardnested key recovery, and handles dumps and NDEF records.

RF Power Meter V5 Companion reconstructs the USB RF Power Meter V5 serial exchange and uses it in a Windows monitoring app. Its protocol notes describe 460800 8N1 communication, calibrated dBm records, burst markers, and device settings; the author reports comparing live captures with an IL decompile of the vendor executable.

miband-lit implements direct BLE communication with a Mi Band 5 to authenticate, stream heart-rate readings and send notifications or vibration commands. Its write-up describes the band's 16-byte key and AES challenge-response exchange. A Streamlit dashboard displays readings, while an optional WiZ bulb integration reacts to them.

zafro-ha-local replaces the cloud endpoint used by a Zafro A9092R air conditioner with a LAN server. Its protocol notes derive the device's REST login, MQTT 3.1 WebSocket messages, topics and state commands from captured traffic. The Python service handles the device connection and publishes Home Assistant entities through MQTT Discovery.

open-apt-flash reconstructs the UART bootloader exchange used by APT Burn Tools to flash the APT 860C e-bike display. Its Python library, CLI and GUI implement 57600 8N1 communication, page framing, checksum, acknowledgments and a sync handshake. The author reports comparison with original-tool traffic and a complete flash on a live display.

MADLIONS 60 Configurator implements a Windows client for the MAD60 keyboard using USB HID commands reconstructed from vendor web app traffic. Its device layer builds configuration reports and reads settings back from the board; the interface covers per-key lighting, animations, Hall Effect settings, and profiles. Capture helpers support investigation of other models.

ESPHome — Technibel SCDF32C5I IR Climate reconstructs the air conditioner's 48-bit infrared command format from raw captures. Its protocol notes map frame fields and checksum behavior, while an ESP32 frame builder and ESPHome configuration send commands through a Home Assistant climate entity.

GameGent is a Linux client for configuring GameSir Tarantula Pro controllers through a reconstructed USB HID exchange. Its protocol notes derive packet fields from the vendor Electron app and a Ghidra-decompiled DLL; the CLI reads state and mappings and sets lighting, sticks, motion controls, remaps and rumble.

PolyWollyWin controls the ASUS ROG Strix Flare II Animate keyboard's AniMe Matrix through a USB HID format confirmed from captures of the official software. The Windows app sends 312 LED values in a documented report and provides effects, image playback, and a paint editor. The repository also documents hardware porting.

divoom-protocol implements a Python BLE client for Divoom Backpack M and TimeBox-Evo-audio displays using reconstructed framing and command sequences. Its documentation covers session initialization, brightness, channel switching, image frames and animation upload, and identifies commands that remain undecoded.

hestia reimplements the Keemple gateway's cleartext 0x7e-framed protocol for local smart-home control. A specification derived from observed LAN traffic covers framing, TLVs, handshakes, device commands and reports. The Python server operates as a decoding proxy or a standalone cloud replacement, with a web dashboard and local automation.

Ricoh SP 200 Linux CUPS Driver reconstructs the printer's USB print exchange from captures of its Windows driver. Its notes identify PJL commands around JBIG1 raster data, document page transitions and image chunking, and accompany a C filter that converts CUPS raster input into the observed job format.

HyperX QuadCast 2 S RGB control implements a macOS client for the microphone's USB HID lighting exchange. The source documents seven-packet color updates, acknowledgments, upper and lower LED zones, and IOKit collection selection and response draining. The app controls solid colors and brightness through a menu bar interface.

whoop4-ble reconstructs direct BLE access to Whoop 4.0 sensor records in a Python client. It documents command framing, CRCs, historical-data draining, and a five-byte SET_CLOCK payload that the author reports fixes stalled flash recording; tools export HR, RR, and accelerometer samples and monitor packets.

MSI Mystic Light RGB Web Control Panel reconstructs USB HID lighting commands for the MSI PRO B760M-A DDR4 II motherboard. Captures from MSI Center inform its 185-byte Feature Report layout, enable bit and two-packet send sequence; a Linux Flask service exposes zone controls in a browser.

Open Trofeo LCD drives the Thermalright Trofeo Vision 9.16-inch display from Linux using documented USB transfers. Its notes combine the project's captures with prior trcc-linux work to describe initialization, JPEG frame chunks, and acknowledgments. A native PyUSB path feeds a dashboard with themes, system telemetry, media, weather, and game statistics.

Soundpeats Mini Pro HS Controller rebuilds earbud control through a Kotlin Android app and Python tool using reverse-engineered Bluetooth SPP commands. It queries battery and mode state and sends ANC, touch, game-mode, and seven-band EQ commands, including 17-byte packets for individual EQ bands.

↑↓ move↵ open⌘↵ new tab