Commit graph

70 commits

Author SHA1 Message Date
Me No Dev
dc5bd3814c
fix(release): Shorten all toolchain names/versions (#9760)
Helps to overcome the limit of windows path, when the usernames are long.
2024-06-04 09:46:50 +03:00
me-no-dev
97c98eb0cb Update core version to 3.0.1 2024-06-03 13:09:02 +03:00
per1234
79b835059f
feat(tools):Use Windows native path separator in ESP_SR model copy command pattern (#9649)
* fix(platform): Use Win path separator in ESP_SR copy command pattern

Although Windows generally supports the use of the POSIX compliant slash path separator in addition
to the Windows native backslash separator, in the specific use case where a path is present in a
native command executed via an argument to `cmd /c` in a platform command pattern, it is mandatory
to use backslash path separators.

Previously, a slash path separator was used in the `tools.esp32-arduino-libs.path` and
`compiler.sdk.path` platform properties, which were referenced in a `copy` command in the `cmd /c`
argument part of the platform's `recipe.hooks.objcopy.postobjcopy.2.pattern.windows` command
pattern. This caused compilation to fail with a "The syntax of the command is incorrect." error
under the following conditions:

- The compilation is performed on a Windows machine
- The compiled sketch uses the ESP_SR library

This is fixed by adding Windows override variants of the properties, with backslash path separators.

* fix(release): Remove windows path to libs when releasing

---------

Co-authored-by: me-no-dev <hristo@espressif.com>
2024-05-29 14:26:51 +03:00
Me No Dev
f772fcadfd
fix(boards): Remove duplicate VID/PID from boards.txt and add default CDC/JTAG board (#9717)
* fix(boards): boards must define unique VID/PID

Also adds a hidden board with the default VID/PID of USB CDC/JTAG in order to always show that in IDE when ESP32 CDC/JTAG device is connected

* fix(boards): Skip test for the generic board

* Trigger board test

* fix(boards): Make discovery work on IDE2
2024-05-29 13:00:07 +03:00
Lucas Saavedra Vaz
d45f35a2c8
ci(wokwi): Self host Wokwi CLI server (#9701)
* ci(wokwi): Self host Wokwi CLI server

* ci(event_file): Fix file upload

* change(tests): Re-run once on test failure
2024-05-27 21:35:57 +03:00
Me No Dev
b3ad98cbf6
fix(release): Update merge_package.py (#9694)
Use packaging.version instead of the deprecated distutils.version
2024-05-27 17:13:59 +03:00
Lucas Saavedra Vaz
e10de73e61
ci(qemu): Add QEMU emulator to CI (#9558)
* ci(qemu): Add QEMU emulator to CI

* ci(qemu): Fix windows build

* ci(qemu): Fix skips

* ci(qemu): Skip performance tests

* ci(qemu): Disable QEMU tests for now

* fix(platform): Fix build script recipe number
2024-05-13 23:09:10 +02:00
Jan Procházka
84376a765a
ci(hil): Touch skip file whe platform is skipped (#9605) 2024-05-09 13:52:50 -03:00
Lucas Saavedra Vaz
789b1a8425
ci(wokwi): Add Wokwi emulator to workflow (#9540)
* ci(wokwi): Add wokwi emulator to CI

* feat(wokwi): Support scenario

* feat(wokwi): Add simple CI test for push button

* sudo apt command

* sudo both apt commands

* Add missing test.py file

* Test pytest path changes

* empty push

* move wokwi cli token variable

* move token back to wokwi job

* Update hil.yml

* Update hil.yml

* revert run on pr

* run on PR target

* run only on master

* ci(wokwi): Support wokwi

* ci(wokwi): Skip unsupported and performance test

* ci(wokwi): run wokwi tests without label

* debug: run build on windows

* RUN WIFI WITH PSRAM ON-OFF

* fix psram for S3

* Revert "debug: run build on windows"

This reverts commit bc085e50502eb470836276097fa45ee0e2374ed1.

* ci(wokwi): Run workflow only if build was sucessful

* ci(pre-commit): Apply automatic fixes

* ci(wokwi): Add generated files to gitignore

---------

Co-authored-by: Jan Prochazka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-05-07 18:46:19 +03:00
Lucas Saavedra Vaz
1299582047
ci(performance): Add performance tests to CI (#9560)
* ci(performance): Add performance tests to CI

* ci(req): Fix requirements

* ci(pre-commit): Apply automatic fixes

* ci(pre-commit): Increase maximum allowed complexity for python

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2024-05-07 13:16:13 +02:00
Lucas Saavedra Vaz
86b3163c62
ci(install): Change "arch" to distro-agnostic "uname -m" (#9537) 2024-04-19 21:34:47 +03:00
Me No Dev
ae0dc17339
fix(release): Temporary halt JSON uploads on release, until generator is fixed (#9536)
* fix(release): Temporary halt JSON uploads on release, until generator is fixed

* fix(script): enable JSON upload to release page
2024-04-19 19:52:01 +03:00
Jan Procházka
0219c213ce
[CI] Get sizes from push workflow, updated build scripts (#9524)
* Remove event-file from External libs wf

* Add compilation log to the build scripts

* Add 2nd compilation run on base branch

* Fix sketch_utils script

* Update on-push.sh

* Update Push workflow

* Upload pr number in lib.yml

* Fix PR number in publish sizes

* Update external libs results with pr num file
2024-04-18 12:52:39 +03:00
Me No Dev
f2026f1e34
3.0.0 Network Refactoring (#8760)
* Create ESP_NetworkInterface class and have Ethernet extending it

* Update CMakeLists.txt

* Split networking from WiFi (H2 can now use Ethernet)

Now all libs have been checked yet. More to do on WiFi side

* Fix build errors

* Guard WiFi classes and fix RMII ETH examples

* Decouple network related libraries from WiFi

* Fix examples and WiFiUpdate

* Guard WiFiProv lib to compile only on WiFi chips

* Add periman string for network and "fix" mdns on the first ETH

* Revert back location of Client/Server/Udp in order to accept some PRs

* Fix periman

* Some fixes from merging master

* Fix web server missing fs.h

* Move Client, Server and Udp out of WiFi

* More fixes

* more fixes

* Fix CMakekLists and rework lib menu dependencies

* Fix CMake issues

* move back WiFiClient to rebase with master

* Update ETH_TLK110.ino

* Move back WiFiClient

* Update progress

* Update WiFiGeneric.cpp

* More fixes

* Switch AP to the new interface

* Cleanup

* Rename AP methods

* Add extra interface info for Printable

* Rename IPv6 getters to clarify that they are returning LinkLocal address

cc @sgryphon

* Rename network classes

cc @sgryphon

* Update NetworkManager.h

* Rename WiFi Server and UDP

* Rename WiFiClient and WiFiClientSecure

* Update CMakeLists.txt

* Update on-push.sh

* Rename Network library

* Remove unnecessary guard

* Get the correct interface MAC address for mDND Workstation service

* Apply suggestions from code review

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-03-26 23:31:23 +02:00
Jan Procházka
fcef7395e8
fix(boards): Fixes needed to pass CI all-boards-test (#9390) 2024-03-20 14:11:35 +02:00
Me No Dev
e5330d1797
Remove -Werror=all from build flags, but enable it in CI (#9273)
Fixes: https://github.com/espressif/arduino-esp32/issues/7024
2024-02-21 14:57:39 +02:00
Luca Burelli
7a22d64be2
Implement official Arduino IDE debugger API (#9116)
* refactor(on-release): improve platform.txt path replacements

Use regexs to replace all occurrences of `{runtime.platform.path}` with
the correct `{runtime.tools.*.path}`, regardless of directory separator,
and remove dependency on specific text around each path.

Note that the order has been changed to ensure that the longest paths
are replaced first, to avoid replacing parts of other paths.

* fix(platform): Windows backslash cleanups

Ensure Windows paths properly use a backslash as folder separator.

* feat(platform)!: use new Arduino Debug API

Implement sketch debugging according to the official Arduino
Platform Debug Specification [1].

The biggest improvement is that now `launch.json` can be fully
customized by the core (including the type of each entry),
so there is no need to copy files in the sketch folder.
In particular, `debug_custom.json` is not used anymore.

[1] https://arduino.github.io/arduino-cli/latest/platform-specification/#sketch-debugging-configuration

BREAKING CHANGE: This commit requires Arduino IDE 2.3.0 or later to use
the debugging features. Older versions will no longer be able to start
a debug session successfully.

* feat(debug): pass objdump path to resolve globals

Cortex-debug requires objdump to be in the same folder as gdb, or needs
the full path to the executable in the `launch.json` file. This is now
possible with the new debugging API.

* feat(debug): conditionally enable debug button on Nano ESP32

If the `debug.executable` variable is null or unset, the Debug button
appears grayed out. The new IDE also takes current parameters into
account, allowing to conditionally enable the Debug button only when
some conditions are met.

* on_release: allow single board packages

---------

Co-authored-by: Martino Facchin <m.facchin@arduino.cc>
2024-02-09 12:53:18 +02:00
Jan Procházka
c5297bfa3a
fix: Windows runner build skip and exit on error (#8991) 2023-12-13 13:32:54 +02:00
Jan Procházka
8520725eb7
install arduino-cli instead Arduino IDE (#8961)
Co-authored-by: Lucas Saavedra Vaz <lucas.vaz@espressif.com>
2023-12-05 18:54:35 +02:00
me-no-dev
7438c6e9b1 Fix date parser in release script 2023-10-12 10:27:44 +03:00
Me No Dev
e8771be0b7
Rename the RV32 toolchain on release to fit paths in GCC limit (#8750)
Some include paths in the RV32 toolchain on Windows end up too long for GCCs 200 char limit and compilation fails. While a fix is provided upstream, we workaround this issue by shortening the tool name and version, thus saving 26 chars of the path.
2023-10-11 18:48:36 +03:00
me-no-dev
7cf353bdd1 Fix libs download for release and add FS::mounpoint() getter 2023-10-06 16:11:09 +03:00
Me No Dev
6603b6ed2f
Update release script for 3.0.0 (#8728)
* Update release script for 3.0.0

* Fix version in platforms.txt and code cleanup
2023-10-06 15:49:25 +03:00
Me No Dev
6f7a1ca76a
ESP-IDF v5.1 (#7733)
* Initial changes to compile under ESP-IDF v5.1

* Initial import for ESP-IDF v5.1 libs

* Update toolchain

* Update esp32-hal-psram.c

* Add missing LDs

* Update platform.txt

* Stop some CI jobs, because they will always fail

* Fix examples

* Update app_httpd.cpp

* Update ResetReason.ino

* Warnings fixes

* Added the example guideline and template (#7665)

* Added the example guideline and template

* PR review changes with some typos and grammar fixes

* Changes according to the PR review

* Added ESP32-S3 link to the datasheet (#7738)

* Update HiFreq_ADC.ino

* Replace periph_ctrl.h use because of deprecation

* Replace esp_spi_flash.h use because of deprecation

* Add includes to male mDNS::enableWorkstation compile

* Fix ssl_client mbedtls_pk_parse_key callback

* Update temperature sensor driver

* Allow sketch_utils to compile with arduino-cli

* Run CI with arduino-cli

* Fix arduino-cli CI build on Windows

* Refactor platform.txt to not use components installed through the board manager when running from git

* Initial Peripheral Manager Implementation

* Update SigmaDelta driver to use the new ESP-IDF driver API

* Small improvements to peripheral manager and SigmaDelta

* Remove deleted function from SigmaDelta header

* Update DAC driver to use the new ESP-IDF driver API

* Adds softAp(String) to make it compatible with ESP8266 (#7801)

* Fix commentary (#7800)

Minor fix based on observation done in https://github.com/espressif/arduino-esp32/issues/7795#issuecomment-1416868611

* add adafruit new board feather esp32s2 reserve tft (#7794)

* bugfix: add <stdint.h> for uint8_t to avoid compilation failure (GCC 11.2.0) (#7744)

* Adding 3rd party boards for VALTRACK-V4-VTS-ESP32-C3 & VALTRACK-V4-MFW-ESP32-C3 (#7735)

* Added VALTRACK-V4-VTS-ESP32-C3 board definition

Created pins_arduino.h & made changes to boards.txt with necessary changes

* Modified the URL

* Renamed json

* renamed all auRL

* Adding VALTRACK-V4 series board definitions

Added VALTRACK-V4-VTS-ESP32C3 & VALTRACK-V4-MFW-ESP32-C3 board variants

* Adding VALTRACK-V4 series board definitions

Added VALTRACK-V4-VTS-ESP32C3 & VALTRACK-V4-MFW-ESP32-C3 board variants

* Reverted package_esp32_index.template.json

restored package_esp32_index.template.json from edits

* Reverted package_esp32_index.template.json

Added new line to package_esp32_index.template.json

* Update Platformio CI (#7725)

* WiFiClient example fix (#7711)

* Modified WiFiClient example to use thingspeak instead of non-functionig sparkfun

* Moved instructions to README

* Fixed spelling

* Added link to S3 datasheet

---------

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>

* Mirror update from Heltec repository (#7709)

Heltec updated the I2C pins in b10f4bf85d

* Fixes BLE data printing (#7699)

* Fixes BLE data printing

BLE data has no '\0' terminator, therefore it can't be printed as a regular C string.
This fix just prints the BLE data based on its length.

* Simplify printing to a single call

* split menu options + lora_32_V3 fix (#7697)

* Change header gaurd name (#7696)

* Fix Name (#7691)

Wrong name in definitions.

* Fix error in WiFiClient.cpp where the connect function fails for timeouts below 1 second (#7686)

* Update WiFiClient.cpp

This change will allow specifying connect timeouts below 1 second. Without this change, if connect timeouts under 1 second are given, the connect defaults to 0ms and fails. 
This will also allow timeouts in fractions of seconds, e.g. 1500ms. Without this change, connect timeouts are truncated to full second increments.

* Make parameter timeout_ms clear

* Change connection timeout_ms name for clarity

---------

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>

* fixed the function header (#7674)

* fixed the function header

* fixed function name and paramaters

---------

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>

* Ticker fix solving #6155 (#7664)

* Wrapped Ticker functions with #pragma disabling -Wcast-function-type

* Revert "Wrapped Ticker functions with #pragma disabling -Wcast-function-type"

This reverts commit 160be7e67a10d01b6e44c4bf2521c0ccd6348976.

* Fixed Ticker example

* Modified Ticker example

* Fixed LED_BUILTIN err for ESP32

---------

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>

* setPins fix ESP32 "specified pins are not supported by this chip." (#7646)

[ESP32: SDMMCFS::begin hardcodes the usage of slot 1, only check if the pins match slot 1 pins.]

setPins() was testing pins D1, D2 and D3 all against D1 ... fine in 1 pin mode when all are -1 not so much if you're trying to get 4 pin mode working.
I now see this function doesn't really do anything on the ESP32...accept now correctly checks that you are trying to use the slot 1 pins.

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>

* Allow passing IP as connect method parameter in WiFiClientSecure and skip unnecessary host-ip conversions (#7643)

* Add LED_BUILTIN* definitions and initialization for LEDs to stop them floating. (#7636)

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>

* Expand path to tinuf2 image when checking existence in platformio-build.py (#7631)

* Expand path to tinuf2 image when checking existence

* More isFiles fixed

* Remove (useless) trailing semicolon from Print.cpp (#7622)

* ADD: New variant Edgebox-ESP-100 (#7771)

* ADD: New variant Edgebox-ESP-100

* FIX: Edgebox-ESP-100 Board.txt usb mode option change back to default value as ESP32S3

* Add Crabik Slot ESP32-S3 board (#7790)

* Added Crabik Slot ESP32-S3

* Adding CPU frequency settings and removing excess from partition scheme settings

* new variant LilyGO T-Display-S3 (#7763)

* new variant LilyGO T-Display-S3

https://github.com/Xinyuan-LilyGO/T-Display-S3

* Add boards.txt definition

---------

Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>

* Update get.py to support Apple ARM64

* Update package_esp32_index.template.json

* WString Return bool (#7774)

* Add Roboheart Hercules development board to the esp32-core (#7672)

* added Roboheart Hercules pin definitions and board.txt entries

* added package_roboheat.json for prototyping

* Roboheart Hercules pins

* Updated the pins

* Delete package_roboheart.json

* Requested changes

---------

Co-authored-by: renebohne <rene.bohne@gmail.com>

* Reword "ESP-IDF as Component" (#7812)

I think "Arduino as an ESP-IDF component" or just "As ESP-IDF component" instead of  "ESP-IDF as Component" is more correct way to name the link.

1. "ESP-IDF as Component" would imply that ESP-IDF is some sort of library for Arduino, which is (IMO) misleading, because it's true the other way around.
2. It's written as "Arduino as an ESP-IDF component" on the webpage it points to as well.

- Also I removed the capitalization from "Component" as I have not found a reason why is it capitalized.

* add new board Adafruit Feather ESP32-S3 Reverse TFT (#7811)

* Multi threading examples (tasks, queues, semaphores, mutexes) (#7660)

* Moved and renamed example ESP32/FreeRTOS to MultiThreading/BasicMultiThreading

* Added dummy files

* Modified original example

* Fixed BasicMultiThreading.ino

* Added Example demonstrating use of queues

* Extended info in BasicMultiThreading

* Renamed Queues to singular Queue

* Added Mutex example

* Added Semaphore example

* Moved info from example to README

* Moved doc from Mutex to README

* Added Queue README

* Removed unecesary text

* Fixed grammar

* Increased stack size for Sempahore example

* Added headers into .ino files

* Added word Example at the end of title in README

* removed unused line

* Added forgotten README

* Modified BasicMultiThreading example

* Added missing S3 entry in README

* moved location

* Update ESP-IDF libs

* Update CMakeLists.txt

* Update esptool to v4.4

* Add function timerAttachInterruptFlag (#7809)

* Update esptool to v4.5

* ADC refactoring (#7827)

* Adc refactored + periman implementation

Peripheral manager still needs to be checked if the implementation is right.

* switched to working solution for milivolts read

* Periman detachbus fix

* coding style

* fix CI warnings

* fix FreeRTOS example

* Update ETH.cpp

* Update FunctionalInterruptStruct.ino

* Update package_esp32_index.template.json

* Update package_esp32_index.template.json

* Fixes for the latest IDF v5.1

* update esp-idf libs and toolchain

* Turn OFF auto crystal frequency for ESP32 (needed by TWAI)

* Update examples

* Switch build to mostly use flags from files

Includes can not be done this way

* Reorganize flag files

* Optimize chip build flags further

* Revert defines from file. MBEDTLS_CONFIG_FILE does not properly expand

* Add support for includes and defines from file

* Replace old sdk path references in platform.txt

* use gcc-ar (#8013)

* Makes F_CPU generic for all SoC (#8007)

Based on CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ that is correctly defined in the sdkconfig file for each SoC.

* TIMER refactoring (#7904)

* refactor using GPtimer

* Updated timer HW test

* fix examples

* Add v2.0.7 in issue template (#7871)

* refactor using GPtimer

* Updated timer HW test

* fix examples

* Revert "Add v2.0.7 in issue template (#7871)"

This reverts commit fcc3b17d62ff57861f8913ca1f142fd5163b7457.

* Update upload-artifact to v3 in HW CI

* Revert "Update upload-artifact to v3 in HW CI"

This reverts commit 1ba228071718ba37c4e26d98db22f77b2a7364a6.

* replace resolution with frequency

* remove count_down option

* countup removed from examples + header

* Refactored timer object

* code cleanup + examples and tests fixes

* TimerAlarm fix

---------

Co-authored-by: Vojtěch Bartoška <76958047+VojtechBartoska@users.noreply.github.com>

* [Docs] ADC and Timer API Update (+some docs fixes) (#7906)

* updated docs

* remove hall sensor docs

Removed Hall sensor documentation as its no longer supported in IDF-5

* Fixed ESPNow examples location in docs

* Last timer refactored API + gpio small fix

* AlarmWrite fix

* Fixes APLL/PLL with RTC Frequency (#8025)

log_d() was displaying APLL for any SoC, but S3 and C3 has not such option, causing compilation errors.

* Update IDF libs and fix OPI PSRAM on S3

* Add setMode function HardwareSerial.c to set the esp32 uart mode for use with RS485 auto RTS (#7935)

* Added setMode function to set the esp32 uart mode

Used to set the esp32 uart mode for use with RS485 Half Duplex and the auto RTS pin mode. This will set/clear the RTS pin output to control the RE/DE pin on most RS485 chips.

* Add Success (bool) return in some functions

* Add Success (bool) return code to some functions

* Add Success (bool) return to some functions

* Add Success (bool) return to some functions

* Fix uartSetRxTimeout return type

---------

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>

* Add support for esp-elf-gdb

* WFG Crashfix (#8044)

* Update component libs

* IDF release/v5.1 (#8061)

* IDF release/v5.1 bb9200acec

* Update Esp.cpp

* IDF release/v5.1 420ebd208a

* Update esp32-hal-psram.c

* Switch SDK to be an external package

* fix path (#8096)

* Makes UART work at any APB Frequency (#8097)

Fixes HardwareSerial to work with IDF 5.1 on any CPU/APB Frequency (240MHz to 10MHZ), including user created low power modes.

* Add required callbacks for TinyUSB DFU

* Update version to 3.0.0

* Add ESP.getCoreVersion() and update ESP.getChipModel()

* Update timer hal for the latest 5.1

* Use separate RX and TX buffer sizes in HTTP client

optimizes download by allowing up to 4K packets to be received

* Rename clock tree enum name in latest 5.1

* ESP32-H4 support was removed in ESP-IDF v5.1

* IDF release/v5.1 2004bf4e11 (#8165)

* Deinit previous bus first (#8180)

* TIMER - add timer_started flag, fix timerEnd() + timer HW test (#8135)

* Add timer_started flag and stop before disable

* Fix timer HW test

* TOUCH - Peripheral manager implementation (#8129)

* Touch periman implemented

* Deinit previous bus first

* LEDC Refactoring - Peripheral manager implemented (#8126)

* LEDC periman implementation

* Fix examples

* Rework tone

* Update ledc docs

* fix missing bracket

* Update analog funtions esp32-hal.h

* Update CameraWebServer example

* Fix HiFreq_ADC example

* minor fixes - typos

* Avoid calling tone/notone when tone already runs on dif. pin

* Remove unused channels_resolution

* GPIO - Peripheral manager implementation (#8179)

* periman-implementation

* fix RGB_BUILTIN and remove space

* Enforces more consistency into Peripheral Manager (#8188)

* Avoid log_i() message the first time a bus is assigned

* Prevent operation with ESP32_BUS_TYPE_INIT

* keeps coding style

* do not print messages on INIT bus type

* [Arduino Core 3.0.0] RMT IDF5.1 Refactoring (#7994)

* RMT IDF5.1 refactoring

* Fixes initial value setting

* removed rmtRead() with user callback

* simplify/remove Read data structure

* Deep API simplification

* fixes the examples

* fix rmt.h

* adds support to APB different frequencies

* fixes CI and not defined RGB_BUILTIN

* new RMT API and examples

* fixing commentaties

* Update esp32-hal-rgb-led.c

* changes Filter API

* Fixes example with Filter API

* Update PlatformIO scripts for the upcoming 3.0 core (#8183)

* Update PlatformIO scripts for the upcoming 3.0 core

* Dynamically select proper framework-arduinoespressif32-libs package

With this change the dev-platform will be dynamically configured to
pull the latest .zip package with precompiled libraries from extracted from
package_esp32_index.template.json

* free memory on detach (#8264)

* SPI - Peripheral manager implementation  (#8255)

* spi periman implementation

* fix header file

* remove unused struct

* fix missing braces

* Update esp32-hal-rmt.c (#8216)

Optimizing Peripheral Manager Test

* I2C - Peripheral manager implementation (#8220)

* i2c-master periman initial commit

* i2c-master make detachbus static + comment remove

* i2c-slave periman implementation

* SetPinBus to INIT on i2cDeinits

* Fix slave pins deinit

* remove dbg logs

* set ret to ESP_FAIL instead of returning

* Fix warnings in hal-spi caused by pariman transition

* Update esptool.py to version 4.6

* Add platform support for ESP_SR

* Add USB Type and valid pin check to periman

* replace bus with spi->num+1 (#8279)

* Remove default pins from SPI HAL

* Add commented out handlers for esptool.js in TinyUSB CDC

For future use

* Add build defines for host os and fqbn (for debug purposes)

* Provide proper memory caps total size

* Update Esp.cpp

* SDMMC - Peripheral manager implementation (#8289)

* sdmmc periman implemented

* save pins when SOC_SDMMC_USE_IOMUX

* IDF release/v5.1 4bc762621d (#8292)

* Adds missing pinMode (#8312)

* Adds missing pinMode

The example code lacks a pinMode() to initialize the GPIO 0 (button). In Arduino Core 3.0.0, it prints an error message when trying to read a not initialized GPIO.

* Update KeyboardLogout.ino

Adds <buttonPin> to keep code standard

* Update KeyboardReprogram.ino

Adds <buttonPin> to keep code standard

* LEDC Fade implementation (#8338)

* fade API + pointer fixes

* Add fade api

* Add fade example

* update ledc docs

* remove unused variables

* fix path to example

* Adds USB to Peripheral Manager - Arduino Core 3.0.0 (#8335)

* ETHERNET - Peripheral manager implementation (#8297)

* Peripheral manager implemented

* remove unused variable

* Add all RMII pins

* fix typo

* Adds HardwareSerial to Peripheral Manager Arduino 3.0.0 (#8328)

* Do not limit ETHERNET in periman to only ESP32. SPI is also an option

* Initial support for ESP32-C6 (#8337)

* Add checks for SOC defines (#8351)

* Add checks for SOC defines

* Add SoC checks to BLE library

* fix i2c compilation error

* fix wrong placement of include

* add check to SPI library

* add check to USB library

* add checks to Wire library

* Feature/esp32h2 support (#8373)

* Initial support for ESP32H2

* Additional changes for ESP32H2

* Update libs for ESP32H2

* Fix flashing on ESP32-H2

* Fix GPIO Configs for ESP32-C6 and ESP32-H2

* Update Timer test sketch

* Fix upload flash parameters

* Use ets_write_char_uart instead of ets_printf in log_printfv

* Print full chip report when log level is sufficient (#8282)

* ESP32-C3 does not have ets_write_char_uart

* Fix BLE gap event name

* HW Testing - Pytest update (#8389)

* update tests requirements

* remove already handled components

* Update version of pytest

* Add missing ESP32-H2 to hil.yml

* Updated FreeRTOS names (#8418)

* HW Testing -  ESP32-C6 + ESP32-H2 fixes (#8404)

* add C6/H2 to tests cfg.json

* remove ,

* workflow runs-on runner by matrix

* Add need for arduino tag to select runner

* Add cryptography to requirements.txt

* Removed duplicate TX1 define for H2 (#8402)

* Fix broken examples

* Fixes RMT filter & idle timing and setup (#8359)

* Fixes Filter and Idle parameter to uint32

* Fixes Filter and Idle setup

* Fixes it to 5.1Libs branch

* fix RMT CLK source and Filter API

* fixes missing ;

* fixes missing ;

* fixes RMT example

* IDF release/v5.1 a7b62bbcaf (#8438)

* Add workflow to build executables from python scripts (#8290)

* Add workflow to build executables from python scripts

* Push binary to tools

* Enable executable signing on Windows

* Update get.py

* Push binary to tools

* Try with multiple files

* Try more actions

* Try powershell

* Restore tools so they do not get rebuilt

* Finalize scripts

* Push binary to tools

* App rollback should be after PSRAM is initialized

* Correcting RX1 to GPIO4 and TX1 to GPIO5 to be consistent with documentation. Previous pin use works but is inconsistent with C6 docs.

* Fixes Memory Leak (#8486)

* fixes preprocessor test (#8485)

* fixes preprocessor test

When using `#define USE_SOFT_AP` 
Change
`&& not USE_SOFT_AP` ==> `&& !defined(USE_SOFT_AP)`

* Adds any BLE capable device in WiFiProv.ino

Removing ESP32 restriction for BLE Provisioning.

* fix flash mode read out for C6

* Add option for custom partitions without restrictions

* SD_MMC update (#8298)

* Updated SD_MMC lib and examples

* Removed getter implementation and commented usage in examples

* squashed updates

* IDF release/v5.1 f0437b945f (#8599)

* Update package_esp32_index.template.json

* Fix printf format build error in BTAdvertisedDeviceSet.cpp

---------

Co-authored-by: Pedro Minatel <pedro.minatel@espressif.com>
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
Co-authored-by: Ha Thach <thach@tinyusb.org>
Co-authored-by: Martin Turski <quiret@vfemail.net>
Co-authored-by: raviypujar <raviypujar@gmail.com>
Co-authored-by: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Co-authored-by: Tomáš Pilný <34927466+PilnyTomas@users.noreply.github.com>
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
Co-authored-by: Daniel Berlin <dberlin@dberlin.org>
Co-authored-by: Nima Askari (نیما عسکری) <nimaltd@yahoo.com>
Co-authored-by: rtpmsys <106180646+rtpmsys@users.noreply.github.com>
Co-authored-by: bytiful <55647551+bytiful@users.noreply.github.com>
Co-authored-by: tmfarrington <tmfarrington@users.noreply.github.com>
Co-authored-by: Krzysiek S <chris.streh@gmail.com>
Co-authored-by: surt <carl.olsson@gmail.com>
Co-authored-by: Max Scheffler <max.scheffler@pm.me>
Co-authored-by: Clemens Kirchgatterer <clemens@1541.org>
Co-authored-by: Peter Pan's Techland <twinkle-pirate@hotmail.com>
Co-authored-by: Roman <programmeofficemilkyway@gmail.com>
Co-authored-by: Eistee <Eistee82@users.noreply.github.com>
Co-authored-by: David McCurley <44048235+mrengineer7777@users.noreply.github.com>
Co-authored-by: Gaya3N25 <30388176+Gaya3N25@users.noreply.github.com>
Co-authored-by: renebohne <rene.bohne@gmail.com>
Co-authored-by: Olivér Remény <25034625+remenyo@users.noreply.github.com>
Co-authored-by: davidk88 <david.kotar@gmail.com>
Co-authored-by: Vojtěch Bartoška <76958047+VojtechBartoska@users.noreply.github.com>
Co-authored-by: James Armstrong <jamesarmstrong3@me.com>
Co-authored-by: Valerii Koval <valeros@users.noreply.github.com>
Co-authored-by: Peter G. Jensen <root@petergjoel.dk>
2023-10-05 14:54:25 +03:00
Jan Procházka
9d8471dc9a
CI - All boards test (#8114)
* Create allboards.yml for all boards test

* Clean workflow from unused stuff

* Use compile-sketch main

* Update find_all_boards.sh
2023-05-03 20:27:54 +03:00
Jan Procházka
e9c131a9d5
fix echo FQBNS in script (#8100) 2023-04-19 14:36:59 +03:00
Jan Procházka
e360c2eef8
[CI] Added New Board Test (#8071)
* Add check if fqbn is empty
2023-04-18 01:58:33 +03:00
Jan Procházka
087ebe0ee6
CI HW Testing Update (#7911)
* Update upload-artifact action to v3

* Fix deprecated set-output

* updated path + error if no files found

* update path

* update path + debug ls

* dbg path print

* dbg path remove +added echo with buildpath

* change build_dir

* fix upload-artifact paths

* changed build_dirs

* move sketchname variable

* Update touch pressed value

* Run one test only for faster debuging

* Revert "Run one test only for faster debuging"

This reverts commit e2bf6a8551e5b4abe5bb6201d3175257bc40fe44.

* fix value
2023-04-06 13:03:57 +03:00
Jason2866
26c8b3060f
Update Platformio CI (#7725) 2023-02-06 14:45:30 +02:00
Me No Dev
a807507c64
Backport some fixes from esp-idf-v5.1 (#7762) 2023-02-06 14:41:46 +02:00
Me No Dev
57b27cd800
Fix gen_insights_package.py missing on release (#7650)
* Fix gen_insights_package.py missing on release

Fixes: https://github.com/espressif/arduino-esp32/issues/7649

* fixes gen_insights_package.exe for Win10 and Win11

* Add insights example to be compiled by CI

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
2023-01-06 16:50:43 +02:00
me-no-dev
b63f947037 Update on-release.sh 2022-12-22 18:29:58 +02:00
Valerii Koval
3af0b44f38
Update PlatformIO build script (#7579)
This PR brings updates according to the latest changes in the Arduino core:
- Bootloader binaries are now generated from elf files
- Updated CI scripts
- Updated esptoolpy to v4.2.1
- Minor clean-up by removing obsolete code

Resolves #7572
2022-12-12 14:53:07 +02:00
Me No Dev
5b61930bb7
Support JTAG debugging in Arduino IDE 2.0 (#7295)
* Add support for Arduino IDE 2.0 Debug

* Update platform.txt

* Add SVD support

* Update configs for IDE 2.0.3

* Update esp32c3.json
2022-12-10 00:58:03 +02:00
Me No Dev
3ebb774463
Update esptool to version 4.2.1 (#7127)
* Update esptool to version 4.2.1

* Fix esptool for MacOS

* Esptool v4.2.1 for CI Platformio (#7147)

to complete the test.

Co-authored-by: Jason2866 <24528715+Jason2866@users.noreply.github.com>
2022-08-22 17:00:42 +03:00
Abdelatif Guettouche
4b64cde102
./.github/scripts: When only when skecth is built, the build directory (#7037)
should default to "build".
2022-07-26 13:36:00 -03:00
Abdelatif Guettouche
443158222e
tests: Add options. (#6916)
* .github/scripts: Add multiple parameters to the build and test scripts in case a customization is required.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>

* sketch_utils.sh: Get options from a JSON file.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>

* tests: Add a simple test for the JSON configurations option.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>

* tests: Accept multiple FQBNs in the config file.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>

* tests/: Run multiple tests if the build contained multiple
configurations.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>

* ./github/scripts: Add option to erase the flash before flashing.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>

* .github: Fix building chunks and parameters passed from on-push.sh
script.

Multiple arguments and options were not set correctly.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>

* sketch_utils.sh: Pass the Windows parameters with the extra options.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>

* sketch_utils.sh: Remove the individual flash options and replace them
with only one option take is supposed to take any extra FQBN addition.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>

* workflows/hil.yml: Install the jq program on the docker image.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>

* tests_run.sh: Fix the erase flash arguments.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>

* hil.yml: Fix the chunk matrix generation.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>

* tests_build.sh: Add a clean option.  Useful locally for a quick clean
up.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>

Co-authored-by: Vojtěch Bartoška <76958047+VojtechBartoska@users.noreply.github.com>
2022-07-15 17:56:32 +02:00
Valerii Koval
f0636d515f
Add support for extra flash images (#6625)
This PR adds support for uploading additional flash images (e.g. Adafruit Tiny UF2 bootloader) specified in board manifests.

Additionally, the PR switches the PlatformIO CI script to the upstream version of the ESP32 dev-platform (basically reverts changes introduced in #5387 as they are no longer required).
2022-04-26 13:58:16 +03:00
Abdelatif Guettouche
323bbbf63b
workflows/publish.yml: Run the workflow on success and failure only. (#6531)
* workflows/publish.yml: Run the workflow on success and failure only.
This prevents trying to run when the trigger was cancelled or skipped.
In these cases there will be no event file to upload.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>

* scripts/sketch_utils.sh: Move the logic that gets the build dir after
the part that retrieves the arguments.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>

* workflows/hil.yml: Update the HIL runners tags.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>

* workflows/hil.yml: Remove the Check Artifacts step.  That was only
useful for debugging.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>
2022-04-21 17:53:37 +03:00
Me No Dev
d4e20294e5
Add support for ArduinoIDE 2.0.0 (#6506)
OTA is not yet working properly on the new IDE. Info: https://github.com/arduino/arduino-ide/issues/740#issuecomment-1086595394
2022-04-04 17:19:23 +03:00
Jason2866
a1409ef90d
add package.json to release zip (#6501)
* add package.json to release zip

so it is directly useable from PlatformIO
2022-04-04 14:24:17 +03:00
Me No Dev
1e388a24ce
Update toolchain to gcc8_4_0-esp-2021r2-patch3 and esptool to 3.3 (#6497)
* Update toolchain to gcc8_4_0-esp-2021r2-patch3

* Update esptool to 3.3

* Remove old files

* Update package_esp32_index.template.json

* use esptool v3.3 (#6498)

could be used for all. Nice would be releasing in Platformio registry.

* Switch toolchain for PIO CI

Co-authored-by: Jason2866 <24528715+Jason2866@users.noreply.github.com>
2022-03-29 18:12:16 +03:00
Me No Dev
8ee5f0a11e
Esp32 s3 support (#6341)
Co-authored-by: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Co-authored-by: Unexpected Maker <seon@unexpectedmaker.com>
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
Co-authored-by: Tomáš Pilný <34927466+PilnyTomas@users.noreply.github.com>
Co-authored-by: Pedro Minatel <pedro.minatel@espressif.com>
Co-authored-by: Ivan Grokhotkov <ivan@espressif.com>
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
Co-authored-by: Limor "Ladyada" Fried <limor@ladyada.net>
2022-03-28 12:09:41 +03:00
Abdelatif Guettouche
96f8f5e3ef
Add initial hardware testing support (#6313)
- Added workflow triggered by cron or label "hil_test"
- Added examples with both pytest and unity
2022-03-10 14:45:26 +02:00
Abdelatif Guettouche
7a6dae02aa
Refactor the CI scripts (#6191)
The reason behind this refactoring is that all of the sketch related functions can (and will) be used for other purposes.

Build in the sketch directory: This will make it easy to handle artifacts after the build.
Separate sketch related functions from IDE installation script. This is the main commit.
Create a separate job for the Cmake check. This check was part of one of the Linux build. I believe that it's not the best place for such a check.
Checking for the skip landmarks and validity of the the sketch directory were already done by count_sketches.
2022-01-31 13:15:10 +02:00
Jason2866
9555ed4b76
Use 8.4.0+2021r2-patch2 toolchains for CI (#6184)
with platformio
2022-01-31 13:02:34 +02:00
Abdelatif Guettouche
a61609376a
.github/scripts: Fix indentation and trailing spaces. (#6157)
Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>
2022-01-20 13:15:12 +02:00
Abdelatif Guettouche
77756d8a06
ci: Miscellaneous improvements (#6132)
Cache downloaded tools.
Cancel duplicate jobs.
Use current repo when linking the core, this allows users to test their code when creating PRs against their forks (for instance an error in an example sketch will build successfully in a fork workflow.)
Cache Arduino IDE.
Add workflow_dispatch to be able to trigger the workflow manually.
2022-01-17 23:29:28 +02:00
Abdelatif Guettouche
26dddc5f94
Fix the execute bit of some files. (#5986)
- Remove the execute bit from source and text files.
- on-pages.sh script needs the execute bit to be set.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>
2021-12-14 14:24:44 +02:00
Abdelatif Guettouche
c87ede88df
Delete .travis.yml file. (#5987)
All the workflows are now migrated to Github Actions.
Update the on-push.sh script to remove references to TravisCI variables.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>
2021-12-14 14:24:01 +02:00