diff --git a/firmware/application/apps/gps_sim_app.cpp b/firmware/application/apps/gps_sim_app.cpp index f51011c9..545d0826 100644 --- a/firmware/application/apps/gps_sim_app.cpp +++ b/firmware/application/apps/gps_sim_app.cpp @@ -29,6 +29,7 @@ #include "baseband_api.hpp" #include "portapack.hpp" +#include "cpld_update.hpp" #include "portapack_persistent_memory.hpp" using namespace portapack; @@ -242,7 +243,8 @@ GpsSimAppView::GpsSimAppView( GpsSimAppView::~GpsSimAppView() { radio::disable(); - baseband::shutdown(); + hackrf::cpld::load_sram_no_verify(); // to leave all RX ok, without ghost signal problem at the exit . + baseband::shutdown(); // better this function at the end, not load_sram() that sometimes produces hang up. } void GpsSimAppView::on_hide() { diff --git a/firmware/application/apps/lge_app.cpp b/firmware/application/apps/lge_app.cpp index ad3b6d0a..f5f81e65 100644 --- a/firmware/application/apps/lge_app.cpp +++ b/firmware/application/apps/lge_app.cpp @@ -27,6 +27,7 @@ #include "lge_app.hpp" #include "baseband_api.hpp" +#include "cpld_update.hpp" #include "ui_textentry.hpp" #include "string_format.hpp" @@ -48,7 +49,8 @@ LGEView::~LGEView() { settings.save("tx_lge", &app_settings); transmitter_model.disable(); - baseband::shutdown(); + hackrf::cpld::load_sram_no_verify(); // to leave all RX ok, without ghost signal problem at the exit . + baseband::shutdown();// better this function at the end, not load_sram() that sometimes produces hang up. } void LGEView::generate_lge_frame(const uint8_t command, const uint16_t address_a, const uint16_t address_b, std::vector& data) { diff --git a/firmware/application/apps/soundboard_app.cpp b/firmware/application/apps/soundboard_app.cpp index 97e6ad70..02039ae3 100644 --- a/firmware/application/apps/soundboard_app.cpp +++ b/firmware/application/apps/soundboard_app.cpp @@ -25,6 +25,7 @@ #include "soundboard_app.hpp" #include "string_format.hpp" #include "tonesets.hpp" +#include "cpld_update.hpp" using namespace tonekey; using namespace portapack; @@ -295,7 +296,8 @@ SoundBoardView::~SoundBoardView() { stop(); transmitter_model.disable(); - baseband::shutdown(); + hackrf::cpld::load_sram_no_verify(); // to leave all RX ok, without ghost signal problem at the exit. + baseband::shutdown(); // better this function at the end, not load_sram() that sometimes produces hang up. } } diff --git a/firmware/application/apps/ui_adsb_tx.cpp b/firmware/application/apps/ui_adsb_tx.cpp index 918e744c..997bd65d 100644 --- a/firmware/application/apps/ui_adsb_tx.cpp +++ b/firmware/application/apps/ui_adsb_tx.cpp @@ -26,6 +26,7 @@ #include "manchester.hpp" #include "string_format.hpp" #include "portapack.hpp" +#include "cpld_update.hpp" #include "baseband_api.hpp" #include @@ -290,8 +291,9 @@ ADSBTxView::~ADSBTxView() { settings.save("tx_adsb", &app_settings); transmitter_model.disable(); - baseband::shutdown(); -} + hackrf::cpld::load_sram_no_verify(); // to leave all RX ok, withouth ghost signal problem at the exit . + baseband::shutdown(); // better this function at the end, not load_sram() that sometimes produces hang up. + } void ADSBTxView::generate_frames() { const uint32_t ICAO_address = sym_icao.value_hex_u64(); diff --git a/firmware/application/apps/ui_aprs_tx.cpp b/firmware/application/apps/ui_aprs_tx.cpp index 5d275931..281fb0d9 100644 --- a/firmware/application/apps/ui_aprs_tx.cpp +++ b/firmware/application/apps/ui_aprs_tx.cpp @@ -26,6 +26,7 @@ #include "aprs.hpp" #include "string_format.hpp" #include "portapack.hpp" +#include "cpld_update.hpp" #include "baseband_api.hpp" #include "portapack_shared_memory.hpp" #include "portapack_persistent_memory.hpp" @@ -48,7 +49,8 @@ APRSTXView::~APRSTXView() { settings.save("tx_aprs", &app_settings); transmitter_model.disable(); - baseband::shutdown(); + hackrf::cpld::load_sram_no_verify(); // to leave all RX ok, without ghost signal problem at the exit. + baseband::shutdown(); // better this function at the end, not load_sram() that sometimes produces hang up. } void APRSTXView::start_tx() { diff --git a/firmware/application/apps/ui_bht_tx.cpp b/firmware/application/apps/ui_bht_tx.cpp index b70f4d17..dd8e9e86 100644 --- a/firmware/application/apps/ui_bht_tx.cpp +++ b/firmware/application/apps/ui_bht_tx.cpp @@ -24,6 +24,7 @@ #include "string_format.hpp" #include "baseband_api.hpp" +#include "cpld_update.hpp" #include "portapack_persistent_memory.hpp" using namespace portapack; @@ -145,6 +146,8 @@ BHTView::~BHTView() { settings.save("tx_bht", &app_settings); transmitter_model.disable(); + hackrf::cpld::load_sram_no_verify(); // to leave all RX ok, without ghost signal problem at the exit . + baseband::shutdown(); // better this function at the end, not load_sram() that sometimes produces hang up. } BHTView::BHTView(NavigationView& nav) { diff --git a/firmware/application/apps/ui_coasterp.cpp b/firmware/application/apps/ui_coasterp.cpp index 446ad841..bbe1871b 100644 --- a/firmware/application/apps/ui_coasterp.cpp +++ b/firmware/application/apps/ui_coasterp.cpp @@ -23,6 +23,7 @@ #include "ui_coasterp.hpp" #include "baseband_api.hpp" +#include "cpld_update.hpp" #include "portapack_persistent_memory.hpp" #include @@ -42,7 +43,8 @@ CoasterPagerView::~CoasterPagerView() { settings.save("tx_coaster", &app_settings); transmitter_model.disable(); - baseband::shutdown(); + hackrf::cpld::load_sram_no_verify(); // to leave all RX ok, without ghost signal problem at the exit . + baseband::shutdown(); // better this function at the end, not load_sram() that sometimes produces hang up. } void CoasterPagerView::generate_frame() { diff --git a/firmware/application/apps/ui_encoders.cpp b/firmware/application/apps/ui_encoders.cpp index 05c90a3f..4749ab6d 100644 --- a/firmware/application/apps/ui_encoders.cpp +++ b/firmware/application/apps/ui_encoders.cpp @@ -24,6 +24,7 @@ #include "baseband_api.hpp" #include "string_format.hpp" +#include "cpld_update.hpp" using namespace portapack; @@ -208,7 +209,8 @@ EncodersView::~EncodersView() { settings.save("tx_ook", &app_settings); transmitter_model.disable(); - baseband::shutdown(); + hackrf::cpld::load_sram_no_verify(); // ghost signal c/m to the problem at the exit . + baseband::shutdown(); // better this function after load_sram() } void EncodersView::update_progress() { diff --git a/firmware/application/apps/ui_jammer.cpp b/firmware/application/apps/ui_jammer.cpp index b1cbe9a3..76dd48f8 100644 --- a/firmware/application/apps/ui_jammer.cpp +++ b/firmware/application/apps/ui_jammer.cpp @@ -25,6 +25,7 @@ #include "ui_freqman.hpp" #include "baseband_api.hpp" +#include "cpld_update.hpp" #include "string_format.hpp" using namespace portapack; @@ -183,7 +184,8 @@ void JammerView::focus() { JammerView::~JammerView() { transmitter_model.disable(); - baseband::shutdown(); + hackrf::cpld::load_sram_no_verify(); // to leave all RX ok, without ghost signal problem at the exit . + baseband::shutdown(); // better this function at the end, not load_sram() that sometimes produces hang up. } void JammerView::on_retune(const rf::Frequency freq, const uint32_t range) { diff --git a/firmware/application/apps/ui_keyfob.cpp b/firmware/application/apps/ui_keyfob.cpp index b5bfb145..b85e2d68 100644 --- a/firmware/application/apps/ui_keyfob.cpp +++ b/firmware/application/apps/ui_keyfob.cpp @@ -23,6 +23,7 @@ #include "ui_keyfob.hpp" #include "baseband_api.hpp" +#include "cpld_update.hpp" #include "string_format.hpp" using namespace portapack; @@ -140,7 +141,8 @@ KeyfobView::~KeyfobView() { settings.save("tx_keyfob", &app_settings); transmitter_model.disable(); - baseband::shutdown(); + hackrf::cpld::load_sram_no_verify(); // to leave all RX ok, without ghost signal problem at the exit . + baseband::shutdown(); // better this function at the end, not load_sram() that sometimes produces hang up. } void KeyfobView::update_progress(const uint32_t progress) { diff --git a/firmware/application/apps/ui_lcr.cpp b/firmware/application/apps/ui_lcr.cpp index 6f5b1489..40090373 100644 --- a/firmware/application/apps/ui_lcr.cpp +++ b/firmware/application/apps/ui_lcr.cpp @@ -27,6 +27,7 @@ #include "modems.hpp" #include "baseband_api.hpp" #include "string_format.hpp" +#include "cpld_update.hpp" #include "serializer.hpp" @@ -44,7 +45,8 @@ LCRView::~LCRView() { settings.save("tx_lcr", &app_settings); transmitter_model.disable(); - baseband::shutdown(); + hackrf::cpld::load_sram_no_verify(); // to leave all RX ok, without ghost signal problem at the exit. + baseband::shutdown(); // better this function at the end, not load_sram() that sometimes produces hang up. } /* diff --git a/firmware/application/apps/ui_mictx.cpp b/firmware/application/apps/ui_mictx.cpp index 6b2169cf..397b595b 100644 --- a/firmware/application/apps/ui_mictx.cpp +++ b/firmware/application/apps/ui_mictx.cpp @@ -550,8 +550,8 @@ MicTXView::~MicTXView() { transmitter_model.disable(); if (rx_enabled) //Also turn off audio rx if enabled rxaudio(false); - baseband::shutdown(); - hackrf::cpld::load_sram_no_verify(); // too leave all RX ok, wihouth ghost signal problem at the exit . + hackrf::cpld::load_sram_no_verify(); // to leave all RX ok, without ghost signal problem at the exit . + baseband::shutdown(); // better this function at the end, not load_sram() that sometimes produces hang up. } } diff --git a/firmware/application/apps/ui_morse.cpp b/firmware/application/apps/ui_morse.cpp index 1c9468d9..6378b025 100644 --- a/firmware/application/apps/ui_morse.cpp +++ b/firmware/application/apps/ui_morse.cpp @@ -26,6 +26,7 @@ #include "baseband_api.hpp" #include "hackrf_gpio.hpp" #include "portapack_shared_memory.hpp" +#include "cpld_update.hpp" #include "ui_textentry.hpp" #include "string_format.hpp" @@ -102,7 +103,8 @@ MorseView::~MorseView() { settings.save("tx_morse", &app_settings); transmitter_model.disable(); - baseband::shutdown(); + hackrf::cpld::load_sram_no_verify(); // to leave all RX ok, without ghost signal problem at the exit . + baseband::shutdown(); // better this function at the end, not load_sram() that sometimes produces hang up. } void MorseView::paint(Painter&) { diff --git a/firmware/application/apps/ui_pocsag_tx.cpp b/firmware/application/apps/ui_pocsag_tx.cpp index 58de068e..0a329676 100644 --- a/firmware/application/apps/ui_pocsag_tx.cpp +++ b/firmware/application/apps/ui_pocsag_tx.cpp @@ -23,6 +23,7 @@ #include "ui_pocsag_tx.hpp" #include "baseband_api.hpp" +#include "cpld_update.hpp" #include "string_format.hpp" #include "ui_textentry.hpp" @@ -43,7 +44,8 @@ POCSAGTXView::~POCSAGTXView() { settings.save("tx_pocsag", &app_settings); transmitter_model.disable(); - baseband::shutdown(); + hackrf::cpld::load_sram_no_verify(); // to leave all RX ok, without ghost signal problem at the exit + baseband::shutdown(); // better this function at the end, not load_sram() that sometimes produces hang up. } void POCSAGTXView::on_tx_progress(const uint32_t progress, const bool done) { diff --git a/firmware/application/apps/ui_rds.cpp b/firmware/application/apps/ui_rds.cpp index 7e8f1da8..35ac8436 100644 --- a/firmware/application/apps/ui_rds.cpp +++ b/firmware/application/apps/ui_rds.cpp @@ -24,6 +24,7 @@ #include "portapack.hpp" #include "baseband_api.hpp" +#include "cpld_update.hpp" #include "portapack_shared_memory.hpp" #include @@ -180,7 +181,8 @@ RDSView::~RDSView() { settings.save("tx_rds", &app_settings); transmitter_model.disable(); - baseband::shutdown(); + hackrf::cpld::load_sram_no_verify(); // to leave all RX ok, without ghost signal problem at the exit. + baseband::shutdown(); // better this function at the end, not load_sram() that sometimes produces hang up. } void RDSView::start_tx() { diff --git a/firmware/application/apps/ui_sstvtx.cpp b/firmware/application/apps/ui_sstvtx.cpp index 55e882d2..2bf603f3 100644 --- a/firmware/application/apps/ui_sstvtx.cpp +++ b/firmware/application/apps/ui_sstvtx.cpp @@ -25,6 +25,7 @@ #include "portapack.hpp" #include "hackrf_hal.hpp" +#include "cpld_update.hpp" #include #include @@ -93,7 +94,8 @@ SSTVTXView::~SSTVTXView() { settings.save("tx_sstv", &app_settings); transmitter_model.disable(); - baseband::shutdown(); + hackrf::cpld::load_sram_no_verify(); // to leave all RX ok, without ghost signal problem at the exit. + baseband::shutdown(); // better this function at the end, not load_sram() that sometimes produces hang up. } void SSTVTXView::on_tuning_frequency_changed(rf::Frequency f) { diff --git a/firmware/application/apps/ui_touchtunes.cpp b/firmware/application/apps/ui_touchtunes.cpp index 8d2cc057..7420b993 100644 --- a/firmware/application/apps/ui_touchtunes.cpp +++ b/firmware/application/apps/ui_touchtunes.cpp @@ -26,6 +26,7 @@ #include "baseband_api.hpp" #include "string_format.hpp" +#include "cpld_update.hpp" using namespace portapack; @@ -39,7 +40,8 @@ void TouchTunesView::focus() { TouchTunesView::~TouchTunesView() { transmitter_model.disable(); - baseband::shutdown(); + hackrf::cpld::load_sram_no_verify(); // to leave all RX ok, without ghost signal problem at the exit. + baseband::shutdown(); // better this function at the end, not load_sram() that sometimes produces hang up. } void TouchTunesView::stop_tx() {