mirror of
https://github.com/justcallmekoko/ESP32Marauder.git
synced 2025-12-05 20:40:25 -08:00
Add support for Adafruit Reverse Feather ESP32-S2
This commit is contained in:
82
.github/workflows/build_push.yml
vendored
82
.github/workflows/build_push.yml
vendored
@@ -57,18 +57,11 @@ jobs:
|
||||
ref: master
|
||||
path: CustomESPAsyncWebServer
|
||||
|
||||
#- name: Install TFT_eSPI
|
||||
# uses: actions/checkout@v2
|
||||
# with:
|
||||
# repository: justcallmekoko/TFT_eSPI
|
||||
# ref: master
|
||||
# path: CustomTFT_eSPI
|
||||
|
||||
- name: Install TFT_eSPI
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: Bodmer/TFT_eSPI
|
||||
ref: 2.2.23
|
||||
ref: 2.5.34
|
||||
path: CustomTFT_eSPI
|
||||
|
||||
- name: Install lv_arduino
|
||||
@@ -106,12 +99,12 @@ jobs:
|
||||
ref: v6.18.2
|
||||
path: CustomArduinoJson
|
||||
|
||||
- name: Install SwitchLib
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: justcallmekoko/SwitchLib
|
||||
ref: main
|
||||
path: CustomSwitchLib
|
||||
#- name: Install SwitchLib
|
||||
# uses: actions/checkout@v2
|
||||
# with:
|
||||
# repository: justcallmekoko/SwitchLib
|
||||
# ref: main
|
||||
# path: CustomSwitchLib
|
||||
|
||||
- name: Install LinkedList
|
||||
uses: actions/checkout@v2
|
||||
@@ -138,6 +131,7 @@ jobs:
|
||||
cp User_Setup_marauder_mini.h CustomTFT_eSPI/
|
||||
cp User_Setup_og_marauder.h CustomTFT_eSPI/
|
||||
cp User_Setup_marauder_m5stickc.h CustomTFT_eSPI/
|
||||
cp User_Setup_marauder_rev_feather.h CustomTFT_eSPI/
|
||||
pwd
|
||||
ls -la
|
||||
ls -la CustomTFT_eSPI
|
||||
@@ -182,6 +176,7 @@ jobs:
|
||||
|
||||
- name: Configure configs.h for Flipper Zero WiFi Dev Board
|
||||
run: |
|
||||
sed -i 's/^ #define MARAUDER_REV_FEATHER/ \/\/#define MARAUDER_REV_FEATHER/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_M5STICKC/ \/\/#define MARAUDER_M5STICKC/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_MINI/ \/\/#define MARAUDER_MINI/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V4/ \/\/#define MARAUDER_V4/' esp32_marauder/configs.h
|
||||
@@ -219,8 +214,10 @@ jobs:
|
||||
run: |
|
||||
pwd
|
||||
find /home/runner/ -name "*TFT_eSPI*"
|
||||
sed -i 's/^#include <User_Setup_marauder_rev_feather.h>/\/\/#include <User_Setup_marauder_rev_feather.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
|
||||
sed -i 's/^#include <User_Setup_marauder_mini.h>/\/\/#include <User_Setup_marauder_mini.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
|
||||
sed -i 's/^\/\/#include <User_Setup_og_marauder.h>/#include <User_Setup_og_marauder.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
|
||||
sed -i 's/^ #define MARAUDER_REV_FEATHER/ \/\/#define MARAUDER_REV_FEATHER/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_MINI/ \/\/#define MARAUDER_MINI/' esp32_marauder/configs.h
|
||||
sed -i 's/^ \/\/#define MARAUDER_V4/ #define MARAUDER_V4/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6/ \/\/#define MARAUDER_V6/' esp32_marauder/configs.h
|
||||
@@ -244,8 +241,10 @@ jobs:
|
||||
|
||||
- name: Configure TFT_eSPI and configs.h for Marauder v6
|
||||
run: |
|
||||
sed -i 's/^#include <User_Setup_marauder_rev_feather.h>/\/\/#include <User_Setup_marauder_rev_feather.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
|
||||
sed -i 's/^#include <User_Setup_marauder_mini.h>/\/\/#include <User_Setup_marauder_mini.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
|
||||
sed -i 's/^\/\/#include <User_Setup_og_marauder.h>/#include <User_Setup_og_marauder.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
|
||||
sed -i 's/^ #define MARAUDER_REV_FEATHER/ \/\/#define MARAUDER_REV_FEATHER/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_MINI/ \/\/#define MARAUDER_MINI/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V4/ \/\/#define MARAUDER_V4/' esp32_marauder/configs.h
|
||||
sed -i 's/^ \/\/#define MARAUDER_V6/ #define MARAUDER_V6/' esp32_marauder/configs.h
|
||||
@@ -286,6 +285,7 @@ jobs:
|
||||
|
||||
- name: Configure TFT_eSPI and configs.h for Marauder v6.1
|
||||
run: |
|
||||
sed -i 's/^ #define MARAUDER_REV_FEATHER/ \/\/#define MARAUDER_REV_FEATHER/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_MINI/ \/\/#define MARAUDER_MINI/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V4/ \/\/#define MARAUDER_V4/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6/ \/\/#define MARAUDER_V6/' esp32_marauder/configs.h
|
||||
@@ -311,6 +311,7 @@ jobs:
|
||||
run: |
|
||||
sed -i 's/^#include <User_Setup_marauder_mini.h>/\/\/#include <User_Setup_marauder_mini.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
|
||||
sed -i 's/^\/\/#include <User_Setup_og_marauder.h>/#include <User_Setup_og_marauder.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
|
||||
sed -i 's/^ #define MARAUDER_REV_FEATHER/ \/\/#define MARAUDER_REV_FEATHER/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_MINI/ \/\/#define MARAUDER_MINI/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V4/ \/\/#define MARAUDER_V4/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6/ \/\/#define MARAUDER_V6/' esp32_marauder/configs.h
|
||||
@@ -336,6 +337,7 @@ jobs:
|
||||
run: |
|
||||
sed -i 's/^\/\/#include <User_Setup_marauder_mini.h>/#include <User_Setup_marauder_mini.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
|
||||
sed -i 's/^#include <User_Setup_og_marauder.h>/\/\/#include <User_Setup_og_marauder.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
|
||||
sed -i 's/^ #define MARAUDER_REV_FEATHER/ \/\/#define MARAUDER_REV_FEATHER/' esp32_marauder/configs.h
|
||||
sed -i 's/^ \/\/#define MARAUDER_MINI/ #define MARAUDER_MINI/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V4/ \/\/#define MARAUDER_V4/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6/ \/\/#define MARAUDER_V6/' esp32_marauder/configs.h
|
||||
@@ -359,6 +361,7 @@ jobs:
|
||||
|
||||
- name: Configure TFT_eSPI and configs.h for ESP32 LDDB
|
||||
run: |
|
||||
sed -i 's/^ #define MARAUDER_REV_FEATHER/ \/\/#define MARAUDER_REV_FEATHER/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_MINI/ \/\/#define MARAUDER_MINI/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V4/ \/\/#define MARAUDER_V4/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6/ \/\/#define MARAUDER_V6/' esp32_marauder/configs.h
|
||||
@@ -382,6 +385,7 @@ jobs:
|
||||
|
||||
- name: Configure TFT_eSPI and configs.h for Marauder Dev Board Pro
|
||||
run: |
|
||||
sed -i 's/^ #define MARAUDER_REV_FEATHER/ \/\/#define MARAUDER_REV_FEATHER/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_MINI/ \/\/#define MARAUDER_MINI/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V4/ \/\/#define MARAUDER_V4/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6/ \/\/#define MARAUDER_V6/' esp32_marauder/configs.h
|
||||
@@ -409,6 +413,7 @@ jobs:
|
||||
find /home/runner/ -name "*TFT_eSPI*"
|
||||
sed -i 's/^#include <User_Setup_marauder_mini.h>/\/\/#include <User_Setup_marauder_mini.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
|
||||
sed -i 's/^\/\/#include <User_Setup_marauder_m5stickc.h>/#include <User_Setup_marauder_m5stickc.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
|
||||
sed -i 's/^ #define MARAUDER_REV_FEATHER/ \/\/#define MARAUDER_REV_FEATHER/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_MINI/ \/\/#define MARAUDER_MINI/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V4/ \/\/#define MARAUDER_V4/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6/ \/\/#define MARAUDER_V6/' esp32_marauder/configs.h
|
||||
@@ -431,6 +436,36 @@ jobs:
|
||||
run: |
|
||||
mv ./esp32_marauder/build/esp32.esp32.m5stick-c/esp32_marauder.ino.bin ./esp32_marauder/build/esp32.esp32.m5stick-c/esp32_marauder.m5stickc_plus.bin
|
||||
|
||||
- name: Configure TFT_eSPI and configs.h for Marauder Rev Feather
|
||||
run: |
|
||||
pwd
|
||||
find /home/runner/ -name "*TFT_eSPI*"
|
||||
sed -i 's/^\/\/#include <User_Setup_marauder_rev_feather.h>/#include <User_Setup_marauder_rev_feather.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
|
||||
sed -i 's/^#include <User_Setup_marauder_mini.h>/\/\/#include <User_Setup_marauder_mini.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
|
||||
sed -i 's/^#include <User_Setup_marauder_m5stickc.h>/\/\/#include <User_Setup_marauder_m5stickc.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
|
||||
sed -i 's/^ \/\/#define MARAUDER_REV_FEATHER/ #define MARAUDER_REV_FEATHER/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_MINI/ \/\/#define MARAUDER_MINI/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V4/ \/\/#define MARAUDER_V4/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6/ \/\/#define MARAUDER_V6/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6_1/ \/\/#define MARAUDER_V6_1/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_KIT/ \/\/#define MARAUDER_KIT/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define GENERIC_ESP32/ \/\/#define GENERIC_ESP32/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_FLIPPER/ \/\/#define MARAUDER_FLIPPER/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define ESP32_LDDB/ \/\/#define ESP32_LDDB/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_DEV_BOARD_PRO/ \/\/#define MARAUDER_DEV_BOARD_PRO/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_M5STICKC/ \/\/#define MARAUDER_M5STICKC/' esp32_marauder/configs.h
|
||||
|
||||
- name: Build Marauder for Marauder Rev Feather
|
||||
uses: ArminJo/arduino-test-compile@v3.2.1
|
||||
with:
|
||||
sketch-names: esp32_marauder.ino
|
||||
arduino-board-fqbn: esp32:esp32:esp32s2:PartitionScheme=min_spiffs,FlashSize=4M,PSRAM=enabled
|
||||
extra-arduino-cli-args: "--warnings none"
|
||||
|
||||
- name: Rename Marauder Marauder Rev Feather
|
||||
run: |
|
||||
mv ./esp32_marauder/build/esp32.esp32.esp32s2/esp32_marauder.ino.bin ./esp32_marauder/build/esp32.esp32.esp32s2/esp32_marauder.rev_feather.bin
|
||||
|
||||
- name: Display finished bins
|
||||
run: |
|
||||
find ./esp32_marauder/build -name "*.bin"
|
||||
@@ -505,6 +540,13 @@ jobs:
|
||||
path: ./esp32_marauder/build/esp32.esp32.m5stick-c/esp32_marauder.m5stickc_plus.bin
|
||||
retention-days: 5
|
||||
|
||||
- name: 'Upload Rev Feather Artifact'
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: esp32_marauder.rev_feather.bin
|
||||
path: ./esp32_marauder/build/esp32.esp32.esp32s2/esp32_marauder.rev_feather.bin
|
||||
retention-days: 5
|
||||
|
||||
- name: Create Release
|
||||
id: create_release
|
||||
uses: actions/create-release@v1
|
||||
@@ -636,3 +678,15 @@ jobs:
|
||||
asset_name: esp32_marauder.m5stickc_plus.bin
|
||||
asset_content_type: application/bin
|
||||
if: github.event_name != 'pull_request'
|
||||
|
||||
- name: Upload Rev Feather Asset
|
||||
id: upload-rev-feather-release-asset
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: ./esp32_marauder/build/esp32.esp32.esp32s2/esp32_marauder.rev_feather.bin
|
||||
asset_name: esp32_marauder.rev_feather.bin
|
||||
asset_content_type: application/bin
|
||||
if: github.event_name != 'pull_request'
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <User_Setup_og_marauder.h>
|
||||
//#include <User_Setup_marauder_mini.h>
|
||||
//#include <User_Setup_marauder_m5stickc.h>
|
||||
//#include <User_Setup_marauder_rev_feather.h>
|
||||
|
||||
//#include <User_Setups/Setup1_ILI9341.h> // Setup file configured for my ILI9341
|
||||
//#include <User_Setups/Setup2_ST7735.h> // Setup file configured for my ST7735
|
||||
|
||||
@@ -43,8 +43,8 @@
|
||||
// For ST7789 and ILI9341 ONLY, define the colour order IF the blue and red are swapped on your display
|
||||
// Try ONE option at a time to find the correct colour order for your display
|
||||
|
||||
#define TFT_RGB_ORDER TFT_RGB // Colour order Red-Green-Blue
|
||||
// #define TFT_RGB_ORDER TFT_BGR // Colour order Blue-Green-Red
|
||||
// #define TFT_RGB_ORDER TFT_RGB // Colour order Red-Green-Blue
|
||||
#define TFT_RGB_ORDER TFT_BGR // Colour order Blue-Green-Red
|
||||
|
||||
// For M5Stack ESP32 module with integrated ILI9341 display ONLY, remove // in line below
|
||||
|
||||
|
||||
59
User_Setup_marauder_rev_feather.h
Normal file
59
User_Setup_marauder_rev_feather.h
Normal file
@@ -0,0 +1,59 @@
|
||||
// ST7789 135 x 240 display with no chip select line
|
||||
|
||||
#define ST7789_DRIVER // Configure all registers
|
||||
|
||||
#define TFT_WIDTH 135
|
||||
#define TFT_HEIGHT 240
|
||||
|
||||
#define CGRAM_OFFSET // Library will add offsets required
|
||||
|
||||
//#define TFT_RGB_ORDER TFT_RGB // Colour order Red-Green-Blue
|
||||
//#define TFT_RGB_ORDER TFT_BGR // Colour order Blue-Green-Red
|
||||
|
||||
//#define TFT_INVERSION_ON
|
||||
//#define TFT_INVERSION_OFF
|
||||
|
||||
// DSTIKE stepup
|
||||
//#define TFT_DC 23
|
||||
//#define TFT_RST 32
|
||||
//#define TFT_MOSI 26
|
||||
//#define TFT_SCLK 27
|
||||
|
||||
// Generic ESP32 setup
|
||||
//#define TFT_MISO 19
|
||||
//#define TFT_MOSI 23
|
||||
//#define TFT_SCLK 18
|
||||
//#define TFT_CS -1 // Not connected
|
||||
//#define TFT_DC 2
|
||||
//#define TFT_RST 4 // Connect reset to ensure display initialises
|
||||
|
||||
// For NodeMCU - use pin numbers in the form PIN_Dx where Dx is the NodeMCU pin designation
|
||||
#define TFT_MISO 37
|
||||
#define TFT_MOSI 35
|
||||
#define TFT_SCLK 36
|
||||
#define TFT_CS 42 // Define as not used
|
||||
#define TFT_DC 40 // Data Command control pin
|
||||
#define TFT_RST 41 // TFT reset pin (could connect to NodeMCU RST, see next line)
|
||||
#define TFT_BL 45
|
||||
|
||||
|
||||
#define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
|
||||
#define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
|
||||
#define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters
|
||||
#define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm
|
||||
#define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:.
|
||||
#define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-.
|
||||
//#define LOAD_FONT8N // Font 8. Alternative to Font 8 above, slightly narrower, so 3 digits fit a 160 pixel TFT
|
||||
#define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts
|
||||
|
||||
#define SMOOTH_FONT
|
||||
|
||||
|
||||
// #define SPI_FREQUENCY 27000000
|
||||
#define SPI_FREQUENCY 40000000
|
||||
|
||||
#define SPI_READ_FREQUENCY 20000000
|
||||
|
||||
#define SPI_TOUCH_FREQUENCY 2500000
|
||||
|
||||
// #define SUPPORT_TRANSACTIONS
|
||||
8
esp32_marauder/.theia/launch.json
Normal file
8
esp32_marauder/.theia/launch.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
|
||||
]
|
||||
}
|
||||
@@ -28,6 +28,10 @@ void Display::RunSetup()
|
||||
tft.setRotation(1);
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_REV_FEATHER
|
||||
tft.setRotation(1);
|
||||
#endif
|
||||
|
||||
tft.setCursor(0, 0);
|
||||
|
||||
#ifdef HAS_ILI9341
|
||||
@@ -53,6 +57,14 @@ void Display::RunSetup()
|
||||
#ifdef KIT
|
||||
pinMode(KIT_LED_BUILTIN, OUTPUT);
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_REV_FEATHER
|
||||
pinMode(7, OUTPUT);
|
||||
|
||||
delay(10);
|
||||
|
||||
digitalWrite(7, HIGH);
|
||||
#endif
|
||||
}
|
||||
|
||||
void Display::drawFrame()
|
||||
|
||||
@@ -92,7 +92,11 @@ bool EvilPortal::setHtml() {
|
||||
return true;
|
||||
}
|
||||
Serial.println("Setting HTML...");
|
||||
File html_file = sd_obj.getFile("/" + this->target_html_name);
|
||||
#ifdef HAS_SD
|
||||
File html_file = sd_obj.getFile("/" + this->target_html_name);
|
||||
#else
|
||||
File html_file;
|
||||
#endif
|
||||
if (!html_file) {
|
||||
#ifdef HAS_SCREEN
|
||||
this->sendToDisplay("Could not find /" + this->target_html_name);
|
||||
@@ -139,7 +143,11 @@ bool EvilPortal::setAP(LinkedList<ssid>* ssids, LinkedList<AccessPoint>* access_
|
||||
// If there are no SSIDs and there are no APs selected, pull from file
|
||||
// This means the file is last resort
|
||||
if ((ssids->size() <= 0) && (temp_ap_name == "")) {
|
||||
File ap_config_file = sd_obj.getFile("/ap.config.txt");
|
||||
#ifdef HAS_SD
|
||||
File ap_config_file = sd_obj.getFile("/ap.config.txt");
|
||||
#else
|
||||
File ap_config_file;
|
||||
#endif
|
||||
// Could not open config file. return false
|
||||
if (!ap_config_file) {
|
||||
#ifdef HAS_SCREEN
|
||||
|
||||
@@ -519,9 +519,6 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
if ((wifi_scan_obj.currentScanMode != LV_JOIN_WIFI) &&
|
||||
(wifi_scan_obj.currentScanMode != LV_ADD_SSID))
|
||||
this->updateStatusBar();
|
||||
//#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC)
|
||||
// display_obj.updateBanner(current_menu->name);
|
||||
//#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -931,7 +928,7 @@ void MenuFunctions::updateStatusBar()
|
||||
{
|
||||
display_obj.tft.setTextSize(1);
|
||||
|
||||
#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC)
|
||||
#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC) || defined(MARAUDER_REV_FEATHER)
|
||||
display_obj.tft.setFreeFont(NULL);
|
||||
#endif
|
||||
|
||||
@@ -973,7 +970,7 @@ void MenuFunctions::updateStatusBar()
|
||||
display_obj.tft.drawString("CH: " + (String)wifi_scan_obj.set_channel, 50, 0, 2);
|
||||
#endif
|
||||
|
||||
#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC)
|
||||
#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC) || defined(MARAUDER_REV_FEATHER)
|
||||
display_obj.tft.drawString("CH: " + (String)wifi_scan_obj.set_channel, TFT_WIDTH/4, 0, 1);
|
||||
#endif
|
||||
}
|
||||
@@ -987,7 +984,7 @@ void MenuFunctions::updateStatusBar()
|
||||
display_obj.tft.drawString((String)wifi_scan_obj.free_ram + "B", 100, 0, 2);
|
||||
#endif
|
||||
|
||||
#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC)
|
||||
#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC) || defined(MARAUDER_REV_FEATHER)
|
||||
display_obj.tft.drawString((String)wifi_scan_obj.free_ram + "B", TFT_WIDTH/1.75, 0, 1);
|
||||
#endif
|
||||
}
|
||||
@@ -1013,22 +1010,24 @@ void MenuFunctions::updateStatusBar()
|
||||
|
||||
|
||||
// Draw SD info
|
||||
if (sd_obj.supported)
|
||||
the_color = TFT_GREEN;
|
||||
else
|
||||
the_color = TFT_RED;
|
||||
#ifdef HAS_SD
|
||||
if (sd_obj.supported)
|
||||
the_color = TFT_GREEN;
|
||||
else
|
||||
the_color = TFT_RED;
|
||||
|
||||
#ifdef HAS_ILI9341
|
||||
display_obj.tft.drawXBitmap(170,
|
||||
0,
|
||||
menu_icons[STATUS_SD],
|
||||
16,
|
||||
16,
|
||||
STATUSBAR_COLOR,
|
||||
the_color);
|
||||
#ifdef HAS_ILI9341
|
||||
display_obj.tft.drawXBitmap(170,
|
||||
0,
|
||||
menu_icons[STATUS_SD],
|
||||
16,
|
||||
16,
|
||||
STATUSBAR_COLOR,
|
||||
the_color);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC)
|
||||
#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC) || defined(MARAUDER_REV_FEATHER)
|
||||
display_obj.tft.setTextColor(the_color, STATUSBAR_COLOR);
|
||||
display_obj.tft.drawString("SD", TFT_WIDTH - 12, 0, 1);
|
||||
#endif
|
||||
@@ -1037,7 +1036,7 @@ void MenuFunctions::updateStatusBar()
|
||||
void MenuFunctions::drawStatusBar()
|
||||
{
|
||||
display_obj.tft.setTextSize(1);
|
||||
#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC)
|
||||
#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC) || defined(MARAUDER_REV_FEATHER)
|
||||
display_obj.tft.setFreeFont(NULL);
|
||||
#endif
|
||||
display_obj.tft.fillRect(0, 0, 240, STATUS_BAR_WIDTH, STATUSBAR_COLOR);
|
||||
@@ -1078,7 +1077,7 @@ void MenuFunctions::drawStatusBar()
|
||||
display_obj.tft.drawString("CH: " + (String)wifi_scan_obj.set_channel, 50, 0, 2);
|
||||
#endif
|
||||
|
||||
#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC)
|
||||
#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC) || defined(MARAUDER_REV_FEATHER)
|
||||
display_obj.tft.drawString("CH: " + (String)wifi_scan_obj.set_channel, TFT_WIDTH/4, 0, 1);
|
||||
#endif
|
||||
|
||||
@@ -1090,7 +1089,7 @@ void MenuFunctions::drawStatusBar()
|
||||
display_obj.tft.drawString((String)wifi_scan_obj.free_ram + "B", 100, 0, 2);
|
||||
#endif
|
||||
|
||||
#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC)
|
||||
#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC) || defined(MARAUDER_REV_FEATHER)
|
||||
display_obj.tft.drawString((String)wifi_scan_obj.free_ram + "B", TFT_WIDTH/1.75, 0, 1);
|
||||
#endif
|
||||
|
||||
@@ -1114,22 +1113,25 @@ void MenuFunctions::drawStatusBar()
|
||||
#endif
|
||||
|
||||
// Draw SD info
|
||||
if (sd_obj.supported)
|
||||
the_color = TFT_GREEN;
|
||||
else
|
||||
the_color = TFT_RED;
|
||||
#ifdef HAS_SD
|
||||
if (sd_obj.supported)
|
||||
the_color = TFT_GREEN;
|
||||
else
|
||||
the_color = TFT_RED;
|
||||
|
||||
#ifdef HAS_ILI9341
|
||||
display_obj.tft.drawXBitmap(170,
|
||||
0,
|
||||
menu_icons[STATUS_SD],
|
||||
16,
|
||||
16,
|
||||
STATUSBAR_COLOR,
|
||||
the_color);
|
||||
|
||||
#ifdef HAS_ILI9341
|
||||
display_obj.tft.drawXBitmap(170,
|
||||
0,
|
||||
menu_icons[STATUS_SD],
|
||||
16,
|
||||
16,
|
||||
STATUSBAR_COLOR,
|
||||
the_color);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC)
|
||||
#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC) || defined(MARAUDER_REV_FEATHER)
|
||||
display_obj.tft.setTextColor(the_color, STATUSBAR_COLOR);
|
||||
display_obj.tft.drawString("SD", TFT_WIDTH - 12, 0, 1);
|
||||
#endif
|
||||
@@ -1242,7 +1244,7 @@ void MenuFunctions::RunSetup()
|
||||
|
||||
// WiFi HTML menu stuff
|
||||
htmlMenu.list = new LinkedList<MenuNode>();
|
||||
#ifdef MARAUDER_MINI
|
||||
#if (!defined(HAS_ILI9341) && defined(HAS_BUTTONS))
|
||||
miniKbMenu.list = new LinkedList<MenuNode>();
|
||||
#endif
|
||||
#ifndef HAS_ILI9341
|
||||
@@ -1287,7 +1289,7 @@ void MenuFunctions::RunSetup()
|
||||
gpsInfoMenu.name = "GPS Data";
|
||||
#endif
|
||||
htmlMenu.name = "EP HTML List";
|
||||
#ifdef MARAUDER_MINI
|
||||
#if (!defined(HAS_ILI9341) && defined(HAS_BUTTONS))
|
||||
miniKbMenu.name = "Mini Keyboard";
|
||||
#endif
|
||||
#ifndef HAS_ILI9341
|
||||
@@ -1473,7 +1475,7 @@ void MenuFunctions::RunSetup()
|
||||
addSSIDGFX();
|
||||
});
|
||||
#endif
|
||||
#ifdef MARAUDER_MINI
|
||||
#if (!defined(HAS_ILI9341) && defined(HAS_BUTTONS))
|
||||
this->addNodes(&wifiGeneralMenu, text_table1[1], TFT_NAVY, NULL, KEYBOARD_ICO, [this](){
|
||||
this->changeMenu(&miniKbMenu);
|
||||
this->miniKeyboard(&miniKbMenu);
|
||||
@@ -1514,7 +1516,7 @@ void MenuFunctions::RunSetup()
|
||||
#else // Mini EP HTML select
|
||||
this->addNodes(&wifiGeneralMenu, "Select EP HTML File", TFT_CYAN, NULL, KEYBOARD_ICO, [this](){
|
||||
this->changeMenu(&htmlMenu);
|
||||
#ifdef HAS_BUTTONS
|
||||
#if (defined(HAS_BUTTONS) && defined(HAS_SD))
|
||||
#if !(defined(MARAUDER_V6) || defined(MARAUDER_V6_1))
|
||||
while(true) {
|
||||
if (d_btn.justPressed()) {
|
||||
@@ -1553,10 +1555,12 @@ void MenuFunctions::RunSetup()
|
||||
#endif
|
||||
});
|
||||
|
||||
miniKbMenu.parentMenu = &wifiGeneralMenu;
|
||||
this->addNodes(&miniKbMenu, "a", TFT_CYAN, NULL, 0, [this]() {
|
||||
this->changeMenu(miniKbMenu.parentMenu);
|
||||
});
|
||||
#if (!defined(HAS_ILI9341) && defined(HAS_BUTTONS))
|
||||
miniKbMenu.parentMenu = &wifiGeneralMenu;
|
||||
this->addNodes(&miniKbMenu, "a", TFT_CYAN, NULL, 0, [this]() {
|
||||
this->changeMenu(miniKbMenu.parentMenu);
|
||||
});
|
||||
#endif
|
||||
|
||||
htmlMenu.parentMenu = &wifiGeneralMenu;
|
||||
this->addNodes(&htmlMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
||||
@@ -1858,21 +1862,23 @@ void MenuFunctions::RunSetup()
|
||||
wifi_scan_obj.currentScanMode = WIFI_SCAN_OFF;
|
||||
this->changeMenu(whichUpdateMenu.parentMenu);
|
||||
});
|
||||
if (sd_obj.supported) addNodes(&whichUpdateMenu, text_table1[40], TFT_MAGENTA, NULL, SD_UPDATE, [this]() {
|
||||
wifi_scan_obj.currentScanMode = OTA_UPDATE;
|
||||
this->changeMenu(&confirmMenu);
|
||||
});
|
||||
#ifdef HAS_SD
|
||||
if (sd_obj.supported) addNodes(&whichUpdateMenu, text_table1[40], TFT_MAGENTA, NULL, SD_UPDATE, [this]() {
|
||||
wifi_scan_obj.currentScanMode = OTA_UPDATE;
|
||||
this->changeMenu(&confirmMenu);
|
||||
});
|
||||
|
||||
// Confirm SD update menu
|
||||
confirmMenu.parentMenu = &whichUpdateMenu;
|
||||
this->addNodes(&confirmMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
||||
this->changeMenu(confirmMenu.parentMenu);
|
||||
});
|
||||
this->addNodes(&confirmMenu, text14, TFT_ORANGE, NULL, UPDATE, [this]() {
|
||||
wifi_scan_obj.currentScanMode = OTA_UPDATE;
|
||||
this->changeMenu(&failedUpdateMenu);
|
||||
sd_obj.runUpdate();
|
||||
});
|
||||
// Confirm SD update menu
|
||||
confirmMenu.parentMenu = &whichUpdateMenu;
|
||||
this->addNodes(&confirmMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
||||
this->changeMenu(confirmMenu.parentMenu);
|
||||
});
|
||||
this->addNodes(&confirmMenu, text14, TFT_ORANGE, NULL, UPDATE, [this]() {
|
||||
wifi_scan_obj.currentScanMode = OTA_UPDATE;
|
||||
this->changeMenu(&failedUpdateMenu);
|
||||
sd_obj.runUpdate();
|
||||
});
|
||||
#endif
|
||||
|
||||
// Web Update
|
||||
updateMenu.parentMenu = &deviceMenu;
|
||||
@@ -1902,7 +1908,7 @@ void MenuFunctions::RunSetup()
|
||||
this->initTime = millis();
|
||||
}
|
||||
|
||||
#ifdef MARAUDER_MINI
|
||||
#if (!defined(HAS_ILI9341) && defined(HAS_BUTTONS))
|
||||
void MenuFunctions::miniKeyboard(Menu * targetMenu) {
|
||||
// Prepare a char array and reset temp SSID string
|
||||
extern LinkedList<ssid>* ssids;
|
||||
@@ -1926,8 +1932,8 @@ void MenuFunctions::RunSetup()
|
||||
#ifdef HAS_BUTTONS
|
||||
#if !(defined(MARAUDER_V6) || defined(MARAUDER_V6_1))
|
||||
while(true) {
|
||||
#ifndef MARAUDER_M5STICKC
|
||||
// Cycle char previous
|
||||
// Cycle char previous
|
||||
#ifdef HAS_L
|
||||
if (l_btn.justPressed()) {
|
||||
pressed = true;
|
||||
if (this->mini_kb_index > 0)
|
||||
@@ -1937,19 +1943,40 @@ void MenuFunctions::RunSetup()
|
||||
|
||||
targetMenu->list->set(0, MenuNode{String(char_array[this->mini_kb_index]).c_str(), false, TFT_CYAN, 0, NULL, true, NULL});
|
||||
this->buildButtons(targetMenu);
|
||||
//this->displayCurrentMenu();
|
||||
|
||||
while (!l_btn.justReleased())
|
||||
delay(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
// Add character
|
||||
// Cycle char next
|
||||
#ifdef HAS_R
|
||||
if (r_btn.justPressed()) {
|
||||
pressed = true;
|
||||
if (this->mini_kb_index < str_len - 2)
|
||||
this->mini_kb_index++;
|
||||
else
|
||||
this->mini_kb_index = 0;
|
||||
|
||||
targetMenu->list->set(0, MenuNode{String(char_array[this->mini_kb_index]).c_str(), false, TFT_CYAN, 0, NULL, true, NULL});
|
||||
this->buildButtons(targetMenu, 0, String(char_array[this->mini_kb_index]).c_str());
|
||||
while (!r_btn.justReleased())
|
||||
delay(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
//// 5-WAY SWITCH STUFF
|
||||
// Add character
|
||||
#if (defined(HAS_D) && defined(HAS_R))
|
||||
if (d_btn.justPressed()) {
|
||||
pressed = true;
|
||||
wifi_scan_obj.current_mini_kb_ssid.concat(String(char_array[this->mini_kb_index]).c_str());
|
||||
while (!d_btn.justReleased())
|
||||
delay(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
// Remove character
|
||||
// Remove character
|
||||
#if (defined(HAS_U) && defined(HAS_L))
|
||||
if (u_btn.justPressed()) {
|
||||
pressed = true;
|
||||
wifi_scan_obj.current_mini_kb_ssid.remove(wifi_scan_obj.current_mini_kb_ssid.length() - 1);
|
||||
@@ -1958,39 +1985,83 @@ void MenuFunctions::RunSetup()
|
||||
}
|
||||
#endif
|
||||
|
||||
// Cycle char next
|
||||
if (r_btn.justPressed()) {
|
||||
pressed = true;
|
||||
if (this->mini_kb_index < str_len - 2)
|
||||
this->mini_kb_index++;
|
||||
else
|
||||
this->mini_kb_index = 0;
|
||||
//// PARTIAL SWITCH STUFF
|
||||
// Advance char or add char
|
||||
#if (defined(HAS_D) && !defined(HAS_R))
|
||||
if (d_btn.justPressed()) {
|
||||
bool was_held = false;
|
||||
pressed = true;
|
||||
while(!d_btn.justReleased()) {
|
||||
d_btn.justPressed();
|
||||
|
||||
targetMenu->list->set(0, MenuNode{String(char_array[this->mini_kb_index]).c_str(), false, TFT_CYAN, 0, NULL, true, NULL});
|
||||
this->buildButtons(targetMenu, 0, String(char_array[this->mini_kb_index]).c_str());
|
||||
//this->displayCurrentMenu();
|
||||
}
|
||||
// Add letter to string
|
||||
if (d_btn.isHeld()) {
|
||||
wifi_scan_obj.current_mini_kb_ssid.concat(String(char_array[this->mini_kb_index]).c_str());
|
||||
was_held = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!was_held) {
|
||||
if (this->mini_kb_index < str_len - 2)
|
||||
this->mini_kb_index++;
|
||||
else
|
||||
this->mini_kb_index = 0;
|
||||
|
||||
targetMenu->list->set(0, MenuNode{String(char_array[this->mini_kb_index]).c_str(), false, TFT_CYAN, 0, NULL, true, NULL});
|
||||
this->buildButtons(targetMenu, 0, String(char_array[this->mini_kb_index]).c_str());
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// Prev char or remove char
|
||||
#if (defined(HAS_U) && !defined(HAS_L))
|
||||
if (u_btn.justPressed()) {
|
||||
bool was_held = false;
|
||||
pressed = true;
|
||||
while(!u_btn.justReleased()) {
|
||||
u_btn.justPressed();
|
||||
|
||||
// Remove letter from string
|
||||
if (u_btn.isHeld()) {
|
||||
wifi_scan_obj.current_mini_kb_ssid.remove(wifi_scan_obj.current_mini_kb_ssid.length() - 1);
|
||||
was_held = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!was_held) {
|
||||
if (this->mini_kb_index > 0)
|
||||
this->mini_kb_index--;
|
||||
else
|
||||
this->mini_kb_index = str_len - 2;
|
||||
|
||||
targetMenu->list->set(0, MenuNode{String(char_array[this->mini_kb_index]).c_str(), false, TFT_CYAN, 0, NULL, true, NULL});
|
||||
this->buildButtons(targetMenu);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// Add SSID
|
||||
if (c_btn.justPressed()) {
|
||||
while (!c_btn.justReleased()) {
|
||||
c_btn.justPressed(); // Need to continue updating button hold status. My shitty library.
|
||||
#ifdef HAS_C
|
||||
if (c_btn.justPressed()) {
|
||||
while (!c_btn.justReleased()) {
|
||||
c_btn.justPressed(); // Need to continue updating button hold status. My shitty library.
|
||||
|
||||
// Exit
|
||||
if (c_btn.isHeld()) {
|
||||
this->changeMenu(targetMenu->parentMenu);
|
||||
return;
|
||||
// Exit
|
||||
if (c_btn.isHeld()) {
|
||||
this->changeMenu(targetMenu->parentMenu);
|
||||
return;
|
||||
}
|
||||
delay(1);
|
||||
}
|
||||
// If we have a string, add it to list of SSIDs
|
||||
if (wifi_scan_obj.current_mini_kb_ssid != "") {
|
||||
pressed = true;
|
||||
ssid s = {wifi_scan_obj.current_mini_kb_ssid, random(1, 12), {random(256), random(256), random(256), random(256), random(256), random(256)}, false};
|
||||
ssids->unshift(s);
|
||||
wifi_scan_obj.current_mini_kb_ssid = "";
|
||||
}
|
||||
delay(1);
|
||||
}
|
||||
// If we have a string, add it to list of SSIDs
|
||||
if (wifi_scan_obj.current_mini_kb_ssid != "") {
|
||||
pressed = true;
|
||||
ssid s = {wifi_scan_obj.current_mini_kb_ssid, random(1, 12), {random(256), random(256), random(256), random(256), random(256), random(256)}, false};
|
||||
ssids->unshift(s);
|
||||
wifi_scan_obj.current_mini_kb_ssid = "";
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// Display info on screen
|
||||
if (pressed) {
|
||||
@@ -2006,10 +2077,8 @@ void MenuFunctions::RunSetup()
|
||||
display_obj.tft.println(ssids->get(0).essid);
|
||||
|
||||
display_obj.tft.setTextColor(TFT_ORANGE, TFT_BLACK);
|
||||
display_obj.tft.println("U - Remove Char");
|
||||
display_obj.tft.println("D - Add Char");
|
||||
display_obj.tft.println("L - Previous Char");
|
||||
display_obj.tft.println("R - Next Char");
|
||||
display_obj.tft.println("U/D - Rem/Add Char");
|
||||
display_obj.tft.println("L/R - Prev/Nxt Char");
|
||||
display_obj.tft.println("C - Save");
|
||||
display_obj.tft.println("C(Hold) - Exit");
|
||||
pressed = false;
|
||||
@@ -2086,7 +2155,6 @@ void MenuFunctions::buildButtons(Menu * menu, int starting_index, String button_
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void MenuFunctions::displayCurrentMenu(uint8_t start_index)
|
||||
{
|
||||
//Serial.println(F("Displaying current menu..."));
|
||||
@@ -2101,7 +2169,7 @@ void MenuFunctions::displayCurrentMenu(uint8_t start_index)
|
||||
display_obj.tft.setFreeFont(MENU_FONT);
|
||||
#endif
|
||||
|
||||
#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC)
|
||||
#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC) || defined(MARAUDER_REV_FEATHER)
|
||||
display_obj.tft.setFreeFont(NULL);
|
||||
display_obj.tft.setTextSize(1);
|
||||
#endif
|
||||
@@ -2124,7 +2192,7 @@ void MenuFunctions::displayCurrentMenu(uint8_t start_index)
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC)
|
||||
#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC) || defined(MARAUDER_REV_FEATHER)
|
||||
if ((current_menu->selected == i) || (current_menu->list->get(i).selected))
|
||||
display_obj.key[i - start_index].drawButton(true, current_menu->list->get(i).name);
|
||||
else
|
||||
|
||||
@@ -15,12 +15,12 @@
|
||||
#include "settings.h"
|
||||
|
||||
#ifdef HAS_BUTTONS
|
||||
#include <SwitchLib.h>
|
||||
extern SwitchLib u_btn;
|
||||
extern SwitchLib d_btn;
|
||||
extern SwitchLib l_btn;
|
||||
extern SwitchLib r_btn;
|
||||
extern SwitchLib c_btn;
|
||||
#include "Switches.h"
|
||||
extern Switches u_btn;
|
||||
extern Switches d_btn;
|
||||
extern Switches l_btn;
|
||||
extern Switches r_btn;
|
||||
extern Switches c_btn;
|
||||
#endif
|
||||
|
||||
extern WiFiScan wifi_scan_obj;
|
||||
@@ -174,7 +174,7 @@ class MenuFunctions
|
||||
void displaySetting(String key, Menu* menu, int index);
|
||||
void buttonSelected(uint8_t b, int8_t x = -1);
|
||||
void buttonNotSelected(uint8_t b, int8_t x = -1);
|
||||
#ifdef MARAUDER_MINI
|
||||
#if (!defined(HAS_ILI9341) && defined(HAS_BUTTONS))
|
||||
void miniKeyboard(Menu * targetMenu);
|
||||
#endif
|
||||
|
||||
|
||||
98
esp32_marauder/Switches.cpp
Normal file
98
esp32_marauder/Switches.cpp
Normal file
@@ -0,0 +1,98 @@
|
||||
#include "Switches.h"
|
||||
|
||||
Switches::Switches() {
|
||||
this->pin = 0;
|
||||
this->pin = false;
|
||||
this->pressed = false;
|
||||
this->hold_lim = 2000;
|
||||
this->cur_hold = 0;
|
||||
this->isheld = false;
|
||||
|
||||
pinMode(this->pin, INPUT);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
Switches::Switches(int pin, uint32_t hold_lim, bool pullup) {
|
||||
this->pin = pin;
|
||||
this->pullup = pullup;
|
||||
this->pressed = false;
|
||||
this->hold_lim = hold_lim;
|
||||
this->cur_hold = 0;
|
||||
this->isheld = false;
|
||||
|
||||
if (pullup)
|
||||
pinMode(this->pin, INPUT_PULLUP);
|
||||
else
|
||||
pinMode(this->pin, INPUT_PULLDOWN);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
int Switches::getPin() {
|
||||
return this->pin;
|
||||
}
|
||||
|
||||
bool Switches::getPullup() {
|
||||
return this->pullup;
|
||||
}
|
||||
|
||||
bool Switches::isHeld() {
|
||||
return this->isheld;
|
||||
}
|
||||
|
||||
bool Switches::getButtonState() {
|
||||
int buttonState = digitalRead(this->pin);
|
||||
|
||||
if ((this->pullup) && (buttonState == LOW))
|
||||
return true;
|
||||
else if ((!this->pullup) && (buttonState == HIGH))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Switches::justPressed() {
|
||||
bool btn_state = this->getButtonState();
|
||||
|
||||
// Button was JUST pressed
|
||||
if (btn_state && !this->pressed) {
|
||||
this->hold_init = millis();
|
||||
this->pressed = btn_state;
|
||||
return true;
|
||||
}
|
||||
else if (btn_state) { // Button is STILL pressed
|
||||
// Check if button is held
|
||||
//Serial.println("cur_hold: " + (String)this->cur_hold);
|
||||
if ((millis() - this->hold_init) < this->hold_lim) {
|
||||
this->isheld = false;
|
||||
}
|
||||
else {
|
||||
this->isheld = true;
|
||||
}
|
||||
|
||||
this->pressed = btn_state;
|
||||
return false;
|
||||
}
|
||||
else { // Button is not pressed
|
||||
this->pressed = btn_state;
|
||||
this->isheld = false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool Switches::justReleased() {
|
||||
bool btn_state = this->getButtonState();
|
||||
|
||||
// Button was JUST released
|
||||
if (!btn_state && this->pressed) {
|
||||
this->isheld = false;
|
||||
this->pressed = btn_state;
|
||||
return true;
|
||||
}
|
||||
else { // Button is STILL released
|
||||
this->pressed = btn_state;
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
35
esp32_marauder/Switches.h
Normal file
35
esp32_marauder/Switches.h
Normal file
@@ -0,0 +1,35 @@
|
||||
#ifndef Switches_h
|
||||
#define Switches_h
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
class Switches {
|
||||
private:
|
||||
int pin;
|
||||
uint32_t hold_lim;
|
||||
uint32_t cur_hold;
|
||||
|
||||
uint32_t hold_init = millis();
|
||||
|
||||
bool isheld;
|
||||
|
||||
bool pullup;
|
||||
|
||||
bool pressed;
|
||||
|
||||
bool getButtonState();
|
||||
|
||||
public:
|
||||
Switches();
|
||||
|
||||
Switches(int pin, uint32_t hold_lim, bool pullup);
|
||||
|
||||
int getPin();
|
||||
bool getPullup();
|
||||
|
||||
bool justPressed();
|
||||
bool justReleased();
|
||||
bool isHeld();
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1058,7 +1058,9 @@ void WiFiScan::RunAPScan(uint8_t scan_mode, uint16_t color)
|
||||
uint16_t calData[5] = { 213, 3469, 320, 3446, 1 }; // Landscape TFT DIY
|
||||
Serial.println("Using TFT DIY");
|
||||
#endif
|
||||
display_obj.tft.setTouch(calData);
|
||||
#ifdef HAS_ILI9341
|
||||
display_obj.tft.setTouch(calData);
|
||||
#endif
|
||||
|
||||
|
||||
lv_obj_t * scr = lv_cont_create(NULL, NULL);
|
||||
@@ -4035,7 +4037,9 @@ void WiFiScan::activeEapolSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t
|
||||
uint16_t t_x = 0, t_y = 0; // To store the touch coordinates
|
||||
|
||||
// Do the touch stuff
|
||||
pressed = display_obj.tft.getTouch(&t_x, &t_y);
|
||||
#ifdef HAS_ILI9341
|
||||
pressed = display_obj.tft.getTouch(&t_x, &t_y);
|
||||
#endif
|
||||
|
||||
if (pressed) {
|
||||
Serial.print("Got touch | X: ");
|
||||
@@ -4186,7 +4190,9 @@ void WiFiScan::activeEapolSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t
|
||||
uint16_t t_x = 0, t_y = 0; // To store the touch coordinates
|
||||
|
||||
// Do the touch stuff
|
||||
pressed = display_obj.tft.getTouch(&t_x, &t_y);
|
||||
#ifdef HAS_ILI9341
|
||||
pressed = display_obj.tft.getTouch(&t_x, &t_y);
|
||||
#endif
|
||||
|
||||
if (pressed) {
|
||||
Serial.print("Got touch | X: ");
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
//// BOARD TARGETS
|
||||
//#define MARAUDER_M5STICKC
|
||||
#define MARAUDER_MINI
|
||||
//#define MARAUDER_MINI
|
||||
//#define MARAUDER_V4
|
||||
//#define MARAUDER_V6
|
||||
//#define MARAUDER_V6_1
|
||||
@@ -18,6 +18,7 @@
|
||||
//#define ESP32_LDDB
|
||||
//#define MARAUDER_DEV_BOARD_PRO
|
||||
//#define XIAO_ESP32_S3
|
||||
#define MARAUDER_REV_FEATHER
|
||||
//// END BOARD TARGETS
|
||||
|
||||
#define MARAUDER_VERSION "v0.13.9"
|
||||
@@ -27,6 +28,8 @@
|
||||
#define HARDWARE_NAME "M5Stick-C Plus"
|
||||
#elif defined(MARAUDER_MINI)
|
||||
#define HARDWARE_NAME "Marauder Mini"
|
||||
#elif defined(MARAUDER_REV_FEATHER)
|
||||
#define HARDWARE_NAME "Adafruit Feather ESP32-S2 Reverse TFT"
|
||||
#elif defined(MARAUDER_V4)
|
||||
#define HARDWARE_NAME "Marauder v4"
|
||||
#elif defined(MARAUDER_V6)
|
||||
@@ -78,6 +81,20 @@
|
||||
#define HAS_GPS
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_REV_FEATHER
|
||||
//#define FLIPPER_ZERO_HAT
|
||||
//#define HAS_BATTERY
|
||||
//#define HAS_BT
|
||||
#define HAS_BUTTONS
|
||||
#define HAS_NEOPIXEL_LED
|
||||
//#define HAS_PWR_MGMT
|
||||
#define HAS_SCREEN
|
||||
#define HAS_SD
|
||||
#define USE_SD
|
||||
#define HAS_TEMP_SENSOR
|
||||
//#define HAS_GPS
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_V4
|
||||
//#define FLIPPER_ZERO_HAT
|
||||
#define HAS_BATTERY
|
||||
@@ -201,12 +218,44 @@
|
||||
//// BUTTON DEFINITIONS
|
||||
#ifdef HAS_BUTTONS
|
||||
|
||||
#ifdef MARAUDER_REV_FEATHER
|
||||
#define L_BTN -1
|
||||
#define C_BTN 1
|
||||
#define U_BTN 0
|
||||
#define R_BTN -1
|
||||
#define D_BTN 2
|
||||
|
||||
//#define HAS_L
|
||||
//#define HAS_R
|
||||
#define HAS_U
|
||||
#define HAS_D
|
||||
#define HAS_C
|
||||
|
||||
#define L_PULL true
|
||||
#define C_PULL false
|
||||
#define U_PULL true
|
||||
#define R_PULL true
|
||||
#define D_PULL false
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_MINI
|
||||
#define L_BTN 13
|
||||
#define C_BTN 34
|
||||
#define U_BTN 36
|
||||
#define R_BTN 39
|
||||
#define D_BTN 35
|
||||
|
||||
#define HAS_L
|
||||
#define HAS_R
|
||||
#define HAS_U
|
||||
#define HAS_D
|
||||
#define HAS_C
|
||||
|
||||
#define L_PULL true
|
||||
#define C_PULL true
|
||||
#define U_PULL true
|
||||
#define R_PULL true
|
||||
#define D_PULL true
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_M5STICKC
|
||||
@@ -215,6 +264,18 @@
|
||||
#define U_BTN -1
|
||||
#define R_BTN -1
|
||||
#define D_BTN 39
|
||||
|
||||
//#define HAS_L
|
||||
//#define HAS_R
|
||||
//#define HAS_U
|
||||
#define HAS_D
|
||||
#define HAS_C
|
||||
|
||||
#define L_PULL true
|
||||
#define C_PULL true
|
||||
#define U_PULL true
|
||||
#define R_PULL true
|
||||
#define D_PULL true
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_V6
|
||||
@@ -223,6 +284,18 @@
|
||||
#define U_BTN -1
|
||||
#define R_BTN -1
|
||||
#define D_BTN -1
|
||||
|
||||
//#define HAS_L
|
||||
//#define HAS_R
|
||||
//#define HAS_U
|
||||
//#define HAS_D
|
||||
#define HAS_C
|
||||
|
||||
#define L_PULL true
|
||||
#define C_PULL true
|
||||
#define U_PULL true
|
||||
#define R_PULL true
|
||||
#define D_PULL true
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_V6_1
|
||||
@@ -231,6 +304,18 @@
|
||||
#define U_BTN -1
|
||||
#define R_BTN -1
|
||||
#define D_BTN -1
|
||||
|
||||
//#define HAS_L
|
||||
//#define HAS_R
|
||||
//#define HAS_U
|
||||
//#define HAS_D
|
||||
#define HAS_C
|
||||
|
||||
#define L_PULL true
|
||||
#define C_PULL true
|
||||
#define U_PULL true
|
||||
#define R_PULL true
|
||||
#define D_PULL true
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -548,6 +633,73 @@
|
||||
#define STATUSBAR_COLOR 0x4A49
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_REV_FEATHER
|
||||
#define SCREEN_CHAR_WIDTH 40
|
||||
//#define TFT_MISO 37
|
||||
//#define TFT_MOSI 35
|
||||
//#define TFT_SCLK 36
|
||||
#define TFT_CS 42
|
||||
#define TFT_DC 40
|
||||
#define TFT_RST 41
|
||||
#define TFT_BL 45
|
||||
//#define TOUCH_CS 21
|
||||
#define SD_CS 4
|
||||
|
||||
#define SCREEN_BUFFER
|
||||
|
||||
#define MAX_SCREEN_BUFFER 9
|
||||
|
||||
#define BANNER_TEXT_SIZE 1
|
||||
|
||||
#ifndef TFT_WIDTH
|
||||
#define TFT_WIDTH 240
|
||||
#endif
|
||||
|
||||
#ifndef TFT_HEIGHT
|
||||
#define TFT_HEIGHT 135
|
||||
#endif
|
||||
|
||||
#define CHAR_WIDTH 6
|
||||
#define SCREEN_WIDTH TFT_WIDTH // Originally 240
|
||||
#define SCREEN_HEIGHT TFT_HEIGHT // Originally 320
|
||||
#define HEIGHT_1 TFT_WIDTH
|
||||
#define WIDTH_1 TFT_WIDTH
|
||||
#define STANDARD_FONT_CHAR_LIMIT (TFT_WIDTH/6) // number of characters on a single line with normal font
|
||||
#define TEXT_HEIGHT (TFT_HEIGHT/10) // Height of text to be printed and scrolled
|
||||
#define BOT_FIXED_AREA 0 // Number of lines in bottom fixed area (lines counted from bottom of screen)
|
||||
#define TOP_FIXED_AREA 48 // Number of lines in top fixed area (lines counted from top of screen)
|
||||
#define YMAX TFT_HEIGHT // Bottom of screen area
|
||||
#define minimum(a,b) (((a) < (b)) ? (a) : (b))
|
||||
//#define MENU_FONT NULL
|
||||
#define MENU_FONT &FreeMono9pt7b // Winner
|
||||
//#define MENU_FONT &FreeMonoBold9pt7b
|
||||
//#define MENU_FONT &FreeSans9pt7b
|
||||
//#define MENU_FONT &FreeSansBold9pt7b
|
||||
#define BUTTON_SCREEN_LIMIT 5
|
||||
#define BUTTON_ARRAY_LEN 13
|
||||
#define STATUS_BAR_WIDTH (TFT_HEIGHT/16)
|
||||
#define LVGL_TICK_PERIOD 6
|
||||
|
||||
#define FRAME_X 100
|
||||
#define FRAME_Y 64
|
||||
#define FRAME_W 120
|
||||
#define FRAME_H 50
|
||||
|
||||
// Red zone size
|
||||
#define REDBUTTON_X FRAME_X
|
||||
#define REDBUTTON_Y FRAME_Y
|
||||
#define REDBUTTON_W (FRAME_W/2)
|
||||
#define REDBUTTON_H FRAME_H
|
||||
|
||||
// Green zone size
|
||||
#define GREENBUTTON_X (REDBUTTON_X + REDBUTTON_W)
|
||||
#define GREENBUTTON_Y FRAME_Y
|
||||
#define GREENBUTTON_W (FRAME_W/2)
|
||||
#define GREENBUTTON_H FRAME_H
|
||||
|
||||
#define STATUSBAR_COLOR 0x4A49
|
||||
#endif
|
||||
|
||||
#endif
|
||||
//// END DISPLAY DEFINITIONS
|
||||
|
||||
@@ -627,6 +779,24 @@
|
||||
#define BUTTON_PADDING 10
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_REV_FEATHER
|
||||
#define BANNER_TIME 50
|
||||
|
||||
#define COMMAND_PREFIX "!"
|
||||
|
||||
// Keypad start position, key sizes and spacing
|
||||
#define KEY_X (TFT_WIDTH/2) // Centre of key
|
||||
#define KEY_Y (TFT_HEIGHT/4.5)
|
||||
#define KEY_W TFT_WIDTH // Width and height
|
||||
#define KEY_H (TFT_HEIGHT/12.8)
|
||||
#define KEY_SPACING_X 0 // X and Y gap
|
||||
#define KEY_SPACING_Y 1
|
||||
#define KEY_TEXTSIZE 1 // Font size multiplier
|
||||
#define ICON_W 22
|
||||
#define ICON_H 22
|
||||
#define BUTTON_PADDING 10
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_M5STICKC
|
||||
#define BANNER_TIME 50
|
||||
|
||||
@@ -669,6 +839,10 @@
|
||||
#define SD_CS 4
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_REV_FEATHER
|
||||
#define SD_CS 5
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_M5STICKC
|
||||
#define SD_CS -1
|
||||
#endif
|
||||
@@ -724,6 +898,8 @@
|
||||
#define MEM_LOWER_LIM 20000
|
||||
#elif defined(MARAUDER_MINI)
|
||||
#define MEM_LOWER_LIM 20000
|
||||
#elif defined(MARAUDER_REV_FEATHER)
|
||||
#define MEM_LOWER_LIM 20000
|
||||
#elif defined(MARAUDER_V4)
|
||||
#define MEM_LOWER_LIM 20000
|
||||
#elif defined(MARAUDER_V6) || defined(MARAUDER_V6_1)
|
||||
@@ -750,6 +926,8 @@
|
||||
#define PIN 17
|
||||
#elif defined(MARAUDER_DEV_BOARD_PRO)
|
||||
#define PIN 16
|
||||
#elif defined(MARAUDER_REV_FEATHER)
|
||||
#define PIN 33
|
||||
#else
|
||||
#define PIN 25
|
||||
#endif
|
||||
@@ -762,6 +940,8 @@
|
||||
#define MAX_HTML_SIZE 11400
|
||||
#elif defined(MARAUDER_MINI)
|
||||
#define MAX_HTML_SIZE 11400
|
||||
#elif defined(MARAUDER_REV_FEATHER)
|
||||
#define MAX_HTML_SIZE 11400
|
||||
#elif defined(MARAUDER_V4)
|
||||
#define MAX_HTML_SIZE 11400
|
||||
#elif defined(MARAUDER_V6) || defined(MARAUDER_V6_1)
|
||||
@@ -835,6 +1015,8 @@
|
||||
#define MARAUDER_TITLE_BYTES 13578
|
||||
#elif defined(MARAUDER_MINI)
|
||||
#define MARAUDER_TITLE_BYTES 13578
|
||||
#elif defined(MARAUDER_REV_FEATHER)
|
||||
#define MARAUDER_TITLE_BYTES 13578
|
||||
#else
|
||||
#define MARAUDER_TITLE_BYTES 13578
|
||||
#endif
|
||||
|
||||
@@ -41,7 +41,7 @@ https://www.online-utility.org/image/convert/to/XBM
|
||||
#include "xiaoLED.h"
|
||||
#elif defined(MARAUDER_M5STICKC)
|
||||
#include "stickcLED.h"
|
||||
#else
|
||||
#elif defined(HAS_NEOPIXEL_LED)
|
||||
#include "LedInterface.h"
|
||||
#endif
|
||||
|
||||
@@ -65,22 +65,22 @@ https://www.online-utility.org/image/convert/to/XBM
|
||||
#endif
|
||||
|
||||
#ifdef HAS_BUTTONS
|
||||
#include <SwitchLib.h>
|
||||
#include "Switches.h"
|
||||
|
||||
#if (U_BTN >= 0)
|
||||
SwitchLib u_btn = SwitchLib(U_BTN, 1000, true);
|
||||
Switches u_btn = Switches(U_BTN, 1000, U_PULL);
|
||||
#endif
|
||||
#if (D_BTN >= 0)
|
||||
SwitchLib d_btn = SwitchLib(D_BTN, 1000, true);
|
||||
Switches d_btn = Switches(D_BTN, 1000, D_PULL);
|
||||
#endif
|
||||
#if (L_BTN >= 0)
|
||||
SwitchLib l_btn = SwitchLib(L_BTN, 1000, true);
|
||||
Switches l_btn = Switches(L_BTN, 1000, L_PULL);
|
||||
#endif
|
||||
#if (R_BTN >= 0)
|
||||
SwitchLib r_btn = SwitchLib(R_BTN, 1000, true);
|
||||
Switches r_btn = Switches(R_BTN, 1000, R_PULL);
|
||||
#endif
|
||||
#if (C_BTN >= 0)
|
||||
SwitchLib c_btn = SwitchLib(C_BTN, 1000, true);
|
||||
Switches c_btn = Switches(C_BTN, 1000, C_PULL);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user