7 Commits
Author SHA1 Message Date
Senape3000 346c9c3b5e Add ProtoPirate module and app support
Introduce the ProtoPirate automotive key‑fob decoder and integrate it end‑to‑end across firmware and mobile app. Changes include: new binary message IDs for ProtoPirate (MSG_PP_*), config enable flag and firmware patch bump to 1.1.2, and a new ProtoPirateCommands BLE/serial handler that implements start/stop, history, file browsing (FATFS), emulate (TX) and save/list captures. Firmware updates: added ProtoPirate module headers/implementation, history support, FileCommands improvements (path handling, file streaming size guard, create /DATA/PROTOPIRATE directory), and safer ConfigManager aggregate initialization compatible with older GCC. Mobile app updates: new ProtoPirate UI screen, model (ProtoPirateResult), BLE provider wiring (reset state, imports) and localization strings (EN/RU) and generated localization stubs. Misc: increased BLE chunk timeouts and less aggressive chunk buffer cleanup, plus a helper script tools/generate_test_sub.py.
2026-02-21 15:26:22 +01:00
Senape3000 ccc2334100 Add SD format progress and LittleFS handling
Report SD format progress over BLE and improve filesystem handling.

- FileCommands: send in-progress progress notifications (errorCode 0xFF) during SD format, report per-item delete/create messages, track deleted count and send final result.
- mobile app: add sdFormatProgress field, parse progress messages in BinaryFileActionResult JSON, update BLE provider to handle progress vs final result, and show progress text in settings UI dialog.
- binary_message_parser: include isProgress and progressMessage fields for in-progress messages.
- src/main.cpp: gracefully handle missing SD card (fallback to LittleFS-only), record sdCardMounted state, and ensure default DATA directories exist when SD is present.
- CC1101_Worker: add LittleFS support for pathType 4 (and root handling for pathType 5), choose fs object dynamically, and return an error for transmit attempts from LittleFS (unsupported).
- Bump mobile app version to 1.0.7+21.

These changes enable live feedback to the mobile app during long SD operations and improve robustness when the SD card is absent, while introducing limited LittleFS path support in the transmitter.
2026-02-15 12:40:22 +01:00
Senape3000 17683c22b7 Add SD format, clone resume & UI/localization
Several features and fixes across firmware and mobile app:

- FileCommands.h: make recursive directory/file removal more robust — copy child.path() into a local buffer before close, log failures, continue deleting other entries instead of aborting, yield (vTaskDelay) to avoid watchdog timeouts, and return aggregate success.
- Binary parser: add 'format-sd' action code.
- BleProvider: add isFormattingSD/sdFormatSuccess flags, set/reset them when sending/receiving format commands and notify listeners.
- SettingsScreen: improved scanner settings UI (moved into Consumer), added non-dismissible SD format progress dialog that auto-closes on firmware result, and handle command send failures.
- FlipperSubDbService: add pause/resume support for cloning — cache downloaded ZIP, persist per-file progress, APIs to save/load progress and cached ZIP, extractFromBytes for resuming, and related helper functions; tweak extraction path handling.
- SubGhz clone dialog: implement resume/start-fresh flow, pause/resume controls, progress persistence, caching usage, and related UI/logic changes.
- QuickConnectWidget: fallback to show all scan results when no supported devices found and new localization message for that case.
- Localization: add new string noSupportedDevicesShowAll in en/ru ARB and generated localization classes.
- SignalScanner & RecordScreen: remove WaterfallWidget usage and refactor view mode/animation handling; delete waterfall_widget.dart.

These changes improve reliability for long-running SD operations (format and large SubGHz clone), add user-facing progress/resume behavior, and update UI/localization accordingly.
2026-02-15 11:43:46 +01:00
Senape3000 a236d4c3e7 Add device status sync & nRF improvements
Introduce new device-state binary messages (HW button config, SD card status, nRF24 status) and wire them through firmware, BLE backend, and mobile UI so the app can sync state on connect. Firmware: add BinaryMessages structs, StateCommands helpers to send statuses, SD and nRF checks, and bump firmware version to 1.0.2. Mobile app: parse new messages, persist/sync HW button settings, display SD and nRF status in Device Status, and bump app version. MouseJack (nRF) updates: tuning constants, improved scanning (CE toggle, dwell retries), retransmit helpers for reliability, DuckyScript enhancements (DEFAULT_DELAY, REPEAT, STRINGLN, typing helpers), protocol fixes for MS/Logitech transmissions. NrfJammer: adjust mode configs and comments to refine flood vs CW behavior.
2026-02-14 11:34:19 +01:00
Senape3000 e63dd4a344 Add CPU temp offset, button replay & SD root
Introduce CPU telemetry and configurable CPU temperature offset, add hardware-button replay support and SD root pathType, and update app/firmware plumbing.

Key changes:
- Added schematics PDFs to docs.
- Protocol/firmware: BinaryStatus extended with cpuTempDeciC, core0Mhz, core1Mhz; settings payload and sync now include cpuTempOffsetDeciC. HwButton config command supports an extended payload for replay file (pathType + path).
- ConfigManager: persist button replay path/type and cpuTempOffsetDeciC, clamp/range checks, build/save logic and default values updated.
- ButtonCommands: executeAction now receives buttonId; handleButtonConfig accepts optional replay file info; ReplayLast implemented to queue CC1101 transmissions using configured path/type.
- FileCommands: support pathType 5 (SD root) and treat root-based storages appropriately; only create SD directories for dedicated SD folders.
- StateCommands: sendSettingsSync updated to 10-byte payload and include cpu temp offset in logs.
- Mobile app (Flutter): localization for CPU temp offset; BLE provider persists and exposes cpuTempOffsetDeciC and device telemetry (cpuTempC, coreMHz); supports pathType 5 (SD root) and loads temp offset preference; settings provider persists button replay paths/types and exposes setters; firmware protocol helper builds extended hw button command; FilesScreen supports pickMode, SD root selection and enforces allowed extensions when picking; Debug screen adds slider/card to adjust CPU temp offset; NrfScreen uses nrfNotify() for targeted UI updates and visual tweaks; spectrum painter maxLevel adjusted to 100.

These changes enable local replay-from-file via hardware buttons, expose CPU temperature telemetry and offset tuning to the mobile app, and add SD root handling across firmware and app.
2026-02-13 14:31:56 +01:00
Senape3000 31e52ddf8c Add per-mode nRF jammer configs and UI
Implements per-mode jammer configuration and info round-trip between firmware and app. Firmware: new binary message types (MSG_NRF_JAM_MODE_CONFIG 0xD6, MSG_NRF_JAM_MODE_INFO 0xD7) and new commands (0x42..0x45) with handlers to set live dwell, get/set mode config, get mode info, and reset configs; Binary parser updated and NrfJammer loads saved configs on startup. Mobile app: adds NrfJamMode models, protocol command factories, BLE provider caches for mode configs/infos and dwell handling, UI for mode list with settings/info dialogs, live dwell slider, and Reset Defaults action. Also migrates BatteryModule to ESP-IDF 5.x ADC oneshot + calibration API and updates readVoltage accordingly. Backwards-compatible jam-status parsing added (old/new payloads supported).
2026-02-12 23:31:27 +01:00
Senape3000 4a43f39c77 Mobile App Source Code 2026-02-12 13:15:23 +01:00