Skip to content

Add ATMegaZero ESP32-S2 microcontroller #5569

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Aug 23, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
148 changes: 148 additions & 0 deletions boards.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9206,6 +9206,154 @@ esp32-trueverit-iot-driver-mkii.menu.DebugLevel.verbose.build.code_debug=5

##############################################################

atmegazero_esp32s2.name=ATMegaZero ESP32-S2
atmegazero_esp32s2.vid.0=0x239A
atmegazero_esp32s2.pid.0=0x800A

atmegazero_esp32s2.upload.tool=esptool_py
atmegazero_esp32s2.upload.maximum_size=1310720
atmegazero_esp32s2.upload.maximum_data_size=327680
atmegazero_esp32s2.upload.flags=
atmegazero_esp32s2.upload.extra_flags=0x2d0000 "{runtime.platform.path}/variants/{build.variant}/tinyuf2.bin"
atmegazero_esp32s2.upload.use_1200bps_touch=true
atmegazero_esp32s2.upload.wait_for_upload_port=true

atmegazero_esp32s2.serial.disableDTR=false
atmegazero_esp32s2.serial.disableRTS=false

atmegazero_esp32s2.build.tarch=xtensa
atmegazero_esp32s2.build.bootloader_addr=0x1000
atmegazero_esp32s2.build.target=esp32s2
atmegazero_esp32s2.build.mcu=esp32s2
atmegazero_esp32s2.build.core=esp32
atmegazero_esp32s2.build.variant=atmegazero_esp32s2
atmegazero_esp32s2.build.board=atmegazero_esp32s2

atmegazero_esp32s2.build.serial=0
atmegazero_esp32s2.build.f_cpu=240000000L
atmegazero_esp32s2.build.flash_size=4MB
atmegazero_esp32s2.build.flash_freq=80m
atmegazero_esp32s2.build.flash_mode=qio
atmegazero_esp32s2.build.boot=qio
atmegazero_esp32s2.build.partitions=default
atmegazero_esp32s2.build.defines=

atmegazero_esp32s2.menu.SerialMode.cdc=USB CDC
atmegazero_esp32s2.menu.SerialMode.cdc.build.serial=1
atmegazero_esp32s2.menu.SerialMode.default=UART0
atmegazero_esp32s2.menu.SerialMode.default.build.serial=0

atmegazero_esp32s2.menu.PSRAM.disabled=Disabled
atmegazero_esp32s2.menu.PSRAM.disabled.build.defines=
atmegazero_esp32s2.menu.PSRAM.enabled=Enabled
atmegazero_esp32s2.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM

atmegazero_esp32s2.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
atmegazero_esp32s2.menu.PartitionScheme.default.build.partitions=default
atmegazero_esp32s2.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
atmegazero_esp32s2.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
atmegazero_esp32s2.menu.PartitionScheme.default_8MB=8M Flash (3MB APP/1.5MB FAT)
atmegazero_esp32s2.menu.PartitionScheme.default_8MB.build.partitions=default_8MB
atmegazero_esp32s2.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336
atmegazero_esp32s2.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
atmegazero_esp32s2.menu.PartitionScheme.minimal.build.partitions=minimal
atmegazero_esp32s2.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
atmegazero_esp32s2.menu.PartitionScheme.no_ota.build.partitions=no_ota
atmegazero_esp32s2.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
atmegazero_esp32s2.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
atmegazero_esp32s2.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
atmegazero_esp32s2.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
atmegazero_esp32s2.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
atmegazero_esp32s2.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
atmegazero_esp32s2.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
atmegazero_esp32s2.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
atmegazero_esp32s2.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
atmegazero_esp32s2.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
atmegazero_esp32s2.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
atmegazero_esp32s2.menu.PartitionScheme.huge_app.build.partitions=huge_app
atmegazero_esp32s2.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
atmegazero_esp32s2.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
atmegazero_esp32s2.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
atmegazero_esp32s2.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
atmegazero_esp32s2.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FAT)
atmegazero_esp32s2.menu.PartitionScheme.fatflash.build.partitions=ffat
atmegazero_esp32s2.menu.PartitionScheme.fatflash.upload.maximum_size=2097152
atmegazero_esp32s2.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9MB FATFS)
atmegazero_esp32s2.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB
atmegazero_esp32s2.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728

