Windows-first host tooling scaffold for Ubertooth, aimed at safe public use and phased progress toward Linux feature parity.
This repo currently supports a comprehensive Windows host suite for Ubertooth One (v0.2.0 "High Fidelity"):
- detect the device on Windows
- inspect driver/binding/readiness metadata
- prove read-only WinUSB transport access
- read official firmware/version/build/board/serial/part information
- read official getter-only runtime state (LEDs, channel, modulation, PA flags, squelch, clock)
- perform a guarded reboot-only reset with reconnect-based success handling
- expose an experimental guarded flash wrapper around official tool semantics
- Transmission (TX): Raw symbol transmission via
ubertooth-txandubertooth-ducky(Rubber Ducky emulation) - BLE Analysis: Full
ubertooth-btlewrappers (sniff, follow, interfere) - Spectrum Analysis: Run
ubertooth-specannatively on Windows - Classic BT Discovery: Run
ubertooth-rx/ubertooth-dump/ubertooth-afh - Native BLE Scanning: Scan and follow BLE devices using the Windows native Bluetooth stack (no BlueZ required)
- Automated Repair: Recover driver/binding issues via
repaircommand - stage validated repo-local Windows flashing assets through a safer setup helper
The project enforces a strict Hardware Safety Protocol to protect the Ubertooth One hardware:
- Antenna Guard: All transmission commands (TX) require explicit confirmation via
--i-confirm-antenna-is-attachedor a.antenna_attachedfile to prevent RF front-end damage. - Duty-Cycle Limit: Transmission is limited to 60 seconds per rolling hour to prevent thermal overload of the CC2591 radio.
- Guarded Writes:
reset,flash, andrepaircommands require the--yesflag to confirm device state changes. - Read-Only by Default: Discovery and information commands (status, info, probe, etc.) remain strictly read-only.
cd <project-root>\ubertooth-windows-host
npm run check
npm run status
npm run duty-cycle
npm run capture -- --channel 37 --timeout-seconds 10 --output cap.pcapnpm run help— show command helpnpm run status— human-friendly safe summarynpm run capture -- --channel 37 --output cap.pcap— live BLE capture (pcap/text)npm run specan -- --output survey.txt— spectrum analyzer sweepnpm run rx— Classic Bluetooth discovery (passive)npm run btle— Full BLE analysis tool (sniff/follow/interfere)npm run tx -- --lap <LAP> --i-confirm-antenna-is-attached— raw symbol transmissionnpm run ducky -- --quack <UUID> --i-confirm-antenna-is-attached— Rubber Ducky emulationnpm run scan— native Windows BLE device scannpm run follow -- --target <ID>— native Windows BLE connection follownpm run reset -- --yes— guarded reboot request with reconnect verificationnpm run flash -- --file C:\path\to\firmware.dfu --yes— guarded official firmware updatenpm run repair -- --yes— automated driver/binding recoverynpm run duty-cycle— show transmission usage and safety limitsnpm run version— concise firmware/API/build summarynpm run detect— minimal detection outputnpm run probe— driver and readiness metadatanpm run protocol-info— upstream-backed firmware/build/serial infonpm run runtime-info— upstream-backed getter-only runtime statenpm run util— device utility (info/reset)npm run debug— read/write radio registersnpm run ego— Ubertooth Ego modenpm run analyze -- --file log.txt— summarize BLE packet logs
Errors are categorized with stable codes to make GitHub issues less chaotic. See docs/diagnostics.md.
See docs/install.md for the reproducible Windows setup and the safer setup helper, docs/flashing.md for the guarded firmware workflow boundary, docs/native-windows-flash-blocker.md for the current native-Windows status/history, and npm link for local CLI usage.
This is a credible Windows baseline with a guarded flash wrapper. Native Windows proof-build viability for the official flashing tools is demonstrated, one sacrificial-device validation run succeeded on Windows, and a safer repo-local Windows setup helper now stages the validated flashing assets for users. See docs/release-process.md, docs/native-windows-flash-blocker.md, and CHANGELOG.md.
The project has proven that Windows can safely:
- enumerate the device
- bind via WinUSB
- open the device read-only
- speak official getter-only protocol requests
- send a guarded reboot request and verify that the device comes back
- wrap the official
ubertooth-dfuflow with preflight checks and recovery docs - build and execute the official
ubertooth-dfu/ubertooth-utiltoolchain natively on Windows in a proof-build configuration - complete one sacrificial-device flash validation run on native Windows
- stage the validated repo-local Windows flash tooling and firmware assets through
npm run setup-flash-tools/scripts/setup-windows-flash-tools.ps1
The setup helper is intentionally safer than a full installer:
- no automatic driver installation
- no silent PATH changes
- no hidden downloads/builds
- no hidden admin-wide machine mutation
- keep reset explicit and guarded
- keep diagnostics sharp and actionable
- broaden validation breadth or move to Milestone 3 / capture-export MVP
See also:
docs/quickstart.mddocs/install.mddocs/flashing.mddocs/native-windows-flash-blocker.mddocs/diagnostics.mddocs/release-process.mddocs/reset-safety-review.mddocs/repo-hardening.mddocs/milestone-0-implementation.mddocs/protocol-research.mddocs/runtime-research.md