Skip to content

Commit 976e242

Browse files
committed
feat: Add support for Twin AIoT Module
1 parent f6b1910 commit 976e242

File tree

2 files changed

+312
-0
lines changed

2 files changed

+312
-0
lines changed

boards.txt

Lines changed: 257 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51573,3 +51573,260 @@ fed4.menu.ZigbeeMode.zczr.build.zigbee_mode=-DZIGBEE_MODE_ZCZR
5157351573
fed4.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api.zczr -lzboss_stack.zczr -lzboss_port.remote
5157451574

5157551575
##############################################################
51576+
51577+
twinaiot.name=Twin AIoT Module
51578+
51579+
twinaiot.bootloader.tool=esptool_py
51580+
twinaiot.bootloader.tool.default=esptool_py
51581+
51582+
twinaiot.upload.tool=esptool_py
51583+
twinaiot.upload.tool.default=esptool_py
51584+
twinaiot.upload.tool.network=esp_ota
51585+
51586+
twinaiot.upload.maximum_size=1310720
51587+
twinaiot.upload.maximum_data_size=327680
51588+
twinaiot.upload.flags=
51589+
twinaiot.upload.extra_flags=
51590+
twinaiot.upload.use_1200bps_touch=false
51591+
twinaiot.upload.wait_for_upload_port=false
51592+
51593+
twinaiot.serial.disableDTR=false
51594+
twinaiot.serial.disableRTS=false
51595+
51596+
twinaiot.build.tarch=xtensa
51597+
twinaiot.build.bootloader_addr=0x0
51598+
twinaiot.build.target=esp32s3
51599+
twinaiot.build.mcu=esp32s3
51600+
twinaiot.build.core=esp32
51601+
twinaiot.build.variant=twinaiot
51602+
twinaiot.build.board=TWIN_AIOT
51603+
51604+
twinaiot.build.usb_mode=1
51605+
twinaiot.build.cdc_on_boot=0
51606+
twinaiot.build.msc_on_boot=0
51607+
twinaiot.build.dfu_on_boot=0
51608+
twinaiot.build.f_cpu=240000000L
51609+
twinaiot.build.flash_size=4MB
51610+
twinaiot.build.flash_freq=80m
51611+
twinaiot.build.flash_mode=dio
51612+
twinaiot.build.boot=qio
51613+
twinaiot.build.boot_freq=80m
51614+
twinaiot.build.partitions=default
51615+
twinaiot.build.defines=
51616+
twinaiot.build.loop_core=
51617+
twinaiot.build.event_core=
51618+
twinaiot.build.psram_type=qspi
51619+
twinaiot.build.memory_type={build.boot}_{build.psram_type}
51620+
51621+
## IDE 2.0 Seems to not update the value
51622+
twinaiot.menu.JTAGAdapter.default=Disabled
51623+
twinaiot.menu.JTAGAdapter.default.build.copy_jtag_files=0
51624+
twinaiot.menu.JTAGAdapter.builtin=Integrated USB JTAG
51625+
twinaiot.menu.JTAGAdapter.builtin.build.openocdscript=esp32s3-builtin.cfg
51626+
twinaiot.menu.JTAGAdapter.builtin.build.copy_jtag_files=1
51627+
twinaiot.menu.JTAGAdapter.external=FTDI Adapter
51628+
twinaiot.menu.JTAGAdapter.external.build.openocdscript=esp32s3-ftdi.cfg
51629+
twinaiot.menu.JTAGAdapter.external.build.copy_jtag_files=1
51630+
twinaiot.menu.JTAGAdapter.bridge=ESP USB Bridge
51631+
twinaiot.menu.JTAGAdapter.bridge.build.openocdscript=esp32s3-bridge.cfg
51632+
twinaiot.menu.JTAGAdapter.bridge.build.copy_jtag_files=1
51633+
51634+
twinaiot.menu.PSRAM.disabled=Disabled
51635+
twinaiot.menu.PSRAM.disabled.build.defines=
51636+
twinaiot.menu.PSRAM.disabled.build.psram_type=qspi
51637+
twinaiot.menu.PSRAM.enabled=QSPI PSRAM
51638+
twinaiot.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM
51639+
twinaiot.menu.PSRAM.enabled.build.psram_type=qspi
51640+
twinaiot.menu.PSRAM.opi=OPI PSRAM
51641+
twinaiot.menu.PSRAM.opi.build.defines=-DBOARD_HAS_PSRAM
51642+
twinaiot.menu.PSRAM.opi.build.psram_type=opi
51643+
51644+
twinaiot.menu.FlashMode.qio=QIO 80MHz
51645+
twinaiot.menu.FlashMode.qio.build.flash_mode=dio
51646+
twinaiot.menu.FlashMode.qio.build.boot=qio
51647+
twinaiot.menu.FlashMode.qio.build.boot_freq=80m
51648+
twinaiot.menu.FlashMode.qio.build.flash_freq=80m
51649+
twinaiot.menu.FlashMode.qio120=QIO 120MHz
51650+
twinaiot.menu.FlashMode.qio120.build.flash_mode=dio
51651+
twinaiot.menu.FlashMode.qio120.build.boot=qio
51652+
twinaiot.menu.FlashMode.qio120.build.boot_freq=120m
51653+
twinaiot.menu.FlashMode.qio120.build.flash_freq=80m
51654+
twinaiot.menu.FlashMode.dio=DIO 80MHz
51655+
twinaiot.menu.FlashMode.dio.build.flash_mode=dio
51656+
twinaiot.menu.FlashMode.dio.build.boot=dio
51657+
twinaiot.menu.FlashMode.dio.build.boot_freq=80m
51658+
twinaiot.menu.FlashMode.dio.build.flash_freq=80m
51659+
twinaiot.menu.FlashMode.opi=OPI 80MHz
51660+
twinaiot.menu.FlashMode.opi.build.flash_mode=dout
51661+
twinaiot.menu.FlashMode.opi.build.boot=opi
51662+
twinaiot.menu.FlashMode.opi.build.boot_freq=80m
51663+
twinaiot.menu.FlashMode.opi.build.flash_freq=80m
51664+
51665+
twinaiot.menu.FlashSize.4M=4MB (32Mb)
51666+
twinaiot.menu.FlashSize.4M.build.flash_size=4MB
51667+
twinaiot.menu.FlashSize.8M=8MB (64Mb)
51668+
twinaiot.menu.FlashSize.8M.build.flash_size=8MB
51669+
twinaiot.menu.FlashSize.16M=16MB (128Mb)
51670+
twinaiot.menu.FlashSize.16M.build.flash_size=16MB
51671+
twinaiot.menu.FlashSize.32M=32MB (256Mb)
51672+
twinaiot.menu.FlashSize.32M.build.flash_size=32MB
51673+
51674+
twinaiot.menu.LoopCore.1=Core 1
51675+
twinaiot.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
51676+
twinaiot.menu.LoopCore.0=Core 0
51677+
twinaiot.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0
51678+
51679+
twinaiot.menu.EventsCore.1=Core 1
51680+
twinaiot.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
51681+
twinaiot.menu.EventsCore.0=Core 0
51682+
twinaiot.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0
51683+
51684+
twinaiot.menu.USBMode.hwcdc=Hardware CDC and JTAG
51685+
twinaiot.menu.USBMode.hwcdc.build.usb_mode=1
51686+
twinaiot.menu.USBMode.default=USB-OTG (TinyUSB)
51687+
twinaiot.menu.USBMode.default.build.usb_mode=0
51688+
51689+
twinaiot.menu.CDCOnBoot.default=Disabled
51690+
twinaiot.menu.CDCOnBoot.default.build.cdc_on_boot=0
51691+
twinaiot.menu.CDCOnBoot.cdc=Enabled
51692+
twinaiot.menu.CDCOnBoot.cdc.build.cdc_on_boot=1
51693+
51694+
twinaiot.menu.MSCOnBoot.default=Disabled
51695+
twinaiot.menu.MSCOnBoot.default.build.msc_on_boot=0
51696+
twinaiot.menu.MSCOnBoot.msc=Enabled (Requires USB-OTG Mode)
51697+
twinaiot.menu.MSCOnBoot.msc.build.msc_on_boot=1
51698+
51699+
twinaiot.menu.DFUOnBoot.default=Disabled
51700+
twinaiot.menu.DFUOnBoot.default.build.dfu_on_boot=0
51701+
twinaiot.menu.DFUOnBoot.dfu=Enabled (Requires USB-OTG Mode)
51702+
twinaiot.menu.DFUOnBoot.dfu.build.dfu_on_boot=1
51703+
51704+
twinaiot.menu.UploadMode.default=UART0 / Hardware CDC
51705+
twinaiot.menu.UploadMode.default.upload.use_1200bps_touch=false
51706+
twinaiot.menu.UploadMode.default.upload.wait_for_upload_port=false
51707+
twinaiot.menu.UploadMode.cdc=USB-OTG CDC (TinyUSB)
51708+
twinaiot.menu.UploadMode.cdc.upload.use_1200bps_touch=true
51709+
twinaiot.menu.UploadMode.cdc.upload.wait_for_upload_port=true
51710+
51711+
twinaiot.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
51712+
twinaiot.menu.PartitionScheme.default.build.partitions=default
51713+
twinaiot.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
51714+
twinaiot.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
51715+
twinaiot.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS)
51716+
twinaiot.menu.PartitionScheme.default_8MB.build.partitions=default_8MB
51717+
twinaiot.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336
51718+
twinaiot.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
51719+
twinaiot.menu.PartitionScheme.minimal.build.partitions=minimal
51720+
twinaiot.menu.PartitionScheme.no_fs=No FS 4MB (2MB APP x2)
51721+
twinaiot.menu.PartitionScheme.no_fs.build.partitions=no_fs
51722+
twinaiot.menu.PartitionScheme.no_fs.upload.maximum_size=2031616
51723+
twinaiot.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
51724+
twinaiot.menu.PartitionScheme.no_ota.build.partitions=no_ota
51725+
twinaiot.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
51726+
twinaiot.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
51727+
twinaiot.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
51728+
twinaiot.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
51729+
twinaiot.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
51730+
twinaiot.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
51731+
twinaiot.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
51732+
twinaiot.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
51733+
twinaiot.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
51734+
twinaiot.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
51735+
twinaiot.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
51736+
twinaiot.menu.PartitionScheme.huge_app.build.partitions=huge_app
51737+
twinaiot.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
51738+
twinaiot.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
51739+
twinaiot.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
51740+
twinaiot.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
51741+
twinaiot.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS)
51742+
twinaiot.menu.PartitionScheme.fatflash.build.partitions=ffat
51743+
twinaiot.menu.PartitionScheme.fatflash.upload.maximum_size=2097152
51744+
twinaiot.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS)
51745+
twinaiot.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB
51746+
twinaiot.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
51747+
twinaiot.menu.PartitionScheme.rainmaker=RainMaker 4MB
51748+
twinaiot.menu.PartitionScheme.rainmaker.build.partitions=rainmaker
51749+
twinaiot.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080
51750+
twinaiot.menu.PartitionScheme.rainmaker_4MB=RainMaker 4MB No OTA
51751+
twinaiot.menu.PartitionScheme.rainmaker_4MB.build.partitions=rainmaker_4MB_no_ota
51752+
twinaiot.menu.PartitionScheme.rainmaker_4MB.upload.maximum_size=4038656
51753+
twinaiot.menu.PartitionScheme.rainmaker_8MB=RainMaker 8MB
51754+
twinaiot.menu.PartitionScheme.rainmaker_8MB.build.partitions=rainmaker_8MB
51755+
twinaiot.menu.PartitionScheme.rainmaker_8MB.upload.maximum_size=4096000
51756+
twinaiot.menu.PartitionScheme.app5M_fat24M_32MB=32M Flash (4.8MB APP/22MB FATFS)
51757+
twinaiot.menu.PartitionScheme.app5M_fat24M_32MB.build.partitions=large_fat_32MB
51758+
twinaiot.menu.PartitionScheme.app5M_fat24M_32MB.upload.maximum_size=4718592
51759+
twinaiot.menu.PartitionScheme.app5M_little24M_32MB=32M Flash (4.8MB APP/22MB LittleFS)
51760+
twinaiot.menu.PartitionScheme.app5M_little24M_32MB.build.partitions=large_littlefs_32MB
51761+
twinaiot.menu.PartitionScheme.app5M_little24M_32MB.upload.maximum_size=4718592
51762+
twinaiot.menu.PartitionScheme.app13M_data7M_32MB=32M Flash (13MB APP/6.75MB SPIFFS)
51763+
twinaiot.menu.PartitionScheme.app13M_data7M_32MB.build.partitions=default_32MB
51764+
twinaiot.menu.PartitionScheme.app13M_data7M_32MB.upload.maximum_size=13107200
51765+
twinaiot.menu.PartitionScheme.esp_sr_16=ESP SR 16M (3MB APP/7MB SPIFFS/2.9MB MODEL)
51766+
twinaiot.menu.PartitionScheme.esp_sr_16.upload.maximum_size=3145728
51767+
twinaiot.menu.PartitionScheme.esp_sr_16.upload.extra_flags=0xD10000 {build.path}/srmodels.bin
51768+
twinaiot.menu.PartitionScheme.esp_sr_16.build.partitions=esp_sr_16
51769+
twinaiot.menu.PartitionScheme.zigbee_zczr=Zigbee ZCZR 4MB with spiffs
51770+
twinaiot.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr
51771+
twinaiot.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720
51772+
twinaiot.menu.PartitionScheme.zigbee_zczr_8MB=Zigbee ZCZR 8MB with spiffs
51773+
twinaiot.menu.PartitionScheme.zigbee_zczr_8MB.build.partitions=zigbee_zczr_8MB
51774+
twinaiot.menu.PartitionScheme.zigbee_zczr_8MB.upload.maximum_size=3407872
51775+
twinaiot.menu.PartitionScheme.custom=Custom
51776+
twinaiot.menu.PartitionScheme.custom.build.partitions=
51777+
twinaiot.menu.PartitionScheme.custom.upload.maximum_size=16777216
51778+
51779+
twinaiot.menu.CPUFreq.240=240MHz (WiFi)
51780+
twinaiot.menu.CPUFreq.240.build.f_cpu=240000000L
51781+
twinaiot.menu.CPUFreq.160=160MHz (WiFi)
51782+
twinaiot.menu.CPUFreq.160.build.f_cpu=160000000L
51783+
twinaiot.menu.CPUFreq.80=80MHz (WiFi)
51784+
twinaiot.menu.CPUFreq.80.build.f_cpu=80000000L
51785+
twinaiot.menu.CPUFreq.40=40MHz
51786+
twinaiot.menu.CPUFreq.40.build.f_cpu=40000000L
51787+
twinaiot.menu.CPUFreq.20=20MHz
51788+
twinaiot.menu.CPUFreq.20.build.f_cpu=20000000L
51789+
twinaiot.menu.CPUFreq.10=10MHz
51790+
twinaiot.menu.CPUFreq.10.build.f_cpu=10000000L
51791+
51792+
twinaiot.menu.UploadSpeed.921600=921600
51793+
twinaiot.menu.UploadSpeed.921600.upload.speed=921600
51794+
twinaiot.menu.UploadSpeed.115200=115200
51795+
twinaiot.menu.UploadSpeed.115200.upload.speed=115200
51796+
twinaiot.menu.UploadSpeed.256000.windows=256000
51797+
twinaiot.menu.UploadSpeed.256000.upload.speed=256000
51798+
twinaiot.menu.UploadSpeed.230400.windows.upload.speed=256000
51799+
twinaiot.menu.UploadSpeed.230400=230400
51800+
twinaiot.menu.UploadSpeed.230400.upload.speed=230400
51801+
twinaiot.menu.UploadSpeed.460800.linux=460800
51802+
twinaiot.menu.UploadSpeed.460800.macosx=460800
51803+
twinaiot.menu.UploadSpeed.460800.upload.speed=460800
51804+
twinaiot.menu.UploadSpeed.512000.windows=512000
51805+
twinaiot.menu.UploadSpeed.512000.upload.speed=512000
51806+
51807+
twinaiot.menu.DebugLevel.none=None
51808+
twinaiot.menu.DebugLevel.none.build.code_debug=0
51809+
twinaiot.menu.DebugLevel.error=Error
51810+
twinaiot.menu.DebugLevel.error.build.code_debug=1
51811+
twinaiot.menu.DebugLevel.warn=Warn
51812+
twinaiot.menu.DebugLevel.warn.build.code_debug=2
51813+
twinaiot.menu.DebugLevel.info=Info
51814+
twinaiot.menu.DebugLevel.info.build.code_debug=3
51815+
twinaiot.menu.DebugLevel.debug=Debug
51816+
twinaiot.menu.DebugLevel.debug.build.code_debug=4
51817+
twinaiot.menu.DebugLevel.verbose=Verbose
51818+
twinaiot.menu.DebugLevel.verbose.build.code_debug=5
51819+
51820+
twinaiot.menu.EraseFlash.none=Disabled
51821+
twinaiot.menu.EraseFlash.none.upload.erase_cmd=
51822+
twinaiot.menu.EraseFlash.all=Enabled
51823+
twinaiot.menu.EraseFlash.all.upload.erase_cmd=-e
51824+
51825+
twinaiot.menu.ZigbeeMode.default=Disabled
51826+
twinaiot.menu.ZigbeeMode.default.build.zigbee_mode=
51827+
twinaiot.menu.ZigbeeMode.default.build.zigbee_libs=
51828+
twinaiot.menu.ZigbeeMode.zczr=Zigbee ZCZR (coordinator/router)
51829+
twinaiot.menu.ZigbeeMode.zczr.build.zigbee_mode=-DZIGBEE_MODE_ZCZR
51830+
twinaiot.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api.zczr -lzboss_stack.zczr -lzboss_port.remote
51831+
51832+
##############################################################

