Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
a4d5699
core: update to zephyr 4.3.0+
facchinm Jan 8, 2026
0a419da
wifi: airoc: fix for zephyr v4.3.0+
facchinm Jan 8, 2026
1771f7e
camera: stm32: fix for zephyr v4.3.0+
facchinm Jan 8, 2026
cd8774f
overlay: stm32: fix for zephyr v4.3.0+
facchinm Jan 8, 2026
587c929
conf: all: switch to USB_NEXT for zephyr v4.3.0+
facchinm Jan 8, 2026
865d4d5
loader: disable usb before jumping to sketch
facchinm Jan 9, 2026
cbe1e03
variants: stm32h7: specify flash bank2 size
facchinm Jan 9, 2026
8c18ad6
overlays: formatting
facchinm Jan 9, 2026
84ef427
variants: complete switch to USB_NEXT on supported boards
facchinm Jan 9, 2026
d613b4c
build: Fix linker errors when using CPP features.
iabdalkader Jan 8, 2026
2a4417f
[TMP] added definition for nano nora board variant
andreagilardoni Nov 4, 2025
3d24b10
[TMP] added definition for nano_nora in boards.txt
andreagilardoni Nov 4, 2025
b0a0ee3
[TMP] adding toolchain download for xtensa-espressif in bootstrap.sh
andreagilardoni Nov 4, 2025
0ad1912
[TMP] making changes to loader to make espressif platform compile
andreagilardoni Nov 4, 2025
1c7a198
[TMP] removing -mcpu={build.mcu} since espressif toolshain doesn't su…
andreagilardoni Nov 4, 2025
804d562
typos
andreagilardoni Nov 4, 2025
8325c6b
[TMP] added esp tools to _common.json
andreagilardoni Nov 4, 2025
e554027
[TMP] try overcoming xtensa for log calls
andreagilardoni Nov 5, 2025
5cfb0f8
[TMP] Added esptool in programmers
andreagilardoni Nov 6, 2025
69bd1a5
[TMP] added esptool in platform.txt
andreagilardoni Nov 6, 2025
0c9d07c
[TMP] added esptool in nano nora board definition
andreagilardoni Nov 6, 2025
3966f74
[TMP] imported esptool from arduino-esp32
andreagilardoni Nov 6, 2025
29c1646
[TMP] adding further python stuff to gitignore
andreagilardoni Jan 2, 2026
4793162
[TMP] platform.txt nano esp32
andreagilardoni Jan 2, 2026
c09e71e
[TMP] boards.txt nano esp32
andreagilardoni Jan 2, 2026
fcb44c1
[TMP] random multiple definitions
andreagilardoni Jan 2, 2026
57bccc4
[TMP] putting .literal section before text
andreagilardoni Jan 16, 2026
9b1ce3a
[TMP] added working fork of zephyr for nano-esp32
andreagilardoni Jan 16, 2026
d0df01a
[TMP] added working loader configuration
andreagilardoni Jan 16, 2026
d559723
fixup! [TMP] added definition for nano nora board variant
andreagilardoni Jan 19, 2026
d01da45
fixup! [TMP] boards.txt nano esp32
andreagilardoni Jan 19, 2026
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
172 changes: 172 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,175 @@ cxxflags.txt
includes.txt
syms-dynamic.ld
syms-static.ld

### Python ###
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock

# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/

### Python Patch ###
# Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration
poetry.toml

# ruff
.ruff_cache/

# LSP config files
pyrightconfig.json
129 changes: 128 additions & 1 deletion boards.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ giga.build.mcu=cortex-m7
giga.build.fpu=-mfpu=fpv5-d16
giga.build.architecture=cortex-m7

giga.build.float-abi=-mfloat-abi=softfp
giga.build.float-abi=
# giga.build.float-abi=-mfloat-abi=softfp
giga.build.extra_flags=
giga.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit
giga.build.architecture=cortex-m7
Expand Down Expand Up @@ -690,3 +691,129 @@ unoq.bootloader.file=zephyr-{build.variant}.elf
unoq.bootloader.target=stm32u585zitxq

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

