Skip to content

Commit 007badb

Browse files
authored
Add New Board: Cytron Maker Feather AIoT S3. (#7348)
* Added support for Cytron Maker Feather AIoT S3. * 1. Select OPI PSRAM by default. 2. Fixed pin name error in variant.cpp. 3. Added definition for RGB_BUILTIN. * Define the RGB_BUILTIN as shown in #6979. * Added pin definition for A12 (Vin Sense).
1 parent c58f756 commit 007badb

File tree

6 files changed

+304
-0
lines changed

6 files changed

+304
-0
lines changed

boards.txt

+175
Original file line numberDiff line numberDiff line change
@@ -19022,3 +19022,178 @@ unphone9.menu.EraseFlash.all=Enabled
1902219022
unphone9.menu.EraseFlash.all.upload.erase_cmd=-e
1902319023

1902419024
###############################################################
19025+
# Cytron Maker Feather AIoT S3
19026+
19027+
cytron_maker_feather_aiot_s3.name=Cytron Maker Feather AIoT S3
19028+
cytron_maker_feather_aiot_s3.vid.0=0x303a
19029+
cytron_maker_feather_aiot_s3.pid.0=0x80f8
19030+
19031+
cytron_maker_feather_aiot_s3.bootloader.tool=esptool_py
19032+
cytron_maker_feather_aiot_s3.bootloader.tool.default=esptool_py
19033+
19034+
cytron_maker_feather_aiot_s3.upload.tool=esptool_py
19035+
cytron_maker_feather_aiot_s3.upload.tool.default=esptool_py
19036+
cytron_maker_feather_aiot_s3.upload.tool.network=esp_ota
19037+
19038+
cytron_maker_feather_aiot_s3.upload.maximum_size=1310720
19039+
cytron_maker_feather_aiot_s3.upload.maximum_data_size=327680
19040+
cytron_maker_feather_aiot_s3.upload.flags=
19041+
cytron_maker_feather_aiot_s3.upload.extra_flags=
19042+
cytron_maker_feather_aiot_s3.upload.use_1200bps_touch=true
19043+
cytron_maker_feather_aiot_s3.upload.wait_for_upload_port=true
19044+
19045+
cytron_maker_feather_aiot_s3.serial.disableDTR=false
19046+
cytron_maker_feather_aiot_s3.serial.disableRTS=false
19047+
19048+
cytron_maker_feather_aiot_s3.build.tarch=xtensa
19049+
cytron_maker_feather_aiot_s3.build.bootloader_addr=0x0
19050+
cytron_maker_feather_aiot_s3.build.target=esp32s3
19051+
cytron_maker_feather_aiot_s3.build.mcu=esp32s3
19052+
cytron_maker_feather_aiot_s3.build.core=esp32
19053+
cytron_maker_feather_aiot_s3.build.variant=cytron_maker_feather_aiot_s3
19054+
cytron_maker_feather_aiot_s3.build.board=CYTRON_MAKER_FEATHER_AIOT_S3
19055+
19056+
cytron_maker_feather_aiot_s3.build.usb_mode=0
19057+
cytron_maker_feather_aiot_s3.build.cdc_on_boot=1
19058+
cytron_maker_feather_aiot_s3.build.msc_on_boot=0
19059+
cytron_maker_feather_aiot_s3.build.dfu_on_boot=0
19060+
cytron_maker_feather_aiot_s3.build.f_cpu=240000000L
19061+
cytron_maker_feather_aiot_s3.build.flash_size=8MB
19062+
cytron_maker_feather_aiot_s3.build.flash_freq=80m
19063+
cytron_maker_feather_aiot_s3.build.flash_mode=dio
19064+
cytron_maker_feather_aiot_s3.build.boot=qio
19065+
cytron_maker_feather_aiot_s3.build.partitions=default
19066+
cytron_maker_feather_aiot_s3.build.defines=
19067+
cytron_maker_feather_aiot_s3.build.loop_core=
19068+
cytron_maker_feather_aiot_s3.build.event_core=
19069+
cytron_maker_feather_aiot_s3.build.flash_type=qio
19070+
cytron_maker_feather_aiot_s3.build.psram_type=opi
19071+
cytron_maker_feather_aiot_s3.build.memory_type={build.flash_type}_{build.psram_type}
19072+
19073+
cytron_maker_feather_aiot_s3.menu.LoopCore.1=Core 1
19074+
cytron_maker_feather_aiot_s3.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
19075+
cytron_maker_feather_aiot_s3.menu.LoopCore.0=Core 0
19076+
cytron_maker_feather_aiot_s3.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0
19077+
19078+
cytron_maker_feather_aiot_s3.menu.EventsCore.1=Core 1
19079+
cytron_maker_feather_aiot_s3.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
19080+
cytron_maker_feather_aiot_s3.menu.EventsCore.0=Core 0
19081+
cytron_maker_feather_aiot_s3.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0
19082+
19083+
cytron_maker_feather_aiot_s3.menu.USBMode.default=USB-OTG (TinyUSB)
19084+
cytron_maker_feather_aiot_s3.menu.USBMode.default.build.usb_mode=0
19085+
cytron_maker_feather_aiot_s3.menu.USBMode.hwcdc=Hardware CDC and JTAG
19086+
cytron_maker_feather_aiot_s3.menu.USBMode.hwcdc.build.usb_mode=1
19087+
19088+
cytron_maker_feather_aiot_s3.menu.CDCOnBoot.cdc=Enabled
19089+
cytron_maker_feather_aiot_s3.menu.CDCOnBoot.cdc.build.cdc_on_boot=1
19090+
cytron_maker_feather_aiot_s3.menu.CDCOnBoot.default=Disabled
19091+
cytron_maker_feather_aiot_s3.menu.CDCOnBoot.default.build.cdc_on_boot=0
19092+
19093+
cytron_maker_feather_aiot_s3.menu.MSCOnBoot.default=Disabled
19094+
cytron_maker_feather_aiot_s3.menu.MSCOnBoot.default.build.msc_on_boot=0
19095+
cytron_maker_feather_aiot_s3.menu.MSCOnBoot.msc=Enabled (Requires USB-OTG Mode)
19096+
cytron_maker_feather_aiot_s3.menu.MSCOnBoot.msc.build.msc_on_boot=1
19097+
19098+
cytron_maker_feather_aiot_s3.menu.DFUOnBoot.default=Disabled
19099+
cytron_maker_feather_aiot_s3.menu.DFUOnBoot.default.build.dfu_on_boot=0
19100+
cytron_maker_feather_aiot_s3.menu.DFUOnBoot.dfu=Enabled (Requires USB-OTG Mode)
19101+
cytron_maker_feather_aiot_s3.menu.DFUOnBoot.dfu.build.dfu_on_boot=1
19102+
19103+
cytron_maker_feather_aiot_s3.menu.UploadMode.cdc=USB-OTG CDC (TinyUSB)
19104+
cytron_maker_feather_aiot_s3.menu.UploadMode.cdc.upload.use_1200bps_touch=true
19105+
cytron_maker_feather_aiot_s3.menu.UploadMode.cdc.upload.wait_for_upload_port=true
19106+
cytron_maker_feather_aiot_s3.menu.UploadMode.default=UART0 / Hardware CDC
19107+
cytron_maker_feather_aiot_s3.menu.UploadMode.default.upload.use_1200bps_touch=false
19108+
cytron_maker_feather_aiot_s3.menu.UploadMode.default.upload.wait_for_upload_port=false
19109+
19110+
cytron_maker_feather_aiot_s3.menu.PSRAM.opi=OPI PSRAM
19111+
cytron_maker_feather_aiot_s3.menu.PSRAM.opi.build.defines=-DBOARD_HAS_PSRAM
19112+
cytron_maker_feather_aiot_s3.menu.PSRAM.opi.build.psram_type=opi
19113+
cytron_maker_feather_aiot_s3.menu.PSRAM.enabled=QSPI PSRAM
19114+
cytron_maker_feather_aiot_s3.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM
19115+
cytron_maker_feather_aiot_s3.menu.PSRAM.enabled.build.psram_type=qspi
19116+
cytron_maker_feather_aiot_s3.menu.PSRAM.disabled=Disabled
19117+
cytron_maker_feather_aiot_s3.menu.PSRAM.disabled.build.defines=
19118+
cytron_maker_feather_aiot_s3.menu.PSRAM.disabled.build.psram_type=qspi
19119+
19120+
cytron_maker_feather_aiot_s3.menu.PartitionScheme.tinyuf2=TinyUF2 8MB (2MB APP/3.7MB FFAT)
19121+
cytron_maker_feather_aiot_s3.menu.PartitionScheme.tinyuf2.build.custom_bootloader=bootloader-tinyuf2
19122+
cytron_maker_feather_aiot_s3.menu.PartitionScheme.tinyuf2.build.custom_partitions=partitions-8MB-tinyuf2
19123+
cytron_maker_feather_aiot_s3.menu.PartitionScheme.tinyuf2.upload.maximum_size=2097152
19124+
cytron_maker_feather_aiot_s3.menu.PartitionScheme.tinyuf2.upload.extra_flags=0x410000 "{runtime.platform.path}/variants/{build.variant}/tinyuf2.bin"
19125+
cytron_maker_feather_aiot_s3.menu.PartitionScheme.default_8MB=Default (3MB APP/1.5MB SPIFFS)
19126+
cytron_maker_feather_aiot_s3.menu.PartitionScheme.default_8MB.build.partitions=default_8MB
19127+
cytron_maker_feather_aiot_s3.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336
19128+
19129+
cytron_maker_feather_aiot_s3.menu.CPUFreq.240=240MHz (WiFi)
19130+
cytron_maker_feather_aiot_s3.menu.CPUFreq.240.build.f_cpu=240000000L
19131+
cytron_maker_feather_aiot_s3.menu.CPUFreq.160=160MHz (WiFi)
19132+
cytron_maker_feather_aiot_s3.menu.CPUFreq.160.build.f_cpu=160000000L
19133+
cytron_maker_feather_aiot_s3.menu.CPUFreq.80=80MHz (WiFi)
19134+
cytron_maker_feather_aiot_s3.menu.CPUFreq.80.build.f_cpu=80000000L
19135+
cytron_maker_feather_aiot_s3.menu.CPUFreq.40=40MHz
19136+
cytron_maker_feather_aiot_s3.menu.CPUFreq.40.build.f_cpu=40000000L
19137+
cytron_maker_feather_aiot_s3.menu.CPUFreq.20=20MHz
19138+
cytron_maker_feather_aiot_s3.menu.CPUFreq.20.build.f_cpu=20000000L
19139+
cytron_maker_feather_aiot_s3.menu.CPUFreq.10=10MHz
19140+
cytron_maker_feather_aiot_s3.menu.CPUFreq.10.build.f_cpu=10000000L
19141+
19142+
cytron_maker_feather_aiot_s3.menu.FlashMode.qio=QIO 80MHz
19143+
cytron_maker_feather_aiot_s3.menu.FlashMode.qio.build.flash_mode=dio
19144+
cytron_maker_feather_aiot_s3.menu.FlashMode.qio.build.boot=qio
19145+
cytron_maker_feather_aiot_s3.menu.FlashMode.qio.build.boot_freq=80m
19146+
cytron_maker_feather_aiot_s3.menu.FlashMode.qio.build.flash_freq=80m
19147+
cytron_maker_feather_aiot_s3.menu.FlashMode.qio120=QIO 120MHz
19148+
cytron_maker_feather_aiot_s3.menu.FlashMode.qio120.build.flash_mode=dio
19149+
cytron_maker_feather_aiot_s3.menu.FlashMode.qio120.build.boot=qio
19150+
cytron_maker_feather_aiot_s3.menu.FlashMode.qio120.build.boot_freq=120m
19151+
cytron_maker_feather_aiot_s3.menu.FlashMode.qio120.build.flash_freq=80m
19152+
cytron_maker_feather_aiot_s3.menu.FlashMode.dio=DIO 80MHz
19153+
cytron_maker_feather_aiot_s3.menu.FlashMode.dio.build.flash_mode=dio
19154+
cytron_maker_feather_aiot_s3.menu.FlashMode.dio.build.boot=dio
19155+
cytron_maker_feather_aiot_s3.menu.FlashMode.dio.build.boot_freq=80m
19156+
cytron_maker_feather_aiot_s3.menu.FlashMode.dio.build.flash_freq=80m
19157+
cytron_maker_feather_aiot_s3.menu.FlashMode.opi=OPI 80MHz
19158+
cytron_maker_feather_aiot_s3.menu.FlashMode.opi.build.flash_mode=dout
19159+
cytron_maker_feather_aiot_s3.menu.FlashMode.opi.build.boot=opi
19160+
cytron_maker_feather_aiot_s3.menu.FlashMode.opi.build.boot_freq=80m
19161+
cytron_maker_feather_aiot_s3.menu.FlashMode.opi.build.flash_freq=80m
19162+
19163+
cytron_maker_feather_aiot_s3.menu.FlashSize.8M=8MB (64Mb)
19164+
cytron_maker_feather_aiot_s3.menu.FlashSize.8M.build.flash_size=8MB
19165+
19166+
cytron_maker_feather_aiot_s3.menu.UploadSpeed.921600=921600
19167+
cytron_maker_feather_aiot_s3.menu.UploadSpeed.921600.upload.speed=921600
19168+
cytron_maker_feather_aiot_s3.menu.UploadSpeed.115200=115200
19169+
cytron_maker_feather_aiot_s3.menu.UploadSpeed.115200.upload.speed=115200
19170+
cytron_maker_feather_aiot_s3.menu.UploadSpeed.256000.windows=256000
19171+
cytron_maker_feather_aiot_s3.menu.UploadSpeed.256000.upload.speed=256000
19172+
cytron_maker_feather_aiot_s3.menu.UploadSpeed.230400.windows.upload.speed=256000
19173+
cytron_maker_feather_aiot_s3.menu.UploadSpeed.230400=230400
19174+
cytron_maker_feather_aiot_s3.menu.UploadSpeed.230400.upload.speed=230400
19175+
cytron_maker_feather_aiot_s3.menu.UploadSpeed.460800.linux=460800
19176+
cytron_maker_feather_aiot_s3.menu.UploadSpeed.460800.macosx=460800
19177+
cytron_maker_feather_aiot_s3.menu.UploadSpeed.460800.upload.speed=460800
19178+
cytron_maker_feather_aiot_s3.menu.UploadSpeed.512000.windows=512000
19179+
cytron_maker_feather_aiot_s3.menu.UploadSpeed.512000.upload.speed=512000
19180+
19181+
cytron_maker_feather_aiot_s3.menu.DebugLevel.none=None
19182+
cytron_maker_feather_aiot_s3.menu.DebugLevel.none.build.code_debug=0
19183+
cytron_maker_feather_aiot_s3.menu.DebugLevel.error=Error
19184+
cytron_maker_feather_aiot_s3.menu.DebugLevel.error.build.code_debug=1
19185+
cytron_maker_feather_aiot_s3.menu.DebugLevel.warn=Warn
19186+
cytron_maker_feather_aiot_s3.menu.DebugLevel.warn.build.code_debug=2
19187+
cytron_maker_feather_aiot_s3.menu.DebugLevel.info=Info
19188+
cytron_maker_feather_aiot_s3.menu.DebugLevel.info.build.code_debug=3
19189+
cytron_maker_feather_aiot_s3.menu.DebugLevel.debug=Debug
19190+
cytron_maker_feather_aiot_s3.menu.DebugLevel.debug.build.code_debug=4
19191+
cytron_maker_feather_aiot_s3.menu.DebugLevel.verbose=Verbose
19192+
cytron_maker_feather_aiot_s3.menu.DebugLevel.verbose.build.code_debug=5
19193+
19194+
cytron_maker_feather_aiot_s3.menu.EraseFlash.none=Disabled
19195+
cytron_maker_feather_aiot_s3.menu.EraseFlash.none.upload.erase_cmd=
19196+
cytron_maker_feather_aiot_s3.menu.EraseFlash.all=Enabled
19197+
cytron_maker_feather_aiot_s3.menu.EraseFlash.all.upload.erase_cmd=-e
19198+
19199+
##############################################################
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# ESP-IDF Partition Table
2+
# Name, Type, SubType, Offset, Size, Flags
3+
# bootloader.bin,, 0x1000, 32K
4+
# partition table,, 0x8000, 4K
5+
nvs, data, nvs, 0x9000, 20K,
6+
otadata, data, ota, 0xe000, 8K,
7+
ota_0, 0, ota_0, 0x10000, 2048K,
8+
ota_1, 0, ota_1, 0x210000, 2048K,
9+
uf2, app, factory,0x410000, 256K,
10+
ffat, data, fat, 0x450000, 3776K,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
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 0x80F8
9+
#define USB_MANUFACTURER "Cytron"
10+
#define USB_PRODUCT "Maker Feather AIoT S3"
11+
#define USB_SERIAL ""
12+
13+
#define EXTERNAL_NUM_INTERRUPTS 46
14+
#define NUM_DIGITAL_PINS 20
15+
#define NUM_ANALOG_INPUTS 12
16+
17+
#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1)
18+
#define digitalPinToInterrupt(p) (((p)<48)?(p):-1)
19+
#define digitalPinHasPWM(p) (p < 46)
20+
21+
22+
23+
static const uint8_t LED_BUILTIN = 2; // Status LED.
24+
static const uint8_t RGB_BUILTIN = SOC_GPIO_PIN_COUNT + 46; // RGB LED.
25+
26+
#define BUILTIN_LED LED_BUILTIN // Backward compatibility
27+
#define LED_BUILTIN LED_BUILTIN
28+
#define LED LED_BUILTIN
29+
#define RGB_BUILTIN RGB_BUILTIN
30+
#define RGB RGB_BUILTIN
31+
#define NEOPIXEL RGB_BUILTIN
32+
#define RGB_BRIGHTNESS 65
33+
34+
35+
36+
#define VP_EN 11 // V Peripheral Enable.
37+
#define BUZZER 12 // Piezo Buzzer.
38+
#define BOOT 0 // Boot Button.
39+
#define BUTTON 3 // User Button.
40+
41+
#define VIN 13 // Vin Sense.
42+
#define VBATT 13
43+
#define VOLTAGE_MONITOR 13
44+
45+
46+
static const uint8_t TX = 15;
47+
static const uint8_t RX = 16;
48+
49+
static const uint8_t SDA = 42;
50+
static const uint8_t SCL = 41;
51+
52+
static const uint8_t SS = 7;
53+
static const uint8_t MOSI = 8;
54+
static const uint8_t SCK = 17;
55+
static const uint8_t MISO = 18;
56+
57+
static const uint8_t A0 = 10;
58+
static const uint8_t A1 = 9;
59+
static const uint8_t A2 = 6;
60+
static const uint8_t A3 = 5;
61+
static const uint8_t A4 = 4;
62+
static const uint8_t A5 = 7;
63+
64+
static const uint8_t A6 = 17;
65+
static const uint8_t A7 = 8;
66+
static const uint8_t A8 = 18;
67+
static const uint8_t A9 = 16;
68+
static const uint8_t A10 = 15;
69+
static const uint8_t A11 = 14;
70+
static const uint8_t A12 = 13;
71+
72+
static const uint8_t T4 = 4;
73+
static const uint8_t T5 = 5;
74+
static const uint8_t T6 = 6;
75+
static const uint8_t T7 = 7;
76+
static const uint8_t T8 = 8;
77+
static const uint8_t T9 = 9;
78+
static const uint8_t T10 = 10;
79+
static const uint8_t T14 = 14;
80+
81+
#endif /* Pins_Arduino_h */
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/*
2+
* The MIT License (MIT)
3+
*
4+
* Copyright (c) 2022 Wai Weng for Cytron Technologies
5+
*
6+
* Permission is hereby granted, free of charge, to any person obtaining a copy
7+
* of this software and associated documentation files (the "Software"), to deal
8+
* in the Software without restriction, including without limitation the rights
9+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
* copies of the Software, and to permit persons to whom the Software is
11+
* furnished to do so, subject to the following conditions:
12+
*
13+
* The above copyright notice and this permission notice shall be included in
14+
* all copies or substantial portions of the Software.
15+
*
16+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22+
* THE SOFTWARE.
23+
*/
24+
25+
26+
#include "esp32-hal-gpio.h"
27+
#include "pins_arduino.h"
28+
29+
extern "C" {
30+
31+
// Initialize variant/board, called before setup()
32+
void initVariant(void)
33+
{
34+
// Turn on VPeripheral by default.
35+
pinMode(VP_EN, OUTPUT);
36+
digitalWrite(VP_EN, HIGH);
37+
}
38+
}

0 commit comments

Comments
 (0)