variants/twinaiot/pins_arduino.h

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#ifndef Pins_Arduino_h
2+
#define Pins_Arduino_h
3+
4+
#include <stdint.h>
5+
#include "soc/soc_caps.h"
6+
7+
#define USB_VID 0x303a
8+
#define USB_PID 0x1001
9+
10+
11+
#define RGB_PIN 15
12+
13+
static const uint8_t LED_BUILTIN = 35;
14+
#define BUILTIN_LED LED_BUILTIN // backward compatibility
15+
#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN
16+
// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API rgbLedWrite()
17+
#define RGB_BUILTIN RGB_PIN
18+
19+
static const uint8_t TX = 39;
20+
static const uint8_t RX = 40;
21+
22+
static const uint8_t SDA = 39;
23+
static const uint8_t SCL = 40;
24+
25+
static const uint8_t SS = 1;
26+
static const uint8_t MOSI = 2;
27+
static const uint8_t MISO = 3;
28+
static const uint8_t SCK = 4;
29+
30+
static const uint8_t D6_OUT_PIN = 35;
31+
static const uint8_t D9_OUT_PIN = 36;
32+
static const uint8_t D10_OUT_PIN = 10;
33+
34+
static const uint8_t TOUCH_PIN = 13;
35+
36+
static const uint8_t TRIG_PIN = 5; // GPIO connected to HC-SR04 TRIG
37+
static const uint8_t ECHO_PIN = 6; // GPIO connected to HC-SR04 ECHO
38+
39+
static const uint8_t latchPin = 34;
40+
static const uint8_t clockPin = 47;
41+
static const uint8_t dataPin = 48;
42+
43+
static const uint8_t D_IN_4 = 8;
44+
static const uint8_t D_IN_8 = 11;
45+
static const uint8_t D_IN_12 = 9;
46+
47+
static const uint8_t AN_IN_4 = 17;
48+
static const uint8_t AN_IN_8 = 16;
49+
static const uint8_t AN_IN_12 = 7;
50+
51+
static const uint8_t S1pin = 37;
52+
static const uint8_t S2pin = 38;
53+
static const uint8_t S3pin = 14;
54+
55+
#endif /* Pins_Arduino_h */

0 commit comments

Comments
 (0)