nano_esp32.name=Arduino Nano ESP32
#nano_esp32.build.core=esp32
nano_esp32.build.core=arduino
nano_esp32.build.crossprefix=xtensa-espressif_esp32s3_zephyr-elf-
# TODO
# nano_esp32.build.compiler_path={runtime.tools.xtensa-espressif_esp32s3_zephyr-elf-0.17.0.path}/bin/
nano_esp32.build.compiler_path=/home/agilardoni/zephyr-sdk-0.17.0/xtensa-espressif_esp32s3_zephyr-elf/bin/

nano_esp32.menu.debug.false=Standard
nano_esp32.menu.debug.true=Debug
nano_esp32.menu.debug.true.build.zsk_args.debug=-debug

# TODO
nano_esp32.build.zephyr_target=arduino_nano_esp32/esp32s3/procpu
nano_esp32.build.zephyr_args=
nano_esp32.build.zephyr_hals=hal_espressif
nano_esp32.build.artifact=zephyr_main
nano_esp32.build.variant=arduino_nano_esp32_esp32s3_procpu
# TODO -mcpu is not supported by xtensa compiler
nano_esp32.build.mcu=esp32s3

# TODO unrecognized command-line option
# nano_esp32.build.fpu=-mfpu=fpv4-sp-d16
nano_esp32.build.fpu=
nano_esp32.build.architecture=esp32s3

# TODO unrecognized command-line option
# nano_esp32.build.float-abi=-mfloat-abi=hard
nano_esp32.build.float-abi=
nano_esp32.build.extra_flags=
nano_esp32.build.extra_ldflags=
nano_esp32.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit
nano_esp32.build.architecture=esp32s3
nano_esp32.build.board=nano_esp32

nano_esp32.tools.esptool_py.erase.pattern_args=--chip {build.mcu} --port "{serial.port}" --before default_reset --after hard_reset erase_flash

nano_esp32.vid.0=0x2341
nano_esp32.pid.0=0x0070
nano_esp32.upload_port.0.vid=0x2341
nano_esp32.upload_port.0.pid=0x0070

nano_esp32.upload.tool=esptool_py
nano_esp32.upload.tool.default=esptool_py
nano_esp32.upload.tool.network=esp_ota

nano_esp32.upload.speed=256000
nano_esp32.upload.erase_cmd=

# nano_esp32.menu.FlashMode.qio=QIO 80MHz
# nano_esp32.menu.FlashMode.qio.build.flash_mode=dio
# nano_esp32.menu.FlashMode.qio.build.boot=qio
# nano_esp32.menu.FlashMode.qio.build.boot_freq=80m
# nano_esp32.menu.FlashMode.qio.build.flash_freq=80m
# nano_esp32.menu.FlashMode.qio120=QIO 120MHz
# nano_esp32.menu.FlashMode.qio120.build.flash_mode=dio
# nano_esp32.menu.FlashMode.qio120.build.boot=qio
# nano_esp32.menu.FlashMode.qio120.build.boot_freq=120m
# nano_esp32.menu.FlashMode.qio120.build.flash_freq=80m
# nano_esp32.menu.FlashMode.dio=DIO 80MHz
# nano_esp32.menu.FlashMode.dio.build.flash_mode=dio
# nano_esp32.menu.FlashMode.dio.build.boot=dio
# nano_esp32.menu.FlashMode.dio.build.boot_freq=80m
# nano_esp32.menu.FlashMode.dio.build.flash_freq=80m
# nano_esp32.menu.FlashMode.opi=OPI 80MHz
# nano_esp32.menu.FlashMode.opi.build.flash_mode=dout
# nano_esp32.menu.FlashMode.opi.build.boot=opi
# nano_esp32.menu.FlashMode.opi.build.boot_freq=80m
# nano_esp32.menu.FlashMode.opi.build.flash_freq=80m

