* Add P25 TX external app (UI shell)
- Register p25_tx in external.cmake and external.ld at 0xAE010000
- UI with NAC, SYSID, WACN, RFSSID, SITEID, TG, VCH fields
- 2.4 Msps TX, 155 MHz default, no baseband (m4_app_tag={0,0,0,0})
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add P25 TX baseband processor (M4)
- P25TxConfigure = 102 in message.hpp + P25TxConfigureMessage
- image_tag_p25_tx in spi_image.hpp
- set_p25tx_data() in baseband_api (copies dibits to bb_data, sends msg)
- proc_p25_tx registered in baseband CMakeLists (tag P25T)
- m4_app_tag updated to {'P','2','5','T'}
- TX wired: transmits P25 FSW test pattern (512 dibits) via M4 C4FM proc
- on_tx_progress handler stops TX when frame complete
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* p25_tx: implement correct P25 TSBK encoding from ccemu
- BCH(63,16) via generator matrix (not polynomial division)
- CRC-CCITT bit-by-bit init=0 over 80 bits
- 1/2-rate trellis encoder (4 states)
- DataInterleave per TIA-102
- Status symbol insertion (SS=0x02 every 35 dibits)
- TSBK rotation: IDEN_UP -> NET_STS -> RFSS_STS -> NET_STS
- tsbk_idx_ persists across buffer refills, resets on stop_tx
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* p25_tx: apply clang-format
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* p25_tx: fix HackRF lockup - zero output buffer when idle
When configured=false, execute() returned without writing to the
output buffer. The DMA would re-use stale IQ samples from the
previous cycle, sending garbage to the HackRF and causing it to
lock up mid-transmission.
Fix: explicitly zero the output buffer when the proc is idle.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* p25_tx: address PR review feedback and fix TX restart lockup
- Replace NumberField with SymField::Type::Hex for NAC, SYSID, WACN,
RFSSID, SITEID, TG, VCH (hex values should display as hex)
- Add voice grant TSBK (OpcodeGrpVChGrant 0x00) to rotation cycle;
rotation is now 5-step: IDEN_UP->NET_STS->RFSS_STS->GRP_V_GRANT->NET_STS
- Wire TG and VCH fields into fill_tx_buffer for voice grant encoding
- Reset txprogress_message.done=false on new P25TxConfigure in baseband
- Add #include <cstring> to baseband_api.cpp (needed for memcpy)
- Fix TX restart lockup: remove baseband::shutdown() from stop_tx() so
the M4 stays loaded between sessions; only shut down in destructor.
Previously, the stale ShutdownMessage in the queue would be picked up
by the restarted M4 on second TX, causing it to exit immediately and
leaving the HackRF stuck in TX mode.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* ifndef guard instead of pragma
* POC
* submodule
* seperate bb
* seperate bb
* seperate bb
* seperate bb
* seperate bb
* sadly have to reduce history
* icon
* bring it back
* bring it back
* bb
* format and move bb outside
* filters OK, radio configurations set
* all modes are working, noise still needs work, especially in FM. A baseband enum is also needed
* audio and decoding fixed, clipping and the baseband enum are still missing
* USB receive good
* LSB receive good
* all mode receive good, log is dead
* frequency measurement good, decode dead
* total killed
* szutyok, gerjed
* frequenty meas only.
* ui ok
* Add frequency measurement handling and update Morse processing logic
* fix ssb speed
* Add enabled checks in ReceiverModel and TransmitterModel
* Move TX limit logic to TransmitterModel from radio API
* Add TX disable functionality and UI
* Add FLEX pager support
- Introduced a new FLEX configuration function in baseband_api.
- Added FLEX application view and associated UI elements.
- Implemented FLEX processing logic in proc_flex, including demodulation and message handling.
- Updated CMakeLists to include new FLEX source files and headers.
- Enhanced message system to support FLEX-specific messages and statistics.
This commit lays the groundwork for FLEX pager functionality, allowing for the reception and processing of FLEX messages.
* Fixed baseband and moved app to external with some other fixes.
* Format code
---------
Co-authored-by: RocketGod <57732082+RocketGod-git@users.noreply.github.com>
* Implementation of EPIRB receiver
* Baseband processing of EPIRB signal
* UI to ddecode and display EPIRB message with display on a map
* External application
* External proc element
* Delete CLAUDE.md
* 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>
* 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
* message on dev list change
* dc detect
* added sht3x sensor.
* separete environment data from light
* max17055 moved to i2c dev
* sht fix, goterror detection fix
* fix ext sensor app display for a lot of devices.
* added bh1750 driver
* autoscan on main view
* added devlist mutex
* better timing
* fix h2 sw8 on poweron by usb
* fix average value being overflow'd
* fix audio and mod changes, preps for beep mode
* fixed beep_freq range, added a stop and set a variable sooner
* added support for audio beep messages
* better scaler for beep
* added bip squelch and saving of bip squelch and audio mode
* saving modulation, fixing audio
* added save and restore of bandwidth
* simpler ctcss clean on change mode
* added Rx Saturation
* testing reducing values to uint8_t
* clang format
* refactorisation
* cleanings
* cleanings
* set back request_m4_performance_counter to zero on app exit
---------
Co-authored-by: GullCode <gullradriel@hotmail.com>
* Initial commit - wip
* Half part of the transition of baseband processor.
* More SGD
* WIP, Weather refactor, UI improv
* Rename
* Added 4msps, and fixes
* Fixes
* princeton working
* Renamed proc_weather, bc now multifunctional
* Proto: bett
* FPS_CAME = 4,
FPS_PRASTEL = 5,
FPS_AIRFORCE = 6,
* Came Atomo, fixes
* Separate weather and sgd, bc of baseband size limit
* Fix display
* Save space
* More protos
* Dooya proto added
* More protos
* add protos
* More protos
* Move weather to ext app
* nw
* Revert "Move weather to ext app"
This reverts commit 8a84aac2f5.
* revert
* Fix merge
* Better naming
* More protos
* More protos
* Add protos
* Fix warning
* Add NeroRadio
* more protos
* more protos
* More protos
* Shrink a bit
* fixes
* More protos
* Nicer code
* Fix naming
* Fix format
* Remove unused
* Fix some protos, that needs a LOOOONG part with the same lo/high
* Modify key calculation
* First BLE work
* Adding new fsk proc WIP
* Reverting ble stuff
* Initial compile working
* more work.
* Adding waterfall for debug
* more edits to debug
* Work to get widgets to show.
* cleanup before attempting diff fsk modulation method
* Temporary debug to learn how decimation scales.
* Tab view for console and spectrum. Spectrum still not working right.
* Fixed spectrum offset.
* Added audio sampling rate increments to freqman
* Added overriding range for frequency field and working off deviation
* BLE cleanup. Got PDU parsing.
* Parsing CRC
* forgot :
* Removing AA again because cluttering UI
* fix compile
* attempt at throttling.
* WIP changes.
* Decimating by 4 to handle issue with overloading.
* Attempt to parse MAC still needs work.
* Small fixes. MAC still wrong.
* Fixed invalid indexing on Symbols.
* List view of BLE Mac Addresses
* Added Channel Option and improved GUI header.
* renaming to dB and fixing some warnings.
* Advertisements only.
* Initial cut of BLE Advertisement scan app.
* Copyrights
* formatting correctly in association to clang13
* Fixing warning and hiding fsk rx.
* spacing
* Removing some cmake install files that weren't suppose to be there.
* missed some.
* Added name to about.
* Edits for PR review pt.1
* Refactor ORing with 0 doesn't make sense.
* remove parenthesis
* More PR Review changes.
* Fix compiler error.
* PR Review edits.
* PR review changes.
* Fixes.
* Unneeded ;
* Update ui_about_simple.cpp
---------
Co-authored-by: jLynx <admin@jlynx.net>
* WIP Refactoring
* WordExtractor building
* Fix buffer sizes and squelch execute
* Move impls to cpp file
* Baud indicator
* WIP new bit extractor
* New approach for bit extraction.
* Code fit and finish
* Fix case on button
* Cleanup
* Adjust rate miss threshold
* Fix count bits error calculation.