Add support for Adafruit Reverse Feather ESP32-S2

This commit is contained in:
Just Call Me Koko
2024-02-22 23:54:03 -05:00
parent 58c93ed401
commit 5bd4b647b5
14 changed files with 666 additions and 135 deletions

View File

@@ -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'

View File

@@ -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

View File

@@ -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

View 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

View File

@@ -0,0 +1,8 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
"version": "0.2.0",
"configurations": [
]
}

View File

@@ -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()

View File

@@ -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

View File

@@ -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

View File

@@ -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

View 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
View 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

View File

@@ -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: ");

View File

@@ -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

View File

@@ -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