From bb29efeda6efb3cd6bc87b612a2858865949313b Mon Sep 17 00:00:00 2001 From: furrtek Date: Fri, 23 Sep 2016 17:34:50 +0200 Subject: [PATCH] Added Nuoptix DTMF sync transmit (Disney parades, light shows...) Soundboard ignores stereo files --- firmware/application/CMakeLists.txt | 1 + firmware/application/Makefile | 27 ++++ firmware/application/baseband_api.cpp | 9 ++ firmware/application/baseband_api.hpp | 1 + firmware/application/ui_navigation.cpp | 4 +- firmware/application/ui_nuoptix.cpp | 164 +++++++++++++++++++++++++ firmware/application/ui_nuoptix.hpp | 128 +++++++++++++++++++ firmware/application/ui_soundboard.cpp | 74 ++++++----- firmware/application/ui_soundboard.hpp | 7 +- firmware/baseband/CMakeLists.txt | 7 ++ firmware/baseband/proc_dtmf_tx.cpp | 136 ++++++++++++++++++++ firmware/baseband/proc_dtmf_tx.hpp | 86 +++++++++++++ firmware/common/message.hpp | 19 +++ firmware/common/spi_image.hpp | 1 + firmware/portapack-h1-havoc.bin | Bin 772604 -> 775100 bytes 15 files changed, 620 insertions(+), 44 deletions(-) create mode 100644 firmware/application/ui_nuoptix.cpp create mode 100644 firmware/application/ui_nuoptix.hpp create mode 100644 firmware/baseband/proc_dtmf_tx.cpp create mode 100644 firmware/baseband/proc_dtmf_tx.hpp diff --git a/firmware/application/CMakeLists.txt b/firmware/application/CMakeLists.txt index 87a16948..f754a6f4 100644 --- a/firmware/application/CMakeLists.txt +++ b/firmware/application/CMakeLists.txt @@ -161,6 +161,7 @@ set(CPPSRC ui_alphanum.cpp ui_spectrum.cpp ui_about.cpp + ui_nuoptix.cpp # ui_jammer.cpp ui_handwrite.cpp ui_afsksetup.cpp diff --git a/firmware/application/Makefile b/firmware/application/Makefile index e2d0e61b..7ad789f1 100644 --- a/firmware/application/Makefile +++ b/firmware/application/Makefile @@ -3894,6 +3894,30 @@ ui_navigation.cpp.s: cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/ui_navigation.cpp.s .PHONY : ui_navigation.cpp.s +ui_nuoptix.obj: ui_nuoptix.cpp.obj +.PHONY : ui_nuoptix.obj + +# target to build an object file +ui_nuoptix.cpp.obj: + cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/ui_nuoptix.cpp.obj +.PHONY : ui_nuoptix.cpp.obj + +ui_nuoptix.i: ui_nuoptix.cpp.i +.PHONY : ui_nuoptix.i + +# target to preprocess a source file +ui_nuoptix.cpp.i: + cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/ui_nuoptix.cpp.i +.PHONY : ui_nuoptix.cpp.i + +ui_nuoptix.s: ui_nuoptix.cpp.s +.PHONY : ui_nuoptix.s + +# target to generate assembly for a file +ui_nuoptix.cpp.s: + cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/ui_nuoptix.cpp.s +.PHONY : ui_nuoptix.cpp.s + ui_rds.obj: ui_rds.cpp.obj .PHONY : ui_rds.obj @@ -4663,6 +4687,9 @@ help: @echo "... ui_navigation.obj" @echo "... ui_navigation.i" @echo "... ui_navigation.s" + @echo "... ui_nuoptix.obj" + @echo "... ui_nuoptix.i" + @echo "... ui_nuoptix.s" @echo "... ui_rds.obj" @echo "... ui_rds.i" @echo "... ui_rds.s" diff --git a/firmware/application/baseband_api.cpp b/firmware/application/baseband_api.cpp index e30e1392..a117285e 100644 --- a/firmware/application/baseband_api.cpp +++ b/firmware/application/baseband_api.cpp @@ -141,6 +141,15 @@ void set_pocsag() { send_message(&message); } +void set_dtmf_data(const uint32_t bw, const uint32_t tone_length, const uint32_t pause_length) { + const DTMFTXConfigMessage message { + bw, + tone_length, + pause_length + }; + 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 c4d959c7..d1c18502 100644 --- a/firmware/application/baseband_api.hpp +++ b/firmware/application/baseband_api.hpp @@ -61,6 +61,7 @@ void set_afsk_data(const uint32_t afsk_samples_per_bit, const uint32_t afsk_phas void set_ook_data(const uint32_t stream_length, const uint32_t samples_per_bit, const uint8_t repeat, const uint32_t pause_symbols); void set_pocsag(); +void set_dtmf_data(const uint32_t bw, const uint32_t tone_length, const uint32_t pause_length); void run_image(const portapack::spi_flash::image_tag_t image_tag); void shutdown(); diff --git a/firmware/application/ui_navigation.cpp b/firmware/application/ui_navigation.cpp index ce4b6977..b394fa05 100644 --- a/firmware/application/ui_navigation.cpp +++ b/firmware/application/ui_navigation.cpp @@ -37,6 +37,7 @@ //#include "ui_closecall.hpp" // DEBUG //#include "ui_freqman.hpp" // DEBUG +#include "ui_nuoptix.hpp" #include "ui_soundboard.hpp" #include "ui_encoders.hpp" @@ -241,7 +242,7 @@ ReceiverMenuView::ReceiverMenuView(NavigationView& nav) { /* SystemMenuView ********************************************************/ SystemMenuView::SystemMenuView(NavigationView& nav) { - add_items<12>({ { + add_items<13>({ { { "Play dead", ui::Color::red(), [&nav](){ nav.push(false); } }, { "Receiver RX", ui::Color::cyan(), [&nav](){ nav.push(); } }, { "Capture RX", ui::Color::cyan(), [&nav](){ nav.push(); } }, @@ -255,6 +256,7 @@ SystemMenuView::SystemMenuView(NavigationView& nav) { { "Xylos TX", ui::Color::green(), [&nav](){ nav.push(); } }, { "TEDI/LCR TX", ui::Color::yellow(), [&nav](){ nav.push(); } }, { "OOK encoders TX", ui::Color::orange(), [&nav](){ nav.push(); } }, + { "Nuoptix DTMF sync TX", ui::Color::purple(), [&nav](){ nav.push(); } }, { "RDS TX", ui::Color::red(), [&nav](){ nav.push(); } }, //{ "Analyze", ui::Color::white(), [&nav](){ nav.push(); } }, { "Setup", ui::Color::white(), [&nav](){ nav.push(); } }, diff --git a/firmware/application/ui_nuoptix.cpp b/firmware/application/ui_nuoptix.cpp new file mode 100644 index 00000000..e2aa27f4 --- /dev/null +++ b/firmware/application/ui_nuoptix.cpp @@ -0,0 +1,164 @@ +/* + * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#include "ui_nuoptix.hpp" + +#include "ch.h" + +//#include "lfsr_random.hpp" +#include "ui_alphanum.hpp" +#include "portapack.hpp" +#include "string_format.hpp" + +#include "portapack_shared_memory.hpp" + +#include +#include + +using namespace portapack; + +namespace ui { + +void NuoptixView::focus() { + number_timecode.focus(); +} + +void NuoptixView::on_tuning_frequency_changed(rf::Frequency f) { + transmitter_model.set_tuning_frequency(f); +} + +void NuoptixView::transmit(bool setup) { + uint8_t mod; + uint8_t c; + + if (!txing) { + transmitter_model.disable(); + return; + } + + if (setup) { + pbar.set_max(4); + + timecode = number_timecode.value(); + + transmitter_model.set_baseband_configuration({ + .mode = 0, + .sampling_rate = 1536000, + .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(); + + shared_memory.tx_data[0] = '*'; // "Pre-tone for restart" method #1 + shared_memory.tx_data[1] = 'A'; // "Restart" method #1 + } else { + shared_memory.tx_data[0] = '#'; + shared_memory.tx_data[1] = (timecode / 1000) % 10; + chThdSleepMilliseconds(92); // 141-49ms + number_timecode.set_value(timecode); + } + + pbar.set_value(0); + + //strcpy("#00028", shared_memory.tx_data); + shared_memory.tx_data[2] = (timecode / 100) % 10; + shared_memory.tx_data[3] = (timecode / 10) % 10; + shared_memory.tx_data[4] = timecode % 10; + + mod = 0; + for (c = 1; c < 5; c++) + if (shared_memory.tx_data[c] <= 9) + mod += shared_memory.tx_data[c]; + + mod = 10 - (mod % 10); + if (mod == 10) mod = 0; // Is this right ? + text_mod.set("Mod: " + to_string_dec_uint(mod)); + + shared_memory.tx_data[5] = mod; + + shared_memory.tx_data[6] = 0xFF; + + baseband::set_dtmf_data(number_bw.value(), 49, 49); // 49ms tone, 49ms space + + timecode++; +} + +NuoptixView::NuoptixView( + NavigationView& nav +) +{ + + baseband::run_image(portapack::spi_flash::image_tag_dtmf_tx); + + add_children({ { + &field_frequency, + &number_bw, + &text_kHz, + &number_timecode, + &text_timecode, + &text_mod, + &pbar, + &button_tx, + &button_exit + } }); + + //check_loop.set_value(false); + number_bw.set_value(15); + number_timecode.set_value(1); + + field_frequency.set_value(transmitter_model.tuning_frequency()); + field_frequency.set_step(10000); + field_frequency.on_change = [this](rf::Frequency f) { + this->on_tuning_frequency_changed(f); + }; + field_frequency.on_edit = [this, &nav]() { + // TODO: Provide separate modal method/scheme? + auto new_view = nav.push(transmitter_model.tuning_frequency()); + new_view->on_changed = [this](rf::Frequency f) { + this->on_tuning_frequency_changed(f); + this->field_frequency.set_value(f); + }; + }; + + button_tx.on_select = [this](Button&){ + if (txing) { + txing = false; + } else { + txing = true; + transmit(true); + } + }; + + button_exit.on_select = [&nav](Button&){ + nav.pop(); + }; +} + +NuoptixView::~NuoptixView() { + transmitter_model.disable(); + baseband::shutdown(); +} + +} diff --git a/firmware/application/ui_nuoptix.hpp b/firmware/application/ui_nuoptix.hpp new file mode 100644 index 00000000..514daeea --- /dev/null +++ b/firmware/application/ui_nuoptix.hpp @@ -0,0 +1,128 @@ +/* + * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __UI_NUOPTIX_H__ +#define __UI_NUOPTIX_H__ + +#include "ui.hpp" +#include "ui_widget.hpp" +#include "ui_font_fixed_8x16.hpp" +#include "baseband_api.hpp" +#include "ui_navigation.hpp" +#include "ui_receiver.hpp" +#include "message.hpp" + +namespace ui { + +class NuoptixView : public View { +public: + NuoptixView(NavigationView& nav); + ~NuoptixView(); + + void focus() override; + + std::string title() const override { return "Nuoptix sync"; }; + +private: + /*enum tx_modes { + NORMAL = 0, + RANDOM + }; + + tx_modes tx_mode = NORMAL;*/ + + void on_tuning_frequency_changed(rf::Frequency f); + void transmit(bool setup); + + bool txing = false; + uint32_t timecode; + + FrequencyField field_frequency { + { 1 * 8, 4 }, + }; + + NumberField number_bw { + { 13 * 8, 4 }, + 3, + {1, 150}, + 1, + ' ' + }; + + Text text_kHz { + { 16 * 8, 4, 3 * 8, 16 }, + "kHz" + }; + + Text text_timecode { + { 10 * 8, 32, 9 * 8, 16 }, + "Timecode:" + }; + + NumberField number_timecode { + { 13 * 8, 48 }, + 4, + { 1, 9999 }, + 1, + '0' + }; + + Text text_mod { + { 10 * 8, 80, 6 * 8, 16 }, + "Mod: " + }; + + ProgressBar pbar { + { 16, 236, 208, 16 } + }; + + /*Checkbox check_loop { + { 16, 274 }, + 4, + "Loop" + };*/ + + Button button_tx { + { 32, 270, 64, 32 }, + "TX" + }; + + Button button_exit { + { 160, 270, 64, 32 }, + "Exit" + }; + + MessageHandlerRegistration message_handler_tx_done { + Message::ID::TXDone, + [this](const Message* const p) { + const auto message = *reinterpret_cast(p); + if (message.n == 64) + transmit(false); + else + pbar.set_value(message.n); + } + }; +}; + +} /* namespace ui */ + +#endif/*__UI_NUOPTIX_H__*/ diff --git a/firmware/application/ui_soundboard.cpp b/firmware/application/ui_soundboard.cpp index a0d32c57..e78e87a1 100644 --- a/firmware/application/ui_soundboard.cpp +++ b/firmware/application/ui_soundboard.cpp @@ -29,14 +29,9 @@ #include "lfsr_random.hpp" #include "ui_alphanum.hpp" -//#include "ff.h" -//#include "hackrf_gpio.hpp" #include "portapack.hpp" -//#include "radio.hpp" -//#include "event_m0.hpp" #include "string_format.hpp" -//#include "hackrf_hal.hpp" #include "portapack_shared_memory.hpp" #include @@ -206,43 +201,44 @@ SoundBoardView::SoundBoardView( auto error = file.open("/wav/" + file_name); - file.seek(40); - file.read(file_buffer, 4); - size = fb_to_uint32(file_buffer); - sounds[c].size = size; - - file.seek(22); - file.read(file_buffer, 2); - if (fb_to_uint16(file_buffer) > 1) { - sounds[c].stereo = true; - size /= 2; - } else - sounds[c].stereo = false; - - file.seek(24); - file.read(file_buffer, 4); - sounds[c].sample_rate = fb_to_uint32(file_buffer); - - file.seek(34); - file.read(file_buffer, 2); - if (fb_to_uint16(file_buffer) > 8) { - sounds[c].sixteenbit = true; - size /= 2; - } else - sounds[c].sixteenbit = false; - - sounds[c].ms_duration = (size * 1000) / sounds[c].sample_rate; - sounds[c].sample_duration = size; - - sounds[c].filename = file_name; - sounds[c].shortname = remove_filename_extension(file_name); - - c++; - if (c == 100) break; + if (!error.is_valid()) { + + file.seek(22); + file.read(file_buffer, 2); + + // Is file mono ? + if (fb_to_uint16(file_buffer) == 1) { + file.seek(40); + file.read(file_buffer, 4); + size = fb_to_uint32(file_buffer); + sounds[c].size = size; + + file.seek(24); + file.read(file_buffer, 4); + sounds[c].sample_rate = fb_to_uint32(file_buffer); + + file.seek(34); + file.read(file_buffer, 2); + if (fb_to_uint16(file_buffer) > 8) { + sounds[c].sixteenbit = true; + size /= 2; + } else + sounds[c].sixteenbit = false; + + sounds[c].ms_duration = (size * 1000) / sounds[c].sample_rate; + sounds[c].sample_duration = size; + + sounds[c].filename = file_name; + sounds[c].shortname = remove_filename_extension(file_name); + + c++; + if (c == 100) break; // Limit to 100 files + } + } } max_sound = c; - max_page = max_sound / 21; + max_page = max_sound / 21; // 21 buttons per page add_children({ { &field_frequency, diff --git a/firmware/application/ui_soundboard.hpp b/firmware/application/ui_soundboard.hpp index c4934c11..9f07c2f9 100644 --- a/firmware/application/ui_soundboard.hpp +++ b/firmware/application/ui_soundboard.hpp @@ -54,7 +54,6 @@ private: struct sound { std::string filename = ""; std::string shortname = ""; - bool stereo = false; bool sixteenbit = false; uint32_t sample_rate = 0; uint32_t size = 0; @@ -120,9 +119,9 @@ private: }; NumberField number_bw { - { 14 * 8, 4 }, - 2, - {1, 50}, + { 13 * 8, 4 }, + 3, + {1, 150}, 1, ' ' }; diff --git a/firmware/baseband/CMakeLists.txt b/firmware/baseband/CMakeLists.txt index 548a2831..4b7dc088 100644 --- a/firmware/baseband/CMakeLists.txt +++ b/firmware/baseband/CMakeLists.txt @@ -375,6 +375,13 @@ set(MODE_CPPSRC ) DeclareTargets(PXYL xylos) +### DTMF TX + +set(MODE_CPPSRC + proc_dtmf_tx.cpp +) +DeclareTargets(PDTX dtmf_tx) + ### RDS set(MODE_CPPSRC diff --git a/firmware/baseband/proc_dtmf_tx.cpp b/firmware/baseband/proc_dtmf_tx.cpp new file mode 100644 index 00000000..0bcb64e5 --- /dev/null +++ b/firmware/baseband/proc_dtmf_tx.cpp @@ -0,0 +1,136 @@ +/* + * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#include "proc_dtmf_tx.hpp" +#include "portapack_shared_memory.hpp" +#include "sine_table_int8.hpp" +//#include "audio_output.hpp" +#include "event_m4.hpp" + +#include + +// 153600 = 1000ms +// + +void DTMFTXProcessor::execute(const buffer_c8_t& buffer){ + + // This is called at 1536000/2048 = 750Hz + // DTMF samplerate = 153600Hz + + if (!configured) return; + + //ai = 0; + for (size_t i = 0; i> 18] >> 1; + sample += sine_table_i8[(tone_b_phase & 0x03FC0000) >> 18] >> 1; + + tone_a_phase += DTMF_LUT[tone_code][0]; + tone_b_phase += DTMF_LUT[tone_code][1]; + } else { + sample = 0; + } + } else { + as--; + } + + // FM + frq = sample * bw; + + phase = (phase + frq); + sphase = phase + (64 << 18); + + re = (sine_table_i8[(sphase & 0x03FC0000) >> 18]); + im = (sine_table_i8[(phase & 0x03FC0000) >> 18]); + + buffer.p[i] = {(int8_t)re, (int8_t)im}; + } + + //AudioOutput::fill_audio_buffer(preview_audio_buffer, true); +} + +void DTMFTXProcessor::on_message(const Message* const msg) { + const auto message = *reinterpret_cast(msg); + + if (message.id == Message::ID::DTMFTXConfig) { + // 1<<18 = 262144 + // m = (262144 * a) / 1536000 + // a = 262144 / 1536000 (*1000 = 171) + bw = 171 * (message.bw); + tone_length = message.tone_length; + pause_length = message.pause_length; + as = 0; + //memcpy(tone_list, shared_memory.tx_data, 32); + //tone_list[31] = 0; + tone = false; + timer = 0; + tone_idx = 0; + + configured = true; + } +} + +int main() { + EventDispatcher event_dispatcher { std::make_unique() }; + event_dispatcher.run(); + return 0; +} diff --git a/firmware/baseband/proc_dtmf_tx.hpp b/firmware/baseband/proc_dtmf_tx.hpp new file mode 100644 index 00000000..8389f205 --- /dev/null +++ b/firmware/baseband/proc_dtmf_tx.hpp @@ -0,0 +1,86 @@ +/* + * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __PROC_DTMFTX_H__ +#define __PROC_DTMFTX_H__ + +#include "baseband_processor.hpp" +#include "baseband_thread.hpp" + +#define DTMF_PHASEINC (436.91) // (65536*1024)/1536000*10 + +class DTMFTXProcessor : public BasebandProcessor { +public: + void execute(const buffer_c8_t& buffer) override; + + void on_message(const Message* const msg) override; + +private: + bool configured = false; + + BasebandThread baseband_thread { 1536000, this, NORMALPRIO + 20, baseband::Direction::Transmit }; + + // 0123456789ABCD#* + const uint32_t DTMF_LUT[16][2] = { + { (uint32_t)(1336*DTMF_PHASEINC), (uint32_t)(941*DTMF_PHASEINC) }, + { (uint32_t)(1209*DTMF_PHASEINC), (uint32_t)(697*DTMF_PHASEINC) }, + { (uint32_t)(1336*DTMF_PHASEINC), (uint32_t)(697*DTMF_PHASEINC) }, + { (uint32_t)(1477*DTMF_PHASEINC), (uint32_t)(697*DTMF_PHASEINC) }, + { (uint32_t)(1209*DTMF_PHASEINC), (uint32_t)(770*DTMF_PHASEINC) }, + { (uint32_t)(1336*DTMF_PHASEINC), (uint32_t)(770*DTMF_PHASEINC) }, + { (uint32_t)(1477*DTMF_PHASEINC), (uint32_t)(770*DTMF_PHASEINC) }, + { (uint32_t)(1209*DTMF_PHASEINC), (uint32_t)(852*DTMF_PHASEINC) }, + { (uint32_t)(1336*DTMF_PHASEINC), (uint32_t)(852*DTMF_PHASEINC) }, + { (uint32_t)(1477*DTMF_PHASEINC), (uint32_t)(852*DTMF_PHASEINC) }, + { (uint32_t)(1633*DTMF_PHASEINC), (uint32_t)(697*DTMF_PHASEINC) }, + { (uint32_t)(1633*DTMF_PHASEINC), (uint32_t)(770*DTMF_PHASEINC) }, + { (uint32_t)(1633*DTMF_PHASEINC), (uint32_t)(852*DTMF_PHASEINC) }, + { (uint32_t)(1633*DTMF_PHASEINC), (uint32_t)(941*DTMF_PHASEINC) }, + { (uint32_t)(1477*DTMF_PHASEINC), (uint32_t)(941*DTMF_PHASEINC) }, + { (uint32_t)(1209*DTMF_PHASEINC), (uint32_t)(941*DTMF_PHASEINC) } + }; + + uint32_t tone_length, pause_length; + uint32_t as, bw; + uint8_t tone_list[32]; + uint8_t tone_idx = 0, tone_code = 0; + + uint32_t timer = 0; + + bool tone = false; + + int8_t re, im; + int8_t sample; + + //int16_t audio_data[64]; + /*const buffer_s16_t preview_audio_buffer { + audio_data, + sizeof(int16_t)*64 + };*/ + + TXDoneMessage txdone_message; + + uint32_t tone_a_phase, tone_b_phase, phase, sphase; + int32_t frq; +}; + +#endif diff --git a/firmware/common/message.hpp b/firmware/common/message.hpp index 0f0c438a..fc85fa82 100644 --- a/firmware/common/message.hpp +++ b/firmware/common/message.hpp @@ -75,6 +75,7 @@ public: RDSConfigure = 26, AudioTXConfig = 27, POCSAGConfigure = 28, + DTMFTXConfig = 29, POCSAGPacket = 30, @@ -633,6 +634,24 @@ public: const uint32_t rate; }; +class DTMFTXConfigMessage : public Message { +public: + constexpr DTMFTXConfigMessage( + const uint32_t bw, + const uint32_t tone_length, + const uint32_t pause_length + ) : Message { ID::DTMFTXConfig }, + bw(bw), + tone_length(tone_length), + pause_length(pause_length) + { + } + + const uint32_t bw; + const uint32_t tone_length; + const uint32_t pause_length; +}; + // TODO: use streaming buffer instead class FIFOSignalMessage : public Message { public: diff --git a/firmware/common/spi_image.hpp b/firmware/common/spi_image.hpp index 90ccd452..a7473206 100644 --- a/firmware/common/spi_image.hpp +++ b/firmware/common/spi_image.hpp @@ -79,6 +79,7 @@ constexpr image_tag_t image_tag_epar { 'P', 'E', 'P', 'R' }; constexpr image_tag_t image_tag_xylos { 'P', 'X', 'Y', 'L' }; constexpr image_tag_t image_tag_rds { 'P', 'R', 'D', 'S' }; constexpr image_tag_t image_tag_ook { 'P', 'O', 'O', 'K' }; +constexpr image_tag_t image_tag_dtmf_tx { 'P', 'D', 'T', 'X' }; constexpr image_tag_t image_tag_hackrf { 'H', 'R', 'F', '1' }; diff --git a/firmware/portapack-h1-havoc.bin b/firmware/portapack-h1-havoc.bin index adef30c299cfd8c27dbdc867b6ee1f7acbf74127..55c13bcb1871892de56f421c445456f65e70fa70 100644 GIT binary patch delta 61670 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 delta 57618 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%0AoqfaA@LsrL*x7DyMA)0$>smjV37Lo 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 LHhq=@Gnp9xTF)hM