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 4b9641ee..766ac296 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 00000000..68a6137a --- /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 00000000..d74ffc86 --- /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 651bf4a0..5b2e65d4 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 76ee53a6..9cc180bc 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 660bd935..73257bcf 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 862d3495..a61e3d08 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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 delta 31549 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