nano_esp32.build.tarch=xtensa
nano_esp32.build.bootloader_addr=0x0
nano_esp32.build.usb_mode=1
nano_esp32.build.cdc_on_boot=0
nano_esp32.build.msc_on_boot=0
nano_esp32.build.dfu_on_boot=0
nano_esp32.build.f_cpu=240000000L
nano_esp32.build.flash_size=16MB
nano_esp32.build.flash_freq=80m
nano_esp32.build.flash_mode=dio
nano_esp32.build.boot=qio
nano_esp32.build.boot_freq=80m
nano_esp32.build.defines=
nano_esp32.build.loop_core=
nano_esp32.build.event_core=
nano_esp32.build.psram_type=qspi
nano_esp32.build.memory_type={build.boot}_{build.psram_type}

nano_esp32.upload.maximum_size=1310720
nano_esp32.upload.maximum_data_size=327680
nano_esp32.upload.flags=
nano_esp32.upload.extra_flags=
nano_esp32.upload.use_1200bps_touch=false
nano_esp32.upload.wait_for_upload_port=false

nano_esp32.serial.disableDTR=false
nano_esp32.serial.disableRTS=false


nano_esp32.upload.protocol=
nano_esp32.upload.transport=
nano_esp32.upload.vid=0x2341
nano_esp32.upload.pid=0x0070
nano_esp32.upload.interface=0
nano_esp32.upload.native_usb=true
nano_esp32.upload.address=0x7e0000

nano_esp32.upload.maximum_size=8126464
nano_esp32.upload.maximum_data_size=523624

nano_esp32.bootloader.tool=esptool_py
nano_esp32.bootloader.tool.default=esptool_py
nano_esp32.bootloader.vid=0x2341
nano_esp32.bootloader.pid=0x0070
nano_esp32.bootloader.file=zephyr-{build.variant}.bin
# TODO duplicate of nano_esp32.build.bootloader_addr
nano_esp32.bootloader.address=0x0000

# nano_esp32.debug.tool=gdb
# nano_esp32.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg
# nano_esp32.debug.server.openocd.scripts.1={programmer.transport_script}
# nano_esp32.debug.server.openocd.scripts.2=target/nrf52.cfg
# nano_esp32.debug.cortex-debug.custom.request=attach

##########################################################################################
11 changes: 0 additions & 11 deletions cores/arduino/abi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,6 @@

#include <stdlib.h>

namespace std {
void __throw_length_error(const char *__s __attribute__((unused))) {
}

void __throw_bad_alloc() {
}

void __throw_bad_function_call() {
}
}; // namespace std

extern "C" {

void *__dso_handle = (void *)&__dso_handle;
Expand Down
18 changes: 9 additions & 9 deletions cores/arduino/zephyrCommon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -466,17 +466,17 @@ void detachInterrupt(pin_size_t pinNumber) {

#include <stdlib.h>

void randomSeed(unsigned long seed) {
srand(seed);
}
// void randomSeed(unsigned long seed) {
// srand(seed);
// }

long random(long min, long max) {
return rand() % (max - min) + min;
}
// long random(long min, long max) {
// return rand() % (max - min) + min;
// }

long random(long max) {
return rand() % max;
}
// long random(long max) {
// return rand() % max;
// }

#endif

Expand Down
10 changes: 10 additions & 0 deletions extra/artifacts/_common.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,16 @@
"name": "arm-zephyr-eabi",
"version": "0.16.8"
},
{
"packager": "zephyr",
"name": "xtensa-espressif_esp32s3_zephyr-elf",
"version": "0.16.8"
},
{
"packager": "esp32",
"name": "esptool_py",
"version": "4.5.1"
},
{
"packager": "arduino",
"name": "dfu-util",
Expand Down
1 change: 1 addition & 0 deletions extra/bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,5 @@ west update "$@"
west zephyr-export
pip install -r ../zephyr/scripts/requirements-base.txt
west sdk install --version 0.16.8 -t arm-zephyr-eabi
west sdk install --version 0.16.8 -t xtensa-espressif_esp32s3_zephyr-elf
west blobs fetch $NEEDED_HALS
File renamed without changes.
Loading
Loading