atmegazero_esp32s2.menu.CPUFreq.240=240MHz (WiFi)
atmegazero_esp32s2.menu.CPUFreq.240.build.f_cpu=240000000L
atmegazero_esp32s2.menu.CPUFreq.160=160MHz (WiFi)
atmegazero_esp32s2.menu.CPUFreq.160.build.f_cpu=160000000L
atmegazero_esp32s2.menu.CPUFreq.80=80MHz (WiFi)
atmegazero_esp32s2.menu.CPUFreq.80.build.f_cpu=80000000L
atmegazero_esp32s2.menu.CPUFreq.40=40MHz
atmegazero_esp32s2.menu.CPUFreq.40.build.f_cpu=40000000L
atmegazero_esp32s2.menu.CPUFreq.20=20MHz
atmegazero_esp32s2.menu.CPUFreq.20.build.f_cpu=20000000L
atmegazero_esp32s2.menu.CPUFreq.10=10MHz
atmegazero_esp32s2.menu.CPUFreq.10.build.f_cpu=10000000L

atmegazero_esp32s2.menu.FlashMode.qio=QIO
atmegazero_esp32s2.menu.FlashMode.qio.build.flash_mode=dio
atmegazero_esp32s2.menu.FlashMode.qio.build.boot=qio
atmegazero_esp32s2.menu.FlashMode.dio=DIO
atmegazero_esp32s2.menu.FlashMode.dio.build.flash_mode=dio
atmegazero_esp32s2.menu.FlashMode.dio.build.boot=dio
atmegazero_esp32s2.menu.FlashMode.qout=QOUT
atmegazero_esp32s2.menu.FlashMode.qout.build.flash_mode=dout
atmegazero_esp32s2.menu.FlashMode.qout.build.boot=qout
atmegazero_esp32s2.menu.FlashMode.dout=DOUT
atmegazero_esp32s2.menu.FlashMode.dout.build.flash_mode=dout
atmegazero_esp32s2.menu.FlashMode.dout.build.boot=dout

atmegazero_esp32s2.menu.FlashFreq.80=80MHz
atmegazero_esp32s2.menu.FlashFreq.80.build.flash_freq=80m
atmegazero_esp32s2.menu.FlashFreq.40=40MHz
atmegazero_esp32s2.menu.FlashFreq.40.build.flash_freq=40m

atmegazero_esp32s2.menu.FlashSize.4M=4MB (32Mb)
atmegazero_esp32s2.menu.FlashSize.4M.build.flash_size=4MB
atmegazero_esp32s2.menu.FlashSize.8M=8MB (64Mb)
atmegazero_esp32s2.menu.FlashSize.8M.build.flash_size=8MB
atmegazero_esp32s2.menu.FlashSize.8M.build.partitions=default_8MB
atmegazero_esp32s2.menu.FlashSize.2M=2MB (16Mb)
atmegazero_esp32s2.menu.FlashSize.2M.build.flash_size=2MB
atmegazero_esp32s2.menu.FlashSize.2M.build.partitions=minimal
atmegazero_esp32s2.menu.FlashSize.16M=16MB (128Mb)
atmegazero_esp32s2.menu.FlashSize.16M.build.flash_size=16MB

