Skip to content

General Improvement#2312

Open
wcd6 wants to merge 20 commits intoBruceDevices:devfrom
wcd6:dev
Open

General Improvement#2312
wcd6 wants to merge 20 commits intoBruceDevices:devfrom
wcd6:dev

Conversation

@wcd6
Copy link
Copy Markdown

@wcd6 wcd6 commented Mar 22, 2026

Proposed Changes

This PR ports several UI/UX improvements from firmware-1.14 and adds major NRF24/RF jammer enhancements:

Ported from my changes in 1.14:

  • IR Read Emulation: After capturing an IR signal, users can now emulate it directly without saving first. Added protocol auto-detection (not forcing raw), with OK to send again, NEXT for new signal, and PREV to save.
  • App Store Menu: Added App Store as a dedicated main menu item with full category browsing, install, update, and delete functionality. Removed the old "Install App Store" option from the Config menu.
  • Status Bar Icons Centered: Status bar icons (SD, GPS, WiFi, WebUI, BLE, WireGuard) are now centered horizontally with consistent 16x16 size and 6px gap between each icon.
  • Battery "CHG" Indicator: Battery status now displays "CHG" text when the device is charging instead of a yellow fill.
  • WireGuard Lock Color: WireGuard status icon now uses the theme's primary color (priColor) instead of hardcoded TFT_GREEN.
  • WireGuard Setup UI: Improved WireGuard setup screen using drawMainBorderWithTitle, printSubtitle, padprintln, and printFootnote instead of raw TFT calls. Replaced fixed delay(7000) with AnyKeyPress wait.
  • NRF24/RF Spectrum: Replaced spectrum analyzer modules with 1.14 versions.
  • Better UI/UX on WebUI.

NRF24 Jammer Improvements (new):

  • Three jamming strategies: CW (continuous wave), Flood (FIFO refill burst), and Turbo Flood (3-phase: XOR-varied payload + all-0xFF max energy + alternating 0x55/0xAA max transitions).
  • Configurable burst count (1–20 packets per channel dwell).
  • Random hop order via Fisher-Yates shuffle for unpredictable channel coverage.
  • Expanded channel lists: USB 3→20 channels, Video 3→33 channels, RC 4→20 channels.
  • All modes default to Turbo Flood strategy with max burst count and random hop enabled.
  • Full config UI: PA Level, Data Rate, Dwell Time, Strategy, Burst Packets, Hop Order, Save & Back.
  • Enhanced status display with sweep counter, color-coded strategy badge (CW/FLOOD/TURBO), and RND indicator.

RF Jammer Improvements (new):

  • Four operating modes with dedicated selection menu: Full Power, Intermittent, Noise Storm, Frequency Sweep.
  • Full Power: 3-phase rotation (micro-glitches 1µs/3µs, variable-width bursts 2–20µs, sustained carrier with hard cuts) cycling every 100ms for maximum spectral diversity.
  • Intermittent: Forward+reverse chirp sweep (10–500µs) with random noise bursts (1–60µs pulses, 1–8µs gaps).
  • Noise Storm (CC1101 only): PN9 hardware random TX at 800kbps, max deviation 47.6kHz, widest RX BW. Cycles modulation (ASK→2FSK→MSK) every 3s with live display of current scheme.
  • Frequency Sweep (CC1101 only): ±5MHz around target in 50kHz steps, bidirectional sweep, 40 pulses per step with tight 30µs/5µs timing.
  • Consolidated RFMenu to single "Jammer" entry with mode selection inside.

Others

  • Merged "Connect" in Files section.
  • Changed Apps icon.
  • Added UI for wifi only text menus.
  • Organizated Sections.

Types of Changes

  • New Feature.
  • Enhancement.

