Add XIAO-ESP32-S3 Board Support (WIP)

looking to cleanup certain things with config to allow easier customization of the build when used with the flipper zero
This commit is contained in:
tracedgod
2023-06-09 18:50:56 -04:00
parent 50eb2b0da6
commit f3349766ed
7 changed files with 100 additions and 11 deletions

View File

@@ -5,7 +5,7 @@ BatteryInterface::BatteryInterface() {
}
void BatteryInterface::main(uint32_t currentTime) {
#ifndef MARAUDER_FLIPPER
#ifndef MARAUDER_FLIPPER || XIAO_ESP32_S3
if (currentTime != 0) {
if (currentTime - initTime >= 3000) {
//Serial.println("Checking Battery Level");
@@ -22,14 +22,14 @@ void BatteryInterface::main(uint32_t currentTime) {
}
void BatteryInterface::RunSetup() {
#ifndef MARAUDER_FLIPPER
#ifndef MARAUDER_FLIPPER || XIAO_ESP32_S3
Wire.begin(I2C_SDA, I2C_SCL);
this->initTime = millis();
#endif
}
int8_t BatteryInterface::getBatteryLevel() {
#ifndef MARAUDER_FLIPPER
#ifndef MARAUDER_FLIPPER || XIAO_ESP32_S3
Wire.beginTransmission(IP5306_ADDR);
Wire.write(0x78);
if (Wire.endTransmission(false) == 0 &&

View File

@@ -5,7 +5,7 @@
#include "configs.h"
#ifndef MARAUDER_FLIPPER
#ifndef MARAUDER_FLIPPER || XIAO_ESP32_S3
#include <Wire.h>
#endif

View File

@@ -19,7 +19,7 @@ void TemperatureInterface::RunSetup() {
}
uint8_t TemperatureInterface::getCurrentTemp() {
#ifndef MARAUDER_FLIPPER
#ifndef MARAUDER_FLIPPER || XIAO_ESP32_S3
return ((temprature_sens_read() - 32) / 1.8);
#endif
return 0;

View File

@@ -17,6 +17,7 @@
#define MARAUDER_FLIPPER
//#define ESP32_LDDB
//#define MARAUDER_DEV_BOARD_PRO
//#define XIAO_ESP32_S3
#define MARAUDER_VERSION "v0.10.7"
@@ -478,6 +479,13 @@
#ifdef MARAUDER_DEV_BOARD_PRO
#define SD_CS 4
#endif
#ifdef XIAO_ESP32_S3
#define SD_CS 3
// Override RX1+TX1 pins
#define XIAO_RX1 1
#define XIAO_TX1 2
#endif
//// END SD DEFINITIONS
//// SCREEN STUFF
@@ -513,6 +521,10 @@
#define HAS_BT
#endif
#ifdef XIAO_ESP32_S3
#define HAS_BT
#endif
#ifndef HAS_SCREEN
#define TFT_WHITE 0
#define TFT_CYAN 0

View File

@@ -35,6 +35,7 @@ https://www.online-utility.org/image/convert/to/XBM
#include "CommandLine.h"
#include "lang_var.h"
#include "flipperLED.h"
#include "xiaoLED.h"
#ifdef HAS_SCREEN
#include "Display.h"
@@ -74,6 +75,7 @@ EspInterface esp_obj;
Settings settings_obj;
CommandLine cli_obj;
flipperLED flipper_led;
xiaoLED xiao_led;
#ifdef HAS_SCREEN
Display display_obj;
@@ -214,6 +216,10 @@ void setup()
flipper_led.RunSetup();
#endif
#ifdef XIAO_ESP32_S3
xiao_led.runSetup();
#endif
//Serial.println("This is a test Channel: " + (String)settings_obj.loadSetting<uint8_t>("Channel"));
//if (settings_obj.loadSetting<bool>( "Force PMKID"))
// Serial.println("This is a test Force PMKID: true");
@@ -253,7 +259,7 @@ void setup()
#endif
// Temperature stuff
#ifndef MARAUDER_FLIPPER
#ifndef MARAUDER_FLIPPER || XIAO_ESP32_S3
temp_obj.RunSetup();
#endif
@@ -261,7 +267,7 @@ void setup()
display_obj.tft.println(F(text_table0[6]));
#endif
#ifndef MARAUDER_FLIPPER
#ifndef MARAUDER_FLIPPER || XIAO_ESP32_S3
battery_obj.battery_level = battery_obj.getBatteryLevel();
// if (battery_obj.i2c_supported) {
@@ -272,7 +278,7 @@ void setup()
#endif
// Do some LED stuff
#ifndef MARAUDER_FLIPPER
#ifndef MARAUDER_FLIPPER || XIAO_ESP32_S3
led_obj.RunSetup();
#endif
@@ -335,7 +341,7 @@ void loop()
sd_obj.main();
#endif
#ifndef MARAUDER_FLIPPER
#ifndef MARAUDER_FLIPPER || XIAO_ESP32_S3
battery_obj.main(currentTime);
temp_obj.main(currentTime);
#endif
@@ -347,7 +353,7 @@ void loop()
#endif
//cli_obj.main(currentTime);
}
#ifndef MARAUDER_FLIPPER
#ifndef MARAUDER_FLIPPER || XIAO_ESP32_S3
led_obj.main(currentTime);
#endif
if (wifi_scan_obj.currentScanMode == OTA_UPDATE)
@@ -370,7 +376,7 @@ void loop()
display_obj.main(wifi_scan_obj.currentScanMode);
menu_function_obj.main(currentTime);
#endif
#ifndef MARAUDER_FLIPPER
#ifndef MARAUDER_FLIPPER || XIAO_ESP32_S3
led_obj.main(currentTime);
#endif
//cli_obj.main(currentTime);

View File

@@ -0,0 +1,47 @@
#include "xiaoLED.h"
void xiaoLED::RunSetup() {
pinMode(XIAO_LED_PIN, OUTPUT);
if (!settings_obj.loadSetting<bool>("EnableLED")) {
digitalWrite(XIAO_LED_PIN, HIGH);
return;
}
delay(50);
digitalWrite(XIAO_LED_PIN, LOW);
delay(500);
digitalWrite(XIAO_LED_PIN, HIGH);
digitalWrite(XIAO_LED_PIN, LOW);
delay(500);
digitalWrite(XIAO_LED_PIN, HIGH);
digitalWrite(XIAO_LED_PIN, LOW);
delay(500);
digitalWrite(XIAO_LED_PIN, HIGH);
}
void xiaoLED::attackLED() {
if (!settings_obj.loadSetting<bool>("EnableLED"))
return;
digitalWrite(XIAO_LED_PIN, HIGH);
delay(10);
digitalWrite(XIAO_LED_PIN, LOW);
}
void xiaoLED::sniffLED() {
if (!settings_obj.loadSetting<bool>("EnableLED"))
return;
digitalWrite(XIAO_LED_PIN, HIGH);
delay(10);
digitalWrite(XIAO_LED_PIN, LOW);
}
void xiaoLED::offLED() {
if (!settings_obj.loadSetting<bool>("EnableLED"))
return;
digitalWrite(XIAO_LED_PIN, HIGH);
}

24
esp32_marauder/xiaoLED.h Normal file
View File

@@ -0,0 +1,24 @@
#ifndef xiaoLED_H
#define xiaoLED_H
#include "configs.h"
#include "settings.h"
#include <Arduino.h>
#ifdef XIAO_ESP32_S3
#define XIAO_LED_PIN 21
#endif
extern Settings settings_obj;
class xiaoLED {
public:
void RunSetup();
void attackLED();
void sniffLED();
void offLED();
};
#endif /* xiaoLED_H */