diff --git a/PCBs/FlipperZero/WiFi-Devboard-Pro/WiFi-Devboard-Pro-backups/WiFi-Devboard-Pro-2022-11-30_181218.zip b/PCBs/FlipperZero/WiFi-Devboard-Pro/WiFi-Devboard-Pro-backups/WiFi-Devboard-Pro-2022-11-30_181218.zip new file mode 100644 index 0000000..361071e Binary files /dev/null and b/PCBs/FlipperZero/WiFi-Devboard-Pro/WiFi-Devboard-Pro-backups/WiFi-Devboard-Pro-2022-11-30_181218.zip differ diff --git a/PCBs/FlipperZero/WiFi-Devboard-Pro/WiFi-Devboard-Pro-backups/WiFi-Devboard-Pro-2022-12-07_184744.zip b/PCBs/FlipperZero/WiFi-Devboard-Pro/WiFi-Devboard-Pro-backups/WiFi-Devboard-Pro-2022-12-07_184744.zip new file mode 100644 index 0000000..a2dc756 Binary files /dev/null and b/PCBs/FlipperZero/WiFi-Devboard-Pro/WiFi-Devboard-Pro-backups/WiFi-Devboard-Pro-2022-12-07_184744.zip differ diff --git a/esp32_marauder/LedInterface.cpp b/esp32_marauder/LedInterface.cpp index 10e2b06..072d8e6 100644 --- a/esp32_marauder/LedInterface.cpp +++ b/esp32_marauder/LedInterface.cpp @@ -18,6 +18,50 @@ void LedInterface::RunSetup() { } void LedInterface::main(uint32_t currentTime) { + if ((!settings_obj.loadSetting("EnableLED")) || + (this->current_mode == MODE_OFF)) { + this->ledOff(); + return; + } + + else if (this->current_mode == MODE_RAINBOW) { + this->rainbow(); + } + else if (this->current_mode == MODE_ATTACK) { + this->attackLed(); + } + else if (this->current_mode == MODE_SNIFF) { + this->sniffLed(); + } + else { + this->ledOff(); + } +}; + +void LedInterface::setMode(uint8_t new_mode) { + this->current_mode = new_mode; +} + +uint8_t LedInterface::getMode() { + return this->current_mode; +} + +void LedInterface::sniffLed() { + strip.setPixelColor(0, strip.Color(0, 0, 255)); + strip.show(); +} + +void LedInterface::attackLed() { + strip.setPixelColor(0, strip.Color(255, 0, 0)); + strip.show(); +} + +void LedInterface::ledOff() { + strip.setPixelColor(0, strip.Color(0, 0, 0)); + strip.show(); +} + +void LedInterface::rainbow() { strip.setPixelColor(0, this->Wheel((0 * 256 / 100 + this->wheel_pos) % 256)); strip.show(); @@ -26,7 +70,7 @@ void LedInterface::main(uint32_t currentTime) { this->wheel_pos = this->wheel_pos - this->wheel_speed; if (this->wheel_pos < 0) this->wheel_pos = 255; -}; +} uint32_t LedInterface::Wheel(byte WheelPos) { WheelPos = 255 - WheelPos; diff --git a/esp32_marauder/LedInterface.h b/esp32_marauder/LedInterface.h index 357a844..27d5ec7 100644 --- a/esp32_marauder/LedInterface.h +++ b/esp32_marauder/LedInterface.h @@ -1,12 +1,19 @@ #ifndef LedInterface_h #define LedInterface_h +#include "configs.h" +#include "settings.h" #include #include -#define PIN 25 #define Pixels 1 +#define MODE_OFF 0 +#define MODE_RAINBOW 1 +#define MODE_ATTACK 2 +#define MODE_SNIFF 3 + +extern Settings settings_obj; extern Adafruit_NeoPixel strip; class LedInterface { @@ -19,12 +26,23 @@ class LedInterface { int wheel_speed = 1; // lower = slower uint32_t Wheel(byte WheelPos); + + uint8_t current_mode = MODE_OFF; + + void rainbow(); + void ledOff(); + void attackLed(); + void sniffLed(); public: LedInterface(); void RunSetup(); void main(uint32_t currentTime); + + void setMode(uint8_t); + uint8_t getMode(); + }; diff --git a/esp32_marauder/WiFiScan.cpp b/esp32_marauder/WiFiScan.cpp index 1c22b5b..b0dbb21 100644 --- a/esp32_marauder/WiFiScan.cpp +++ b/esp32_marauder/WiFiScan.cpp @@ -363,6 +363,8 @@ void WiFiScan::startWiFiAttacks(uint8_t scan_mode, uint16_t color, String title_ this->wifi_initialized = true; #ifdef MARAUDER_FLIPPER flipper_led.attackLED(); + #else + led_obj.setMode(MODE_ATTACK); #endif initTime = millis(); } @@ -381,6 +383,8 @@ bool WiFiScan::shutdownWiFi() { #ifdef MARAUDER_FLIPPER flipper_led.offLED(); + #else + led_obj.setMode(MODE_OFF); #endif this->wifi_initialized = false; @@ -401,6 +405,8 @@ bool WiFiScan::shutdownBLE() { #ifdef MARAUDER_FLIPPER flipper_led.offLED(); + #else + led_obj.setMode(MODE_OFF); #endif this->ble_initialized = false; @@ -524,6 +530,8 @@ void WiFiScan::RunAPScan(uint8_t scan_mode, uint16_t color) #ifdef MARAUDER_FLIPPER flipper_led.sniffLED(); + #else + led_obj.setMode(MODE_SNIFF); #endif Serial.println(text_table4[9] + (String)access_points->size()); @@ -759,6 +767,8 @@ void WiFiScan::RunEspressifScan(uint8_t scan_mode, uint16_t color) { #ifdef MARAUDER_FLIPPER flipper_led.sniffLED(); + #else + led_obj.setMode(MODE_SNIFF); #endif #ifdef HAS_SCREEN @@ -794,6 +804,8 @@ void WiFiScan::RunPacketMonitor(uint8_t scan_mode, uint16_t color) { #ifdef MARAUDER_FLIPPER flipper_led.sniffLED(); + #else + led_obj.setMode(MODE_SNIFF); #endif sd_obj.openCapture("packet_monitor"); @@ -867,6 +879,8 @@ void WiFiScan::RunEapolScan(uint8_t scan_mode, uint16_t color) { #ifdef MARAUDER_FLIPPER flipper_led.sniffLED(); + #else + led_obj.setMode(MODE_SNIFF); #endif num_eapol = 0; @@ -1000,6 +1014,8 @@ void WiFiScan::RunPwnScan(uint8_t scan_mode, uint16_t color) #ifdef MARAUDER_FLIPPER flipper_led.sniffLED(); + #else + led_obj.setMode(MODE_SNIFF); #endif #ifdef HAS_SCREEN @@ -1038,6 +1054,8 @@ void WiFiScan::RunBeaconScan(uint8_t scan_mode, uint16_t color) #ifdef MARAUDER_FLIPPER flipper_led.sniffLED(); + #else + led_obj.setMode(MODE_SNIFF); #endif #ifdef HAS_SCREEN @@ -1075,6 +1093,8 @@ void WiFiScan::RunRawScan(uint8_t scan_mode, uint16_t color) #ifdef MARAUDER_FLIPPER flipper_led.sniffLED(); + #else + led_obj.setMode(MODE_SNIFF); #endif #ifdef HAS_SCREEN @@ -1112,6 +1132,8 @@ void WiFiScan::RunDeauthScan(uint8_t scan_mode, uint16_t color) #ifdef MARAUDER_FLIPPER flipper_led.sniffLED(); + #else + led_obj.setMode(MODE_SNIFF); #endif #ifdef HAS_SCREEN @@ -1151,6 +1173,8 @@ void WiFiScan::RunProbeScan(uint8_t scan_mode, uint16_t color) #ifdef MARAUDER_FLIPPER flipper_led.sniffLED(); + #else + led_obj.setMode(MODE_SNIFF); #endif #ifdef HAS_SCREEN diff --git a/esp32_marauder/WiFiScan.h b/esp32_marauder/WiFiScan.h index 8e29a76..ebc17ae 100644 --- a/esp32_marauder/WiFiScan.h +++ b/esp32_marauder/WiFiScan.h @@ -31,6 +31,7 @@ #include "settings.h" #include "Assets.h" #include "flipperLED.h" +#include "LedInterface.h" //#include "MenuFunctions.h" #define bad_list_length 3 @@ -78,6 +79,7 @@ extern BatteryInterface battery_obj; extern TemperatureInterface temp_obj; extern Settings settings_obj; extern flipperLED flipper_led; +extern LedInterface led_obj; esp_err_t esp_wifi_80211_tx(wifi_interface_t ifx, const void *buffer, int len, bool en_sys_seq); //int ieee80211_raw_frame_sanity_check(int32_t arg, int32_t arg2, int32_t arg3); diff --git a/esp32_marauder/configs.h b/esp32_marauder/configs.h index 8589037..d40712b 100644 --- a/esp32_marauder/configs.h +++ b/esp32_marauder/configs.h @@ -9,9 +9,10 @@ //#define MARAUDER_V6 //#define MARAUDER_KIT //#define GENERIC_ESP32 - #define MARAUDER_FLIPPER + //#define MARAUDER_FLIPPER + #define ESP32_LDDB - #define MARAUDER_VERSION "v0.9.18" + #define MARAUDER_VERSION "v0.9.19" //// BUTTON DEFINITIONS #ifdef MARAUDER_MINI @@ -353,6 +354,10 @@ #ifdef MARAUDER_FLIPPER #define SD_CS 10 #endif + + #ifdef ESP32_LDDB + #define SD_CS 4 + #endif //// END SD DEFINITIONS //// SCREEN STUFF @@ -403,4 +408,12 @@ #endif //// END SCREEN STUFF + //// NEOPIXEL STUFF + #ifdef ESP32_LDDB + #define PIN 17 + #else + #define PIN 25 + #endif + + #endif diff --git a/esp32_marauder/esp32_marauder.ino b/esp32_marauder/esp32_marauder.ino index f4edbd6..c7c5e02 100644 --- a/esp32_marauder/esp32_marauder.ino +++ b/esp32_marauder/esp32_marauder.ino @@ -142,10 +142,6 @@ void setup() // Serial.println("Does not have screen"); //#endif - #ifdef MARAUDER_FLIPPER - flipper_led.RunSetup(); - #endif - #ifdef HAS_SCREEN display_obj.RunSetup(); display_obj.tft.setTextColor(TFT_WHITE, TFT_BLACK); @@ -191,6 +187,10 @@ void setup() settings_obj.begin(); + #ifdef MARAUDER_FLIPPER + flipper_led.RunSetup(); + #endif + //Serial.println("This is a test Channel: " + (String)settings_obj.loadSetting("Channel")); //if (settings_obj.loadSetting( "Force PMKID")) // Serial.println("This is a test Force PMKID: true"); @@ -314,6 +314,9 @@ void loop() #ifdef HAS_SCREEN menu_function_obj.main(currentTime); #endif + #ifndef MARAUDER_FLIPPER + led_obj.main(currentTime); + #endif //cli_obj.main(currentTime); } if (wifi_scan_obj.currentScanMode == OTA_UPDATE) @@ -336,6 +339,9 @@ void loop() display_obj.main(wifi_scan_obj.currentScanMode); menu_function_obj.main(currentTime); #endif + #ifndef MARAUDER_FLIPPER + led_obj.main(currentTime); + #endif //cli_obj.main(currentTime); delay(1); } diff --git a/esp32_marauder/esp32_marauder.ino.d32.bin b/esp32_marauder/esp32_marauder.ino.d32.bin new file mode 100644 index 0000000..1b5b810 Binary files /dev/null and b/esp32_marauder/esp32_marauder.ino.d32.bin differ diff --git a/esp32_marauder/flipperLED.cpp b/esp32_marauder/flipperLED.cpp index 0f46b58..ba5e332 100644 --- a/esp32_marauder/flipperLED.cpp +++ b/esp32_marauder/flipperLED.cpp @@ -5,6 +5,9 @@ void flipperLED::RunSetup() { pinMode(G_PIN, OUTPUT); pinMode(R_PIN, OUTPUT); + if (!settings_obj.loadSetting("EnableLED")) + return; + delay(50); digitalWrite(B_PIN, LOW); @@ -19,14 +22,20 @@ void flipperLED::RunSetup() { } void flipperLED::attackLED() { + if (!settings_obj.loadSetting("EnableLED")) + return; + digitalWrite(B_PIN, HIGH); digitalWrite(G_PIN, HIGH); - digitalWrite(R_PIN, HIGH); + digitalWrite(R_PIN, HIGH); delay(10); digitalWrite(R_PIN, LOW); } void flipperLED::sniffLED() { + if (!settings_obj.loadSetting("EnableLED")) + return; + digitalWrite(B_PIN, HIGH); digitalWrite(G_PIN, HIGH); digitalWrite(R_PIN, HIGH); @@ -35,6 +44,9 @@ void flipperLED::sniffLED() { } void flipperLED::offLED() { + if (!settings_obj.loadSetting("EnableLED")) + return; + digitalWrite(B_PIN, HIGH); digitalWrite(G_PIN, HIGH); digitalWrite(R_PIN, HIGH); diff --git a/esp32_marauder/flipperLED.h b/esp32_marauder/flipperLED.h index 80dd7b0..3c67e66 100644 --- a/esp32_marauder/flipperLED.h +++ b/esp32_marauder/flipperLED.h @@ -1,12 +1,17 @@ #ifndef flipperLED_h #define flipperLED_h +#include "configs.h" +#include "settings.h" + #include #define B_PIN 4 #define G_PIN 5 #define R_PIN 6 +extern Settings settings_obj; + class flipperLED { public: diff --git a/esp32_marauder/settings.cpp b/esp32_marauder/settings.cpp index 67cfd0e..83bc125 100644 --- a/esp32_marauder/settings.cpp +++ b/esp32_marauder/settings.cpp @@ -282,6 +282,12 @@ bool Settings::createDefaultSettings(fs::FS &fs) { jsonBuffer["Settings"][2]["range"]["min"] = false; jsonBuffer["Settings"][2]["range"]["max"] = true; + jsonBuffer["Settings"][3]["name"] = "EnableLED"; + jsonBuffer["Settings"][3]["type"] = "bool"; + jsonBuffer["Settings"][3]["value"] = true; + jsonBuffer["Settings"][3]["range"]["min"] = false; + jsonBuffer["Settings"][3]["range"]["max"] = true; + //jsonBuffer.printTo(settingsFile); if (serializeJson(jsonBuffer, settingsFile) == 0) { Serial.println(F("Failed to write to file"));