Verification

  • Flash firmware to a lilygo-t-embed-cc1101 and verify:
  • IR Read: capture a signal > confirm emulate option appears > press OK to resend, NEXT for new capture, PREV to save.
  • App Store: visible in main menu, categories load, apps install/update/delete.
  • Status bar: icons appear centered with equal spacing when SD/WiFi/BLE/WG are active.
  • Battery: plug in USB > confirm "CHG" text appears.
  • WireGuard: connect > lock icon matches theme color, setup screen shows formatted info with key-press dismiss.
  • App Store icon: same visual size as other menu icons.
  • NRF24 Jammer: open jammer > verify config UI shows all 7 options > test each strategy (CW/Flood/Turbo) > confirm random hop shuffles channels > status display shows badges.
  • RF Jammer: open jammer > verify mode menu with 4 options > test Full Power (rapid pulse count) > test Noise Storm (PN9 modulation cycling on display) > test Freq Sweep (frequency updating on display).

Testing

Manual testing (lilygo-t-embed-cc1101).

Linked Issues

NONE

User-Facing Change

- Added IR signal emulation directly after capture (no save required)
- Added App Store as a main menu item with category browsing
- Centered status bar icons with consistent 16x16 sizing
- Battery now shows "CHG" text while charging
- WireGuard lock icon uses theme color instead of green
- Improved WireGuard setup screen with proper UI and key-press dismiss
- Removed "Install App Store" from Config menu (now in main menu)
- Better UI/UX WebUI.
- Replaced NRF24/RF spectrum analyzers with improved versions.
- NRF24 Jammer: 3 strategies (CW/Flood/Turbo Flood), configurable burst, random hop, expanded channels, full config UI.
- RF Jammer: 4 modes (Full/Intermittent/Noise Storm/Freq Sweep), CC1101 PN9 noise with modulation cycling, ±5MHz sweep, aggressive timing.
- Merged "Connect" in Files section.
- Changed Apps icon.
- Added UI for wifi only text menus.
- Organizated Sections.

Further Comments

@wcd6 wcd6 mentioned this pull request Mar 23, 2026
@wcd6 wcd6 changed the title Dev General Improvement Mar 23, 2026
@emericklaw
Copy link
Copy Markdown
Member

emericklaw commented Mar 23, 2026

The App Store is a JS script since all its features can be implemented as a JS script without increasing firmware size.
This then leads to more Bruce pen test focussed features to be included.

@wcd6
Copy link
Copy Markdown
Author

wcd6 commented Mar 23, 2026

@emericklaw Hello, i think the same with the Apps section

@dabassman28
Copy link
Copy Markdown

dabassman28 commented Mar 23, 2026

You still going to add in the mouse jacker middle man stuff from the other pull?

@wcd6
Copy link
Copy Markdown
Author

wcd6 commented Mar 23, 2026

@dabassman28 Hello, mousejack already exist on this beta version, try flashing my version and u will see

@dabassman28
Copy link
Copy Markdown

@wcd6 Yeah I have seen the mouse jack function in the dev. I meant specifically the sniffer/ middleman function that I saw in your other pull from a few days ago. Wondered if you were still going to add that to the main dev branch via a pull. I didn't see it here.

@wcd6
Copy link
Copy Markdown
Author

wcd6 commented Mar 24, 2026

@dabassman28 I will gonna see it

@dabassman28
Copy link
Copy Markdown

Nice looking forward to it

@wcd6
Copy link
Copy Markdown
Author

wcd6 commented Mar 26, 2026

@bmorcelli @pr3y

Review this PR, thanks.

@emericklaw
Copy link
Copy Markdown
Member

@wcd6 please remove the App Store changes from this PR. If it even gets implemeted on device then I already have a verion locally.
As mentioned earlier the original descision was to keep this as a .js script.

This also allows for much faster roll out of changes to the App Store without having to do a whole Bruce release.

@wcd6
Copy link
Copy Markdown
Author

wcd6 commented Mar 27, 2026

@emericklaw Was removed.

@pr3y
Copy link
Copy Markdown
Member

pr3y commented Apr 14, 2026

Thanks for the PR! Really good addition and fixes...
But there are a just little things like "src/modules/NRF24/nrf_spectrum.cpp.bak" and "src/modules/rf/rf_spectrum.cpp.bak" are never used... i think we can get rid of it and why are you removing the Install App Store feature?

localOptions.push_back({"Install App Store", []() { installAppStoreJS(); }});

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants