From 79f2134d91986d770f5f6e65e7b410a2ae88f9a8 Mon Sep 17 00:00:00 2001 From: furrtek Date: Wed, 27 Jul 2016 05:54:55 +0200 Subject: [PATCH] Cleaned up Xylos TX, J/N works again --- firmware/application/main.cpp | 6 +- firmware/application/ui_about.hpp | 6 +- firmware/application/ui_xylos.cpp | 310 ++++++++++++----------------- firmware/application/ui_xylos.hpp | 25 +-- firmware/baseband-tx.bin | Bin 33280 -> 0 bytes firmware/baseband.bin | Bin 33280 -> 0 bytes firmware/baseband/proc_xylos.cpp | 26 +-- firmware/baseband/proc_xylos.hpp | 6 +- firmware/common/spi_image.hpp | 6 +- firmware/portapack-h1-firmware.bin | Bin 496032 -> 495712 bytes firmware/tools/make_spi_image.py | 4 +- 11 files changed, 166 insertions(+), 223 deletions(-) delete mode 100644 firmware/baseband-tx.bin delete mode 100644 firmware/baseband.bin diff --git a/firmware/application/main.cpp b/firmware/application/main.cpp index 9fb4f63a..1c8bad99 100755 --- a/firmware/application/main.cpp +++ b/firmware/application/main.cpp @@ -24,10 +24,8 @@ //BUG: No audio in about when shown second time //BUG: Description doesn't show up first time going to system>module info (UI drawn on top) -//BUG: Crash after TX stop (unregister message !) -//TODO: Show MD5 mismatches for modules not found, etc... -//TODO: Frequency manager ! +//TODO: Frequency manager //TODO: Weird LCR AFSK scrambling ? //TODO: SD card wiper //TODO: Draw on touchscreen and transmit as spectrum paint @@ -41,6 +39,7 @@ //TODO: GSM channel detector //TODO: AFSK receiver //TODO: SIGFOX RX/TX +//TODO: Show MD5 mismatches for modules not found, etc... //TODO: Module name/filename in modules.hpp to indicate requirement in case it's not found ui_loadmodule //TODO: Check bw setting in LCR TX //TODO: Bodet :) @@ -48,7 +47,6 @@ //TODO: Setup: Play dead by default ? Enable/disable ? //TODO: Hide statusview when playing dead //TODO: Persistent playdead ! -//TODO: LCR EC=A,J,N //TODO: LCR full message former (see norm) //TODO: AFSK NRZI //TODO: TX power setting diff --git a/firmware/application/ui_about.hpp b/firmware/application/ui_about.hpp index 3d8caab1..4619723f 100644 --- a/firmware/application/ui_about.hpp +++ b/firmware/application/ui_about.hpp @@ -138,17 +138,17 @@ private: }; Text text_firmware { - { 0, 128, 240, 16 }, + { 0, 236, 240, 16 }, "Git Commit Hash " GIT_REVISION, }; Text text_cpld_hackrf { - { 0, 144, 11*8, 16 }, + { 0, 252, 11*8, 16 }, "HackRF CPLD", }; Text text_cpld_hackrf_status { - { 240 - 3*8, 144, 3*8, 16 }, + { 240 - 3*8, 252, 3*8, 16 }, "???" }; diff --git a/firmware/application/ui_xylos.cpp b/firmware/application/ui_xylos.cpp index 3ef11843..10634e1b 100644 --- a/firmware/application/ui_xylos.cpp +++ b/firmware/application/ui_xylos.cpp @@ -122,152 +122,139 @@ XylosView::~XylosView() { baseband::shutdown(); } -void XylosView::upd_message() { +void XylosView::generate_message() { uint8_t c; - - ccirmessage[0] = (header_code_a.value() / 10) + 0x30; - ccirmessage[1] = (header_code_a.value() % 10) + 0x30; - ccirmessage[2] = (header_code_b.value() / 10) + 0x30; - ccirmessage[3] = (header_code_b.value() % 10) + 0x30; - ccirmessage[4] = (city_code.value() / 10) + 0x30; - ccirmessage[5] = (city_code.value() % 10) + 0x30; - ccirmessage[6] = family_code.value() + 0x30; + // Init CCIR message + memcpy(ccir_message, ccir_base, 21); + + // Header + ccir_message[0] = (header_code_a.value() / 10) + 0x30; + ccir_message[1] = (header_code_a.value() % 10) + 0x30; + ccir_message[2] = (header_code_b.value() / 10) + 0x30; + ccir_message[3] = (header_code_b.value() % 10) + 0x30; + + // Addresses + ccir_message[4] = (city_code.value() / 10) + 0x30; + ccir_message[5] = (city_code.value() % 10) + 0x30; + ccir_message[6] = family_code.value() + 0x30; if (checkbox_wcsubfamily.value() == false) - ccirmessage[7] = subfamily_code.value() + 0x30; + ccir_message[7] = subfamily_code.value() + 0x30; else - ccirmessage[7] = 'A'; + ccir_message[7] = 'A'; if (checkbox_wcid.value() == false) { - ccirmessage[8] = (receiver_code.value() / 10) + 0x30; - ccirmessage[9] = (receiver_code.value() % 10) + 0x30; + ccir_message[8] = (receiver_code.value() / 10) + 0x30; + ccir_message[9] = (receiver_code.value() % 10) + 0x30; } else { - ccirmessage[8] = 'A'; - ccirmessage[9] = 'A'; + ccir_message[8] = 'A'; + ccir_message[9] = 'A'; } - ccirmessage[10] = 'B'; + // Commands + ccir_message[11] = options_ra.selected_index() + 0x30; + ccir_message[12] = options_rb.selected_index() + 0x30; + ccir_message[13] = options_rc.selected_index() + 0x30; + ccir_message[14] = options_rd.selected_index() + 0x30; - ccirmessage[11] = options_ra.selected_index() + 0x30; - ccirmessage[12] = options_rb.selected_index() + 0x30; - ccirmessage[13] = options_rc.selected_index() + 0x30; - ccirmessage[14] = options_rd.selected_index() + 0x30; - - ccirmessage[15] = 'B'; - - ccirmessage[16] = '0'; - ccirmessage[17] = '0'; - ccirmessage[18] = '0'; - ccirmessage[19] = '0'; - - // Repeats elimination - for (c = 1; c < 20; c++) { - if (ccirmessage[c] == ccirmessage[c - 1]) ccirmessage[c] = 'E'; - } - - ccirmessage[20] = 0; + // Get rid of repeats with E code + for (c = 1; c < 20; c++) + if (ccir_message[c] == ccir_message[c - 1]) ccir_message[c] = 'E'; // Display as text - text_message.set(ccirmessage); + text_message.set(ccir_message); - // ASCII to frequency LUT index - for (c=0; c<20; c++) { - if (ccirmessage[c] > '9') - ccirmessage[c] -= 0x37; - else - ccirmessage[c] -= 0x30; - } - - ccirmessage[20] = 0xFF; + ascii_to_ccir(ccir_message); } void XylosView::start_tx() { - upd_message(); - //audio::headphone::set_volume(volume_t::decibel(90 - 99) + audio::headphone::volume_range().max); + + transmitter_model.set_tuning_frequency(xylos_freqs[options_freq.selected_index()]); transmitter_model.set_baseband_configuration({ .mode = 0, .sampling_rate = 1536000U, .decimation_factor = 1, }); transmitter_model.set_rf_amp(true); + transmitter_model.set_lna(40); + transmitter_model.set_vga(40); transmitter_model.set_baseband_bandwidth(1750000); transmitter_model.enable(); - baseband::set_xylos_data(ccirmessage); + baseband::set_xylos_data(ccir_message); +} + + // ASCII to frequency LUT index +void XylosView::ascii_to_ccir(char *ascii) { + uint8_t c; + + for (c = 0; c < 20; c++) { + if (ascii[c] > '9') + ascii[c] -= 0x37; + else + ascii[c] -= 0x30; + } + + // EOM code for baseband + ascii[20] = 0xFF; } void XylosView::on_txdone(const int n) { - int c, sr; + size_t sr; - if (testing == true) { + if (tx_mode == TESTING) { if (n == 25) { transmitter_model.disable(); - if (sequence_idx != 9) { + /*if (sequence_idx != 9) { chThdSleepMilliseconds(15000); - memcpy(ccirmessage, &xylos_sequence[sequence_idx][0], 21); + memcpy(ccir_message, &xylos_sequence[sequence_idx][0], 21); // ASCII to frequency LUT index for (c=0; c<20; c++) { - if (ccirmessage[c] > '9') - ccirmessage[c] -= 0x37; + if (ccir_message[c] > '9') + ccir_message[c] -= 0x37; else - ccirmessage[c] -= 0x30; + ccir_message[c] -= 0x30; } - ccirmessage[20] = 0xFF; + ccir_message[20] = 0xFF; //memcpy(shared_memory.xylosdata, ccirmessage, 21); TODO !!! sequence_idx++; - txing = true; + tx_mode = TESTING; transmitter_model.enable(); - } else { + } else {*/ button_txtest.set_style(&style()); button_txtest.set_text("TEST"); - testing = false; - } + tx_mode = IDLE; + //} } } else { if (n == 25) { - audio::headphone::set_volume(volume_t::decibel(0 - 99) + audio::headphone::volume_range().max); + //audio::headphone::set_volume(volume_t::decibel(0 - 99) + audio::headphone::volume_range().max); transmitter_model.disable(); progress.set_value(0); - if (inc_cnt) { - chThdSleepMilliseconds(1000); - header_code_b.set_value(header_code_b.value() + 1); - - upd_message(); - start_tx(); - - inc_cnt--; + if (checkbox_cligno.value() == false) { + tx_mode = IDLE; + button_transmit.set_style(&style_val); + button_transmit.set_text("START"); } else { - header_code_b.set_value(header_init); - if (checkbox_cligno.value() == false) { - txing = false; - button_transmit.set_style(&style_val); - button_transmit.set_text("START"); - } else { - if (checkbox_hinc.value()) - inc_cnt = 3; - else - inc_cnt = 0; - - chThdSleepMilliseconds(tempo_cligno.value() * 1000); - - // Invert relay states - sr = options_ra.selected_index(); - if (sr > 0) options_ra.set_selected_index(sr ^ 3); - sr = options_rb.selected_index(); - if (sr > 0) options_rb.set_selected_index(sr ^ 3); - sr = options_rc.selected_index(); - if (sr > 0) options_rc.set_selected_index(sr ^ 3); - sr = options_rd.selected_index(); - if (sr > 0) options_rd.set_selected_index(sr ^ 3); - - upd_message(); - start_tx(); - } + chThdSleepMilliseconds(tempo_cligno.value() * 1000); + + // Invert relay states + sr = options_ra.selected_index(); + if (sr > 0) options_ra.set_selected_index(sr ^ 3); + sr = options_rb.selected_index(); + if (sr > 0) options_rb.set_selected_index(sr ^ 3); + sr = options_rc.selected_index(); + if (sr > 0) options_rc.set_selected_index(sr ^ 3); + sr = options_rd.selected_index(); + if (sr > 0) options_rd.set_selected_index(sr ^ 3); + + generate_message(); + start_tx(); } } else { progress.set_value((n + 1) * 5); @@ -276,10 +263,11 @@ void XylosView::on_txdone(const int n) { } XylosView::XylosView(NavigationView& nav) { + (void)nav; + baseband::run_image(portapack::spi_flash::image_tag_xylos); add_children({ { - &checkbox_hinc, &button_txtest, &text_header, &header_code_a, @@ -325,27 +313,27 @@ XylosView::XylosView(NavigationView& nav) { header_code_a.on_change = [this](int32_t v) { (void)v; - XylosView::upd_message(); + XylosView::generate_message(); }; header_code_b.on_change = [this](int32_t v) { (void)v; - XylosView::upd_message(); + XylosView::generate_message(); }; city_code.on_change = [this](int32_t v) { (void)v; - XylosView::upd_message(); + XylosView::generate_message(); }; family_code.on_change = [this](int32_t v) { (void)v; - XylosView::upd_message(); + XylosView::generate_message(); }; subfamily_code.on_change = [this](int32_t v) { (void)v; - XylosView::upd_message(); + XylosView::generate_message(); }; receiver_code.on_change = [this](int32_t v) { (void)v; - XylosView::upd_message(); + XylosView::generate_message(); }; subfamily_code.hidden(true); @@ -358,7 +346,7 @@ XylosView::XylosView(NavigationView& nav) { subfamily_code.hidden(false); text_subfamily.set_style(&style()); } - XylosView::upd_message(); + XylosView::generate_message(); }; receiver_code.hidden(true); @@ -372,119 +360,75 @@ XylosView::XylosView(NavigationView& nav) { text_receiver.set_style(&style()); } receiver_code.set_dirty(); - XylosView::upd_message(); + XylosView::generate_message(); }; options_ra.on_change = [this](size_t n, OptionsField::value_t v) { (void)n; (void)v; - XylosView::upd_message(); + XylosView::generate_message(); }; options_rb.on_change = [this](size_t n, OptionsField::value_t v) { (void)n; (void)v; - XylosView::upd_message(); + XylosView::generate_message(); }; options_rc.on_change = [this](size_t n, OptionsField::value_t v) { (void)n; (void)v; - XylosView::upd_message(); + XylosView::generate_message(); }; options_rd.on_change = [this](size_t n, OptionsField::value_t v) { (void)n; (void)v; - XylosView::upd_message(); + XylosView::generate_message(); }; button_transmit.set_style(&style_val); - XylosView::upd_message(); + XylosView::generate_message(); - /*button_txtest.on_select = [this](Button&) { - const uint8_t ccirtest[21] = { 11, 13, 15, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 14, 12, 10, 12, 14, 0, 9, 0xFF }; - if (txing == false) { - EventDispatcher::message_map().unregister_handler(Message::ID::TXDone); - - EventDispatcher::message_map().register_handler(Message::ID::TXDone, - [this](Message* const p) { - const auto message = static_cast(p); - if (message->n == 25) { - audio::headphone::set_volume(volume_t::decibel(0 - 99) + audio::headphone::volume_range().max); - transmitter_model.disable(); - txing = false; - button_txtest.set_style(&style()); - button_txtest.set_text("TEST"); - } - } - ); - - memcpy(ccirmessage, ccirtest, 21); - shared_memory.transmit_done = false; - memcpy(shared_memory.xylosdata, ccirmessage, 21); - - transmitter_model.set_tuning_frequency(xylos_freqs[options_freq.selected_index()]); - - audio::headphone::set_volume(volume_t::decibel(90 - 99) + audio::headphone::volume_range().max); - - txing = true; - button_txtest.set_style(&style_cancel); - button_txtest.set_text("Wait"); - transmitter_model.enable(); - } - };*/ - - // Sequence testing: + // Transmission and tones testing button_txtest.on_select = [this](Button&) { - int c; + // Tones going up in pitch + const uint8_t ccir_test[21] = { 11, 13, 15, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 14, 12, 10, 12, 14, 0, 9, 0xFF }; - if (txing == false) { - sequence_idx = 0; - - memcpy(ccirmessage, &xylos_sequence[sequence_idx][0], 21); - // ASCII to frequency LUT index - for (c=0; c<20; c++) { - if (ccirmessage[c] > '9') - ccirmessage[c] -= 0x37; - else - ccirmessage[c] -= 0x30; - } - ccirmessage[20] = 0xFF; - //memcpy(shared_memory.xylosdata, ccirmessage, 21); TODO !!! - - sequence_idx++; - - transmitter_model.set_tuning_frequency(xylos_freqs[options_freq.selected_index()]); - - txing = true; - testing = true; + if (tx_mode == IDLE) { + tx_mode = TESTING; + memcpy(ccir_message, ccir_test, 21); + //audio::headphone::set_volume(volume_t::decibel(90 - 99) + audio::headphone::volume_range().max); button_txtest.set_style(&style_cancel); button_txtest.set_text("Wait"); - transmitter_model.enable(); + start_tx(); } }; + + // Sequence playback + /*button_txtest.on_select = [this](Button&) { + if (tx_mode == IDLE) { + tx_mode = TESTING; + sequence_idx = 0; + + memcpy(ccir_message, &xylos_sequence[sequence_idx][0], 21); + + ascii_to_ccir(ccir_message); + + sequence_idx++; + button_txtest.set_style(&style_cancel); + button_txtest.set_text("Wait"); + start_tx(); + } + };*/ + + // Single transmit button_transmit.on_select = [this](Button&) { - - if (txing == false) { - upd_message(); - - if (checkbox_hinc.value()) - inc_cnt = 3; - else - inc_cnt = 0; - header_init = header_code_b.value(); - - //shared_memory.transmit_done = false; - //memcpy(shared_memory.xylosdata, ccirmessage, 21); - - transmitter_model.set_tuning_frequency(xylos_freqs[options_freq.selected_index()]); - - audio::headphone::set_volume(volume_t::decibel(90 - 99) + audio::headphone::volume_range().max); - - txing = true; - testing = false; + if (tx_mode == IDLE) { + // audio::headphone::set_volume(volume_t::decibel(90 - 99) + audio::headphone::volume_range().max); + tx_mode = SINGLE; button_transmit.set_style(&style_cancel); button_transmit.set_text("Wait"); + generate_message(); start_tx(); } }; diff --git a/firmware/application/ui_xylos.hpp b/firmware/application/ui_xylos.hpp index 7acd9846..7ecf67c4 100644 --- a/firmware/application/ui_xylos.hpp +++ b/firmware/application/ui_xylos.hpp @@ -150,12 +150,18 @@ public: void focus() override; private: - int inc_cnt; - int header_init; - bool txing = false; - bool testing = false; + enum tx_modes { + IDLE = 0, + SINGLE, + SEQUENCE, + TESTING + }; + + tx_modes tx_mode = IDLE; const rf::Frequency xylos_freqs[7] = { 31325000, 31387500, 31437500, 31475000, 31687500, 31975000, 88000000 }; - char ccirmessage[21]; + char ccir_message[21]; + + const char ccir_base[21] = "0000000000B0000B0000"; const char xylos_sequence[9][21] = { "0E0E18920EB1E10B0E0E", @@ -171,8 +177,9 @@ private: int sequence_idx; + void ascii_to_ccir(char *ascii); void start_tx(); - void upd_message(); + void generate_message(); void on_txdone(const int n); const Style style_val { @@ -191,12 +198,6 @@ private: .foreground = Color::grey(), }; - Checkbox checkbox_hinc { - { 21 * 8, 12}, - 2, - "+3" - }; - Text text_header { { 8 * 8, 1 * 16, 7 * 8, 16 }, "Header:" diff --git a/firmware/baseband-tx.bin b/firmware/baseband-tx.bin deleted file mode 100644 index d7f2a1b1dffe5bbe69879b5e3009c34476d2c34c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33280 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

qN_Tp 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 diff --git a/firmware/baseband/proc_xylos.cpp b/firmware/baseband/proc_xylos.cpp index a9ce01ea..29e8513c 100644 --- a/firmware/baseband/proc_xylos.cpp +++ b/firmware/baseband/proc_xylos.cpp @@ -42,7 +42,7 @@ void XylosProcessor::execute(const buffer_c8_t& buffer) { for (size_t i = 0; i= (5-1)) { + if (s >= (2-1)) { s = 0; if (silence) { @@ -55,15 +55,15 @@ void XylosProcessor::execute(const buffer_c8_t& buffer) { } else { if (sample_count >= CCIR_TONELENGTH) { if (transmit_done == false) { - message.n = byte_pos; // Inform UI about progress (just as eye candy) - shared_memory.application_queue.push(message); digit = xylosdata[byte_pos++]; - } - - if ((digit == 0xFF) || (byte_pos >= 21)) { - message.n = 25; // End of message code - transmit_done = true; - shared_memory.application_queue.push(message); + if ((digit == 0xFF) || (byte_pos >= 21)) { + message.n = 25; // End of message code + transmit_done = true; + shared_memory.application_queue.push(message); + } else { + message.n = byte_pos; // Inform UI about progress (just as eye candy) + shared_memory.application_queue.push(message); + } } sample_count = 0; @@ -81,7 +81,7 @@ void XylosProcessor::execute(const buffer_c8_t& buffer) { re = 0; im = 0; } else { - sample = (sine_table_f32[(aphase & 0x03FF0000)>>18]*127); // 255 here before + sample = (sine_table_f32[(aphase & 0x03FC0000)>>18]*127); // 255 here before // Audio preview sample generation: 1536000/48000 = 32 /*if (as >= 31) { @@ -92,13 +92,13 @@ void XylosProcessor::execute(const buffer_c8_t& buffer) { }*/ //FM - frq = sample * 1000; // 500 was here + frq = sample * 800; // ? phase = (phase + frq); sphase = phase + (256<<16); - re = (sine_table_f32[(sphase & 0x03FF0000)>>18]*15); - im = (sine_table_f32[(phase & 0x03FF0000)>>18]*15); + re = (sine_table_f32[(sphase & 0x03FC0000)>>18]*127); + im = (sine_table_f32[(phase & 0x03FC0000)>>18]*127); } buffer.p[i] = {(int8_t)re,(int8_t)im}; diff --git a/firmware/baseband/proc_xylos.hpp b/firmware/baseband/proc_xylos.hpp index 2b9b8400..761c0124 100644 --- a/firmware/baseband/proc_xylos.hpp +++ b/firmware/baseband/proc_xylos.hpp @@ -31,9 +31,9 @@ #include "audio_output.hpp" #include "baseband_thread.hpp" -#define CCIR_TONELENGTH (15360*2)-1 // 1536000/10/10 -#define PHASEV (436.91/2) // (65536*1024)/1536000*10 -#define SILENCE (46080*2)-1 // 400ms +#define CCIR_TONELENGTH (15360*5)-1 // 1536000/10/10 +#define PHASEV (436.91/5) // (65536*1024)/1536000*10 +#define SILENCE (46080*5)-1 // 400ms class XylosProcessor : public BasebandProcessor { public: diff --git a/firmware/common/spi_image.hpp b/firmware/common/spi_image.hpp index 6895ad04..0a95e282 100644 --- a/firmware/common/spi_image.hpp +++ b/firmware/common/spi_image.hpp @@ -102,12 +102,12 @@ struct region_t { constexpr region_t bootstrap { .offset = 0x00000, - .size = 0x10000, + .size = 0x8000, }; constexpr region_t images { - .offset = 0x10000, - .size = 0x30000, + .offset = 0x8000, + .size = 0x38000, }; constexpr region_t application { diff --git a/firmware/portapack-h1-firmware.bin b/firmware/portapack-h1-firmware.bin index 6ed98779a7bb4dd040a0629c053d039c846c7b66..335b0f0099fa06f61445a66cf9681425a63a1f57 100644 GIT binary patch delta 50348 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 delta 49115 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∋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 UseJ^^dzMQj>IEHDn=xJde^OlpyZ`_I diff --git a/firmware/tools/make_spi_image.py b/firmware/tools/make_spi_image.py index d5d98328..57cf8a92 100755 --- a/firmware/tools/make_spi_image.py +++ b/firmware/tools/make_spi_image.py @@ -56,12 +56,12 @@ images = ( { 'name': 'bootstrap', 'data': bootstrap_image, - 'size': 0x10000, + 'size': 0x8000, }, { 'name': 'baseband', 'data': baseband_image, - 'size': 0x30000, + 'size': 0x38000, }, { 'name': 'application',