atmegazero_esp32s2.menu.UploadSpeed.921600=921600
atmegazero_esp32s2.menu.UploadSpeed.921600.upload.speed=921600
atmegazero_esp32s2.menu.UploadSpeed.115200=115200
atmegazero_esp32s2.menu.UploadSpeed.115200.upload.speed=115200
atmegazero_esp32s2.menu.UploadSpeed.256000.windows=256000
atmegazero_esp32s2.menu.UploadSpeed.256000.upload.speed=256000
atmegazero_esp32s2.menu.UploadSpeed.230400.windows.upload.speed=256000
atmegazero_esp32s2.menu.UploadSpeed.230400=230400
atmegazero_esp32s2.menu.UploadSpeed.230400.upload.speed=230400
atmegazero_esp32s2.menu.UploadSpeed.460800.linux=460800
atmegazero_esp32s2.menu.UploadSpeed.460800.macosx=460800
atmegazero_esp32s2.menu.UploadSpeed.460800.upload.speed=460800
atmegazero_esp32s2.menu.UploadSpeed.512000.windows=512000
atmegazero_esp32s2.menu.UploadSpeed.512000.upload.speed=512000

atmegazero_esp32s2.menu.DebugLevel.none=None
atmegazero_esp32s2.menu.DebugLevel.none.build.code_debug=0
atmegazero_esp32s2.menu.DebugLevel.error=Error
atmegazero_esp32s2.menu.DebugLevel.error.build.code_debug=1
atmegazero_esp32s2.menu.DebugLevel.warn=Warn
atmegazero_esp32s2.menu.DebugLevel.warn.build.code_debug=2
atmegazero_esp32s2.menu.DebugLevel.info=Info
atmegazero_esp32s2.menu.DebugLevel.info.build.code_debug=3
atmegazero_esp32s2.menu.DebugLevel.debug=Debug
atmegazero_esp32s2.menu.DebugLevel.debug.build.code_debug=4
atmegazero_esp32s2.menu.DebugLevel.verbose=Verbose
atmegazero_esp32s2.menu.DebugLevel.verbose.build.code_debug=5

##############################################################

deneyapmini.name=Deneyap Mini

deneyapmini.vid.0=0x303a
Expand Down
Binary file added variants/atmegazero_esp32s2/bootloader.bin
Binary file not shown.
11 changes: 11 additions & 0 deletions variants/atmegazero_esp32s2/partitions.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# ESP-IDF Partition Table
# Name, Type, SubType, Offset, Size, Flags
# bootloader.bin,, 0x1000, 32K
# partition table, 0x8000, 4K

nvs, data, nvs, 0x9000, 20K,
otadata, data, ota, 0xe000, 8K,
ota_0, 0, ota_0, 0x10000, 1408K,
ota_1, 0, ota_1, 0x170000, 1408K,
uf2, app, factory,0x2d0000, 256K,
ffat, data, fat, 0x310000, 960K,
59 changes: 59 additions & 0 deletions variants/atmegazero_esp32s2/pins_arduino.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
#ifndef Pins_Arduino_h
#define Pins_Arduino_h

#include <stdint.h>

#define USB_VID 0x239A
#define USB_PID 0x800A
#define USB_MANUFACTURER "ATMegaZero"
#define USB_PRODUCT "ATMZ-ESP32S2"
#define USB_SERIAL ""

#define EXTERNAL_NUM_INTERRUPTS 46
#define NUM_DIGITAL_PINS 48
#define NUM_ANALOG_INPUTS 20

#define analogInputToDigitalPin(p) (((p)<20)?(esp32_adc2gpio[(p)]):-1)
#define digitalPinToInterrupt(p) (((p)<48)?(p):-1)
#define digitalPinHasPWM(p) (p < 46)

static const uint8_t NEOPIXEL = 40;
static const uint8_t PD5 = 0;

static const uint8_t TX = 43;
static const uint8_t RX = 44;

static const uint8_t SDA = 8;
static const uint8_t SCL = 9;

static const uint8_t SS = 38;
static const uint8_t MOSI = 35;
static const uint8_t MISO = 37;
static const uint8_t SCK = 36;

static const uint8_t A0 = 17;
static const uint8_t A1 = 18;
static const uint8_t A2 = 13;
static const uint8_t A3 = 12;
static const uint8_t A4 = 6;
static const uint8_t A5 = 3;

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;

static const uint8_t DAC1 = 17;
static const uint8_t DAC2 = 18;

#endif /* Pins_Arduino_h */
Binary file added variants/atmegazero_esp32s2/tinyuf2.bin
Binary file not shown.