From 1612ac4bf01acd4893d61fe59377ad5fb6f2d381 Mon Sep 17 00:00:00 2001
From: Just Call Me Koko <25190487+justcallmekoko@users.noreply.github.com>
Date: Thu, 23 Apr 2020 19:23:00 -0400
Subject: [PATCH] Add Neopixel support
---
README.md | 2 +-
esp32_marauder/Display.h | 6 ++---
esp32_marauder/LedInterface.cpp | 41 +++++++++++++++++++++++++++++++
esp32_marauder/LedInterface.h | 31 +++++++++++++++++++++++
esp32_marauder/esp32_marauder.ino | 10 ++++++++
5 files changed, 86 insertions(+), 4 deletions(-)
create mode 100644 esp32_marauder/LedInterface.cpp
create mode 100644 esp32_marauder/LedInterface.h
diff --git a/README.md b/README.md
index a0451e7..7a7f813 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
-# ESP32 Marauder v0.6.3
+# ESP32 Marauder v0.6.4

A suite of WiFi/Bluetooth offensive and defensive tools for the ESP32
diff --git a/esp32_marauder/Display.h b/esp32_marauder/Display.h
index a3da0c2..1eaa900 100644
--- a/esp32_marauder/Display.h
+++ b/esp32_marauder/Display.h
@@ -13,8 +13,8 @@
#include
-#define TFT_SHIELD
-//#define TFT_DIY
+//#define TFT_SHIELD
+#define TFT_DIY
#define SCREEN_WIDTH 240
#define SCREEN_HEIGHT 320
@@ -56,7 +56,7 @@ class Display
TFT_eSPI tft = TFT_eSPI();
TFT_eSprite img = TFT_eSprite(&tft);
TFT_eSPI_Button key[BUTTON_ARRAY_LEN];
- String version_number = "v0.6.3";
+ String version_number = "v0.6.4";
bool printing = false;
bool loading = false;
diff --git a/esp32_marauder/LedInterface.cpp b/esp32_marauder/LedInterface.cpp
new file mode 100644
index 0000000..8740f22
--- /dev/null
+++ b/esp32_marauder/LedInterface.cpp
@@ -0,0 +1,41 @@
+#include "LedInterface.h"
+
+LedInterface::LedInterface() {
+
+}
+
+void LedInterface::RunSetup() {
+ Serial.println("Setting neopixel to black...");
+ strip.begin();
+ strip.setBrightness(50);
+ strip.setPixelColor(0, strip.Color(0, 0, 0));
+ strip.show();
+ delay(100);
+ strip.setPixelColor(0, strip.Color(255, 0, 0));
+ strip.show();
+ this->initTime = millis();
+}
+
+void LedInterface::main(uint32_t currentTime) {
+ strip.setPixelColor(0, this->Wheel((0 * 256 / 100 + this->wheel_pos) % 256));
+ strip.show();
+
+ this->current_fade_itter++;
+
+ 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;
+ if(WheelPos < 85) {
+ return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
+ }
+ if(WheelPos < 170) {
+ WheelPos -= 85;
+ return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
+ }
+ WheelPos -= 170;
+ return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
+}
diff --git a/esp32_marauder/LedInterface.h b/esp32_marauder/LedInterface.h
new file mode 100644
index 0000000..357a844
--- /dev/null
+++ b/esp32_marauder/LedInterface.h
@@ -0,0 +1,31 @@
+#ifndef LedInterface_h
+#define LedInterface_h
+
+#include
+#include
+
+#define PIN 25
+#define Pixels 1
+
+extern Adafruit_NeoPixel strip;
+
+class LedInterface {
+
+ private:
+ uint32_t initTime = 0;
+
+ int current_fade_itter = 1;
+ int wheel_pos = 255;
+ int wheel_speed = 1; // lower = slower
+
+ uint32_t Wheel(byte WheelPos);
+
+ public:
+ LedInterface();
+
+ void RunSetup();
+ void main(uint32_t currentTime);
+
+};
+
+#endif
diff --git a/esp32_marauder/esp32_marauder.ino b/esp32_marauder/esp32_marauder.ino
index 1f793fe..9e9c40c 100644
--- a/esp32_marauder/esp32_marauder.ino
+++ b/esp32_marauder/esp32_marauder.ino
@@ -25,6 +25,7 @@ https://www.online-utility.org/image/convert/to/XBM
#include "Buffer.h"
#include "BatteryInterface.h"
#include "TemperatureInterface.h"
+#include "LedInterface.h"
//#include "icons.h"
/*
@@ -46,6 +47,9 @@ Web web_obj;
Buffer buffer_obj;
BatteryInterface battery_obj;
TemperatureInterface temp_obj;
+LedInterface led_obj;
+
+Adafruit_NeoPixel strip = Adafruit_NeoPixel(Pixels, PIN, NEO_GRB + NEO_KHZ800);
uint32_t currentTime = 0;
@@ -71,6 +75,9 @@ void setup()
//Serial.println("Internal Temp: " + (String)((temprature_sens_read() - 32) / 1.8));
+ // Do some LED stuff
+ led_obj.RunSetup();
+
// Do some SD stuff
if(sd_obj.initSD())
Serial.println("SD Card supported");
@@ -96,6 +103,8 @@ void setup()
}
else
Serial.println("IP5306 I2C Supported: false");
+
+ Serial.println(wifi_scan_obj.freeRAM());
}
@@ -115,6 +124,7 @@ void loop()
sd_obj.main();
battery_obj.main(currentTime);
temp_obj.main(currentTime);
+ //led_obj.main(currentTime);
//if ((wifi_scan_obj.currentScanMode != WIFI_ATTACK_BEACON_SPAM))
if ((wifi_scan_obj.currentScanMode != WIFI_PACKET_MONITOR) &&
(wifi_scan_obj.currentScanMode != WIFI_SCAN_EAPOL))