From 66de53744e9b45a35ce4ffddbcc04f01d70b7808 Mon Sep 17 00:00:00 2001 From: furrtek Date: Fri, 13 Nov 2015 01:19:05 +0100 Subject: [PATCH] Jammer UI Drew jammer UI Added presets for French GSM operators and a few other funny frequencies Added minimalist jamming baseband code --- firmware/application/Makefile | 1 + firmware/application/ui_jammer.cpp | 252 +++++++++++++++++++++++++ firmware/application/ui_jammer.hpp | 243 ++++++++++++++++++++++++ firmware/application/ui_navigation.cpp | 3 +- firmware/application/ui_whistle.cpp | 15 +- firmware/baseband/main.cpp | 70 +++++++ firmware/common/ui.hpp | 4 + firmware/portapack-h1-firmware.bin | Bin 387172 -> 392692 bytes 8 files changed, 579 insertions(+), 9 deletions(-) create mode 100644 firmware/application/ui_jammer.cpp create mode 100644 firmware/application/ui_jammer.hpp diff --git a/firmware/application/Makefile b/firmware/application/Makefile index 4b9641ee7..766ac2964 100755 --- a/firmware/application/Makefile +++ b/firmware/application/Makefile @@ -164,6 +164,7 @@ CPPSRC = main.cpp \ ui_rds.cpp \ ui_lcr.cpp \ ui_whistle.cpp \ + ui_jammer.cpp \ ui_afsksetup.cpp \ ui_console.cpp \ ui_receiver.cpp \ diff --git a/firmware/application/ui_jammer.cpp b/firmware/application/ui_jammer.cpp new file mode 100644 index 000000000..68a6137a3 --- /dev/null +++ b/firmware/application/ui_jammer.cpp @@ -0,0 +1,252 @@ +/* + * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * + * 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_jammer.hpp" +#include "ui_receiver.hpp" + +#include "ch.h" +#include "evtimer.h" + +#include "ff.h" +#include "hackrf_gpio.hpp" +#include "portapack.hpp" +#include "radio.hpp" + +#include "hackrf_hal.hpp" +#include "portapack_shared_memory.hpp" +#include "portapack_persistent_memory.hpp" + +#include +#include + +using namespace hackrf::one; + +namespace ui { + +void JammerView::focus() { + options_preset.focus(); +} + +JammerView::~JammerView() { + transmitter_model.disable(); +} + +void JammerView::paint(Painter& painter) { + +} + +void JammerView::updfreq(uint8_t id, rf::Frequency f) { + char finalstr[25] = {0}; + uint8_t c; + + auto mhz = to_string_dec_int(f / 1000000, 3); + auto hz100 = to_string_dec_int((f / 100) % 10000, 4, '0'); + + strcat(finalstr, mhz.c_str()); + strcat(finalstr, "."); + strcat(finalstr, hz100.c_str()); + strcat(finalstr, "M"); + + while (strlen(finalstr) < 10) { + strcat(finalstr, " "); + } + + if (id == 0) { + range1_min = f; + this->button_setfreq1_min.set_text(finalstr); + } + if (id == 1) { + range1_max = f; + this->button_setfreq1_max.set_text(finalstr); + } + if (id == 2) { + range2_min = f; + this->button_setfreq2_min.set_text(finalstr); + } + if (id == 3) { + range2_max = f; + this->button_setfreq2_max.set_text(finalstr); + } + if (id == 4) { + range3_min = f; + this->button_setfreq3_min.set_text(finalstr); + } + if (id == 5) { + range3_max = f; + this->button_setfreq3_max.set_text(finalstr); + } + + rf::Frequency center; + std::string bw; + + for (c = 0; c < 3; c++) { + if (c == 0) center = (range1_min + range1_max) / 2; + if (c == 1) center = (range2_min + range2_max) / 2; + if (c == 2) center = (range3_min + range3_max) / 2; + + if (c == 0) bw = to_string_dec_int(abs(range1_max - range1_min) / 1000, 5); + if (c == 1) bw = to_string_dec_int(abs(range2_max - range2_min) / 1000, 5); + if (c == 2) bw = to_string_dec_int(abs(range3_max - range3_min) / 1000, 5); + + auto center_mhz = to_string_dec_int(center / 1000000, 4); + auto center_hz100 = to_string_dec_int((center / 100) % 10000, 4, '0'); + + strcpy(finalstr, "C:"); + strcat(finalstr, center_mhz.c_str()); + strcat(finalstr, "."); + strcat(finalstr, center_hz100.c_str()); + strcat(finalstr, "M W:"); + strcat(finalstr, bw.c_str()); + strcat(finalstr, "kHz"); + + while (strlen(finalstr) < 23) { + strcat(finalstr, " "); + } + + if (c == 0) this->text_info1.set(finalstr); + if (c == 1) this->text_info2.set(finalstr); + if (c == 2) this->text_info3.set(finalstr); + } +} + +JammerView::JammerView( + NavigationView& nav, + TransmitterModel& transmitter_model +) : transmitter_model(transmitter_model) +{ + static constexpr Style style_val { + .font = font::fixed_8x16, + .background = Color::green(), + .foreground = Color::black(), + }; + + static constexpr Style style_cancel { + .font = font::fixed_8x16, + .background = Color::red(), + .foreground = Color::black(), + }; + + static constexpr Style style_info { + .font = font::fixed_8x16, + .background = Color::black(), + .foreground = Color::grey(), + }; + + transmitter_model.set_modulation(18); + transmitter_model.set_tuning_frequency(persistent_memory::tuned_frequency()); + + add_children({ { + &text_type, + &options_modulation, + &text_sweep, + &options_sweep, + &text_preset, + &options_preset, + &text_hop, + &options_hop, + &checkbox_range1, + &checkbox_range2, + &checkbox_range3, + &button_setfreq1_min, + &button_setfreq1_max, + &text_info1, + &button_setfreq2_min, + &button_setfreq2_max, + &text_info2, + &button_setfreq3_min, + &button_setfreq3_max, + &text_info3, + &button_transmit, + &button_exit + } }); + + button_transmit.set_style(&style_val); + text_info1.set_style(&style_info); + text_info2.set_style(&style_info); + text_info3.set_style(&style_info); + + options_preset.on_change = [this](size_t n, OptionsField::value_t v) { + (void)n; + uint8_t c; + + for (c = 0; c < 3; c++) { + updfreq(c*2, range_presets[v][c].min); + updfreq((c*2)+1, range_presets[v][c].max); + if (c == 0) checkbox_range1.set_value(range_presets[v][c].active); + if (c == 1) checkbox_range2.set_value(range_presets[v][c].active); + if (c == 2) checkbox_range3.set_value(range_presets[v][c].active); + } + }; + + button_setfreq1_min.on_select = [this,&nav](Button&){ + auto new_view = new FrequencyKeypadView { nav, range1_min }; + new_view->on_changed = [this](rf::Frequency f) { + updfreq(0, f); + }; + nav.push(new_view); + }; + button_setfreq1_max.on_select = [this,&nav](Button&){ + auto new_view = new FrequencyKeypadView { nav, range1_max }; + new_view->on_changed = [this](rf::Frequency f) { + updfreq(1, f); + }; + nav.push(new_view); + }; + + button_transmit.on_select = [this,&transmitter_model](Button&){ + /*uint16_t c; + ui::Context context; + + make_frame(); + + shared_memory.afsk_samples_per_bit = 228000/persistent_memory::afsk_bitrate(); + shared_memory.afsk_phase_inc_mark = persistent_memory::afsk_mark_freq()*(65536*1024)/2280; + shared_memory.afsk_phase_inc_space = persistent_memory::afsk_space_freq()*(65536*1024)/2280; + + for (c = 0; c < 256; c++) { + shared_memory.lcrdata[c] = this->lcrframe[c]; + } + + shared_memory.afsk_transmit_done = false; + shared_memory.afsk_repeat = 5; // DEFAULT + + text_status.set("Send...");*/ + + if (jamming == true) { + jamming = false; + button_transmit.set_style(&style_val); + button_transmit.set_text("START"); + transmitter_model.disable(); + } else { + jamming = true; + button_transmit.set_style(&style_cancel); + button_transmit.set_text("STOP"); + transmitter_model.enable(); + } + }; + + button_exit.on_select = [&nav](Button&){ + nav.pop(); + }; + +} + +} /* namespace ui */ diff --git a/firmware/application/ui_jammer.hpp b/firmware/application/ui_jammer.hpp new file mode 100644 index 000000000..d74ffc86d --- /dev/null +++ b/firmware/application/ui_jammer.hpp @@ -0,0 +1,243 @@ +/* + * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * + * 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.hpp" +#include "ui_widget.hpp" +#include "ui_painter.hpp" +#include "ui_menu.hpp" +#include "ui_navigation.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 { + +class JammerView : public View { +public: + JammerView(NavigationView& nav, TransmitterModel& transmitter_model); + ~JammerView(); + + void updfreq(uint8_t id, rf::Frequency f); + void focus() override; + void paint(Painter& painter) override; + +private: + rf::Frequency range1_min; + rf::Frequency range1_max; + rf::Frequency range2_min; + rf::Frequency range2_max; + rf::Frequency range3_min; + rf::Frequency range3_max; + + typedef struct rangepreset { + bool active; + rf::Frequency min; + rf::Frequency max; + } rangepreset; + + const rangepreset range_presets[8][3] = { + // Orange + {{ true, 935000000, 945000000 }, // GSM 900 + { true, 1808000000, 1832000000 }, // GSM 1800 + { true, 2154900000, 2169700000 }}, // UMTS + + // SFR + {{ true, 950000000, 960000000 }, // GSM 900 + { true, 1832000000, 1853000000 }, // GSM 1800 + { true, 2110500000, 2125300000 }}, // UMTS + + // Bouygues + {{ true, 925000000, 935000000 }, // GSM 900 + { true, 1858000000, 1880000000 }, // GSM 1800 + { true, 2125300000, 2140100000 }}, // UMTS + + // Free + {{ true, 945000000, 950000000 }, // GSM 900 + { false, 0, 0 }, // GSM 1800 + { true, 2144900000, 2149900000 }}, // UMTS + + // GSM-R + {{ true, 921000000, 925000000 }, // GSM 900 + { false, 0, 0 }, // GSM 1800 + { false, 0, 0 }}, // UMTS + + // TODO: TDD UMTS, voir doc Arcep + // TODO: Wi-FI, BT: 2 400 et 2 483,5 MHz + + // DECT + {{ true, 1880000000, 1900000000 }, // BW: 20MHz + { false, 0, 0 }, + { false, 0, 0 }}, + + // Optifib, lol + {{ true, 162930000, 162970000 }, // BW: 40kHz + { false, 0, 0 }, + { false, 0, 0 }}, + + // ISM 433 + {{ true, 433050000, 434790000 }, // BW: 0.2% + { false, 0, 0 }, + { false, 0, 0 }} + + }; + + bool jamming = false; + rf::Frequency f; + TransmitterModel& transmitter_model; + + Text text_type { + { 1 * 8, 1 * 16, 40, 16 }, + "Type:" + }; + OptionsField options_modulation { + { 7 * 8, 1 * 16 }, + 4, + { + { "Ramp ", 0 }, + { "FM ", 1 }, + { "PSK ", 2 }, + { "Tones", 3 } + } + }; + + Text text_sweep { + { 1 * 8, 2 * 16, 6 * 8, 16 }, + "Sweep:" + }; + OptionsField options_sweep { + { 8 * 8, 2 * 16 }, + 8, + { + { " 1Hz", 0 }, + { " 10Hz", 1 }, + { "100Hz", 2 }, + { " 1kHz", 3 }, + { " 5kHz", 4 }, + { "10kHz", 5 }, + { "20kHz", 6 }, + { "50kHz", 7 } + } + }; + + Text text_hop { + { 1 * 8, 4 * 16, 10 * 8, 16 }, + "Range hop:" + }; + OptionsField options_hop { + { 12 * 8, 4 * 16 }, + 6, + { + { " 10s", 0 }, + { " 5s", 1 }, + { " 1s", 2 }, + { " 0.1s", 3 }, + { " 10ms", 4 }, + { " 1ms", 5 } + } + }; + + Text text_preset { + { 1 * 8, 3 * 16, 8 * 8, 16 }, + "Presets:" + }; + OptionsField options_preset { + { 10 * 8, 3 * 16 }, + 8, + { + { "Orange ", 0 }, + { "SFR ", 1 }, + { "Bouygues", 2 }, + { "Free ", 3 }, + { "GSM-R ", 4 }, + { "DECT ", 5 }, + { "Optifib ", 6 }, + { "ISM 433 ", 7 }, + } + }; + + Checkbox checkbox_range1 { + { 1 * 8, 6 * 16}, + "Range 1" + }; + Checkbox checkbox_range2 { + { 1 * 8, 9 * 16 + 4}, + "Range 2" + }; + Checkbox checkbox_range3 { + { 1 * 8, 12 * 16 + 8 }, + "Range 3" + }; + + Button button_setfreq1_min { + { 13 * 8, 6 * 16 - 4 - 1, 11 * 8, 18 }, + "----.----M" + }; + Button button_setfreq1_max { + { 13 * 8, 7 * 16 - 4, 11 * 8, 18 }, + "----.----M" + }; + Text text_info1 { + { 3 * 8, 8 * 16 - 4 + 2, 25 * 8, 16 }, + "C:----.----M W:-----kHz" + }; + + Button button_setfreq2_min { + { 13 * 8, 9 * 16 - 1, 11 * 8, 18 }, + "----.----M" + }; + Button button_setfreq2_max { + { 13 * 8, 10 * 16, 11 * 8, 18 }, + "----.----M" + }; + Text text_info2 { + { 3 * 8, 11 * 16 + 2, 25 * 8, 16 }, + "C:----.----M W:-----kHz" + }; + + Button button_setfreq3_min { + { 13 * 8, 12 * 16 + 4 - 1, 11 * 8, 18 }, + "----.----M" + }; + Button button_setfreq3_max { + { 13 * 8, 13 * 16 + 4, 11 * 8, 18 }, + "----.----M" + }; + Text text_info3 { + { 3 * 8, 14 * 16 + 4 + 2, 25 * 8, 16 }, + "C:----.----M W:-----kHz" + }; + + Button button_transmit { + { 2 * 8, 16 * 16, 64, 32 }, + "START" + }; + + Button button_exit { + { 21 * 8, 16 * 16, 64, 32 }, + "Exit" + }; +}; + +} /* namespace ui */ diff --git a/firmware/application/ui_navigation.cpp b/firmware/application/ui_navigation.cpp index 651bf4a06..5b2e65d41 100644 --- a/firmware/application/ui_navigation.cpp +++ b/firmware/application/ui_navigation.cpp @@ -33,6 +33,7 @@ #include "ui_rds.hpp" #include "ui_lcr.hpp" #include "ui_whistle.hpp" +#include "ui_jammer.hpp" #include "portapack.hpp" #include "m4_startup.hpp" @@ -105,7 +106,7 @@ SystemMenuView::SystemMenuView(NavigationView& nav) { add_items<10>({ { { "Play dead", ui::Color::red(), [&nav](){ nav.push(new PlayDeadView { nav, false }); } }, { "Receiver", ui::Color::white(), [&nav](){ nav.push(new ReceiverView { nav, receiver_model }); } }, - { "Capture", ui::Color::white(), [&nav](){ nav.push(new NotImplementedView { nav }); } }, + { "Jammer", ui::Color::white(), [&nav](){ nav.push(new JammerView { nav, transmitter_model }); } }, { "Whistle", ui::Color::white(), [&nav](){ nav.push(new WhistleView { nav, transmitter_model }); } }, { "RDS TX", ui::Color::yellow(), [&nav](){ nav.push(new RDSView { nav, transmitter_model }); } }, { "LCR TX", ui::Color::orange(), [&nav](){ nav.push(new LCRView { nav, transmitter_model }); } }, diff --git a/firmware/application/ui_whistle.cpp b/firmware/application/ui_whistle.cpp index 76ee53a6b..9cc180bc6 100644 --- a/firmware/application/ui_whistle.cpp +++ b/firmware/application/ui_whistle.cpp @@ -76,7 +76,6 @@ WhistleView::WhistleView( transmitter_model.set_tuning_frequency(persistent_memory::tuned_frequency()); add_children({ { - &button_scan, &button_transmit, &button_exit } }); @@ -98,17 +97,17 @@ WhistleView::WhistleView( shared_memory.afsk_transmit_done = false; shared_memory.afsk_repeat = 5; // DEFAULT - text_status.set("Send..."); + text_status.set("Send...");*/ - transmitter_model.enable();*/ + transmitter_model.enable(); }; button_exit.on_select = [&nav](Button&){ nav.pop(); }; - static VirtualTimer vt1; - msg_t msg, result; + //static VirtualTimer vt1; + //msg_t msg, result; /*static EvTimer evt; static EventListener el0; @@ -119,14 +118,14 @@ WhistleView::WhistleView( //chVTSet(&vt1, MS2ST(2000), whistle_th, (void *)&mbox); - while(1) { + //while(1) { /*result = chMBFetch(&mbox, &msg, TIME_INFINITE); if(result == RDY_OK) { if(msg & 1) button_scan.set_text("POUET"); }*/ - chThdSleepMilliseconds(500); - } + //chThdSleepMilliseconds(500); + //} } diff --git a/firmware/baseband/main.cpp b/firmware/baseband/main.cpp index 660bd9358..73257bcf4 100755 --- a/firmware/baseband/main.cpp +++ b/firmware/baseband/main.cpp @@ -889,6 +889,71 @@ private: int32_t sample, sig, frq; }; +#define POLY_MASK_32 0xB4BCD35C + +class JammerProcessor : public BasebandProcessor { +public: + void execute(buffer_c8_t buffer) override { + + for (size_t i = 0; i 3000000) { + s = 0; + feedback = lfsr & 1; + lfsr >>= 1; + if (feedback == 1) + lfsr ^= POLY_MASK_32; + } else { + s++; + } + + aphase += lfsr;*/ + + /*if (s >= 10) { + s = 0; + aphase += 353205; // DEBUG + } else { + s++; + } + + sample = sintab[(aphase & 0x03FF0000)>>16];*/ + + if (s >= 10) { + if (sample < 128) + sample++; + else + sample = -127; + s = 0; + } else { + s++; + } + + //FM + frq = sample << 17; // Bandwidth + + //65536 -> 0.6M + //131072 -> 1.2M + + phase = (phase + frq); + sphase = phase + (256<<16); + + re = sintab[(sphase & 0x03FF0000)>>16]; + im = sintab[(phase & 0x03FF0000)>>16]; + + buffer.p[i] = {(int8_t)re,(int8_t)im}; + } + } + +private: + int32_t s, lfsr32 = 0xABCDE; + int8_t re, im; + int feedback; + int32_t lfsr; + uint32_t sample_count; + uint32_t aphase, phase, sphase; + int32_t sample, frq; +}; + static BasebandProcessor* baseband_processor { nullptr }; static BasebandConfiguration baseband_configuration; @@ -1163,6 +1228,11 @@ int main(void) { direction = baseband::Direction::Transmit; baseband_processor = new ToneProcessor(); break; + + case 18: + direction = baseband::Direction::Transmit; + baseband_processor = new JammerProcessor(); + break; default: break; diff --git a/firmware/common/ui.hpp b/firmware/common/ui.hpp index 862d3495f..a61e3d084 100644 --- a/firmware/common/ui.hpp +++ b/firmware/common/ui.hpp @@ -83,6 +83,10 @@ struct Color { static constexpr Color white() { return { 255, 255, 255 }; } + + static constexpr Color grey() { + return { 127, 127, 127 }; + } }; #if 0 enum class CardinalDirection : uint8_t { diff --git a/firmware/portapack-h1-firmware.bin b/firmware/portapack-h1-firmware.bin index 9d94eb642a4cf853168858452431677d513b68fb..a61a55407adbd438a6e53e8d883cff5a458fe511 100644 GIT binary patch delta 36994 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 PO@AcUQk4ytMB)Dc5IpAD delta 31549 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