From 1d697d22017fcda3e6d35786adb05be2ead9afff Mon Sep 17 00:00:00 2001 From: furrtek Date: Thu, 28 Jul 2016 05:25:33 +0200 Subject: [PATCH] Added PWM RSSI output for NBFM and WFM --- firmware/application/baseband_api.cpp | 9 +++ firmware/application/baseband_api.hpp | 1 + firmware/application/bitmap.hpp | 43 ++++++++++++++ firmware/application/main.cpp | 1 + firmware/application/ui_lcr.cpp | 26 ++++----- firmware/application/ui_lcr.hpp | 38 ------------ firmware/application/ui_navigation.cpp | 7 ++- firmware/application/ui_record_view.cpp | 29 ++++++++++ firmware/application/ui_record_view.hpp | 13 ++++- firmware/application/ui_rssi.cpp | 12 ++++ firmware/application/ui_rssi.hpp | 13 ++++- firmware/application/ui_xylos.cpp | 13 +---- firmware/application/ui_xylos.hpp | 5 +- firmware/baseband/proc_nfm_audio.cpp | 35 +++++++++-- firmware/baseband/proc_nfm_audio.hpp | 12 ++++ firmware/baseband/proc_wfm_audio.cpp | 74 +++++++++++++++++------- firmware/baseband/proc_wfm_audio.hpp | 12 ++++ firmware/baseband/proc_xylos.cpp | 4 -- firmware/common/message.hpp | 21 +++++-- firmware/common/ui_widget.cpp | 23 +++++--- firmware/common/ui_widget.hpp | 1 + firmware/portapack-h1-firmware.bin | Bin 494864 -> 496496 bytes 22 files changed, 274 insertions(+), 118 deletions(-) diff --git a/firmware/application/baseband_api.cpp b/firmware/application/baseband_api.cpp index 70a8235b..115f52d0 100644 --- a/firmware/application/baseband_api.cpp +++ b/firmware/application/baseband_api.cpp @@ -100,6 +100,15 @@ void set_afsk_data(const char message_data[], const uint32_t afsk_samples_per_bi send_message(&message); } +void set_pwmrssi(int32_t avg, bool enabled) { + const PWMRSSIConfigureMessage message { + enabled, + 1000, // 1kHz + avg + }; + send_message(&message); +} + static bool baseband_image_running = false; void run_image(const portapack::spi_flash::image_tag_t image_tag) { diff --git a/firmware/application/baseband_api.hpp b/firmware/application/baseband_api.hpp index 5b04fae5..7797fd52 100644 --- a/firmware/application/baseband_api.hpp +++ b/firmware/application/baseband_api.hpp @@ -53,6 +53,7 @@ struct WFMConfig { }; void set_xylos_data(const char ccir_message[]); +void set_pwmrssi(int32_t avg, bool enabled); void set_afsk_data(const char message_data[], const uint32_t afsk_samples_per_bit, const uint32_t afsk_phase_inc_mark, const uint32_t afsk_phase_inc_space, const uint8_t afsk_repeat, const uint32_t afsk_bw, const bool afsk_alt_format); diff --git a/firmware/application/bitmap.hpp b/firmware/application/bitmap.hpp index 78f0fa9f..2a727780 100644 --- a/firmware/application/bitmap.hpp +++ b/firmware/application/bitmap.hpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek * * This file is part of PortaPack. * @@ -26,6 +27,48 @@ namespace ui { +/* +00000000 00000000 00000000 +11110001 11100111 10111110 +10001010 00001000 00001000 +10001010 00001000 00001000 +11110001 11000111 00001000 +10010000 00100000 10001000 +10001000 00100000 10001000 +10001011 11001111 00111110 +00000000 00000000 00000000 +11111100 01111000 01111000 +10000100 01001000 01001000 +10000100 01001000 01001000 +10000100 01001000 01001000 +10000100 01001000 01001000 +10000100 01001000 01001000 +10000111 11001111 11001110 +*/ + +static constexpr uint8_t bitmap_rssipwm_data[] = { + 0x00, 0x00, 0x00, + 0x8F, 0xE7, 0x7D, + 0x51, 0x10, 0x10, + 0x51, 0x10, 0x10, + 0x8F, 0xE3, 0x10, + 0x09, 0x04, 0x11, + 0x11, 0x04, 0x11, + 0xD1, 0xF3, 0x7C, + 0x00, 0x00, 0x00, + 0x3F, 0x1E, 0x1E, + 0x21, 0x12, 0x12, + 0x21, 0x12, 0x12, + 0x21, 0x12, 0x12, + 0x21, 0x12, 0x12, + 0x21, 0x12, 0x12, + 0xE1, 0xF3, 0x73 +}; + +static constexpr Bitmap bitmap_rssipwm { + { 24, 16 }, bitmap_rssipwm_data +}; + static constexpr uint8_t bitmap_keyboard_data[] = { 0x00, 0x00, 0x00, 0x00, diff --git a/firmware/application/main.cpp b/firmware/application/main.cpp index 23058491..6501dcc4 100755 --- a/firmware/application/main.cpp +++ b/firmware/application/main.cpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2014 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek * * This file is part of PortaPack. * diff --git a/firmware/application/ui_lcr.cpp b/firmware/application/ui_lcr.cpp index fd758bc1..ca8f5870 100644 --- a/firmware/application/ui_lcr.cpp +++ b/firmware/application/ui_lcr.cpp @@ -21,22 +21,12 @@ */ #include "ui_lcr.hpp" -#include "ui_receiver.hpp" #include "ui_afsksetup.hpp" #include "ui_debug.hpp" -#include "ch.h" - -#include "ff.h" #include "baseband_api.hpp" -#include "hackrf_gpio.hpp" -#include "portapack.hpp" -#include "event_m0.hpp" - #include "string_format.hpp" -#include "hackrf_hal.hpp" -#include "portapack_shared_memory.hpp" #include "portapack_persistent_memory.hpp" #include @@ -231,6 +221,7 @@ void LCRView::on_txdone(int n) { char str[16]; if (n > 0) { + // Repeating... repeat_index = n + 1; if (tx_mode == SCAN) { scan_progress++; @@ -239,9 +230,11 @@ void LCRView::on_txdone(int n) { update_progress(); } } else { + // Done transmitting if ((tx_mode == SCAN) && (scan_index < (LCR_SCAN_COUNT - 1))) { transmitter_model.disable(); if (abort_scan) { + // Kill scan process strcpy(str, "Abort @"); strcat(str, rgsb); text_status.set(str); @@ -415,16 +408,17 @@ LCRView::LCRView(NavigationView& nav) { }; button_clear.on_select = [this, &nav](Button&) { + uint8_t n; + if (tx_mode == IDLE) { memset(litteral, 0, 5 * 8); - options_ec.set_selected_index(0); - checkbox_am_a.set_value(true); - checkbox_am_b.set_value(true); - checkbox_am_c.set_value(true); - checkbox_am_d.set_value(true); - checkbox_am_e.set_value(true); + options_ec.set_selected_index(0); // Auto + for (n = 0; n < 5; n++) + checkboxes[n].set_value(true); set_dirty(); start_tx(false); + } else if (tx_mode == SCAN) { + abort_scan = true; } }; } diff --git a/firmware/application/ui_lcr.hpp b/firmware/application/ui_lcr.hpp index ae6e9137..860bafcc 100644 --- a/firmware/application/ui_lcr.hpp +++ b/firmware/application/ui_lcr.hpp @@ -22,16 +22,8 @@ #include "ui.hpp" #include "ui_widget.hpp" -#include "ui_painter.hpp" -#include "ui_menu.hpp" -#include "ui_navigation.hpp" #include "ui_textentry.hpp" -#include "ui_font_fixed_8x16.hpp" -#include "clock_manager.hpp" #include "message.hpp" -#include "rf_path.hpp" -#include "max2837.hpp" -#include "volume.hpp" #include "transmitter_model.hpp" namespace ui { @@ -149,36 +141,6 @@ private: "TX setup" }; - Checkbox checkbox_am_a { - { 16, 64 }, - 0, - "" - }; - - Checkbox checkbox_am_b { - { 16, 96 }, - 0, - "" - }; - - Checkbox checkbox_am_c { - { 16, 128 }, - 0, - "" - }; - - Checkbox checkbox_am_d { - { 16, 160 }, - 0, - "" - }; - - Checkbox checkbox_am_e { - { 16, 192 }, - 0, - "" - }; - Button button_lcrdebug { { 168, 216, 56, 24 }, "DEBUG" diff --git a/firmware/application/ui_navigation.cpp b/firmware/application/ui_navigation.cpp index a90f39d6..30e45aaf 100644 --- a/firmware/application/ui_navigation.cpp +++ b/firmware/application/ui_navigation.cpp @@ -238,14 +238,15 @@ ReceiverMenuView::ReceiverMenuView(NavigationView& nav) { /* SystemMenuView ********************************************************/ SystemMenuView::SystemMenuView(NavigationView& nav) { - add_items<12>({ { + add_items<11>({ { { "Play dead", ui::Color::red(), [&nav](){ nav.push(false); } }, { "Receiver RX", ui::Color::cyan(), [&nav](){ nav.push(); } }, + { "Capture RX", ui::Color::orange(), [&nav](){ nav.push(); } }, { "Close Call RX", ui::Color::cyan(), [&nav](){ nav.push(); } }, - { "Pokemon GO Away TX", ui::Color::blue(), [&nav](){ nav.push(); } }, + //{ "Pokemon GO Away TX", ui::Color::blue(), [&nav](){ nav.push(); } }, //{ "Soundboard TX", ui::Color::yellow(), [&nav](){ nav.push(md5_baseband_tx, SoundBoard); } }, //{ "Audio TX", ui::Color::yellow(), [&nav](){ nav.push(md5_baseband_tx, AudioTX); } }, - { "Frequency manager", ui::Color::white(), [&nav](){ nav.push(); } }, + //{ "Frequency manager", ui::Color::white(), [&nav](){ nav.push(); } }, //{ "EPAR TX", ui::Color::green(), [&nav](){ nav.push(md5_baseband_tx, EPAR); } }, { "Xylos TX", ui::Color::green(), [&nav](){ nav.push(); } }, { "TEDI/LCR TX", ui::Color::orange(), [&nav](){ nav.push(); } }, diff --git a/firmware/application/ui_record_view.cpp b/firmware/application/ui_record_view.cpp index 695a454d..186c014b 100644 --- a/firmware/application/ui_record_view.cpp +++ b/firmware/application/ui_record_view.cpp @@ -22,6 +22,8 @@ #include "ui_record_view.hpp" #include "portapack.hpp" +#include "message.hpp" +#include "portapack_shared_memory.hpp" using namespace portapack; #include "file.hpp" @@ -176,6 +178,7 @@ RecordView::RecordView( { add_children({ { &rect_background, + &button_pwmrssi, &button_record, &text_record_filename, &text_record_dropped, @@ -183,6 +186,10 @@ RecordView::RecordView( } }); rect_background.set_parent_rect({ { 0, 0 }, size() }); + + button_pwmrssi.on_select = [this](ImageButton&) { + this->toggle_pwmrssi(); + }; button_record.on_select = [this](ImageButton&) { this->toggle(); @@ -228,6 +235,24 @@ void RecordView::toggle() { } } +void RecordView::toggle_pwmrssi() { + pwmrssi_enabled = !pwmrssi_enabled; + + // Send to RSSI widget + const PWMRSSIConfigureMessage message { + pwmrssi_enabled, + 1000, + 0 + }; + shared_memory.application_queue.push(message); + + if( !pwmrssi_enabled ) { + button_pwmrssi.set_foreground(Color::orange()); + } else { + button_pwmrssi.set_foreground(Color::green()); + } +} + void RecordView::start() { stop(); @@ -342,6 +367,10 @@ void RecordView::update_status_display() { const auto s = to_string_dec_uint(dropped_percent, 2, ' ') + "\%"; text_record_dropped.set(s); } + + if (pwmrssi_enabled) { + button_pwmrssi.invert_colors(); + } if( sampling_rate ) { const auto space_info = std::filesystem::space(""); diff --git a/firmware/application/ui_record_view.hpp b/firmware/application/ui_record_view.hpp index 023fb0d5..985e5eee 100644 --- a/firmware/application/ui_record_view.hpp +++ b/firmware/application/ui_record_view.hpp @@ -64,6 +64,7 @@ public: private: void toggle(); + void toggle_pwmrssi(); Optional write_metadata_file(const std::string& filename); void on_tick_second(); @@ -72,6 +73,7 @@ private: void handle_capture_thread_done(const File::Error error); void handle_error(const File::Error error); + bool pwmrssi_enabled = false; const std::string filename_stem_pattern; const FileType file_type; const size_t write_size; @@ -82,16 +84,23 @@ private: Rectangle rect_background { Color::black() }; + + ImageButton button_pwmrssi { + { 2, 0 * 16, 3 * 8, 1 * 16 }, + &bitmap_rssipwm, + Color::orange(), + Color::black() + }; ImageButton button_record { - { 0 * 8, 0 * 16, 2 * 8, 1 * 16 }, + { 4 * 8, 0 * 16, 2 * 8, 1 * 16 }, &bitmap_record, Color::red(), Color::black() }; Text text_record_filename { - { 3 * 8, 0 * 16, 8 * 8, 16 }, + { 7 * 8, 0 * 16, 8 * 8, 16 }, "", }; diff --git a/firmware/application/ui_rssi.cpp b/firmware/application/ui_rssi.cpp index ab506906..c494e089 100644 --- a/firmware/application/ui_rssi.cpp +++ b/firmware/application/ui_rssi.cpp @@ -21,6 +21,7 @@ #include "ui_rssi.hpp" +#include "baseband_api.hpp" #include "utility.hpp" #include @@ -88,6 +89,17 @@ void RSSI::paint(Painter& painter) { r4, Color::black() ); + + if (pwmrssi_enabled) { + const range_t pwmrssi_avg_range { 0, 96 }; + const auto pwmrssi_avg = pwmrssi_avg_range.clip((avg_ - raw_min) * 96 / raw_delta); + baseband::set_pwmrssi(pwmrssi_avg, true); + } +} + +void RSSI::set_pwmrssi(bool enabled) { + pwmrssi_enabled = enabled; + if (!enabled) baseband::set_pwmrssi(0, false); } void RSSI::on_statistics_update(const RSSIStatistics& statistics) { diff --git a/firmware/application/ui_rssi.hpp b/firmware/application/ui_rssi.hpp index 08eeadcb..d07f26b0 100644 --- a/firmware/application/ui_rssi.hpp +++ b/firmware/application/ui_rssi.hpp @@ -46,11 +46,13 @@ public: } void paint(Painter& painter) override; - + private: int32_t min_; int32_t avg_; int32_t max_; + + bool pwmrssi_enabled = false; MessageHandlerRegistration message_handler_stats { Message::ID::RSSIStatistics, @@ -58,8 +60,17 @@ private: this->on_statistics_update(static_cast(p)->statistics); } }; + + MessageHandlerRegistration message_handler_pwmrssi { + Message::ID::PWMRSSIConfigure, + [this](const Message* const p) { + const auto message = *reinterpret_cast(p); + this->set_pwmrssi(message.enabled); + } + }; void on_statistics_update(const RSSIStatistics& statistics); + void set_pwmrssi(bool enabled); }; } diff --git a/firmware/application/ui_xylos.cpp b/firmware/application/ui_xylos.cpp index 705467e9..ceec2e5b 100644 --- a/firmware/application/ui_xylos.cpp +++ b/firmware/application/ui_xylos.cpp @@ -21,20 +21,11 @@ */ #include "ui_xylos.hpp" - -#include "ch.h" -#include "hackrf_hal.hpp" - -#include "event_m0.hpp" -#include "audio.hpp" #include "ui_alphanum.hpp" -#include "ff.h" -#include "hackrf_gpio.hpp" + #include "portapack.hpp" #include "baseband_api.hpp" - -#include "hackrf_hal.hpp" -#include "portapack_shared_memory.hpp" +//#include "audio.hpp" #include "portapack_persistent_memory.hpp" #include diff --git a/firmware/application/ui_xylos.hpp b/firmware/application/ui_xylos.hpp index 8cba3de2..287578d5 100644 --- a/firmware/application/ui_xylos.hpp +++ b/firmware/application/ui_xylos.hpp @@ -22,9 +22,7 @@ #include "ui.hpp" #include "ui_widget.hpp" -#include "ui_painter.hpp" #include "ui_navigation.hpp" -#include "ui_menu.hpp" #include "ui_font_fixed_8x16.hpp" #include "bulb_on_bmp.hpp" @@ -32,8 +30,7 @@ #include "bulb_ignore_bmp.hpp" #include "message.hpp" -#include "max2837.hpp" -#include "volume.hpp" +//#include "volume.hpp" #include "transmitter_model.hpp" //#include "receiver_model.hpp" #include "portapack.hpp" diff --git a/firmware/baseband/proc_nfm_audio.cpp b/firmware/baseband/proc_nfm_audio.cpp index 5020d8da..5eedc5f7 100644 --- a/firmware/baseband/proc_nfm_audio.cpp +++ b/firmware/baseband/proc_nfm_audio.cpp @@ -32,7 +32,7 @@ void NarrowbandFMAudio::execute(const buffer_c8_t& buffer) { if( !configured ) { return; } - + const auto decim_0_out = decim_0.execute(buffer, dst_buffer); const auto decim_1_out = decim_1.execute(decim_0_out, dst_buffer); const auto channel_out = channel_filter.execute(decim_1_out, dst_buffer); @@ -40,8 +40,23 @@ void NarrowbandFMAudio::execute(const buffer_c8_t& buffer) { feed_channel_stats(channel_out); channel_spectrum.feed(channel_out, channel_filter_pass_f, channel_filter_stop_f); - auto audio = demod.execute(channel_out, audio_buffer); - audio_output.write(audio); + if ( !pwmrssi_enabled ) { + auto audio = demod.execute(channel_out, audio_buffer); + audio_output.write(audio); + } else { + for (c = 0; c < 32; c++) { + if (synth_acc < pwmrssi_avg) + pwmrssi_audio_buffer.p[c] = 32767; + else + pwmrssi_audio_buffer.p[c] = -32768; + if (synth_acc < 30) // 24kHz / 30 = 800Hz (TODO: use pwmrssi_freq !) + synth_acc++; + else + synth_acc = 0; + } + + audio_output.write(pwmrssi_audio_buffer); + } } void NarrowbandFMAudio::on_message(const Message* const message) { @@ -58,6 +73,10 @@ void NarrowbandFMAudio::on_message(const Message* const message) { case Message::ID::CaptureConfig: capture_config(*reinterpret_cast(message)); break; + + case Message::ID::PWMRSSIConfigure: + pwmrssi_config(*reinterpret_cast(message)); + break; default: break; @@ -83,11 +102,19 @@ void NarrowbandFMAudio::configure(const NBFMConfigureMessage& message) { channel_filter_pass_f = message.channel_filter.pass_frequency_normalized * channel_filter_input_fs; channel_filter_stop_f = message.channel_filter.stop_frequency_normalized * channel_filter_input_fs; channel_spectrum.set_decimation_factor(std::floor(channel_filter_output_fs / (channel_filter_pass_f + channel_filter_stop_f))); - audio_output.configure(message.audio_hpf_config, message.audio_deemph_config, 0.8f); + audio_output.configure(message.audio_hpf_config, message.audio_deemph_config); // , 0.8f + synth_acc = 0; + configured = true; } +void NarrowbandFMAudio::pwmrssi_config(const PWMRSSIConfigureMessage& message) { + pwmrssi_enabled = message.enabled; + pwmrssi_freq = message.freq; + pwmrssi_avg = message.avg / 3; +} + void NarrowbandFMAudio::capture_config(const CaptureConfigMessage& message) { if( message.config ) { audio_output.set_stream(std::make_unique(message.config)); diff --git a/firmware/baseband/proc_nfm_audio.hpp b/firmware/baseband/proc_nfm_audio.hpp index 4c39d78c..b71281d8 100644 --- a/firmware/baseband/proc_nfm_audio.hpp +++ b/firmware/baseband/proc_nfm_audio.hpp @@ -56,6 +56,12 @@ private: audio.data(), audio.size() }; + + std::array pwm; + const buffer_s16_t pwmrssi_audio_buffer { + (int16_t*)pwm.data(), + sizeof(pwm) / sizeof(int16_t) + }; dsp::decimate::FIRC8xR16x24FS4Decim8 decim_0; dsp::decimate::FIRC16xR16x32Decim8 decim_1; @@ -68,8 +74,14 @@ private: AudioOutput audio_output; SpectrumCollector channel_spectrum; + + unsigned int c, synth_acc = 0; + bool pwmrssi_enabled = false; + uint32_t pwmrssi_freq; + uint32_t pwmrssi_avg; bool configured { false }; + void pwmrssi_config(const PWMRSSIConfigureMessage& message); void configure(const NBFMConfigureMessage& message); void capture_config(const CaptureConfigMessage& message); }; diff --git a/firmware/baseband/proc_wfm_audio.cpp b/firmware/baseband/proc_wfm_audio.cpp index 2e553a7d..5771854d 100644 --- a/firmware/baseband/proc_wfm_audio.cpp +++ b/firmware/baseband/proc_wfm_audio.cpp @@ -31,7 +31,7 @@ void WidebandFMAudio::execute(const buffer_c8_t& buffer) { if( !configured ) { return; } - + const auto decim_0_out = decim_0.execute(buffer, dst_buffer); const auto channel = decim_1.execute(decim_0_out, dst_buffer); @@ -44,32 +44,49 @@ void WidebandFMAudio::execute(const buffer_c8_t& buffer) { channel_spectrum.feed(channel, channel_filter_pass_f, channel_filter_stop_f); } - /* 384kHz complex[256] - * -> FM demodulation - * -> 384kHz int16_t[256] */ - /* TODO: To improve adjacent channel rejection, implement complex channel filter: - * pass < +/- 100kHz, stop > +/- 200kHz - */ + if ( !pwmrssi_enabled ) { + /* 384kHz complex[256] + * -> FM demodulation + * -> 384kHz int16_t[256] */ + /* TODO: To improve adjacent channel rejection, implement complex channel filter: + * pass < +/- 100kHz, stop > +/- 200kHz + */ - auto audio_oversampled = demod.execute(channel, work_audio_buffer); + auto audio_oversampled = demod.execute(channel, work_audio_buffer); - /* 384kHz int16_t[256] - * -> 4th order CIC decimation by 2, gain of 1 - * -> 192kHz int16_t[128] */ - auto audio_4fs = audio_dec_1.execute(audio_oversampled, work_audio_buffer); + /* 384kHz int16_t[256] + * -> 4th order CIC decimation by 2, gain of 1 + * -> 192kHz int16_t[128] */ + auto audio_4fs = audio_dec_1.execute(audio_oversampled, work_audio_buffer); - /* 192kHz int16_t[128] - * -> 4th order CIC decimation by 2, gain of 1 - * -> 96kHz int16_t[64] */ - auto audio_2fs = audio_dec_2.execute(audio_4fs, work_audio_buffer); + /* 192kHz int16_t[128] + * -> 4th order CIC decimation by 2, gain of 1 + * -> 96kHz int16_t[64] */ + auto audio_2fs = audio_dec_2.execute(audio_4fs, work_audio_buffer); - /* 96kHz int16_t[64] - * -> FIR filter, <15kHz (0.156fs) pass, >19kHz (0.198fs) stop, gain of 1 - * -> 48kHz int16_t[32] */ - auto audio = audio_filter.execute(audio_2fs, work_audio_buffer); + /* 96kHz int16_t[64] + * -> FIR filter, <15kHz (0.156fs) pass, >19kHz (0.198fs) stop, gain of 1 + * -> 48kHz int16_t[32] */ + auto audio = audio_filter.execute(audio_2fs, work_audio_buffer); + + /* -> 48kHz int16_t[32] */ + audio_output.write(audio); + } else { + for (c = 0; c < 32; c++) { + if (synth_acc < pwmrssi_avg) + pwmrssi_audio_buffer.p[c] = 32767; + else + pwmrssi_audio_buffer.p[c] = -32768; + if (synth_acc < 96) // 48kHz / 96 = 500Hz (TODO: use pwmrssi_freq !) + synth_acc++; + else + synth_acc = 0; + } - /* -> 48kHz int16_t[32] */ - audio_output.write(audio); + /* -> 48kHz int16_t[32] */ + audio_output.write(pwmrssi_audio_buffer); + } + } void WidebandFMAudio::on_message(const Message* const message) { @@ -86,6 +103,10 @@ void WidebandFMAudio::on_message(const Message* const message) { case Message::ID::CaptureConfig: capture_config(*reinterpret_cast(message)); break; + + case Message::ID::PWMRSSIConfigure: + pwmrssi_config(*reinterpret_cast(message)); + break; default: break; @@ -114,9 +135,18 @@ void WidebandFMAudio::configure(const WFMConfigureMessage& message) { channel_spectrum.set_decimation_factor(1); + pwmrssi_enabled = false; + synth_acc = 0; + configured = true; } +void WidebandFMAudio::pwmrssi_config(const PWMRSSIConfigureMessage& message) { + pwmrssi_enabled = message.enabled; + pwmrssi_freq = message.freq; + pwmrssi_avg = message.avg; +} + void WidebandFMAudio::capture_config(const CaptureConfigMessage& message) { if( message.config ) { audio_output.set_stream(std::make_unique(message.config)); diff --git a/firmware/baseband/proc_wfm_audio.hpp b/firmware/baseband/proc_wfm_audio.hpp index 6b0c5e17..c2726e8f 100644 --- a/firmware/baseband/proc_wfm_audio.hpp +++ b/firmware/baseband/proc_wfm_audio.hpp @@ -54,6 +54,12 @@ private: (int16_t*)dst.data(), sizeof(dst) / sizeof(int16_t) }; + + std::array pwm; + const buffer_s16_t pwmrssi_audio_buffer { + (int16_t*)pwm.data(), + sizeof(pwm) / sizeof(int16_t) + }; dsp::decimate::FIRC8xR16x24FS4Decim4 decim_0; dsp::decimate::FIRC16xR16x16Decim2 decim_1; @@ -70,8 +76,14 @@ private: SpectrumCollector channel_spectrum; size_t spectrum_interval_samples = 0; size_t spectrum_samples = 0; + + unsigned int c, synth_acc = 0; + bool pwmrssi_enabled = false; + uint32_t pwmrssi_freq; + uint32_t pwmrssi_avg; bool configured { false }; + void pwmrssi_config(const PWMRSSIConfigureMessage& message); void configure(const WFMConfigureMessage& message); void capture_config(const CaptureConfigMessage& message); }; diff --git a/firmware/baseband/proc_xylos.cpp b/firmware/baseband/proc_xylos.cpp index 973441e4..0b64c186 100644 --- a/firmware/baseband/proc_xylos.cpp +++ b/firmware/baseband/proc_xylos.cpp @@ -21,10 +21,6 @@ */ #include "proc_xylos.hpp" - -#include "dsp_iir_config.hpp" -#include "audio_output.hpp" - #include "portapack_shared_memory.hpp" #include "sine_table_int8.hpp" #include "event_m4.hpp" diff --git a/firmware/common/message.hpp b/firmware/common/message.hpp index df1d1c9a..a07b1c42 100644 --- a/firmware/common/message.hpp +++ b/firmware/common/message.hpp @@ -69,7 +69,7 @@ public: Retune = 21, XylosConfigure = 22, AFSKConfigure = 23, - ModuleID = 24, + PWMRSSIConfigure = 24, FIFOSignal = 25, FIFOData = 26, MAX @@ -479,15 +479,24 @@ public: int n = 0; }; -class ModuleIDMessage : public Message { + + +class PWMRSSIConfigureMessage : public Message { public: - ModuleIDMessage( - ) : Message { ID::ModuleID } + PWMRSSIConfigureMessage( + const bool enabled, + const uint32_t freq, + const int32_t avg + ) : Message { ID::PWMRSSIConfigure }, + enabled(enabled), + freq(freq), + avg(avg) { } - bool query; - char md5_signature[16]; + const bool enabled; + const uint32_t freq; + const int32_t avg; }; class XylosConfigureMessage : public Message { diff --git a/firmware/common/ui_widget.cpp b/firmware/common/ui_widget.cpp index 71247cc7..021a9f7f 100644 --- a/firmware/common/ui_widget.cpp +++ b/firmware/common/ui_widget.cpp @@ -369,13 +369,13 @@ void BigFrequency::paint(Painter& painter) { digit_y = rect.pos.y; if (digit < 16) { digit_def = big_segment_font[(uint8_t)digit]; - if (digit_def & 0x01) painter.fill_rectangle({{digit_x + 4, digit_y}, {20, 4}}, segment_color); - if (digit_def & 0x02) painter.fill_rectangle({{digit_x + 24, digit_y + 4}, {4, 20}}, segment_color); - if (digit_def & 0x04) painter.fill_rectangle({{digit_x + 24, digit_y + 28}, {4, 20}}, segment_color); - if (digit_def & 0x08) painter.fill_rectangle({{digit_x + 4, digit_y + 48}, {20, 4}}, segment_color); - if (digit_def & 0x10) painter.fill_rectangle({{digit_x, digit_y + 28}, {4, 20}}, segment_color); - if (digit_def & 0x20) painter.fill_rectangle({{digit_x, digit_y + 4}, {4, 20}}, segment_color); - if (digit_def & 0x40) painter.fill_rectangle({{digit_x + 4, digit_y + 24}, {20, 4}}, segment_color); + if (digit_def & 0x01) painter.fill_rectangle({{digit_x + 4, digit_y}, {20, 4}}, segment_color); + if (digit_def & 0x02) painter.fill_rectangle({{digit_x + 24, digit_y + 4}, {4, 20}}, segment_color); + if (digit_def & 0x04) painter.fill_rectangle({{digit_x + 24, digit_y + 28}, {4, 20}}, segment_color); + if (digit_def & 0x08) painter.fill_rectangle({{digit_x + 4, digit_y + 48}, {20, 4}}, segment_color); + if (digit_def & 0x10) painter.fill_rectangle({{digit_x, digit_y + 28}, {4, 20}}, segment_color); + if (digit_def & 0x20) painter.fill_rectangle({{digit_x, digit_y + 4}, {4, 20}}, segment_color); + if (digit_def & 0x40) painter.fill_rectangle({{digit_x + 4, digit_y + 24}, {20, 4}}, segment_color); } if (i == 3) { // Dot @@ -665,6 +665,15 @@ void Image::set_background(const Color color) { set_dirty(); } +void Image::invert_colors() { + Color temp; + + temp = background_; + background_ = foreground_; + foreground_ = temp; + set_dirty(); +} + void Image::paint(Painter& painter) { if( bitmap_ ) { // Code also handles ImageButton behavior. diff --git a/firmware/common/ui_widget.hpp b/firmware/common/ui_widget.hpp index 6bb59d6c..4af3b352 100644 --- a/firmware/common/ui_widget.hpp +++ b/firmware/common/ui_widget.hpp @@ -289,6 +289,7 @@ public: void set_bitmap(const Bitmap* bitmap); void set_foreground(const Color color); void set_background(const Color color); + void invert_colors(); void paint(Painter& painter) override; diff --git a/firmware/portapack-h1-firmware.bin b/firmware/portapack-h1-firmware.bin index 21644d685767dee3a8892766992d7c533b08192f..59dd8e63d86297632758e912e2e03616105bc096 100644 GIT binary patch delta 70439 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 UMhfX~)@-zdJUviZh*QA-2lGqO(f|Me delta 68865 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