Stable merge v2.2.0 (#2736)

* Update README.md

Actually valid complete ali h4m link

* Fake brightness reimplementation  (#2444)

* Fake brightness reimplementation
* indentation
* added call to the function which is caching the display settings values
* use cached values instead of pmem

* app manager (#2442)

* fix unset autostart
* clean up - add comments to prevent misleading
* move the app to external and with necessary changes
* replace autostart app

* Add + - buttons in Encoder dial settings (#2447)

* M10 additional parser (#2448)

* Remember previous capture settings (#2450)

* Renamed parameters in rx_capture.ini file (#2452)

* Rename settings in file to match screen
* Renamed variables for hopefully better clarity

* Navigation buttons (#2458)

* regenerate bitmap data
* pagination in submenu
* using little font so we are not eating menu buttons

* docker improvements (#2455)

* Update README.md

New metal case link

* The gerber files of the portapack H4 (#2463)

* Create README.txt

* Update README.txt

* Add files via upload

The gerber files of the portapack h4.

* delete

* Upload the gerber files for H4

* Update README.md (#2456)

Added a link to Lab401.com as a purchase option for EU customers.
(Lab401 was added as the EU exclusive distributor for the H4M - https://opensourcesdrlab.com/pages/distributors)

* Update README.md

* rename bitmaps into bmp

* disabling button on main menu, change labels and add 'icons' (#2466)

* disabling button on main menu, change labels and add 'icons'

* fix reverse order of buttons

---------

Co-authored-by: gullradriel <gullradriel@no-mail.com>

* fix for empty text prompt crash (#2468)

* added discord server information (#2471)

* Add the feature to decide rotate direction of encoder (#2472)

* Update README.md

Lab401 link with our redirection

* Fix encoder setting p.mem issue (#2475)

* Update README.md

Discord badge was broken, switching to shields.io

* Add fast flash script for sdcard switch hardware (#2480)

* fix cmake_minimum_required to 3.16 (#2499)

* fix fallthrough warning (#2497)

* Flipper tx: use file_path, example file (#2496)

* added subghz_dir
* use subghz_dir from file_path
* example file

* Externalize antenna calc and wav view (#2498)

* externalize antenna calc and wav view
* Added a tool to check if all the pictures in graphics are used in internal apps

* APRS: add frequency settings for Brazil (#2494)

* Add frequency settings for Brazil, named 'BR' that tunes to 145.570 MHz.
* Also added: Japan: 144.640 MHz (JAP), Thailand: 144.900 MHz (THA), Philippines: 144.740 MHz (PHI)
* Reordered list by increasing frequency
Co-authored-by: gullradriel <3157857+gullradriel@users.noreply.github.com>

* Added different modulations in signal generator (#2492)

* Added DSB, AM 100% mod index and AM 50% mod index. Changed UI.

* put back app in 'Utilities' (#2500)

Co-authored-by: gullradriel <gullradriel@no-mail.com>

* fix baseband (#2501)

* externalize wipe sdcard (#2502)

* Removing vim swap files (#2503)

* Removing vim swap files
* Added vim swap file to .gitignore

* Add modal to turn off screen when charging is detected (#2514)

* Moved country-specific FREQMAN files to the separate repository set up for it. (#2517)

* fix docker build warnings in dockerfile-nogit (#2518)

* Add new app "hopper" app. (#2482)

* make both jammer and hopper exist
* add example hopper payload
* example files
* swap scanner and recon app location

* Add widget preview tool (#2520)

* PoC

* opt

* opt

* Playlist editor (#2506)

* make both exist
* format
* fix focusing issue
* add example hopper payload
* fix compiler err
* clean up
* correct linker script addr
* lint
* PoC
* unknown: write_line issue
* clean up
* merge
* fix read line
* remove debug code
* fix english
* support new file
* support enter delay
* fix crash
* remove debug code
* some final tune

* Support Bug Key AKA Auto Key for OOK Editor app (#2523)

* _

* some final tune

* textual

* rename following gull's suggestion

* add cursor to font viewer app (#2528)

* Allow disable/enable waveform in Audio app to remove decoding problem on some frequencies

* Added different modulations in signal generator

* Added DSB, AM 100% mod index and AM 50% mod index. 
* Changed UI.
* Added pulsed CW

* Adding Wefax demodulation mode inside Audio App (#2539)

* Adding_new_WFAX_GUI_mode_Audio_App

* Wefax_APT_demodulation_structure

* Solving REC Apt signal.wav from WFAX

* clang format issues

* correcting comments

* Breakout - The Portapack remake game rises from the pirate's lair (#2541)

* Breakout - The Portapack remake game rises from the pirate's lair

* Fixes

* Added a signature

* Trivial textual change about missing SD content (#2542)

* _

* _

* waveform fix 3 and trivial change (#2540)

* Moved games to new game menu (#2544)

* Moved games to new game menu
* There's enough games to have a menu now and I plan to make more. Having them in "Utilities" made no sense.

* Wefax warning fix modulation fix (#2543)

* changed order of modulations, changed case to avoid capture
* added missing AMAudioFMApt mode to dump pmem
* reorder demod, adding missing ones, fix warnings
* removed uneeded 'previous_modulation', renamed WFAX to AMFM to match other places
* removing uneeded 'previous_modulation' uneeded check in change_modulation
* move capture at the end so AMAUdioFMApt is matching the other arrays for position 4
* added AMFM to Recon Level and Scanner

* clang + more details in some comments

---------

Co-authored-by: gullradriel <gullradriel@no-mail.com>

* Snake (#2549)

* Create the Shopping Cart Lock app

Will demonstrate tomorrow. Don't merge until I do 😁

* Fixes for HTotoo's comments 😎

* Improved audio the best I can.

If nobody has any ideas to further improve high frequencies of the audio, the hardware may not be capable. I still need to check with line-out to better speaker to make sure it's not just the speaker, but it shouldn't be.

* Compared against baseband_api.cpp - matched some things better but still playback seems to be missing higher fq sounds

* renamed wav files to a more specific / less generic name

* indentation + using variables instead of litteral names for wav files to use

* indentation

* Made a Snake game - enjoy

* Code formatting. I always forget.

* move to keep sort order

* Update external.ld

Sorry I should have also asked if there was any reason that address ranges 0xADDA0000--0xADDD0000 were skipped in external.ld.  I assumed there wasn't so I changed it to be consecutive using the same 0x10000 step as the other modules.  If there is any reason to skip them then we should add a comment to note it.  Of course these are all just temporary address values used for linking and get overwritten by a kludgy "search & replace" during the build process.

Resolves enhancement request #764

---------

Co-authored-by: gullradriel <gullradriel@no-mail.com>
Co-authored-by: Mark Thompson <129641948+NotherNgineer@users.noreply.github.com>

* Nested Debug menu into Utilities menu to tidy Home screen (#2551)

* rename rand pwd app (#2552)

* _

* remove wip code that forgot to add in old branch

* Moved speaker 1px to the right to match muted icon variant. (#2554)

* Stopwatch external app (#2553)

* updated bitmaps for speaker icon (#2555)

* updated bitmaps for speaker icon
* removed opera cake icon that was added by mistake
* adding missing Game menu source png
* cyan for Game menu
* regenerated icons

* Breakout icon change (#2556)

- Changed Breakout icon
- Changed Tetris icon color to green

* Snake icon change (#2557)

* Remove deprecated QR Code code (#2558)

* Setting for faster Button Repeat delays (#2559)

* Setting for faster Button Repeat delays

* Tweak fast delay times

* Tweak delay times

* Added description line and tweaked delay again

* OokBrute app opt (#2561)

* zooming_spectrum_AMFM_mode (#2565)

* Update README.md

Fixing opesourcesdrlab link

* Update README.md

Other link broken

* WeFax rx ext app (#2566)

* wf3

* Ookbrute (#2354)

* Revert "Ookbrute (#2354)"

This reverts commit abb8143eec.

* fix

* test edition

* re enable ble

* re enable ert

* steal amfm stuff

* something happens

* save bmp on start btn

* kinda works

* exit crash fixed

* redline, remove some hardcoded

* removed cpu killer red line, and some fixes

* simplify #1

* seems ok. time to improve

* added hidden freq offset to receiver model, so wefax can be set to the "correct" freq without users needs to substract 300 hz

* badly implemented sync detection, and disabled it.

* fix for fix

* fixes

* fix offset to real life off

* no line on freq enter

* fixes

* Doom - Mayhem Edition (#2570)

* Doom - Mini Mayhem version

* Update ui_doom.cpp

* Update ui_doom.cpp

* Update ui_doom.cpp

* Update ui_doom.cpp

* Update ui_doom.cpp

* Update ui_doom.cpp

* Update ui_doom.cpp

* Update ui_doom.cpp

* Doom - Mayhem Edition

Made the Doom - Mayhem Edition game. Some little bugs but good enough for nightly.

* Code formatting. Forgot like always.

* give more initial ammo until i put ammo around the maze to collect

* Update Doom main.cpp for better icon (#2575)

* fix external app address list (#2573)

* Add WEFAX freqman file (#2567)

* Add WEFAX freqman file
* fix bad escaped spaces and unicode characters

* Add icon for the doom game (#2574)

* Add icon for the doom game
* Add b/w .png to convert as doom icon

* Added wefax offset to audio app too. (#2572)

* added wefax offset to audio app too.

* moved from head to cpp

* Put ticker class and pp_colors in hpp file in namespace and remove helper files (#2577)

* stopwatch opt (#2578)

* stopwatch opt

* comments

* format

* fxi ms display when user tune display level

* issue template fine tune (#2579)

* Combined cpp files, stuffed helper files in hpp, updates start and game over screens (#2583)

* Combine cpp, move helpers to hpp (#2584)

* naming space (#2585)

* Tetris: Combined cpp files. Helper files into hpp. Dark mode. Encoder on. (#2587)

* Adding_Waterfall_ZOOM_x2_in_AM_modes_Audio_App (#2586)

* adding zoom_factor to app settings
* separated zoom_factor settings for AM and AMFM
* fix order so zoom factor is also applied correctly on modulation change
* fix zoom not applied when changing bandwidth
* temporary disable the Scanner so we are not breaking the nightly. Until we are choosing to finally remove it or find a better solution

---------

Co-authored-by: gullradriel <3157857+gullradriel@users.noreply.github.com>
Co-authored-by: gullradriel <gullradriel@no-mail.com>

* Fixed the I Tetromino rotation using SRS (Super Rotation System) (#2588)

* Externalize dump pmem (#2590)

* initial commit

* clang

* memory icon

* text output and exit button, FOCUS OVERRIDE TO AVOID COMPILATION ERROR

* modem and data_structure_version accessor

---------

Co-authored-by: gullradriel <gullradriel@no-mail.com>

* remove dead code (#2593)

* remove not yet enabled screening app (#2594)

* move default splash into sdcard (#2595)

* move bmps to sdcard
* remove unrelated files
* gitignore
* credit
* format

* Externalize scanner (#2589)

* externalize scanner
* NFM as main baseband as it's the biggest used one
* fix modulation bug introduced with AMFM

* Externalize level (#2596)

* removing ability to focus on RSSI bars and to launch level app, until a solution to launch external apps from internal ones is given
* externalize Level app

* Remove unneeded AMFM support in those apps (#2597)

* Create CODE_OF_CONDUCT.md

* Create pull_request_template.md

* Create SECURITY.md

* Create CONTRIBUTING.md (#2598)

* Force 433.92 and remove metadata check (#2599)

* Force 433.92 and remove metadata check: we already know the frequency for all files so don't need a million metadata files to match.
* Variable fixes and move to header

* Added more Wefax stations (#2600)

* Delete sdcard/FREQMAN/WEFAX.TXT

Replace with 2 files

* Add more WeFax frequencies

* Update comments

* Oops wrong folder

* Oops wrong folder

* Change comments

* Remove RF TX and use PATX baseband for audio --> speaker out only (#2601)

* Force 433.92 and remove metadata check

We already know the frequency for all files so don't need a million metadata files to match.

* Remove RF TX. Improve PATX baseband.

* code formatting of course

* Issue template again (#2602)

* test1

* test2

* add tap tempo to metronomic app (#2605)

* _

* format

* fix new tree in Arch

* solving_Audio_App_AM_GUI_Problem_issue_2604 (#2609)

* make the ptext_prompt func can define which keyboard to enter (#2608)

* _

* format

* use define

* prevent long life var for audio app - AM (#2610)

* static vars so no external linkage is possible

* persistent settings and no more global living variables

---------

Co-authored-by: gullradriel <gullradriel@no-mail.com>

* theme fix again (#2611)

* theme fix again

* _

* user can disable battery change hint (#2612)

* theme fix again

* _

* _

* GFX EQ App (#2607)

* Make the beginnings of rf3d
* Name change...
* Add mood button
* Remove forced amp settings and add persistent user settings
* Fix options bar layout and SettingsManager
* Make the background paint to black again after opening fq modal
* fix audio/mod/settings and cleaned unneeded parts
* Mapped bars to audio spectrum
* Improved frequency response... still needs work i think
* add on_freqchg to be able to answer to serial frequency change command
* Made calculations for 14 bars to fit screen and little adjustments
* Visual improvements
Co-authored-by: gullradriel

* Improved make_bitmap tool (#2615)

* Enhance Graphic Equalizer Visualization with Improved Frequency Bands and Response (#2614)

* Custom waterfall colors (#2617)

* Custom waterfall gradient
* Installing a custom waterfall gradient via fileman
* default file for user friendly swap
Co-authored-by: gullradriel <gullradriel@no-mail.com>

* Delete dead code in ble_rx_app.cpp (#2620)

Duplicate include on line 24 removed.

* Fix default waterfall file (#2621)

* correct default settings from file
* correct colors names

* fix comments (#2622)

* Touch on waterfall to set cursor pos (#2624)

* init

* fix typo that found by Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Adding 8.33KHz spacing (#2628)

* Adding 8.33KHz spacing
* remove extern options_db_t freqman_steps which is now brought by ui_receiver.hpp
* use freqman db steps instead of static array
Co-authored-by: gullradriel <gullradriel@no-mail.com>

* Added menu group for transceivers (#2623)

* Added menu group for transceivers

* Reorder apps icons

* Support IPS screen & brightness set for IPS screen (#2629)

* _

* format

* format

* format

* Fix bug that created by PR "Added menu group for transceivers" (#2630)

* spectrum cursor opt again (#2634)

* spectrum cursor opt

* fmt

* remove blink

* remove End event

* cleanup

* Update README.md

Links were dead for opensourcesdrlab

* Fix for #2538 (#2635)

* Fix for #2538

Fix for #2538
Added on_bandwidth_changed Callback to ui_transmitter.hpp
Modified the field_bw.on_change lambda in the TransmitterView constructor to trigger the on_bandwidth_changed callback
Connected the Callback in ui_siggen.cpp

I am not a C++ programmer so this change was proposed by Gemini AI.

I have built and tested the App and it works as expected and I don't think the change will have any unexpected side effects.

* Fix clang issues

Fix clang issues

* Update ui_transmitter.cpp

typo

* Revised change

The proposed change mirrors the way a change to the frequency (on_edit_frequency) is triggered in ui_siggen by the tx_view.
The bw parameter is not passed because it is stored in _setting in the tx_view and will be read by update_config.
A change to the bw is not checked against auto_update to keep its behaviour consistent with a change to the gain, amplitude or frequency.

* Make changes to the channel_bandwidth dynamic whist playing

Behaviour of channel bandwidth is now consistent with frequency, amp and gain.

* comment edit

* revert hackrf submodule checkpoint to the repo

* comment

---------

Co-authored-by: zxkmm <zxkmm@hotmail.com>

* Adding_WFM_AM_mode_to_Audio_App (#2644)

* Adding_WFM_AM_mode_to_Audio_App
* more precise values for cos and sin theta, fix sen_theta to sin_theta
* fix sen_theta to sin_theta

* going back to WFM as main baseband in main.cpp as NFM is now making the apps crashing. Looks like last additions to WFM made it bigger. (#2646)

* remove dead code (#2647)

* Update ui_tetris.cpp (#2650)

Start "I" tetromino a bit higher and block rotate if it will cause out of bounds collision.

* Noaa apt decoder (#2648)

* Explicit_naming_wefax_NOAA_and_small_addition (#2651)

* slightly improved ads-b receiver module (#2649)

* slightly improved ads-b receiver module:
* fix Heading, Speed and Vrate decoders
* decode more ModeS messages
* log all ModeS messages (except DF11)
* fix formatting (clang-style); advice on data alignment taken into account
* ADS-B module: convert Indicated AirSpeed to True AirSpeed if altitute is known
* ADS-B rx module: replacing floating point with integer arithmetic

* adding 10Hz and 50Hz to freqman_steps (#2652)

* Improve_RF_sensitivity_NOAA_signal (#2654)

* Upload the PCB file of PortaPack H4 and update the schematic file (#2657)

* Create README.txt

* Update README.txt

* Add files via upload

The gerber files of the portapack h4.

* delete

* Upload the gerber files for H4

* Create README.txt

This is the V1.0 version PCB file of PortaPack H4.

* Upload the pcb file for H4

* Update README.txt

* Update LCD_TF_Schematic.pdf

* Jammer app add modes (#2659)

* Add new jammer modes

Overview

This PR enhances the PortaPack Jammer app by introducing eight new signal types, ported from my Flipper Zero RF Jammer app (https://github.com/RocketGod-git/flipper-zero-rf-jammer). These modes expand the app's capability to disrupt a wide range of RF communication protocols, from analog radios to modern digital systems. The implementation preserves the original app structure, resolves namespace conflicts, and ensures compatibility with the Mayhem firmware.

New Modes

The following modes have been added to the options_type in ui_jammer.hpp, with corresponding signal generation in proc_jammer.cpp:

Noise: Generates broadband white noise to interfere with analog and digital signals (e.g., Wi-Fi, Bluetooth, key fobs). Highly effective for overwhelming receivers across a frequency range.

Sine: Produces a continuous, unmodulated sine wave to jam narrowband receivers, ideal for analog FM/AM radios or telemetry systems.

Square: Emits a harmonic-rich square wave, disrupting digital protocols (e.g., OOK, ASK) and systems sensitive to sharp transitions, such as remote keyless entry.

Sawtooth (Experimental): Generates a sawtooth wave with a unique harmonic profile, useful for testing interference against PWM-based or niche analog systems.

Triangle (Experimental): Creates a triangle wave with minimal harmonics, suitable for exploratory jamming of narrowband systems or receiver linearity testing.

Chirp: Outputs a rapid frequency-sweeping chirp signal, effective against frequency-hopping and spread-spectrum systems (e.g., some Wi-Fi, Bluetooth, or military radios).

Gauss: Generates Gaussian noise to mimic natural interference, targeting digital systems like GPS or data links by degrading signal-to-noise ratios.

Brute (Experimental): Transmits a constant maximum-amplitude signal to saturate simple receiver front-ends, useful for brute-force jamming of basic analog devices.

* Add new jammer modes

Overview

This PR enhances the PortaPack Jammer app by introducing eight new signal types, ported from my Flipper Zero RF Jammer app (https://github.com/RocketGod-git/flipper-zero-rf-jammer). These modes expand the app's capability to disrupt a wide range of RF communication protocols, from analog radios to modern digital systems. The implementation preserves the original app structure, resolves namespace conflicts, and ensures compatibility with the Mayhem firmware.

New Modes

The following modes have been added to the options_type in ui_jammer.hpp, with corresponding signal generation in proc_jammer.cpp:

Noise: Generates broadband white noise to interfere with analog and digital signals (e.g., Wi-Fi, Bluetooth, key fobs). Highly effective for overwhelming receivers across a frequency range.

Sine: Produces a continuous, unmodulated sine wave to jam narrowband receivers, ideal for analog FM/AM radios or telemetry systems.

Square: Emits a harmonic-rich square wave, disrupting digital protocols (e.g., OOK, ASK) and systems sensitive to sharp transitions, such as remote keyless entry.

Sawtooth (Experimental): Generates a sawtooth wave with a unique harmonic profile, useful for testing interference against PWM-based or niche analog systems.

Triangle (Experimental): Creates a triangle wave with minimal harmonics, suitable for exploratory jamming of narrowband systems or receiver linearity testing.

Chirp: Outputs a rapid frequency-sweeping chirp signal, effective against frequency-hopping and spread-spectrum systems (e.g., some Wi-Fi, Bluetooth, or military radios).

Gauss: Generates Gaussian noise to mimic natural interference, targeting digital systems like GPS or data links by degrading signal-to-noise ratios.

Brute (Experimental): Transmits a constant maximum-amplitude signal to saturate simple receiver front-ends, useful for brute-force jamming of basic analog devices.

* refactor the serial log logic of BLE Rx (#2660)

* Prepare for display orientation part 1 (#2661)

* fix png part

* screen max width fixes (#2663)

* max width fixes

* format

* Audio to right (#2664)

* r.align

* Storing_selected_NOAA_filter_in_settings_file (#2665)

* Storing_selected_NOAA_filter_in_settings_file

* format_issues

* wfm_filters_GUI_name_std (#2668)

* getres cmd (#2671)

* ui new coord system examples and macros (#2672)

* Detector RX ext app (#2673)

* Jammer improvements (#2674)

* Add new jammer modes
Overview:
This PR enhances the PortaPack Jammer app by introducing eight new signal types, ported from my Flipper Zero RF Jammer app (https://github.com/RocketGod-git/flipper-zero-rf-jammer). These modes expand the app's capability to disrupt a wide range of RF communication protocols, from analog radios to modern digital systems. The implementation preserves the original app structure, resolves namespace conflicts, and ensures compatibility with the Mayhem firmware.

New Modes

The following modes have been added to the options_type in ui_jammer.hpp, with corresponding signal generation in proc_jammer.cpp:

Noise: Generates broadband white noise to interfere with analog and digital signals (e.g., Wi-Fi, Bluetooth, key fobs). Highly effective for overwhelming receivers across a frequency range.

Sine: Produces a continuous, unmodulated sine wave to jam narrowband receivers, ideal for analog FM/AM radios or telemetry systems.

Square: Emits a harmonic-rich square wave, disrupting digital protocols (e.g., OOK, ASK) and systems sensitive to sharp transitions, such as remote keyless entry.

Sawtooth (Experimental): Generates a sawtooth wave with a unique harmonic profile, useful for testing interference against PWM-based or niche analog systems.

Triangle (Experimental): Creates a triangle wave with minimal harmonics, suitable for exploratory jamming of narrowband systems or receiver linearity testing.

Chirp: Outputs a rapid frequency-sweeping chirp signal, effective against frequency-hopping and spread-spectrum systems (e.g., some Wi-Fi, Bluetooth, or military radios).

Gauss: Generates Gaussian noise to mimic natural interference, targeting digital systems like GPS or data links by degrading signal-to-noise ratios.

Brute (Experimental): Transmits a constant maximum-amplitude signal to saturate simple receiver front-ends, useful for brute-force jamming of basic analog devices.

* Fixed and made brutal.

This PR introduces user-focused improvements to the Jammer App in the HackRF PortaPack Mayhem Firmware, enhancing usability and flexibility. The changes address specific user requirements for a more intuitive default configuration, continuous waveform support, and dynamic setting adjustments during transmission.

* jammer fix (#2676)

* jammer fix

* Adding_BPF_selection_to_the_NOAA_APT_signal (#2675)

* Adding_BPF_selection_to_the_NOAA_APT_signal
* comments, spell mistake .

* trivial apps folder movement (#2677)

* Clean_LCD_beat_in_NOAA_Rx_App (#2678)

* Added ability to enter custom tone values in Morse app (#2679)

* Added ability to enter custom tone values in Morse app

Added the ability to type in a custom tone value in the morse TX app (issue#2582)

*Click on the tone field to open a keyboard for entering in a desired value between 100hz - 9999hz.

*Maintains original step value of 20 when scrolling the rotary wheel.

* Update ui_morse.cpp

Replaced std::to_string with to_string_dec_uint

* Moved tone_input_buffer init to in-class

* removed some std stuff only used here (#2681)

* 80mhz jammer range (#2682)

Looks great 😎🤘🚀

* Radio app improvements (#2680)

* Rename looking glass preset for clarity and consistency (#2686)

* Gfx widget and Radio (#2685)

* widgetize
* gfx and Radio improvement
* format + handle not wfm visual states
* wf or gf

* Externalize widget (#2688)

* Add all jammer modes in hopper app (#2691)

Added all modes that jammer app supports in hopper app.

* Super secret dont look (#2690)

* Add new jammer modes

Overview

This PR enhances the PortaPack Jammer app by introducing eight new signal types, ported from my Flipper Zero RF Jammer app (https://github.com/RocketGod-git/flipper-zero-rf-jammer). These modes expand the app's capability to disrupt a wide range of RF communication protocols, from analog radios to modern digital systems. The implementation preserves the original app structure, resolves namespace conflicts, and ensures compatibility with the Mayhem firmware.

New Modes

The following modes have been added to the options_type in ui_jammer.hpp, with corresponding signal generation in proc_jammer.cpp:

Noise: Generates broadband white noise to interfere with analog and digital signals (e.g., Wi-Fi, Bluetooth, key fobs). Highly effective for overwhelming receivers across a frequency range.

Sine: Produces a continuous, unmodulated sine wave to jam narrowband receivers, ideal for analog FM/AM radios or telemetry systems.

Square: Emits a harmonic-rich square wave, disrupting digital protocols (e.g., OOK, ASK) and systems sensitive to sharp transitions, such as remote keyless entry.

Sawtooth (Experimental): Generates a sawtooth wave with a unique harmonic profile, useful for testing interference against PWM-based or niche analog systems.

Triangle (Experimental): Creates a triangle wave with minimal harmonics, suitable for exploratory jamming of narrowband systems or receiver linearity testing.

Chirp: Outputs a rapid frequency-sweeping chirp signal, effective against frequency-hopping and spread-spectrum systems (e.g., some Wi-Fi, Bluetooth, or military radios).

Gauss: Generates Gaussian noise to mimic natural interference, targeting digital systems like GPS or data links by degrading signal-to-noise ratios.

Brute (Experimental): Transmits a constant maximum-amplitude signal to saturate simple receiver front-ends, useful for brute-force jamming of basic analog devices.

* Super secret

* You gotta get (Get) that (That) dirt off your shoulder

* Add 1ms hop option to hopper app + 0ms (freeze UI) (#2692)

* add dark theme (#2695)

* Made the Dino Game (#2697)

* Add vendor name in bluetooth rx app (#2696)

* add macaddress db, add vendor name in bluetooth rx app

* show "missing macaddress.db" instead of unknown if db not found

* bluetooth rx list with colors based on mac vendor

* bug fix

* Modified Text Editor to handle long presses. (#2698)

* Improved FPV_ANALOG.txt FREQMAN file (#2700)

* Improved FPV_ANALOG.txt FREQMAN file
Removed unused or super rare analog fpv bands: U, O, H, D
Added 1.2GHz -1.3GHz channels sometimes used for long range analog fpv


* Corrected and updated the labels to be more consistent.

Corrected the labels to be more consistent.

I also somehow messed up the correct channels because 1.3GHz FPV is not fully standardized, but these channels seem to be the most common.
It should be all correct now.

Example transmitters using those channels:
https://greenchip.com.ua/0-0-1615-2.html
https://flymod.net/en/item/walksnail_vtx_9ch
https://pl.aliexpress.com/item/1005006505365351.html

* Filemanager: go to parent directory keep track of the right selected … (#2702)

* Filemanager: go to parent directory keep track of the right selected item and page number
* review: avoid unnecessary copies in get_extension

* ADSB database update (tools, db) (#2701)

* enhance make_airlines_db tool
* enhance make_icao24_db tool
* update airlinescode (.txt, .db), aircraftdatabase/icao24 (.csv, .db)

* Made the Space Invaders game. Argh matey! (#2709)

* Made the Space Invaders game. Argh matey!
* Format code, sigh.

* Made the Blackjack game (#2712)

* Made the Blackjack game
* Format Blackjack main.cpp
* Changed spade to diamond for dark mode visibility
* Format code

* Update app icons for Space Invaders and Dino Game (#2713)

* BLE Rx Improvements (#2710)

* Work to allow for unique beacon parsing functions.
* Fix Copyright
* Update firmware/application/apps/ble_rx_app.cpp
* Update firmware/baseband/proc_btlerx.cpp
* PR suggestions.
* Fix String.
* Refactor

* Added 3d printed cases for the H4M (#2715)

* Battleship (#2720)

* Made the Battleship 2P 2PP game - FSK is wip
* Using POCSAG

* Adding simple FSK Rx Processor. Can be used with New Apps. (#2716)

* Work to allow for unique beacon parsing functions.

* Fixing pull.

* Changes.

* Formatting.

* Fix Copyright

* Update firmware/application/apps/ble_rx_app.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update firmware/baseband/proc_btlerx.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* PR suggestions.

* Fix String.

* FSK Rx Improvements. Works for my custom protocol.

* Fix buffer size.

* Refactor

* Formatting.

* Formatting.

* Fixing compiling, and BLE Rx UI/Performance.

* More improvements.

* Fixing stuck state.

* More stuck parsing fix.

* Combining PR changes.

* Improvements from previous PR.

* Fix dbM calculation relative to device RSSI.

* Formatting.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: TJ <tj.baginski@cognosos.com>

* Add blue bar to subghzd+weather (#2724)

* AIS map improv (#2725)

* AIS map improv

* format code mismatch with vc

* Add radio settings, new app icon, and other UI improvements (#2732)

* update submodule (#2734)

Co-authored-by: gullradriel <gullradriel@no-mail.com>

* update version (#2735)

Co-authored-by: gullradriel <gullradriel@no-mail.com>

---------

Co-authored-by: Erwin Ried <1091420+eried@users.noreply.github.com>
Co-authored-by: hackrfstuff <leszczyleszczy@icloud.com>
Co-authored-by: sommermorgentraum <24917424+zxkmm@users.noreply.github.com>
Co-authored-by: Totoo <ttotoo@gmail.com>
Co-authored-by: Mark Thompson <129641948+NotherNgineer@users.noreply.github.com>
Co-authored-by: E.T. <tamas@eisenberger.hu>
Co-authored-by: OpenSourceSDRLab <opensourcesdr@outlook.com>
Co-authored-by: quantum-x <simon.yorkston@gmail.com>
Co-authored-by: gullradriel <gullradriel@no-mail.com>
Co-authored-by: Lucas C. Villa Real <lucasvr@users.noreply.github.com>
Co-authored-by: Davide Rovelli <103165301+daviderud@users.noreply.github.com>
Co-authored-by: Gaurav Chaturvedi <oddtazz@users.noreply.github.com>
Co-authored-by: RocketGod <57732082+RocketGod-git@users.noreply.github.com>
Co-authored-by: Lerold <github@lerold.slmail.me>
Co-authored-by: Brumi-2021 <86470699+Brumi-2021@users.noreply.github.com>
Co-authored-by: dark-juju <2839275+dark-juju@users.noreply.github.com>
Co-authored-by: Benjamin Møller <37707273+LupusE@users.noreply.github.com>
Co-authored-by: Oleg Belousov <belousov.oleg@gmail.com>
Co-authored-by: haruk <104354987+exe-noisy@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Luca <61653175+iu2frl@users.noreply.github.com>
Co-authored-by: Richard <richard.toy@gmail.com>
Co-authored-by: zxkmm <zxkmm@hotmail.com>
Co-authored-by: horrordash <45861453+horrordash@users.noreply.github.com>
Co-authored-by: Alien <2142224+mythic-alien@users.noreply.github.com>
Co-authored-by: Petro Danylevskyi <petro@danylevskyi.com>
Co-authored-by: Tommaso Ventafridda <33782489+tomventa@users.noreply.github.com>
Co-authored-by: Netro <146584182+iNetro@users.noreply.github.com>
Co-authored-by: plomek <86431917+plomek@users.noreply.github.com>
Co-authored-by: TJ <tj.baginski@cognosos.com>
This commit is contained in:
gullradriel
2025-07-11 16:33:21 +02:00
committed by GitHub
parent 18e89d28a8
commit 1dbfc50dbe
396 changed files with 77723 additions and 9898 deletions

View File

@@ -0,0 +1,561 @@
M48
METRIC,LZ,000.000
;FILE_FORMAT=3:3
;TYPE=PLATED
;Layer: PTH_Through
;EasyEDA v6.5.46, 2025-01-01 16:01:39
;1acd7fc2553046b79c71bda98b4923fc,10
;Gerber Generator version 0.2
;Holesize 1 = 0.300 mm
T01C0.300
;Holesize 2 = 0.400 mm
T02C0.400
;Holesize 3 = 0.500 mm
T03C0.500
;Holesize 4 = 0.700 mm
T04C0.700
;Holesize 5 = 0.712 mm
T05C0.712
;Holesize 6 = 0.800 mm
T06C0.800
;Holesize 7 = 1.000 mm
T07C1.000
;Holesize 8 = 1.450 mm
T08C1.450
;Holesize 9 = 1.501 mm
T09C1.501
;Holesize 10 = 1.600 mm
T10C1.600
;Holesize 11 = 3.200 mm
T11C3.200
;Holesize 12 = 3.300 mm
T12C3.300
;Holesize 13 = 4.000 mm
T13C4.000
%
G05
G90
T01
X033262Y064570
T02
X033746Y068890
X033746Y067630
X032496Y068890
X032496Y067640
X000503Y006140
X002078Y005493
X-001046Y005505
X-001757Y003880
X002700Y003931
X-001046Y002407
X000503Y001746
X002065Y002394
X112492Y006204
X114067Y005556
X110942Y005569
X110231Y003943
X114689Y003994
X110942Y002470
X112492Y001810
X114054Y002457
X112454Y073311
X114028Y072663
X110904Y072676
X110193Y071050
X114651Y071101
X110904Y069577
X112454Y068917
X114016Y069564
X000363Y073082
X001938Y072434
X-001186Y072447
X-001897Y070822
X002561Y070872
X-001186Y069348
X000363Y068688
X001926Y069336
X043182Y073180
X057290Y063879
X055639Y063879
X054115Y063879
X023541Y056040
X-000716Y008989
X040694Y054339
X039184Y054339
X037684Y054339
X036194Y054339
X034684Y054339
X033184Y054339
X031694Y054339
X030184Y054339
X028684Y054339
X040694Y057659
X039184Y057659
X037684Y057659
X036194Y057659
X034684Y057659
X033184Y057659
X031694Y057659
X030184Y057659
X028684Y057659
X027194Y057659
X025684Y057659
X024184Y057659
X-002604Y045352
X003264Y054799
X000826Y052072
X001374Y051759
X001394Y052349
X001394Y052349
X003674Y050949
X004474Y050949
X004474Y051819
X003674Y051819
X000794Y053369
X000804Y054169
X115384Y012549
X115384Y014149
X115384Y015569
X091384Y022329
X092884Y022329
X094384Y022329
X095884Y022329
X097384Y022329
X082084Y026189
X082084Y027159
X086521Y016440
X076134Y058229
X069384Y058229
X068854Y056279
X059895Y043988
X081972Y056970
X070944Y056949
X060837Y043271
X078771Y056139
X071254Y056139
X065404Y066959
X022844Y069129
X022854Y070029
X024785Y069289
X041284Y063829
X041284Y064749
X017594Y069039
X016784Y069039
X021954Y060729
X022604Y061599
X033484Y062559
X032884Y063169
X022684Y048469
X022684Y049489
X022684Y050469
X019781Y050798
X020551Y051588
X019071Y049998
X053284Y073469
X051784Y073469
X054784Y073469
X044284Y073469
X056284Y073469
X050284Y073469
X048784Y073469
X057784Y073469
X021882Y074350
X023382Y074350
X064450Y066340
X047962Y071820
X028462Y067260
X029172Y066460
X033902Y071829
X039922Y069890
X039929Y061954
X047970Y065068
X023182Y068229
X009236Y057012
X022652Y071790
X009622Y065100
X035742Y072490
X009572Y059860
X043912Y060994
X045552Y067320
X046412Y066020
X047212Y041900
X047212Y068570
X044692Y069849
X040972Y069849
X040992Y067830
X025171Y026068
X031191Y031448
X030271Y030328
X024261Y025278
X033391Y025758
X033401Y024428
X031911Y025798
X033391Y027298
X032081Y032348
X049684Y011368
X048184Y011358
X046684Y011348
X045184Y011358
X043684Y011348
X115384Y016969
X115384Y018169
X115364Y019329
X115384Y020659
X115214Y008229
X115204Y006729
X109384Y001239
X107884Y001249
X106384Y001259
X104884Y001249
X103384Y001249
X101884Y001239
X100384Y001229
X098884Y001239
X097384Y001239
X095884Y001229
X094384Y001229
X092884Y001229
X091384Y001229
X089884Y001229
X088384Y001229
X086884Y001219
X000785Y007999
X002284Y006879
X003484Y005729
X-002596Y008829
X-002616Y010329
X-002616Y011829
X-002616Y013329
X-002616Y014829
X-002616Y016329
X-000816Y065529
X-002316Y065529
X076084Y073484
X073272Y073460
X071284Y073475
X068284Y073484
X074584Y020369
X074584Y021658
X074584Y022719
X081484Y044478
X074365Y029879
X072535Y029828
X070635Y029808
X077555Y039659
X069335Y039858
X074145Y039309
X074145Y040279
X074345Y033929
X074335Y035788
X072555Y035769
X072545Y033948
X070655Y033938
X070685Y035769
X098884Y022329
X100384Y022329
X101884Y022329
X103384Y022329
X104884Y022329
X066784Y020168
X066784Y021048
X066784Y021959
X066784Y022808
X072121Y024198
X072121Y025078
X083535Y045249
X079544Y049619
X115384Y022329
X113884Y022329
X112384Y022329
X110884Y022329
X109384Y022329
X107884Y022329
X106384Y022329
X001584Y065529
X003284Y065529
X004984Y065529
X006384Y067929
X006384Y066729
X006384Y065529
X-002316Y067029
X-000816Y067029
X001385Y067429
X003184Y068429
X004184Y070029
X004385Y071629
X-002616Y032829
X-002616Y031329
X-002616Y029829
X-002616Y028329
X-002616Y026829
X-002616Y025329
X-002616Y023829
X-002616Y022329
X-002616Y020829
X-002616Y019329
X-002616Y017829
X-002516Y007529
X-002516Y006229
X004684Y004629
X005584Y003629
X006484Y002729
X007385Y001829
X002884Y000829
X004385Y000829
X005884Y000829
X007385Y000829
X008884Y000829
X010385Y000829
X011884Y000829
X013385Y000829
X014884Y000829
X016384Y000829
X017884Y000829
X019384Y000829
X020884Y000829
X022384Y000829
X023884Y000829
X025384Y000829
X026884Y000829
X028384Y000829
X029884Y000829
X031384Y000829
X032884Y000829
X034384Y000829
X035884Y000829
X037384Y000829
X038884Y000829
X040384Y000829
X041884Y000829
X043384Y000829
X044884Y000829
X046384Y000829
X047884Y000829
X049384Y000829
X050884Y000829
X052384Y000829
X053884Y000829
X055384Y000829
X056884Y000829
X058384Y000829
X059884Y000829
X061384Y000829
X062884Y000829
X064384Y000829
X065884Y000829
X067384Y000829
X068891Y000829
X070391Y000829
X071891Y000829
X073391Y000829
X074891Y000829
X076431Y000828
X078002Y000840
X079384Y001229
X080884Y001229
X082384Y001229
X083884Y001229
X085384Y001229
X004382Y074350
X005882Y074350
X007382Y074350
X008882Y074350
X014382Y074350
X015882Y074350
X017382Y074350
X020382Y074350
X018882Y074350
X024882Y074350
X026462Y074330
X027922Y074320
X029162Y074340
X030882Y074350
X032382Y074350
X033882Y074350
X035382Y074350
X036882Y074350
X038382Y074350
X039882Y074350
X041382Y074350
X045784Y073469
X047284Y073469
X059284Y073469
X060784Y073475
X062284Y073475
X063784Y073475
X065284Y073475
X066784Y073475
X078602Y073510
X081184Y073475
X082684Y073475
X084484Y073475
X085984Y073475
X087484Y073475
X088984Y073475
X090484Y073475
X091984Y073475
X093484Y073475
X094984Y073475
X096484Y073475
X097984Y073475
X099484Y073475
X100984Y073475
X102484Y073475
X103984Y073475
X105484Y073475
X106984Y073475
X108484Y073475
X027601Y019268
X023813Y020081
X028890Y022249
X026321Y021528
X017452Y004818
X085852Y017350
X077648Y008828
X034983Y005683
X076673Y015173
X033983Y015173
X068663Y007623
X068663Y004453
X063595Y015808
X036533Y015813
X063015Y016538
X031443Y015303
X062135Y007909
X032333Y005783
X061270Y008433
X014703Y005623
X060676Y014433
X014723Y014433
X059741Y013778
X012013Y014393
X-001718Y058110
X061644Y042569
X057445Y030168
X047615Y039378
X058814Y044899
X057445Y027618
X047615Y040929
X069195Y046318
X077135Y046328
X076515Y047028
X068495Y047039
X075865Y047689
X067745Y047689
X075155Y048389
X067165Y048389
X004574Y045538
X078065Y045868
X047924Y031737
X047879Y021582
X047893Y024121
X047895Y029199
X047897Y026660
X060794Y051359
X058555Y024128
X068304Y052019
X059624Y052679
X058264Y053329
X098233Y060306
X098221Y061405
X098225Y062489
X092008Y060306
X058359Y021582
X091955Y061388
X091955Y062489
X063594Y055499
X060064Y054079
X072164Y054799
X083563Y029081
X083532Y018290
X073148Y024448
X048131Y018289
X091127Y059240
X078791Y019948
X021611Y040768
X040324Y031329
X040344Y029829
X040344Y028329
X040384Y026729
X040384Y025109
X-002616Y034329
X-002616Y035829
X-002616Y037829
X-002616Y039329
X020884Y059739
X019984Y058749
X019024Y057729
X025085Y062139
X024894Y060729
X023884Y059619
X022634Y058629
X021484Y057629
X090962Y015440
X090962Y018290
X096042Y010710
X093452Y015640
X-002514Y051122
X-002594Y046042
X-002704Y050362
X004296Y056722
X-001114Y048042
T03
X014774Y046069
X069914Y059240
X086375Y059240
X004011Y018968
X014804Y064082
X021274Y018289
X101122Y005440
X090962Y006600
X099862Y006600
X089632Y005459
T04
X082571Y008808
T05
X013029Y015788G85X013034Y015788
X015569Y015788G85X015574Y015788
T06
X052422Y070860G85X052382Y070860
X054962Y070860G85X054922Y070860
X049882Y070860G85X049842Y070860
X052441Y003918G85X052401Y003918
X054981Y003918G85X054941Y003918
X049901Y003918G85X049861Y003918
X009484Y045729
T07
X069822Y069930G85X069822Y069930
X069822Y067390G85X069822Y067390
X077442Y069930G85X077442Y069930
X079982Y067390G85X079982Y067390
X077442Y067390G85X077442Y067390
X074902Y067390G85X074902Y067390
X079982Y069930G85X079982Y069930
X074902Y069930G85X074902Y069930
X072362Y067390G85X072362Y067390
X072362Y069930G85X072362Y069930
T08
X011293Y043946G85X011289Y043949
X021263Y053732G85X021259Y053736
X024204Y044129G85X024201Y044133
X014050Y021431G85X014047Y021435
X016546Y036471G85X016543Y036475
X024021Y031218G85X024017Y031221
X032767Y029853G85X032764Y029856
T09
X-001239Y059722G85X-001234Y059722
X005873Y059722G85X005878Y059722
T10
X014473Y040765
X020837Y034402
T11
X007048Y048190
T12
X000539Y003918G85X000544Y003918
X112527Y003981G85X112532Y003981
X112489Y071088G85X112494Y071088
X000399Y070860G85X000404Y070860
T13
X028261Y048190
X028261Y026977
M30

View File

@@ -0,0 +1,515 @@
M48
METRIC,LZ,000.000
;FILE_FORMAT=3:3
;TYPE=PLATED
;Layer: PTH_Through_Via
;EasyEDA v6.5.46, 2025-01-01 16:01:39
;1acd7fc2553046b79c71bda98b4923fc,10
;Gerber Generator version 0.2
;Holesize 1 = 0.300 mm
T01C0.300
;Holesize 2 = 0.400 mm
T02C0.400
;Holesize 3 = 0.500 mm
T03C0.500
;Holesize 4 = 0.700 mm
T04C0.700
;Holesize 5 = 0.800 mm
T05C0.800
;Holesize 6 = 1.600 mm
T06C1.600
;Holesize 7 = 3.200 mm
T07C3.200
;Holesize 8 = 4.000 mm
T08C4.000
%
G05
G90
T01
X033262Y064570
T02
X033746Y068890
X033746Y067630
X032496Y068890
X032496Y067640
X000503Y006140
X002078Y005493
X-001046Y005505
X-001757Y003880
X002700Y003931
X-001046Y002407
X000503Y001746
X002065Y002394
X112492Y006204
X114067Y005556
X110942Y005569
X110231Y003943
X114689Y003994
X110942Y002470
X112492Y001810
X114054Y002457
X112454Y073311
X114028Y072663
X110904Y072676
X110193Y071050
X114651Y071101
X110904Y069577
X112454Y068917
X114016Y069564
X000363Y073082
X001938Y072434
X-001186Y072447
X-001897Y070822
X002561Y070872
X-001186Y069348
X000363Y068688
X001926Y069336
X043182Y073180
X057290Y063879
X055639Y063879
X054115Y063879
X023541Y056040
X-000716Y008989
X040694Y054339
X039184Y054339
X037684Y054339
X036194Y054339
X034684Y054339
X033184Y054339
X031694Y054339
X030184Y054339
X028684Y054339
X040694Y057659
X039184Y057659
X037684Y057659
X036194Y057659
X034684Y057659
X033184Y057659
X031694Y057659
X030184Y057659
X028684Y057659
X027194Y057659
X025684Y057659
X024184Y057659
X-002604Y045352
X003264Y054799
X000826Y052072
X001374Y051759
X001394Y052349
X001394Y052349
X003674Y050949
X004474Y050949
X004474Y051819
X003674Y051819
X000794Y053369
X000804Y054169
X115384Y012549
X115384Y014149
X115384Y015569
X091384Y022329
X092884Y022329
X094384Y022329
X095884Y022329
X097384Y022329
X082084Y026189
X082084Y027159
X086521Y016440
X076134Y058229
X069384Y058229
X068854Y056279
X059895Y043988
X081972Y056970
X070944Y056949
X060837Y043271
X078771Y056139
X071254Y056139
X065404Y066959
X022844Y069129
X022854Y070029
X024785Y069289
X041284Y063829
X041284Y064749
X017594Y069039
X016784Y069039
X021954Y060729
X022604Y061599
X033484Y062559
X032884Y063169
X022684Y048469
X022684Y049489
X022684Y050469
X019781Y050798
X020551Y051588
X019071Y049998
X053284Y073469
X051784Y073469
X054784Y073469
X044284Y073469
X056284Y073469
X050284Y073469
X048784Y073469
X057784Y073469
X021882Y074350
X023382Y074350
X064450Y066340
X047962Y071820
X028462Y067260
X029172Y066460
X033902Y071829
X039922Y069890
X039929Y061954
X047970Y065068
X023182Y068229
X009236Y057012
X022652Y071790
X009622Y065100
X035742Y072490
X009572Y059860
X043912Y060994
X045552Y067320
X046412Y066020
X047212Y041900
X047212Y068570
X044692Y069849
X040972Y069849
X040992Y067830
X025171Y026068
X031191Y031448
X030271Y030328
X024261Y025278
X033391Y025758
X033401Y024428
X031911Y025798
X033391Y027298
X032081Y032348
X049684Y011368
X048184Y011358
X046684Y011348
X045184Y011358
X043684Y011348
X115384Y016969
X115384Y018169
X115364Y019329
X115384Y020659
X115214Y008229
X115204Y006729
X109384Y001239
X107884Y001249
X106384Y001259
X104884Y001249
X103384Y001249
X101884Y001239
X100384Y001229
X098884Y001239
X097384Y001239
X095884Y001229
X094384Y001229
X092884Y001229
X091384Y001229
X089884Y001229
X088384Y001229
X086884Y001219
X000785Y007999
X002284Y006879
X003484Y005729
X-002596Y008829
X-002616Y010329
X-002616Y011829
X-002616Y013329
X-002616Y014829
X-002616Y016329
X-000816Y065529
X-002316Y065529
X076084Y073484
X073272Y073460
X071284Y073475
X068284Y073484
X074584Y020369
X074584Y021658
X074584Y022719
X081484Y044478
X074365Y029879
X072535Y029828
X070635Y029808
X077555Y039659
X069335Y039858
X074145Y039309
X074145Y040279
X074345Y033929
X074335Y035788
X072555Y035769
X072545Y033948
X070655Y033938
X070685Y035769
X098884Y022329
X100384Y022329
X101884Y022329
X103384Y022329
X104884Y022329
X066784Y020168
X066784Y021048
X066784Y021959
X066784Y022808
X072121Y024198
X072121Y025078
X083535Y045249
X079544Y049619
X115384Y022329
X113884Y022329
X112384Y022329
X110884Y022329
X109384Y022329
X107884Y022329
X106384Y022329
X001584Y065529
X003284Y065529
X004984Y065529
X006384Y067929
X006384Y066729
X006384Y065529
X-002316Y067029
X-000816Y067029
X001385Y067429
X003184Y068429
X004184Y070029
X004385Y071629
X-002616Y032829
X-002616Y031329
X-002616Y029829
X-002616Y028329
X-002616Y026829
X-002616Y025329
X-002616Y023829
X-002616Y022329
X-002616Y020829
X-002616Y019329
X-002616Y017829
X-002516Y007529
X-002516Y006229
X004684Y004629
X005584Y003629
X006484Y002729
X007385Y001829
X002884Y000829
X004385Y000829
X005884Y000829
X007385Y000829
X008884Y000829
X010385Y000829
X011884Y000829
X013385Y000829
X014884Y000829
X016384Y000829
X017884Y000829
X019384Y000829
X020884Y000829
X022384Y000829
X023884Y000829
X025384Y000829
X026884Y000829
X028384Y000829
X029884Y000829
X031384Y000829
X032884Y000829
X034384Y000829
X035884Y000829
X037384Y000829
X038884Y000829
X040384Y000829
X041884Y000829
X043384Y000829
X044884Y000829
X046384Y000829
X047884Y000829
X049384Y000829
X050884Y000829
X052384Y000829
X053884Y000829
X055384Y000829
X056884Y000829
X058384Y000829
X059884Y000829
X061384Y000829
X062884Y000829
X064384Y000829
X065884Y000829
X067384Y000829
X068891Y000829
X070391Y000829
X071891Y000829
X073391Y000829
X074891Y000829
X076431Y000828
X078002Y000840
X079384Y001229
X080884Y001229
X082384Y001229
X083884Y001229
X085384Y001229
X004382Y074350
X005882Y074350
X007382Y074350
X008882Y074350
X014382Y074350
X015882Y074350
X017382Y074350
X020382Y074350
X018882Y074350
X024882Y074350
X026462Y074330
X027922Y074320
X029162Y074340
X030882Y074350
X032382Y074350
X033882Y074350
X035382Y074350
X036882Y074350
X038382Y074350
X039882Y074350
X041382Y074350
X045784Y073469
X047284Y073469
X059284Y073469
X060784Y073475
X062284Y073475
X063784Y073475
X065284Y073475
X066784Y073475
X078602Y073510
X081184Y073475
X082684Y073475
X084484Y073475
X085984Y073475
X087484Y073475
X088984Y073475
X090484Y073475
X091984Y073475
X093484Y073475
X094984Y073475
X096484Y073475
X097984Y073475
X099484Y073475
X100984Y073475
X102484Y073475
X103984Y073475
X105484Y073475
X106984Y073475
X108484Y073475
X027601Y019268
X023813Y020081
X028890Y022249
X026321Y021528
X017452Y004818
X085852Y017350
X077648Y008828
X034983Y005683
X076673Y015173
X033983Y015173
X068663Y007623
X068663Y004453
X063595Y015808
X036533Y015813
X063015Y016538
X031443Y015303
X062135Y007909
X032333Y005783
X061270Y008433
X014703Y005623
X060676Y014433
X014723Y014433
X059741Y013778
X012013Y014393
X-001718Y058110
X061644Y042569
X057445Y030168
X047615Y039378
X058814Y044899
X057445Y027618
X047615Y040929
X069195Y046318
X077135Y046328
X076515Y047028
X068495Y047039
X075865Y047689
X067745Y047689
X075155Y048389
X067165Y048389
X004574Y045538
X078065Y045868
X047924Y031737
X047879Y021582
X047893Y024121
X047895Y029199
X047897Y026660
X060794Y051359
X058555Y024128
X068304Y052019
X059624Y052679
X058264Y053329
X098233Y060306
X098221Y061405
X098225Y062489
X092008Y060306
X058359Y021582
X091955Y061388
X091955Y062489
X063594Y055499
X060064Y054079
X072164Y054799
X083563Y029081
X083532Y018290
X073148Y024448
X048131Y018289
X091127Y059240
X078791Y019948
X021611Y040768
X040324Y031329
X040344Y029829
X040344Y028329
X040384Y026729
X040384Y025109
X-002616Y034329
X-002616Y035829
X-002616Y037829
X-002616Y039329
X020884Y059739
X019984Y058749
X019024Y057729
X025085Y062139
X024894Y060729
X023884Y059619
X022634Y058629
X021484Y057629
X090962Y015440
X090962Y018290
X096042Y010710
X093452Y015640
X-002514Y051122
X-002594Y046042
X-002704Y050362
X004296Y056722
X-001114Y048042
T03
X014774Y046069
X069914Y059240
X086375Y059240
X004011Y018968
X014804Y064082
X021274Y018289
X101122Y005440
X090962Y006600
X099862Y006600
X089632Y005459
T04
X082571Y008808
T05
X009484Y045729
T06
X014473Y040765
X020837Y034402
T07
X007048Y048190
T08
X028261Y048190
X028261Y026977
M30

View File

@@ -0,0 +1,114 @@
G04 Layer: BoardOutlineLayer*
G04 EasyEDA v6.5.46, 2025-01-01 16:01:39*
G04 1acd7fc2553046b79c71bda98b4923fc,10*
G04 Gerber Generator version 0.2*
G04 Scale: 100 percent, Rotated: No, Reflected: No *
G04 Dimensions in millimeters *
G04 leading zeros omitted , absolute positions ,4 integer and 5 decimal *
%FSLAX45Y45*%
%MOMM*%
%ADD10C,0.2540*%
D10*
X9285762Y5161592D02*
G01*
X11467622Y5161592D01*
G75*
G01*
X11490437Y6366413D02*
G03*
X11490435Y6365811I-114999J-10D01*
G75*
G01*
X3958438Y6366413D02*
G03*
X3958436Y6365811I-114999J-10D01*
G75*
G01*
X11489939Y1123414D02*
G03*
X11489937Y1122812I-114999J-10D01*
G75*
G01*
X11122802Y6341742D02*
G03*
X11122801Y6341376I-70000J11D01*
G75*
G01*
X11120262Y5539102D02*
G03*
X11120261Y5538736I-70000J11D01*
G75*
G01*
X3958438Y1124415D02*
G03*
X3958436Y1123813I-114999J-10D01*
G75*
G01*
X9285762Y5161591D02*
G03*
X9119393Y5006651I-4000J-162495D01*
G75*
G01*
X11467621Y5161591D02*
G03*
X11617482Y5315261I-7768J157484D01*
G75*
G01*
X9119393Y2454272D02*
G03*
X9259094Y2326002I137678J9736D01*
G75*
G01*
X11627643Y2179953D02*
G03*
X11486672Y2326004I-142230J3776D01*
G75*
G01*
X11294904Y2D02*
G03*
X11627644Y328931I-18455J351430D01*
G75*
G01*
X-346707Y320040D02*
G03*
X2Y-1I337962J18303D01*
G75*
G01*
X-11431Y7518226D02*
G03*
X-346708Y7186754I-19125J-315954D01*
G75*
G01*
X11617482Y7196922D02*
G03*
X11310144Y7518229I-289029J31179D01*
X-11432Y7518227D02*
G01*
X11310142Y7518227D01*
X11617482Y5315259D02*
G01*
X11617482Y7196922D01*
X9119392Y2454272D02*
G01*
X9119392Y5006649D01*
X9259092Y2326002D02*
G01*
X11486672Y2326002D01*
X11627642Y328929D02*
G01*
X11627642Y2179952D01*
X0Y0D02*
G01*
X11294902Y0D01*
X-346707Y320037D02*
G01*
X-346707Y7186752D01*
G75*
G01*
X11294902Y3D02*
G03*
X11627642Y328933I-18454J351430D01*
%LPD*%
M02*

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,22 @@
G04 Layer: BottomPasteMaskLayer*
G04 EasyEDA v6.5.46, 2025-01-01 16:01:39*
G04 1acd7fc2553046b79c71bda98b4923fc,10*
G04 Gerber Generator version 0.2*
G04 Scale: 100 percent, Rotated: No, Reflected: No *
G04 Dimensions in millimeters *
G04 leading zeros omitted , absolute positions ,4 integer and 5 decimal *
%FSLAX45Y45*%
%MOMM*%
%AMMACRO1*21,1,$1,$2,0,0,$3*%
%ADD10MACRO1,5X2.3X135.0000*%
%ADD11MACRO1,5X2.3X-10.0001*%
%LPD*%
D10*
G01*
X209293Y4568317D03*
D11*
G01*
X32306Y3442335D03*
M02*

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,106 @@
G04 Layer: BottomSolderMaskLayer*
G04 EasyEDA v6.5.46, 2025-01-01 16:01:39*
G04 1acd7fc2553046b79c71bda98b4923fc,10*
G04 Gerber Generator version 0.2*
G04 Scale: 100 percent, Rotated: No, Reflected: No *
G04 Dimensions in millimeters *
G04 leading zeros omitted , absolute positions ,4 integer and 5 decimal *
%FSLAX45Y45*%
%MOMM*%
%AMMACRO1*4,1,8,-0.8085,-0.8382,-0.8382,-0.8085,-0.8382,0.8084,-0.8085,0.8382,0.8084,0.8382,0.8382,0.8084,0.8382,-0.8085,0.8084,-0.8382,-0.8085,-0.8382,0*%
%AMMACRO2*4,1,8,0.9335,-2.6317,-2.6317,0.9335,-2.6317,0.9756,-0.9756,2.6317,-0.9335,2.6317,2.6317,-0.9335,2.6317,-0.9756,0.9756,-2.6317,0.9335,-2.6317,0*%
%AMMACRO3*4,1,8,2.2742,-1.6203,-2.6912,-0.7448,-2.7154,-0.7103,-2.3087,1.5962,-2.2742,1.6203,2.6912,0.7448,2.7154,0.7103,2.3087,-1.5962,2.2742,-1.6203,0*%
%ADD10C,1.6766*%
%ADD11C,1.6764*%
%ADD12MACRO1*%
%ADD13C,1.6016*%
%ADD14C,5.4016*%
%ADD15C,1.8016*%
%ADD17C,1.7016*%
%ADD18MACRO2*%
%ADD19MACRO3*%
%ADD20C,2.4016*%
%LPD*%
D10*
G01*
X6982152Y6992950D03*
G01*
X6982152Y6738950D03*
G01*
X7744152Y6992950D03*
D11*
G01*
X7998152Y6738950D03*
G01*
X7744152Y6738950D03*
G01*
X7490152Y6738950D03*
D12*
G01*
X7998152Y6992950D03*
D11*
G01*
X7490152Y6992950D03*
G01*
X7236152Y6738950D03*
G01*
X7236152Y6992950D03*
D13*
G01*
X-123675Y5972175D03*
G01*
X587524Y5972175D03*
D14*
G01*
X54124Y391795D03*
G01*
X11252984Y398145D03*
G01*
X11249174Y7108825D03*
G01*
X40154Y7085964D03*
D15*
G01*
X5240169Y7085964D03*
D17*
G01*
X5494169Y7085964D03*
G01*
X4986169Y7085964D03*
D11*
G01*
X1303195Y1578787D03*
G01*
X1557195Y1578787D03*
D15*
G01*
X5242125Y391795D03*
D17*
G01*
X5496125Y391795D03*
G01*
X4988125Y391795D03*
D18*
G01*
X209292Y4568315D03*
D19*
G01*
X32304Y3442333D03*
D20*
G01*
X1129078Y4394733D03*
G01*
X2126104Y5373370D03*
G01*
X2420236Y4413122D03*
G01*
X1404846Y2143302D03*
G01*
X1654451Y3647312D03*
G01*
X2401872Y3121939D03*
G01*
X3276546Y2985465D03*
M02*

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,11 @@
Portapack H4 is an add-on for the HackRF Software Defined Radio (SDR) platform.
The improvements of H4:
1.GPIO port! The H4M adds a GPIO port so users can make their own add-ons for the H4M, just like the flipper.
2.Advanced battery management IC (battery %, voltage, current/draw, etc...)
3.Single power on/off switch.
4.When powered off, the battery will no longer phantom drain.
5.flat design, going back to the iPod style click wheel. (so no more broken buttons and encoders!)
6.Improved charge speeds.
7.Built in mic (and mic switch between internal and external).
8.Matte screen.