Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: espressif/arduino-esp32
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 3.1.0-RC1
Choose a base ref
...
head repository: espressif/arduino-esp32
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 3.1.0-RC2
Choose a head ref

Commits on Aug 28, 2024

  1. Copy the full SHA
    ef5c6b9 View commit details
  2. Copy the full SHA
    a8677a0 View commit details
  3. Copy the full SHA
    564612d View commit details
  4. fix(arduino): changes definitions in cmakelists.txt file (#10259)

    Fixes an issue related to ESP_MATTER component that defines a path using ESP32 as folder. Because Arduino defines ESP32 to 1, it causes an expansion error for folder using ESP32 folder name.
    SuGlider authored Aug 28, 2024
    Copy the full SHA
    e5394cc View commit details
  5. Copy the full SHA
    396def3 View commit details
  6. Copy the full SHA
    22fb402 View commit details

Commits on Aug 30, 2024

  1. fix(littlefs): Use VFSImpl::exists() to avoid false error log (#10217)

    * fix(littlefs): Use VFSImpl::exists() to avoid false error log
    
    * fix(ffat): Use VFSImpl::exists() to avoid false error log
    
    ---------
    
    Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
    BlueAndi and lucasssvaz authored Aug 30, 2024
    Copy the full SHA
    019855f View commit details
  2. fix(ppp): Fix PPP not working after reboot if no RST (#10264)

    Modem will try to switch to CMUX and then back to COMMAND in order to allow communication with the modem.
    me-no-dev authored Aug 30, 2024
    Copy the full SHA
    b2c805a View commit details

Commits on Aug 31, 2024

  1. Copy the full SHA
    4c1095b View commit details
  2. fix(http): Replace flush() with clear() in HTTPClient (#10269)

    Following deprecation of flush()
    me-no-dev authored Aug 31, 2024
    Copy the full SHA
    254c5e4 View commit details
  3. Copy the full SHA
    0b8eede View commit details

Commits on Sep 2, 2024

  1. fix(boards): Correct typos in port prop. associations for "Bee" boards (

    #10276)
    
    * fix(boards): Correct PID port property in "Bee Data Logger" board def
    
    VID and PID port property values are hexadecimal literals and thus use the standard "0x" prefix.
    
    Previously, this prefix was missing from the PID port property association in the definition of the
    board definition of "Bee Data Logger" board. This typo caused ports having the 0x303a, 0x815C
    VID/PID pair to not be identified as a "Bee Data Logger" board as intended.
    
    * fix(boards): Correct property names for PID port property associations
    
    These properties are intended to associate values of the PID port property with "Bee" board
    definitions. A typo caused them to instead associatiate the values with the VID port property. The
    result was that ports with this VID/PID pair were not identified by the Arduino development
    software as the board model as intended.
    per1234 authored Sep 2, 2024
    Copy the full SHA
    f06f2d7 View commit details
  2. Update variants for M5Dial and M5StampS3 (#10268)

    Update variant for M5Dial which comes with 8MB of built-in Flash
    Update variant for M5StampS3 which comes with 8MB of built-in Flash
    lboue authored Sep 2, 2024
    Copy the full SHA
    7a4587b View commit details
  3. Adds HW Serial CDC as IDF component example (#10262)

    * feat(hw_cdc): creates documentation for the example
    
    Adds a README file that exaplains the example.
    
    * feat(hw_cdc): create cmake config file
    
    Adds necessary CMakeLists.txt file to the project with the HW CDC defines that will enable it.
    
    * feat(hw_cdc): create sdkconfig.defaults
    
    Adds necessary and minimum sdkconfig settings in order to make Arduino run as IDF Compoenent.
    
    * feat(hw_cdc): create cmake config file
    
    Create the Arduino Sketch source code CMakeLists.txt file that will include all source code files and header files in the proejct.
    
    * feat(hw_cdc): create main.cpp
    
    Adds the minimum Arduino Sketch that will print "Hello World!" in the HW Serial USB CDC port.
    
    * feat(hw_cdc): create idf_component.yml
    
    Adds necessary ESP32 Registry information in order to make ESP32 Arduino to be automatically included in the project as an IDF component.
    
    * feat(hw_cdc): update main.cpp
    
    adds code to wait for the user to open the Serial Monitor
    
    * feat(hw_cdc): formating text code
    
    Applying Code style and formating.
    
    * feat(hw_cdc): adds the example to idf_component.yml
    
    Adds the example to the list of example in the ESP32 Registry.
    
    * ci(pre-commit): Apply automatic fixes
    
    * fix(chw_cdc): typo fix
    
    Fixed Typo in the documentation.
    
    * fix(hw_cdc): fixed a commentary typo
    
    Fixed commantary typo
    
    ---------
    
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    SuGlider and pre-commit-ci-lite[bot] authored Sep 2, 2024
    Copy the full SHA
    e70f4d3 View commit details

Commits on Sep 9, 2024

  1. fix(boards): Remove port property assoc. for non-unique VID/PID pairs (

    …#10271)
    
    The Arduino boards platform framework allows properties of a port to be associated with a board
    definition. The Arduino development software will identify a port having the associated properties
    as that board.
    
    This should only be done for properties that are unique to the ports produced by that board model.
    In cases where a board model does not produce a port with properties unique to that model, it is
    irresponsible to associate those properties with the board definition as this will cause other
    models to be inappropriately identified.
    
    The authors of these board definitions associated them with non-unique USB VID/PID pairs so those
    associations must be removed. The 303a:1001 VID/PID pair is of the hardware CDC serial port of the
    native USB ESP32 chips. The others are stock VID/PID pairs of general purpose USB to serial bridge
    chips that are used on many different board models.
    per1234 authored Sep 9, 2024
    Copy the full SHA
    41cdbd9 View commit details
  2. fix(report): Print correct chip revision (#10277)

    It was printed wrongly before. Actual revision is the value divided by 100 in float.
    me-no-dev authored Sep 9, 2024
    Copy the full SHA
    976bda6 View commit details
  3. Copy the full SHA
    e964a2d View commit details
  4. build(deps): bump cryptography from 42.0.7 to 43.0.1 in /tests (#10284)

    Bumps [cryptography](https://github.com/pyca/cryptography) from 42.0.7 to 43.0.1.
    - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
    - [Commits](pyca/cryptography@42.0.7...43.0.1)
    
    ---
    updated-dependencies:
    - dependency-name: cryptography
      dependency-type: direct:production
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Sep 9, 2024
    Copy the full SHA
    eec855a View commit details
  5. Copy the full SHA
    c0dce69 View commit details
  6. Copy the full SHA
    6264d6b View commit details
  7. Copy the full SHA
    2853b7c View commit details
  8. feat(tone): missing set tone channel implementation (#10305)

    Adds the implementation to setToneChannel() declared in Arduino.h, but removed when movin from Arduino 2.x to 3.x.
    SuGlider authored Sep 9, 2024
    Copy the full SHA
    532d5f2 View commit details
  9. OpenThread Example Improvement (#10299)

    * feat(openthread): add extended example
    
    Creates a new example that mixes different APIs
    
    * feat(openthread): create cj.json file
    
    Adds neessary CI file
    
    * feat(openthread): improve the example
    
    Update ExtendedRoterNode.ino with more use of API
    
    * feat(openthread): improve the example
    
    Adds OpenThread Native calls to the example
    
    * feat(openthread): improve the example 
    
    Update LeaderNode.ino example to add OpenThread Native calls.
    
    * fix(openthread): bad formatting using space
    
    Update keywords.txt to use TAB instead of SPACE in order to recognize correctly the keywords.
    
    * fix(openthread): bad example file name - typo
    
    Changed ExtendedRoterNode to ExtendedRouterNode - Typo error.
    
    * feat(openthread): add extended example ci.json file
    
    Added CI file to the example.
    
    * fix(openthread): deleted bad file names in the example
    
    Delete libraries/OpenThread/examples/SimpleThreadNetwork/ExtendedRoterNode directory
    
    * fix(openthread): typo in commentaries
    
    * fix(openthread): typo in commentaries
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    SuGlider and pre-commit-ci-lite[bot] authored Sep 9, 2024
    Copy the full SHA
    cbe0f2f View commit details

Commits on Sep 10, 2024

  1. docs(contrib): Add instructions on how to test changes (#10221)

    * docs(contrib): Add instructions on how to test changes
    
    * fix(path): Fix file path
    
    * Remove manual hooks as they do not exist anymore in the repo
    
    * Fix typo
    lucasssvaz authored Sep 10, 2024
    Copy the full SHA
    ef23d52 View commit details
  2. fix(i2c): Ensure that semaphore is properly given if init fails (#10313)

    Currently code can return before semaphore is given, which can cause the bus to lock. Change makes sure that it's properly given in case of failure.
    me-no-dev authored Sep 10, 2024
    Copy the full SHA
    2c4ce95 View commit details
  3. fix(scan): Make sure that we do not leak memory if reading the APs fa…

    …ils (#10312)
    
    As it was written, it was possible to leak the scan result array if esp_wifi_scan_get_ap_records() failed. Change will ensure that the array is deleted in that case.
    me-no-dev authored Sep 10, 2024
    Copy the full SHA
    d846311 View commit details
  4. fix(example): Fix compilation warnings in examples (#10311)

    * fix(example): Fix compilation warnings in examples
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    P-R-O-C-H-Y and pre-commit-ci-lite[bot] authored Sep 10, 2024
    Copy the full SHA
    1e04762 View commit details

Commits on Sep 11, 2024

  1. Copy the full SHA
    4e9eb35 View commit details
  2. Copy the full SHA
    855da42 View commit details

Commits on Sep 13, 2024

  1. Copy the full SHA
    eda6d21 View commit details
  2. fix(api): Update Arduino Stream class (#10328)

    * fix(api): Update Arduino Stream class
    
    Upstream code contains some fixes
    
    * Update Stream.h
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    me-no-dev and pre-commit-ci-lite[bot] authored Sep 13, 2024
    Copy the full SHA
    648094c View commit details
  3. Copy the full SHA
    8a87df3 View commit details
  4. Copy the full SHA
    8c25325 View commit details
  5. fix(arduino): rain maker common version (#10338)

    Fixes Arduino components for Windows 11 with IDF 5.1.4 when building Arduino as IDF component.
    SuGlider authored Sep 13, 2024
    Copy the full SHA
    ac0de43 View commit details
  6. [WebServer] Mark functions as const + reduce copy of strings (#10339)

    * [WebServer] Mark functions as const + reduce copy of strings
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    TD-er and pre-commit-ci-lite[bot] authored Sep 13, 2024
    Copy the full SHA
    9e60bbe View commit details

Commits on Sep 15, 2024

  1. Merge commit from fork

    lucasssvaz authored Sep 15, 2024
    Copy the full SHA
    a7cec02 View commit details

Commits on Sep 16, 2024

  1. add waveshare_esp32_touch_amoled_241 (#10342)

    * feat(variants): add waveshare_esp32_touch_amoled_241
    
    * feat(boards variants): add waveshare_esp32_touch_amoled_241
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: Jan Procházka <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>
    3 people authored Sep 16, 2024
    Copy the full SHA
    44a4844 View commit details
  2. [WiFiScan] Allow allocation in _scanDone() to fail and prevent memory…

    … leak (#10335)
    
    * [WiFiScan] Allow allocation to fail and prevent memory leak
    
    When there are many AP's seen during a scan, the allocation of `_scanResult` may fail.
    Thus add `(std::nothrow)` to the `new` call.
    
    Also it is possible the array was still present before allocating a new one.
    
    * [WiFiScan] Use nullptr instead of 0
    
    As suggested by @me-no-dev
    TD-er authored Sep 16, 2024
    Copy the full SHA
    3978870 View commit details
  3. Fix(NetworkEvents): Don't skip event callbacks in NetworkEvents::remo… (

    #10337)
    
    * Fix(NetworkEvents): Don't skip event callbacks in NetworkEvents::removeEvent
    
    Fixes Issue 10318
    Includes pull request 10321 that fixes 10316
    
    This change:
    * Adds code to find the event callbacks
    * Issues error when duplicate callbacks insertion attempts are made
    * Issues error when callbacks are not found during removal
    
    * Fix(NetworkEvents): Don't skip event callbacks in NetworkEvents::removeEvent
    
    Fixes Issue 10318
    Includes pull request 10321 that fixes 10316
    
    This change:
    * Adds code to find the event callbacks
    * Issues warning when duplicate callbacks insertion attempts are made
    * Issues warning when callbacks are not found during removal
    
    ---------
    
    Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
    LeeLeahy2 and me-no-dev authored Sep 16, 2024
    Copy the full SHA
    2f89026 View commit details

Commits on Sep 17, 2024

  1. Fix missing virtual declarations in Stream.h (#10348)

    * Fix missing virtual declarations in Stream.h
    
    Fixes some changes made in PR #10328
    
    * Remove the virtual destructor as Print class has one
    
    As pointed out by @JAndrassy
    TD-er authored Sep 17, 2024
    Copy the full SHA
    e989445 View commit details
  2. change(esp_now_serial): No teardown on retry limit (#10293)

    * change(ESP_NOW_Serial): No teardown on retry limit
    
    After max retries is met once the ESP_NOW_Serial_Class performs "end()". 
    This removes the peer from ESP_NOW. 
    Further messages to and from ESP_NOW_Serial are not received or sent. 
    Peer should stay in ESP_NOW to re-establish connection even with data loss. 
    This change will "retry and drop" the data piece by piece instead of aborting the connection.
    
    * feat(espnow): Add remove on fail parameter
    
    * feat(espnow): By default keep the peer when sending fails
    
    ---------
    
    Co-authored-by: Jan Prochazka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
    ClockeNessMnstr and P-R-O-C-H-Y authored Sep 17, 2024
    Copy the full SHA
    c55f5aa View commit details

Commits on Sep 18, 2024

  1. Reduce copy of Strings in WebServer RequestHandler (#10345)

    * Reduce copy of Strings in WebServer RequestHandler
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    TD-er and pre-commit-ci-lite[bot] authored Sep 18, 2024
    Copy the full SHA
    100b3c6 View commit details
  2. fix(variant): Rename waveshare esp32-s3 board. (#10355)

    * feat(variants): modify the one I successfully merged earlier
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    wurongmin and pre-commit-ci-lite[bot] authored Sep 18, 2024
    Copy the full SHA
    462870d View commit details
  3. ESP Matter + Arduino as IDF Component Light example (#10290)

    * feat(matter): partition file for matter
    
    The declaration includes a partition for keys and SSL certificates.
    
    * feat(matter): matter light source code
    
    Adds necessary Matter + Arduino source code that will create a Matter compatible Light.
    
    * feat(matter): adds sdkconfig  and CMake files
    
    Adds target sdkconfig files and the CMakeLists.txt in orde to build the application using Arduino+Matter as IDF component
    
    * fix(matter): wrong folder name
    
    * feat(matter): include example into registry
    
    * fix(matter): error with type in wrong place
    
    A declaration was incorrect due to a typo error. Sintax was corrected by deleting `BuiltInLED`.
    
    * feat(matter): add readme documentation
    
    * feat(matter): remove soc with no wifi or no ble
    
    * feat(matter): adjust all sdkconfig files
    
    * feat(matter): improve code and led status
    
    * feat(matter): add button and led gpio with kconfig
    
    * fix(matter): remove commented lines
    
    * fix(matter): remove commented lines
    
    * feat(matter): added a 2.4GHz SSID note 
    
    Both the ESP32 device and the Smartphone running the Matter APP shall be in the same WiFi Network in order to achieve a successful commissioning process.
    
    * feat(matter): arduino managed comonent version
    
    Preparing the Arduino Managed Component to use Core version 3.0.5 or higher.
    
    * feat(matter): adds information about google
    
    Goggle Home Assistant requires special configurtation in order to allow the Light to show up in the GHA APP.
    
    * feat(matter): arduino component version
    
    Set final Arduino Managed Component to 3.0.5 necessary because of -DESP32=ESP32, in order to compile the project.
    
    * ci(pre-commit): Apply automatic fixes
    
    * fix(typo): typo and commentaries
    
    * fix(typo): typo and commentaries
    
    * fix(typo): typo and commentaries
    
    * fix(typo): typo and commentaries
    
    * fix(typo): typo and commentaries
    
    * fix(typo): typo and commentaries
    
    * fix(typo): typo and commentaries
    
    * fix(typo): typo and commentaries
    
    * fix(typo): typo and commentaries
    
    * fix(typo): typo and commentaries
    
    * fix(typo): typo and commentaries
    
    * fix(typo): typo and commentaries
    
    * fix(typo): typo and commentaries
    
    * fix(typo): typo and commentaries
    
    * fix(typo): typo and commentaries
    
    * fix(typo): typo and commentaries
    
    * fix(typo): typo and commentaries
    
    * fix(typo): typo and commentaries
    
    * fix(matter): spell check ignore for CI
    
    * ci(pre-commit): Apply automatic fixes
    
    * fix(matter): spell check ignore for CI
    
    * fix(matter): spell check ignore for CI
    
    * fix(matter): spell check ignore for CI
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    SuGlider and pre-commit-ci-lite[bot] authored Sep 18, 2024
    Copy the full SHA
    8d772d5 View commit details
  4. IDF release/v5.1 (#10320)

    * IDF release/v5.1 e026fd1f
    
    * IDF release/v5.1 99775566
    
    * IDF release/v5.1 8af42a08
    
    * IDF release/v5.1 33fbade6
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    me-no-dev and pre-commit-ci-lite[bot] authored Sep 18, 2024
    Copy the full SHA
    ab951cf View commit details
  5. Copy the full SHA
    7018cd1 View commit details
  6. Copy the full SHA
    e68b1cc View commit details
  7. IDF release/v5.3 (#10272)

    * IDF release/v5.3 2c46030b
    
    * IDF release/v5.3 cc3203dc
    
    * IDF release/v5.3 4d0db704
    me-no-dev authored Sep 18, 2024
    Copy the full SHA
    6768208 View commit details

Commits on Sep 24, 2024

  1. Update Matter Light README.md (#10357)

    * Update Matter Light README.md
    
    Update Matter Light README.md
    
    * fix(matter): information in the commentaries from SuGlider
    
    * feat(matter): extended formating 
    
    used the same formatting for the whole document and changed a few expresssions.
    
    * fix(matter): missing option idf.py
    
    ---------
    
    Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
    lboue and SuGlider authored Sep 24, 2024
    Copy the full SHA
    ae052f4 View commit details
  2. feat(esp32p4): Add initial ESP32-P4 support (#10358)

    * feat(esp32p4): Initial changes required for ESP32-P4
    
    * esp32-p4: Initial changes to build with Arduino
    
    Signed-off-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
    
    * fix(esp32p4): Fix lib builder errors
    
    * change(esp32p4): Unhide board
    
    * ci(esp32p4): Add ESP32-P4 to workflow
    
    * change(esptool): Update esptool to 4.8.0
    
    * fix(build): Fix redefinition errors
    
    * fix(build): Remove old commands
    
    * change(esptool): Remove unsupported 32-bit tools
    
    * fix(get.py): Force exe generation
    
    * Revert "fix(get.py): Force exe generation"
    
    This reverts commit 979b16b.
    
    * fix(get.py): Fix system check
    
    * change(tools): Push generated binaries to PR
    
    * ci(esp32p4): Add missing ESP32-P4 entries
    
    * fix(esp32p4): Add chip info
    
    * fix(esp32p4): Fix build commands
    
    * docs(esp32p4): Add missing references to P4
    
    * fix(esp32p4): Fix clock sources definitions
    
    * fix(esp32p4): Set CPU frequency to 360 MHz so it is stable in all chips
    
    * refactor(esp32p4): Change preprocessor conditionals for maintainability
    
    Co-authored-by: me-no-dev <hristo@espressif.com>
    
    * fix(esp32p4): Add missing menu options
    
    * fix(esp32p4): Mark as not in development json in readme
    
    * fix(esp32p4): Add P4 to ci.json files
    
    * ci(pre-commit): Apply automatic fixes
    
    * fix(get.py): Remove unused include
    
    * ci(pre-commit): Apply automatic fixes
    
    * change(tools): Push generated binaries to PR
    
    * ci(pre-commit): Apply automatic fixes
    
    * fix(ci.json): Fix formatting
    
    ---------
    
    Signed-off-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
    Co-authored-by: Jason2866 <24528715+Jason2866@users.noreply.github.com>
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: me-no-dev <hristo@espressif.com>
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    5 people authored Sep 24, 2024
    Copy the full SHA
    a4c33e3 View commit details
Showing 487 changed files with 19,663 additions and 4,044 deletions.
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
@@ -18,7 +18,7 @@ indent_size = 2
indent_style = space

[*.{bash,sh}]
indent_size = 2
indent_size = 4
indent_style = space

[*.{c,cc,cp,cpp,cxx,h,hh,hpp,hxx,ii,inl,ino,ixx,pde,tpl,tpp,txx}]
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE/Issue-report.yml
Original file line number Diff line number Diff line change
@@ -41,6 +41,8 @@ body:
options:
- latest master (checkout manually)
- latest development Release Candidate (RC-X)
- v3.0.6
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
67 changes: 23 additions & 44 deletions .github/scripts/find_new_boards.sh
Original file line number Diff line number Diff line change
@@ -2,59 +2,39 @@

# Get inputs from command
owner_repository=$1
pr_number=$2
base_ref=$2

url="https://api.github.com/repos/$owner_repository/pulls/$pr_number/files"
echo $url
# Download the boards.txt file from the base branch
curl -L -o boards_base.txt https://raw.githubusercontent.com/$owner_repository/$base_ref/boards.txt

# Get changes in boards.txt file from PR
Patch=$(curl $url | jq -r '.[] | select(.filename == "boards.txt") | .patch ')
# Compare boards.txt file in the repo with the modified file from PR
diff=$(diff -u boards_base.txt boards.txt)

# Extract only changed lines number and count
substring_patch=$(echo "$Patch" | grep -o '@@[^@]*@@')

params_array=()
# Check if the diff is empty
if [ -z "$diff" ]
then
echo "No changes in boards.txt file"
echo "FQBNS="
exit 0
fi

IFS=$'\n' read -d '' -ra params <<< $(echo "$substring_patch" | grep -oE '[-+][0-9]+,[0-9]+')
# Extract added or modified lines (lines starting with '+' or '-')
modified_lines=$(echo "$diff" | grep -E '^[+-][^+-]')

for param in "${params[@]}"
do
echo "The parameter is $param"
params_array+=("$param")
done
# Print the modified lines for debugging
echo "Modified lines:"
echo "$modified_lines"

boards_array=()
previous_board=""
file="boards.txt"

# Loop through boards.txt file and extract all boards that were added
for (( c=0; c<${#params_array[@]}; c+=2 ))
# Extract board names from the modified lines, and add them to the boards_array
while read -r line
do
deletion_count=$( echo "${params_array[c]}" | cut -d',' -f2 | cut -d' ' -f1 )
addition_line=$( echo "${params_array[c+1]}" | cut -d'+' -f2 | cut -d',' -f1 )
addition_count=$( echo "${params_array[c+1]}" | cut -d'+' -f2 | cut -d',' -f2 | cut -d' ' -f1 )
addition_end=$(($addition_line+$addition_count))

addition_line=$(($addition_line + 3))
addition_end=$(($addition_end - $deletion_count))

echo $addition_line
echo $addition_end

i=0

while read -r line
do
i=$((i+1))
if [ $i -lt $addition_line ]
then
continue
elif [ $i -gt $addition_end ]
then
break
fi
board_name=$(echo "$line" | cut -d '.' -f1 | cut -d '#' -f1)
if [ "$board_name" != "" ] && [ "$board_name" != "esp32_family" ]
# remove + or - from the board name at the beginning
board_name=$(echo "$board_name" | sed 's/^[+-]//')
if [ "$board_name" != "" ] && [ "$board_name" != "+" ] && [ "$board_name" != "-" ] && [ "$board_name" != "esp32_family" ]
then
if [ "$board_name" != "$previous_board" ]
then
@@ -63,8 +43,7 @@ do
echo "Added 'espressif:esp32:$board_name' to array"
fi
fi
done < "$file"
done
done <<< "$modified_lines"

# Create JSON like string with all boards found and pass it to env variable
board_count=${#boards_array[@]}
83 changes: 74 additions & 9 deletions .github/scripts/install-platformio-esp32.sh
Original file line number Diff line number Diff line change
@@ -6,6 +6,7 @@ PLATFORMIO_ESP32_URL="https://github.com/platformio/platform-espressif32.git"
TOOLCHAIN_VERSION="12.2.0+20230208"
ESPTOOLPY_VERSION="~1.40501.0"
ESPRESSIF_ORGANIZATION_NAME="espressif"
SDKCONFIG_DIR="$PLATFORMIO_ESP32_PATH/tools/esp32-arduino-libs"

echo "Installing Python Wheel ..."
pip install wheel > /dev/null 2>&1
@@ -88,12 +89,43 @@ function count_sketches(){ # count_sketches <examples-path>
local sketchname=$(basename $sketch)
if [[ "${sketchdirname}.ino" != "$sketchname" ]]; then
continue
elif [ -f $sketchdir/ci.json ]; then
# If the target is listed as false, skip the sketch. Otherwise, include it.
is_target=$(jq -r '.targets[esp32]' $sketchdir/ci.json)
if [[ "$is_target" == "false" ]]; then
continue
fi

# Check if the sketch requires any configuration options (AND)
requirements=$(jq -r '.requires[]? // empty' $sketchdir/ci.json)
if [[ "$requirements" != "null" && "$requirements" != "" ]]; then
for requirement in $requirements; do
requirement=$(echo $requirement | xargs)
found_line=$(grep -E "^$requirement" "$SDKCONFIG_DIR/esp32/sdkconfig")
if [[ "$found_line" == "" ]]; then
continue 2
fi
done
fi

# Check if the sketch requires any configuration options (OR)
requirements_or=$(jq -r '.requires_any[]? // empty' $sketchdir/ci.json)
if [[ "$requirements_or" != "null" && "$requirements_or" != "" ]]; then
found=false
for requirement in $requirements_or; do
requirement=$(echo $requirement | xargs)
found_line=$(grep -E "^$requirement" "$SDKCONFIG_DIR/esp32/sdkconfig")
if [[ "$found_line" != "" ]]; then
found=true
break
fi
done
if [[ "$found" == "false" ]]; then
continue
fi
fi
fi
is_target=$(jq -r --arg target $target '.targets[$target]' $sketchdir/ci.json)
# If the target is listed as false, skip the sketch. Otherwise, include it.
if [[ "$is_target" == "false" ]]; then
continue
fi

echo $sketch >> sketches.txt
sketchnum=$(($sketchnum + 1))
done
@@ -163,12 +195,45 @@ function build_pio_sketches(){ # build_pio_sketches <board> <options> <examples-
local sketchdir=$(dirname $sketch)
local sketchdirname=$(basename $sketchdir)
local sketchname=$(basename $sketch)
is_target=$(jq -r --arg target $target '.targets[$target]' $sketchdir/ci.json)
# If the target is listed as false, skip the sketch. Otherwise, include it.
if [ "${sketchdirname}.ino" != "$sketchname" ] \
|| [[ "$is_target" == "false" ]]; then
if [[ "$sketchdirname.ino" != "$sketchname" ]]; then
continue
elif [ -f $sketchdir/ci.json ]; then
# If the target is listed as false, skip the sketch. Otherwise, include it.
is_target=$(jq -r '.targets[esp32]' $sketchdir/ci.json)
if [[ "$is_target" == "false" ]]; then
continue
fi

# Check if the sketch requires any configuration options (AND)
requirements=$(jq -r '.requires[]? // empty' $sketchdir/ci.json)
if [[ "$requirements" != "null" && "$requirements" != "" ]]; then
for requirement in $requirements; do
requirement=$(echo $requirement | xargs)
found_line=$(grep -E "^$requirement" "$SDKCONFIG_DIR/esp32/sdkconfig")
if [[ "$found_line" == "" ]]; then
continue 2
fi
done
fi

# Check if the sketch requires any configuration options (OR)
requirements_or=$(jq -r '.requires_any[]? // empty' $sketchdir/ci.json)
if [[ "$requirements_or" != "null" && "$requirements_or" != "" ]]; then
found=false
for requirement in $requirements_or; do
requirement=$(echo $requirement | xargs)
found_line=$(grep -E "^$requirement" "$SDKCONFIG_DIR/esp32/sdkconfig")
if [[ "$found_line" != "" ]]; then
found=true
break
fi
done
if [[ "$found" == "false" ]]; then
continue
fi
fi
fi

sketchnum=$(($sketchnum + 1))
if [ "$sketchnum" -le "$start_index" ] \
|| [ "$sketchnum" -gt "$end_index" ]; then
33 changes: 13 additions & 20 deletions .github/scripts/on-push.sh
Original file line number Diff line number Diff line change
@@ -6,20 +6,19 @@ export ARDUINO_BUILD_DIR="$HOME/.arduino/build.tmp"

function build(){
local target=$1
local fqbn=$2
local chunk_index=$3
local chunks_cnt=$4
local build_log=$5
local sketches_file=$6
shift; shift; shift; shift; shift; shift;
local chunk_index=$2
local chunks_cnt=$3
local build_log=$4
local sketches_file=$5
shift; shift; shift; shift; shift;
local sketches=$*

local BUILD_SKETCH="${SCRIPTS_DIR}/sketch_utils.sh build"
local BUILD_SKETCHES="${SCRIPTS_DIR}/sketch_utils.sh chunk_build"

local args="-ai $ARDUINO_IDE_PATH -au $ARDUINO_USR_PATH"

args+=" -t $target -fqbn $fqbn"
args+=" -t $target"

if [ "$OS_IS_LINUX" == "1" ]; then
args+=" -p $ARDUINO_ESP32_PATH/libraries"
@@ -77,13 +76,6 @@ if [ "$BUILD_PIO" -eq 0 ]; then
source ${SCRIPTS_DIR}/install-arduino-cli.sh
source ${SCRIPTS_DIR}/install-arduino-core-esp32.sh

FQBN_ESP32="espressif:esp32:esp32:PSRAM=enabled,PartitionScheme=huge_app"
FQBN_ESP32S2="espressif:esp32:esp32s2:PSRAM=enabled,PartitionScheme=huge_app"
FQBN_ESP32S3="espressif:esp32:esp32s3:PSRAM=opi,USBMode=default,PartitionScheme=huge_app"
FQBN_ESP32C3="espressif:esp32:esp32c3:PartitionScheme=huge_app"
FQBN_ESP32C6="espressif:esp32:esp32c6:PartitionScheme=huge_app"
FQBN_ESP32H2="espressif:esp32:esp32h2:PartitionScheme=huge_app"

SKETCHES_ESP32="\
$ARDUINO_ESP32_PATH/libraries/NetworkClientSecure/examples/WiFiClientSecure/WiFiClientSecure.ino\
$ARDUINO_ESP32_PATH/libraries/BLE/examples/Server/Server.ino\
@@ -99,12 +91,13 @@ if [ "$BUILD_PIO" -eq 0 ]; then
fi

#build sketches for different targets
build "esp32s3" $FQBN_ESP32S3 "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32"
build "esp32s2" $FQBN_ESP32S2 "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32"
build "esp32c3" $FQBN_ESP32C3 "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32"
build "esp32c6" $FQBN_ESP32C6 "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32"
build "esp32h2" $FQBN_ESP32H2 "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32"
build "esp32" $FQBN_ESP32 "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32"
build "esp32p4" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32"
build "esp32s3" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32"
build "esp32s2" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32"
build "esp32c3" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32"
build "esp32c6" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32"
build "esp32h2" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32"
build "esp32" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32"

if [ "$BUILD_LOG" -eq 1 ]; then
#remove last comma from the last JSON object
10 changes: 2 additions & 8 deletions .github/scripts/on-release.sh
Original file line number Diff line number Diff line change
@@ -352,12 +352,9 @@ export PATH="/home/runner/bin:$PATH"
source ./.github/scripts/install-arduino-cli.sh

echo "Testing $PACKAGE_JSON_DEV install ..."
echo "Updating index ..."
arduino-cli core update-index --additional-urls "file://$OUTPUT_DIR/$PACKAGE_JSON_DEV"
if [ $? -ne 0 ]; then echo "ERROR: Failed to update index ($?)"; exit 1; fi

echo "Installing esp32 ..."
arduino-cli core install esp32:esp32
arduino-cli core install esp32:esp32 --additional-urls "file://$OUTPUT_DIR/$PACKAGE_JSON_DEV"
if [ $? -ne 0 ]; then echo "ERROR: Failed to install esp32 ($?)"; exit 1; fi

echo "Compiling example ..."
@@ -372,12 +369,9 @@ echo "Test successful!"

if [ "$RELEASE_PRE" == "false" ]; then
echo "Testing $PACKAGE_JSON_REL install ..."
echo "Updating index ..."
arduino-cli core update-index --additional-urls "file://$OUTPUT_DIR/$PACKAGE_JSON_REL"
if [ $? -ne 0 ]; then echo "ERROR: Failed to update index ($?)"; exit 1; fi

echo "Installing esp32 ..."
arduino-cli core install esp32:esp32
arduino-cli core install esp32:esp32 --additional-urls "file://$OUTPUT_DIR/$PACKAGE_JSON_REL"
if [ $? -ne 0 ]; then echo "ERROR: Failed to install esp32 ($?)"; exit 1; fi

echo "Compiling example ..."
Loading