Add Axiometa GENESIS One (ESP32-S3) board support (#12122)

* Added Genesis One

added Axiometa GENESIS One Board support.

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
This commit is contained in:
Povilas Dumcius
2025-12-10 23:34:58 +02:00
committed by GitHub
parent a328c98e6c
commit b2ae61e842
2 changed files with 339 additions and 0 deletions

View File

@@ -53295,6 +53295,239 @@ axiometa_pixie_m1.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api.zczr -lzbo
##############################################################
# Axiometa Genesis One - Based on ESP32-S3-WROOM-1-N8R2
# 8MB Quad SPI Flash, 2MB Quad SPI PSRAM
axiometa_genesis_one.name=Axiometa Genesis One
axiometa_genesis_one.bootloader.tool=esptool_py
axiometa_genesis_one.bootloader.tool.default=esptool_py
axiometa_genesis_one.upload.tool=esptool_py
axiometa_genesis_one.upload.tool.default=esptool_py
axiometa_genesis_one.upload.tool.network=esp_ota
axiometa_genesis_one.upload.maximum_size=1310720
axiometa_genesis_one.upload.maximum_data_size=327680
axiometa_genesis_one.upload.flags=
axiometa_genesis_one.upload.extra_flags=
axiometa_genesis_one.upload.use_1200bps_touch=false
axiometa_genesis_one.upload.wait_for_upload_port=false
axiometa_genesis_one.serial.disableDTR=false
axiometa_genesis_one.serial.disableRTS=false
axiometa_genesis_one.build.tarch=xtensa
axiometa_genesis_one.build.bootloader_addr=0x0
axiometa_genesis_one.build.target=esp32s3
axiometa_genesis_one.build.mcu=esp32s3
axiometa_genesis_one.build.core=esp32
axiometa_genesis_one.build.variant=axiometa_genesis_one
axiometa_genesis_one.build.board=AXIOMETA_GENESIS_ONE
# Hardware Configuration (ESP32-S3-WROOM-1-N8R2)
axiometa_genesis_one.build.usb_mode=1
axiometa_genesis_one.build.cdc_on_boot=1
axiometa_genesis_one.build.msc_on_boot=0
axiometa_genesis_one.build.dfu_on_boot=0
axiometa_genesis_one.build.f_cpu=240000000L
axiometa_genesis_one.build.flash_size=8MB
axiometa_genesis_one.build.flash_freq=80m
axiometa_genesis_one.build.flash_mode=dio
axiometa_genesis_one.build.boot=qio
axiometa_genesis_one.build.boot_freq=80m
axiometa_genesis_one.build.partitions=default_8MB
axiometa_genesis_one.build.defines=-DBOARD_HAS_PSRAM
axiometa_genesis_one.build.loop_core=
axiometa_genesis_one.build.event_core=
axiometa_genesis_one.build.psram_type=qspi
axiometa_genesis_one.build.memory_type={build.boot}_{build.psram_type}
## JTAG Adapter - N8R2 Compatible
axiometa_genesis_one.menu.JTAGAdapter.default=Disabled
axiometa_genesis_one.menu.JTAGAdapter.default.build.copy_jtag_files=0
axiometa_genesis_one.menu.JTAGAdapter.builtin=Integrated USB JTAG
axiometa_genesis_one.menu.JTAGAdapter.builtin.build.openocdscript=esp32s3-builtin.cfg
axiometa_genesis_one.menu.JTAGAdapter.builtin.build.copy_jtag_files=1
axiometa_genesis_one.menu.JTAGAdapter.external=FTDI Adapter
axiometa_genesis_one.menu.JTAGAdapter.external.build.openocdscript=esp32s3-ftdi.cfg
axiometa_genesis_one.menu.JTAGAdapter.external.build.copy_jtag_files=1
axiometa_genesis_one.menu.JTAGAdapter.bridge=ESP USB Bridge
axiometa_genesis_one.menu.JTAGAdapter.bridge.build.openocdscript=esp32s3-bridge.cfg
axiometa_genesis_one.menu.JTAGAdapter.bridge.build.copy_jtag_files=1
## PSRAM - N8R2 has 2MB QSPI PSRAM
axiometa_genesis_one.menu.PSRAM.enabled=QSPI PSRAM (Enabled)
axiometa_genesis_one.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM
axiometa_genesis_one.menu.PSRAM.enabled.build.psram_type=qspi
axiometa_genesis_one.menu.PSRAM.disabled=Disabled
axiometa_genesis_one.menu.PSRAM.disabled.build.defines=
axiometa_genesis_one.menu.PSRAM.disabled.build.psram_type=qspi
## Flash Mode - N8R2 Compatible (QSPI Flash)
axiometa_genesis_one.menu.FlashMode.qio=QIO 80MHz
axiometa_genesis_one.menu.FlashMode.qio.build.flash_mode=dio
axiometa_genesis_one.menu.FlashMode.qio.build.boot=qio
axiometa_genesis_one.menu.FlashMode.qio.build.boot_freq=80m
axiometa_genesis_one.menu.FlashMode.qio.build.flash_freq=80m
axiometa_genesis_one.menu.FlashMode.qio120=QIO 120MHz
axiometa_genesis_one.menu.FlashMode.qio120.build.flash_mode=dio
axiometa_genesis_one.menu.FlashMode.qio120.build.boot=qio
axiometa_genesis_one.menu.FlashMode.qio120.build.boot_freq=120m
axiometa_genesis_one.menu.FlashMode.qio120.build.flash_freq=80m
axiometa_genesis_one.menu.FlashMode.dio=DIO 80MHz
axiometa_genesis_one.menu.FlashMode.dio.build.flash_mode=dio
axiometa_genesis_one.menu.FlashMode.dio.build.boot=dio
axiometa_genesis_one.menu.FlashMode.dio.build.boot_freq=80m
axiometa_genesis_one.menu.FlashMode.dio.build.flash_freq=80m
## CPU Core Assignment
axiometa_genesis_one.menu.LoopCore.1=Core 1
axiometa_genesis_one.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
axiometa_genesis_one.menu.LoopCore.0=Core 0
axiometa_genesis_one.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0
axiometa_genesis_one.menu.EventsCore.1=Core 1
axiometa_genesis_one.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
axiometa_genesis_one.menu.EventsCore.0=Core 0
axiometa_genesis_one.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0
## USB Mode - Both modes work on N8R2
axiometa_genesis_one.menu.USBMode.hwcdc=Hardware CDC and JTAG
axiometa_genesis_one.menu.USBMode.hwcdc.build.usb_mode=1
axiometa_genesis_one.menu.USBMode.default=USB-OTG (TinyUSB)
axiometa_genesis_one.menu.USBMode.default.build.usb_mode=0
## CDC On Boot
axiometa_genesis_one.menu.CDCOnBoot.cdc=Enabled
axiometa_genesis_one.menu.CDCOnBoot.cdc.build.cdc_on_boot=1
axiometa_genesis_one.menu.CDCOnBoot.default=Disabled
axiometa_genesis_one.menu.CDCOnBoot.default.build.cdc_on_boot=0
## MSC On Boot (Only works with USB-OTG mode)
axiometa_genesis_one.menu.MSCOnBoot.default=Disabled
axiometa_genesis_one.menu.MSCOnBoot.default.build.msc_on_boot=0
axiometa_genesis_one.menu.MSCOnBoot.msc=Enabled (Requires USB-OTG Mode)
axiometa_genesis_one.menu.MSCOnBoot.msc.build.msc_on_boot=1
## DFU On Boot (Only works with USB-OTG mode)
axiometa_genesis_one.menu.DFUOnBoot.default=Disabled
axiometa_genesis_one.menu.DFUOnBoot.default.build.dfu_on_boot=0
axiometa_genesis_one.menu.DFUOnBoot.dfu=Enabled (Requires USB-OTG Mode)
axiometa_genesis_one.menu.DFUOnBoot.dfu.build.dfu_on_boot=1
## Upload Mode
axiometa_genesis_one.menu.UploadMode.default=UART0 / Hardware CDC
axiometa_genesis_one.menu.UploadMode.default.upload.use_1200bps_touch=false
axiometa_genesis_one.menu.UploadMode.default.upload.wait_for_upload_port=false
axiometa_genesis_one.menu.UploadMode.cdc=USB-OTG CDC (TinyUSB)
axiometa_genesis_one.menu.UploadMode.cdc.upload.use_1200bps_touch=true
axiometa_genesis_one.menu.UploadMode.cdc.upload.wait_for_upload_port=true
## Partition Schemes - 8MB Flash Compatible
axiometa_genesis_one.menu.PartitionScheme.default_8MB=Default 8MB with spiffs (3MB APP/1.5MB SPIFFS)
axiometa_genesis_one.menu.PartitionScheme.default_8MB.build.partitions=default_8MB
axiometa_genesis_one.menu.PartitionScheme.default_8MB.upload.maximum_size=3145728
axiometa_genesis_one.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
axiometa_genesis_one.menu.PartitionScheme.default.build.partitions=default
axiometa_genesis_one.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
axiometa_genesis_one.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
axiometa_genesis_one.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
axiometa_genesis_one.menu.PartitionScheme.minimal.build.partitions=minimal
axiometa_genesis_one.menu.PartitionScheme.no_fs=No FS 4MB (2MB APP x2)
axiometa_genesis_one.menu.PartitionScheme.no_fs.build.partitions=no_fs
axiometa_genesis_one.menu.PartitionScheme.no_fs.upload.maximum_size=2031616
axiometa_genesis_one.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
axiometa_genesis_one.menu.PartitionScheme.no_ota.build.partitions=no_ota
axiometa_genesis_one.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
axiometa_genesis_one.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
axiometa_genesis_one.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
axiometa_genesis_one.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
axiometa_genesis_one.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
axiometa_genesis_one.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
axiometa_genesis_one.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
axiometa_genesis_one.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
axiometa_genesis_one.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
axiometa_genesis_one.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
axiometa_genesis_one.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
axiometa_genesis_one.menu.PartitionScheme.huge_app.build.partitions=huge_app
axiometa_genesis_one.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
axiometa_genesis_one.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
axiometa_genesis_one.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
axiometa_genesis_one.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
axiometa_genesis_one.menu.PartitionScheme.rainmaker=RainMaker 4MB
axiometa_genesis_one.menu.PartitionScheme.rainmaker.build.partitions=rainmaker
axiometa_genesis_one.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080
axiometa_genesis_one.menu.PartitionScheme.rainmaker_8MB=RainMaker 8MB
axiometa_genesis_one.menu.PartitionScheme.rainmaker_8MB.build.partitions=rainmaker_8MB
axiometa_genesis_one.menu.PartitionScheme.rainmaker_8MB.upload.maximum_size=3145728
axiometa_genesis_one.menu.PartitionScheme.zigbee_zczr=Zigbee ZCZR 4MB with spiffs
axiometa_genesis_one.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr
axiometa_genesis_one.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720
axiometa_genesis_one.menu.PartitionScheme.custom=Custom
axiometa_genesis_one.menu.PartitionScheme.custom.build.partitions=
axiometa_genesis_one.menu.PartitionScheme.custom.upload.maximum_size=8388608
## CPU Frequency
axiometa_genesis_one.menu.CPUFreq.240=240MHz (WiFi)
axiometa_genesis_one.menu.CPUFreq.240.build.f_cpu=240000000L
axiometa_genesis_one.menu.CPUFreq.160=160MHz (WiFi)
axiometa_genesis_one.menu.CPUFreq.160.build.f_cpu=160000000L
axiometa_genesis_one.menu.CPUFreq.80=80MHz (WiFi)
axiometa_genesis_one.menu.CPUFreq.80.build.f_cpu=80000000L
axiometa_genesis_one.menu.CPUFreq.40=40MHz
axiometa_genesis_one.menu.CPUFreq.40.build.f_cpu=40000000L
axiometa_genesis_one.menu.CPUFreq.20=20MHz
axiometa_genesis_one.menu.CPUFreq.20.build.f_cpu=20000000L
axiometa_genesis_one.menu.CPUFreq.10=10MHz
axiometa_genesis_one.menu.CPUFreq.10.build.f_cpu=10000000L
## Upload Speed
axiometa_genesis_one.menu.UploadSpeed.921600=921600
axiometa_genesis_one.menu.UploadSpeed.921600.upload.speed=921600
axiometa_genesis_one.menu.UploadSpeed.115200=115200
axiometa_genesis_one.menu.UploadSpeed.115200.upload.speed=115200
axiometa_genesis_one.menu.UploadSpeed.256000.windows=256000
axiometa_genesis_one.menu.UploadSpeed.256000.upload.speed=256000
axiometa_genesis_one.menu.UploadSpeed.230400.windows.upload.speed=256000
axiometa_genesis_one.menu.UploadSpeed.230400=230400
axiometa_genesis_one.menu.UploadSpeed.230400.upload.speed=230400
axiometa_genesis_one.menu.UploadSpeed.460800.linux=460800
axiometa_genesis_one.menu.UploadSpeed.460800.macosx=460800
axiometa_genesis_one.menu.UploadSpeed.460800.upload.speed=460800
axiometa_genesis_one.menu.UploadSpeed.512000.windows=512000
axiometa_genesis_one.menu.UploadSpeed.512000.upload.speed=512000
## Debug Level
axiometa_genesis_one.menu.DebugLevel.none=None
axiometa_genesis_one.menu.DebugLevel.none.build.code_debug=0
axiometa_genesis_one.menu.DebugLevel.error=Error
axiometa_genesis_one.menu.DebugLevel.error.build.code_debug=1
axiometa_genesis_one.menu.DebugLevel.warn=Warn
axiometa_genesis_one.menu.DebugLevel.warn.build.code_debug=2
axiometa_genesis_one.menu.DebugLevel.info=Info
axiometa_genesis_one.menu.DebugLevel.info.build.code_debug=3
axiometa_genesis_one.menu.DebugLevel.debug=Debug
axiometa_genesis_one.menu.DebugLevel.debug.build.code_debug=4
axiometa_genesis_one.menu.DebugLevel.verbose=Verbose
axiometa_genesis_one.menu.DebugLevel.verbose.build.code_debug=5
## Erase Flash
axiometa_genesis_one.menu.EraseFlash.none=Disabled
axiometa_genesis_one.menu.EraseFlash.none.upload.erase_cmd=
axiometa_genesis_one.menu.EraseFlash.all=Enabled
axiometa_genesis_one.menu.EraseFlash.all.upload.erase_cmd=-e
## Zigbee Mode
axiometa_genesis_one.menu.ZigbeeMode.default=Disabled
axiometa_genesis_one.menu.ZigbeeMode.default.build.zigbee_mode=
axiometa_genesis_one.menu.ZigbeeMode.default.build.zigbee_libs=
axiometa_genesis_one.menu.ZigbeeMode.zczr=Zigbee ZCZR (coordinator/router)
axiometa_genesis_one.menu.ZigbeeMode.zczr.build.zigbee_mode=-DZIGBEE_MODE_ZCZR
axiometa_genesis_one.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api.zczr -lzboss_stack.zczr -lzboss_port.remote
##############################################################
soldered_nula_deepsleep_esp32s3.name=Soldered NULA DeepSleep ESP32S3
soldered_nula_deepsleep_esp32s3.bootloader.tool=esptool_py

View File

@@ -0,0 +1,106 @@
#ifndef Pins_Arduino_h
#define Pins_Arduino_h
#include <stdint.h>
#include "soc/soc_caps.h"
#define USB_VID 0x303a
#define USB_PID 0x1001
// Battery monitoring (voltage divider /2)
#define VBAT_SENSE 10
// Battery voltage reading macro
#define getBatteryVoltage() ((analogRead(VBAT_SENSE) / 4095.0) * 3.3 * 2.0)
// Fixed communication pins (shared across all ports)
static const uint8_t TX = 43;
static const uint8_t RX = 44;
static const uint8_t SDA = 47;
static const uint8_t SCL = 48;
static const uint8_t SS = 1;
static const uint8_t MOSI = 11;
static const uint8_t MISO = 12;
static const uint8_t SCK = 13;
// Port 1 IO pins
static const uint8_t P1_IO1 = 1;
static const uint8_t P1_IO2 = 14;
static const uint8_t P1_IO3 = 41;
// Port 2 IO pins
static const uint8_t P2_IO1 = 2;
static const uint8_t P2_IO2 = 15;
static const uint8_t P2_IO3 = 42;
// Port 3 IO pins
static const uint8_t P3_IO1 = 3;
static const uint8_t P3_IO2 = 16;
static const uint8_t P3_IO3 = 45;
// Port 4 IO pins
static const uint8_t P4_IO1 = 4;
static const uint8_t P4_IO2 = 17;
static const uint8_t P4_IO3 = 46;
// Port 5 IO pins
static const uint8_t P5_IO1 = 5;
static const uint8_t P5_IO2 = 18;
static const uint8_t P5_IO3 = 21;
// Port 6 IO pins
static const uint8_t P6_IO1 = 6;
static const uint8_t P6_IO2 = 40;
static const uint8_t P6_IO3 = 38;
// Port 7 IO pins
static const uint8_t P7_IO1 = 7;
static const uint8_t P7_IO2 = 9;
static const uint8_t P7_IO3 = 39;
// Port 8 IO pins
static const uint8_t P8_IO1 = 48;
static const uint8_t P8_IO2 = 43;
static const uint8_t P8_IO3 = 44;
// Analog capable pins (ESP32-S3 specific)
static const uint8_t A0 = 1;
static const uint8_t A1 = 2;
static const uint8_t A2 = 3;
static const uint8_t A3 = 4;
static const uint8_t A4 = 5;
static const uint8_t A5 = 6;
static const uint8_t A6 = 7;
static const uint8_t A7 = 8;
static const uint8_t A8 = 9;
static const uint8_t A9 = 10;
static const uint8_t A10 = 11;
static const uint8_t A11 = 12;
static const uint8_t A12 = 13;
static const uint8_t A13 = 14;
static const uint8_t A14 = 15;
static const uint8_t A15 = 16;
static const uint8_t A16 = 17;
static const uint8_t A17 = 18;
static const uint8_t A18 = 19;
static const uint8_t A19 = 20;
// Touch capable pins (ESP32-S3 specific)
static const uint8_t T1 = 1;
static const uint8_t T2 = 2;
static const uint8_t T3 = 3;
static const uint8_t T4 = 4;
static const uint8_t T5 = 5;
static const uint8_t T6 = 6;
static const uint8_t T7 = 7;
static const uint8_t T8 = 8;
static const uint8_t T9 = 9;
static const uint8_t T10 = 10;
static const uint8_t T11 = 11;
static const uint8_t T12 = 12;
static const uint8_t T13 = 13;
static const uint8_t T14 = 14;
#endif /* Pins_Arduino_h */