1
0
mirror of https://github.com/arduino/library-registry.git synced 2025-07-07 14:41:10 +03:00

Merge branch 'main' into patch-10

This commit is contained in:
MatteoPologruto
2025-01-14 16:52:01 +01:00
committed by GitHub
6 changed files with 226 additions and 10 deletions

29
.github/CONTRIBUTING.md vendored Normal file
View File

@ -0,0 +1,29 @@
# Contributor Guide
Thanks for your interest in contributing to the **Arduino Library Manager Registry**!
## Support and Discussion
If you would like to request assistance or discuss the **Library Manager Registry**, please make a topic on **Arduino Forum**:
https://forum.arduino.cc/c/17
## Registration and Maintenance
---
⚠ If you behave irresponsibly in your interactions with this repository, your Library Manager Registry privileges will be revoked.
Carefully read and follow the instructions in any comments the bot and human maintainers make on your pull requests. If you are having trouble following the instructions, add a comment that provides a detailed description of the problem you are having and a human maintainer will provide assistance.
Although we have set up automation for the most basic tasks, this repository is maintained by humans. So behave in a manner appropriate for interacting with humans, including clearly communicating what you are hoping to accomplish.
---
If you would like to submit a library, or request registry maintenance for a library already in the registry, please follow the instructions provided in the documentation:
[**Click here to see the documentation**](../README.md#table-of-contents)
Make sure to read the relevant sections of the FAQ:
[**Click here to see the FAQ**](../FAQ.md#table-of-contents)

46
.github/workflows/assets/accesslist.yml vendored Normal file
View File

@ -0,0 +1,46 @@
# Access control for the Arduino Library Manager registry.
# This file is used by https://github.com/arduino/library-registry-submission-parser, via the "Manage PRs" workflow.
# Allowlist
- host: github.com
name: per1234
access: allow
reference:
# Denylist
- host: github.com
name: 7Semi
access: deny
reference: https://github.com/arduino/library-registry/pull/5734#pullrequestreview-2548818476
- host: github.com
name: ajangrahmat
access: deny
reference: https://github.com/arduino/library-registry/pull/5706#issuecomment-2588923290
- host: github.com
name: brincode
access: deny
reference: https://github.com/arduino/library-registry/pull/4460#issuecomment-2589062464
- host: github.com
name: DefHam140
access: deny
reference: https://github.com/arduino/library-registry/pull/5265#issuecomment-2589039572
- host: github.com
name: ErlTechnologies
access: deny
reference: https://github.com/arduino/library-registry/pull/4873#issuecomment-2589138298
- host: github.com
name: kelasrobot
access: deny
reference: https://github.com/arduino/library-registry/pull/5706#issuecomment-2588923290
- host: github.com
name: Subodh-roy2
access: deny
reference: https://github.com/arduino/library-registry/pull/4422#issuecomment-2589051618
- host: github.com
name: vpbharath
access: deny
reference: https://github.com/arduino/library-registry/pull/4873#issuecomment-2589138298
- host: github.com
name: YoavPaz
access: deny
reference: https://github.com/arduino/library-registry/pull/5741#issuecomment-2589016403

View File

@ -1,7 +1,7 @@
name: Manage PRs name: Manage PRs
env: env:
SUBMISSION_PARSER_VERSION: 1.1.1 # See: https://github.com/arduino/library-manager-submission-parser/releases SUBMISSION_PARSER_VERSION: 2.0.0 # See: https://github.com/arduino/library-manager-submission-parser/releases
MAINTAINERS: | MAINTAINERS: |
# GitHub user names to request reviews from in cases where PRs can't be managed automatically. # GitHub user names to request reviews from in cases where PRs can't be managed automatically.
- per1234 - per1234
@ -125,6 +125,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs: outputs:
conclusion: ${{ steps.parse-request.outputs.conclusion }}
type: ${{ steps.parse-request.outputs.type }} type: ${{ steps.parse-request.outputs.type }}
error: ${{ steps.parse-request.outputs.error }} error: ${{ steps.parse-request.outputs.error }}
arduinoLintLibraryManagerSetting: ${{ steps.parse-request.outputs.arduinoLintLibraryManagerSetting }} arduinoLintLibraryManagerSetting: ${{ steps.parse-request.outputs.arduinoLintLibraryManagerSetting }}
@ -133,6 +134,8 @@ jobs:
indexer-logs-urls: ${{ steps.parse-request.outputs.indexer-logs-urls }} indexer-logs-urls: ${{ steps.parse-request.outputs.indexer-logs-urls }}
steps: steps:
# Checkout the tip of the default branch (this is the action's default ref input value when workflow is triggered
# by an issue_comment or pull_request_target event).
- name: Checkout local repository - name: Checkout local repository
uses: actions/checkout@v4 uses: actions/checkout@v4
@ -160,12 +163,15 @@ jobs:
chmod u+x "${{ steps.download-parser.outputs.file-path }}" chmod u+x "${{ steps.download-parser.outputs.file-path }}"
REQUEST="$( \ REQUEST="$( \
"${{ steps.download-parser.outputs.file-path }}" \ "${{ steps.download-parser.outputs.file-path }}" \
--accesslist=".github/workflows/assets/accesslist.yml" \
--diffpath="${{ needs.diff.outputs.path }}/${{ needs.diff.outputs.filename }}" \ --diffpath="${{ needs.diff.outputs.path }}/${{ needs.diff.outputs.filename }}" \
--repopath="${{ github.workspace }}" \ --repopath="${{ github.workspace }}" \
--listname="repositories.txt" \ --listname="repositories.txt" \
--submitter="${{ github.actor }}" \
)" )"
# Due to limitations of the GitHub Actions workflow system, dedicated outputs must be created for use in # Due to limitations of the GitHub Actions workflow system, dedicated outputs must be created for use in
# certain workflow fields. # certain workflow fields.
echo "::set-output name=conclusion::$(echo "$REQUEST" | jq -r -c '.conclusion')"
echo "::set-output name=type::$(echo "$REQUEST" | jq -r -c '.type')" echo "::set-output name=type::$(echo "$REQUEST" | jq -r -c '.type')"
echo "::set-output name=error::$(echo "$REQUEST" | jq -r -c '.error')" echo "::set-output name=error::$(echo "$REQUEST" | jq -r -c '.error')"
echo "::set-output name=arduinoLintLibraryManagerSetting::$(echo "$REQUEST" | jq -r -c '.arduinoLintLibraryManagerSetting')" echo "::set-output name=arduinoLintLibraryManagerSetting::$(echo "$REQUEST" | jq -r -c '.arduinoLintLibraryManagerSetting')"
@ -191,10 +197,13 @@ jobs:
labels: | labels: |
- "topic: ${{ needs.parse.outputs.type }}" - "topic: ${{ needs.parse.outputs.type }}"
# Handle problem found by the parser that can potentially be resolved by requester.
parse-fail: parse-fail:
needs: needs:
- parse - parse
if: needs.parse.outputs.error != '' if: >
needs.parse.outputs.conclusion != 'declined' &&
needs.parse.outputs.error != ''
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@ -219,6 +228,56 @@ jobs:
More information: More information:
https://github.com/${{ github.repository }}/blob/main/README.md#if-the-problem-is-with-the-pull-request https://github.com/${{ github.repository }}/blob/main/README.md#if-the-problem-is-with-the-pull-request
# Requester's registry privileges have been revoked.
decline-request:
needs:
- parse
if: >
needs.parse.outputs.conclusion == 'declined' &&
needs.parse.outputs.error != ''
runs-on: ubuntu-latest
steps:
- name: Comment reason for declining request
uses: octokit/request-action@v2.x
if: needs.parse.outputs.error != ''
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
route: POST /repos/{owner}/{repo}/issues/{issue_number}/comments
owner: ${{ github.repository_owner }}
repo: ${{ github.event.repository.name }}
issue_number: ${{ github.event.pull_request.number }}${{ github.event.issue.number }}
body: |
|
Hi @${{ github.actor }}
Your request has been declined:
${{ env.ERROR_MESSAGE_PREFIX }}${{ needs.parse.outputs.error }}
- name: Close PR
uses: octokit/request-action@v2.x
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
route: PATCH /repos/{owner}/{repo}/pulls/{pull_number}
owner: ${{ github.repository_owner }}
repo: ${{ github.event.repository.name }}
pull_number: ${{ github.event.pull_request.number }}${{ github.event.issue.number }}
state: closed
- name: Add conclusion label to PR
uses: octokit/request-action@v2.x
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
# See: https://docs.github.com/rest/issues/labels#add-labels-to-an-issue
route: POST /repos/{owner}/{repo}/issues/{issue_number}/labels
owner: ${{ github.repository_owner }}
repo: ${{ github.event.repository.name }}
issue_number: ${{ github.event.pull_request.number }}${{ github.event.issue.number }}
labels: |
- "conclusion: ${{ needs.parse.outputs.conclusion }}"
check-submissions: check-submissions:
name: Check ${{ matrix.submission.submissionURL }} name: Check ${{ matrix.submission.submissionURL }}
needs: needs:
@ -226,6 +285,7 @@ jobs:
if: > if: >
needs.parse.outputs.type == 'submission' || needs.parse.outputs.type == 'submission' ||
needs.parse.outputs.type == 'modification' needs.parse.outputs.type == 'modification'
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false fail-fast: false
@ -275,6 +335,15 @@ jobs:
if: matrix.submission.error != '' if: matrix.submission.error != ''
run: echo "PASS=false" >> "$GITHUB_ENV" run: echo "PASS=false" >> "$GITHUB_ENV"
# Parser checks are relevant in the case where request is declined due to registry access having been revoked for
# the library repository owners. However, the rest of the checks are irrelevant and may result in confusing
# comments from the bot, so should be skipped.
- name: Skip the rest of the checks if request is declined
if: >
needs.parse.outputs.conclusion == 'declined' &&
env.PASS == 'true'
run: echo "PASS=false" >> "$GITHUB_ENV"
- name: Install Arduino Lint - name: Install Arduino Lint
if: env.PASS == 'true' if: env.PASS == 'true'
run: | run: |
@ -418,12 +487,15 @@ jobs:
run: | run: |
test -d "${{ env.CHECK_SUBMISSIONS_FAIL_FLAG_ARTIFACT_PATH }}" test -d "${{ env.CHECK_SUBMISSIONS_FAIL_FLAG_ARTIFACT_PATH }}"
# Handle problem found by the submission checks that can potentially be resolved by requester.
check-submissions-fail: check-submissions-fail:
needs: needs:
- parse
- check-submissions-result - check-submissions-result
if: needs.check-submissions-result.outputs.pass == 'false' if: >
needs.parse.outputs.conclusion != 'declined' &&
needs.check-submissions-result.outputs.pass == 'false'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Comment instructions to fix errors detected during submission checks - name: Comment instructions to fix errors detected during submission checks
uses: octokit/request-action@v2.x uses: octokit/request-action@v2.x
@ -449,6 +521,37 @@ jobs:
More information: More information:
https://github.com/${{ github.repository }}/blob/main/README.md#if-the-problem-is-with-the-pull-request https://github.com/${{ github.repository }}/blob/main/README.md#if-the-problem-is-with-the-pull-request
decline-submissions:
needs:
- parse
- check-submissions
if: needs.parse.outputs.conclusion == 'declined'
runs-on: ubuntu-latest
steps:
- name: Close PR
uses: octokit/request-action@v2.x
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
route: PATCH /repos/{owner}/{repo}/pulls/{pull_number}
owner: ${{ github.repository_owner }}
repo: ${{ github.event.repository.name }}
pull_number: ${{ github.event.pull_request.number }}${{ github.event.issue.number }}
state: closed
- name: Add conclusion label to PR
uses: octokit/request-action@v2.x
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
# See: https://docs.github.com/rest/issues/labels#add-labels-to-an-issue
route: POST /repos/{owner}/{repo}/issues/{issue_number}/labels
owner: ${{ github.repository_owner }}
repo: ${{ github.event.repository.name }}
issue_number: ${{ github.event.pull_request.number }}${{ github.event.issue.number }}
labels: |
- "conclusion: ${{ needs.parse.outputs.conclusion }}"
merge: merge:
needs: needs:
- diff - diff
@ -601,6 +704,7 @@ jobs:
- parse - parse
# These request types can't be automatically approved. # These request types can't be automatically approved.
if: > if: >
needs.parse.outputs.conclusion != 'declined' &&
needs.parse.outputs.type != 'submission' && needs.parse.outputs.type != 'submission' &&
needs.parse.outputs.type != 'invalid' needs.parse.outputs.type != 'invalid'
runs-on: ubuntu-latest runs-on: ubuntu-latest
@ -627,8 +731,10 @@ jobs:
needs: needs:
# Run after all other jobs # Run after all other jobs
- parse-fail - parse-fail
- decline-request
- merge-fail - merge-fail
- check-submissions-fail - check-submissions-fail
- decline-submissions
- label - label
- not-submission - not-submission
# Run if any job failed. The workflow is configured so that jobs only fail when there is an unexpected error. # Run if any job failed. The workflow is configured so that jobs only fail when there is an unexpected error.

2
FAQ.md
View File

@ -72,6 +72,8 @@ Follow the instructions [here](README.md#adding-a-library-to-library-manager).
### What are the requirements for a library to be added to Library Manager? ### What are the requirements for a library to be added to Library Manager?
- [ ] The library must be something of potential value to the Arduino community.
- [ ] The submitter must behave in a responsible manner in their interactions with the Library Manager Registry.
- [ ] The library must be fully compliant with the [Arduino Library Specification](https://arduino.github.io/arduino-cli/latest/library-specification). - [ ] The library must be fully compliant with the [Arduino Library Specification](https://arduino.github.io/arduino-cli/latest/library-specification).
- [ ] The library must have [a library.properties file](https://arduino.github.io/arduino-cli/latest/library-specification/#library-metadata), in compliance with the Arduino Library 1.5 format. - [ ] The library must have [a library.properties file](https://arduino.github.io/arduino-cli/latest/library-specification/#library-metadata), in compliance with the Arduino Library 1.5 format.
- [ ] The library.properties file must be located in the root of the repository. - [ ] The library.properties file must be located in the root of the repository.

View File

@ -33,6 +33,16 @@ See the instructions below for detailed instructions on how to do this via the G
### Instructions ### Instructions
---
⚠ If you behave irresponsibly in your interactions with this repository, your Library Manager Registry privileges will be revoked.
Carefully read and follow the instructions in any comments the bot and human maintainers make on your pull requests. If you are having trouble following the instructions, add a comment that provides a detailed description of the problem you are having and a human maintainer will provide assistance.
Although we have set up automation for the most basic tasks, this repository is maintained by humans. So behave in a manner appropriate for interacting with humans, including clearly communicating what you are hoping to accomplish.
---
1. You may want to first take a look at 1. You may want to first take a look at
[the requirements for admission into the Arduino Library Manager index](FAQ.md#submission-requirements). Each submission will be checked for [the requirements for admission into the Arduino Library Manager index](FAQ.md#submission-requirements). Each submission will be checked for
compliance before being accepted. compliance before being accepted.

View File

@ -1,10 +1,10 @@
https://github.com/rjsachse/ESP32-RTSPServer.git
https://github.com/schreibfaul1/ESP32-audioI2S https://github.com/schreibfaul1/ESP32-audioI2S
https://github.com/7Semi/SevenSemiSHT4x_Lib https://github.com/7Semi/SevenSemiSHT4x_Lib
https://github.com/hasenradball/MCP23008-I2C https://github.com/hasenradball/MCP23008-I2C
https://github.com/roncoa/KeySequence https://github.com/roncoa/KeySequence
https://github.com/juanmercadin/ReceptorRF https://github.com/juanmercadin/ReceptorRF
https://github.com/valerii-fr/menux https://github.com/valerii-fr/menux
https://github.com/7Semi/7SemiSHT4x_Library
https://github.com/Moarbue/incremental-rotary-encoder https://github.com/Moarbue/incremental-rotary-encoder
https://github.com/Moarbue/arduino-button https://github.com/Moarbue/arduino-button
https://github.com/Moarbue/FIR-Filter https://github.com/Moarbue/FIR-Filter
@ -37,6 +37,7 @@ https://github.com/DigitalCodesign/MentorBit-Pulsadores
https://github.com/DigitalCodesign/MentorBit-RGB https://github.com/DigitalCodesign/MentorBit-RGB
https://github.com/DigitalCodesign/MentorBit-Ultrasonidos https://github.com/DigitalCodesign/MentorBit-Ultrasonidos
https://github.com/DigitalCodesign/MentorBit-Zumbador https://github.com/DigitalCodesign/MentorBit-Zumbador
https://github.com/ddchung/Async-HC-SR04-Lib
https://github.com/DigitalCodesign/Puertas-Logicas-Plugin https://github.com/DigitalCodesign/Puertas-Logicas-Plugin
https://github.com/median-dispersion/Non-Blocking-Melody https://github.com/median-dispersion/Non-Blocking-Melody
https://github.com/median-dispersion/XPT2046-Driver https://github.com/median-dispersion/XPT2046-Driver
@ -880,6 +881,10 @@ https://github.com/Andy4495/LED744511
https://github.com/Andy4495/SWI2C https://github.com/Andy4495/SWI2C
https://github.com/Andy4495/TIL306 https://github.com/Andy4495/TIL306
https://github.com/Andy4495/TLC591x https://github.com/Andy4495/TLC591x
https://github.com/Andy4495/LCD_SharpBoosterPack_SPI
https://github.com/Andy4495/OneMsTaskTimer
https://github.com/Andy4495/Energia-EducationalBP_MKII
https://github.com/Andy4495/Energia-MultiTasking
https://github.com/andydoro/DST_RTC https://github.com/andydoro/DST_RTC
https://github.com/angrest/pocketBME280 https://github.com/angrest/pocketBME280
https://github.com/aniket-hpp/TFT_eSPI_Scroll https://github.com/aniket-hpp/TFT_eSPI_Scroll
@ -2291,6 +2296,7 @@ https://github.com/EnviroDIY/KellerModbus
https://github.com/EnviroDIY/SensorModbusMaster https://github.com/EnviroDIY/SensorModbusMaster
https://github.com/EnviroDIY/Sodaq_DS3231 https://github.com/EnviroDIY/Sodaq_DS3231
https://github.com/EnviroDIY/YosemitechModbus https://github.com/EnviroDIY/YosemitechModbus
https://github.com/EnviroDIY/GeoluxCamera
https://github.com/eoh-jsc/era-lib https://github.com/eoh-jsc/era-lib
https://github.com/epsilonrt/ad7124 https://github.com/epsilonrt/ad7124
https://github.com/epsilonrt/EepromSecureData https://github.com/epsilonrt/EepromSecureData
@ -5163,6 +5169,9 @@ https://github.com/rei-vilo/PDLS_EXT3_Basic_Global
https://github.com/rei-vilo/PDLS_EXT3_Basic_Touch https://github.com/rei-vilo/PDLS_EXT3_Basic_Touch
https://github.com/rei-vilo/PDLS_EXT3_Basic_Wide https://github.com/rei-vilo/PDLS_EXT3_Basic_Wide
https://github.com/rei-vilo/PDLS_EXT4_Basic_Matter https://github.com/rei-vilo/PDLS_EXT4_Basic_Matter
https://github.com/rei-vilo/PDLS_Common
https://github.com/rei-vilo/PDLS_Basic
https://github.com/PervasiveDisplays/Pervasive_Wide_Medium
https://github.com/reiniiriarios/arduino-mqtt-looped https://github.com/reiniiriarios/arduino-mqtt-looped
https://github.com/remicaumette/esp8266-redis https://github.com/remicaumette/esp8266-redis
https://github.com/remocons/boho-arduino https://github.com/remocons/boho-arduino
@ -5336,6 +5345,8 @@ https://github.com/RobTillaart/Adler
https://github.com/RobTillaart/ADS1X15 https://github.com/RobTillaart/ADS1X15
https://github.com/RobTillaart/ADT7470 https://github.com/RobTillaart/ADT7470
https://github.com/RobTillaart/AGS02MA https://github.com/RobTillaart/AGS02MA
https://github.com/RobTillaart/AGS2616
https://github.com/RobTillaart/AGS3870
https://github.com/RobTillaart/AGS3871 https://github.com/RobTillaart/AGS3871
https://github.com/RobTillaart/AM2315 https://github.com/RobTillaart/AM2315
https://github.com/RobTillaart/AM2315C https://github.com/RobTillaart/AM2315C
@ -5346,6 +5357,7 @@ https://github.com/RobTillaart/AnalogUVSensor
https://github.com/RobTillaart/Angle https://github.com/RobTillaart/Angle
https://github.com/RobTillaart/AngleConvertor https://github.com/RobTillaart/AngleConvertor
https://github.com/RobTillaart/ANSI https://github.com/RobTillaart/ANSI
https://github.com/RobTillaart/APDS9900
https://github.com/RobTillaart/AS5600 https://github.com/RobTillaart/AS5600
https://github.com/RobTillaart/AsyncAnalog https://github.com/RobTillaart/AsyncAnalog
https://github.com/RobTillaart/AtomicWeight https://github.com/RobTillaart/AtomicWeight
@ -5502,6 +5514,7 @@ https://github.com/RobTillaart/PCA9632
https://github.com/RobTillaart/PCA9634 https://github.com/RobTillaart/PCA9634
https://github.com/RobTillaart/PCA9635 https://github.com/RobTillaart/PCA9635
https://github.com/RobTillaart/PCA9685_RT https://github.com/RobTillaart/PCA9685_RT
https://github.com/RobTillaart/PCA9698_RT
https://github.com/RobTillaart/PCF8574 https://github.com/RobTillaart/PCF8574
https://github.com/RobTillaart/PCF8575 https://github.com/RobTillaart/PCF8575
https://github.com/RobTillaart/PCF8591 https://github.com/RobTillaart/PCF8591
@ -5525,7 +5538,9 @@ https://github.com/RobTillaart/RAIN
https://github.com/RobTillaart/randomHelpers https://github.com/RobTillaart/randomHelpers
https://github.com/RobTillaart/relativity https://github.com/RobTillaart/relativity
https://github.com/RobTillaart/rotaryDecoder https://github.com/RobTillaart/rotaryDecoder
https://github.com/RobTillaart/rotaryDecoder8
https://github.com/RobTillaart/rotaryDecoderSwitch https://github.com/RobTillaart/rotaryDecoderSwitch
https://github.com/RobTillaart/rotaryDecoderSwitch5
https://github.com/RobTillaart/RS485 https://github.com/RobTillaart/RS485
https://github.com/RobTillaart/RunAvgWeight https://github.com/RobTillaart/RunAvgWeight
https://github.com/RobTillaart/runningAngle https://github.com/RobTillaart/runningAngle
@ -5554,7 +5569,9 @@ https://github.com/RobTillaart/Student
https://github.com/RobTillaart/SWSerialOut https://github.com/RobTillaart/SWSerialOut
https://github.com/RobTillaart/SWSPI https://github.com/RobTillaart/SWSPI
https://github.com/RobTillaart/TCA9548 https://github.com/RobTillaart/TCA9548
https://github.com/RobTillaart/TCA9554
https://github.com/RobTillaart/TCA9555 https://github.com/RobTillaart/TCA9555
https://github.com/RobTillaart/TCS3210
https://github.com/RobTillaart/Temperature https://github.com/RobTillaart/Temperature
https://github.com/RobTillaart/TEMT6000 https://github.com/RobTillaart/TEMT6000
https://github.com/RobTillaart/timing https://github.com/RobTillaart/timing
@ -5733,7 +5750,6 @@ https://github.com/Seeed-Studio/Grove_LED_Matrix_Driver
https://github.com/Seeed-Studio/Grove_LoRa_433MHz_and_915MHz_RF https://github.com/Seeed-Studio/Grove_LoRa_433MHz_and_915MHz_RF
https://github.com/Seeed-Studio/Grove_Mini_Track_Ball https://github.com/Seeed-Studio/Grove_Mini_Track_Ball
https://github.com/Seeed-Studio/Grove_Motor_Driver_TB6612FNG https://github.com/Seeed-Studio/Grove_Motor_Driver_TB6612FNG
https://github.com/Seeed-Studio/Grove_Serial_MP3_Player_V2.0
https://github.com/Seeed-Studio/Grove_SHT31_Temp_Humi_Sensor https://github.com/Seeed-Studio/Grove_SHT31_Temp_Humi_Sensor
https://github.com/Seeed-Studio/Grove_Sunlight_Sensor https://github.com/Seeed-Studio/Grove_Sunlight_Sensor
https://github.com/Seeed-Studio/Grove_Temper_Humidity_TH02 https://github.com/Seeed-Studio/Grove_Temper_Humidity_TH02
@ -7638,13 +7654,13 @@ https://github.com/humacompany/Huma_Buttons
https://github.com/KriBielinski/PrecDueTimer https://github.com/KriBielinski/PrecDueTimer
https://github.com/KriBielinski/InterruptStepper https://github.com/KriBielinski/InterruptStepper
https://github.com/ripred/CodeSizeProfiler https://github.com/ripred/CodeSizeProfiler
https://github.com/KDaniels-dev/Stepper595 https://github.com/KDDaniels/Stepper595
https://github.com/Stutchbury/InputEvents https://github.com/Stutchbury/InputEvents
https://github.com/QuickSpot/walter-arduino https://github.com/QuickSpot/walter-arduino
https://github.com/sagar-koirala/TelloESP32 https://github.com/sagar-koirala/TelloESP32
https://github.com/AlessioSavelli/DMXasLED https://github.com/AlessioSavelli/DMXasLED
https://github.com/zimbora/EspMQTTClient https://github.com/zimbora/EspMQTTClient
https://github.com/npuckett/AltController https://github.com/DigitalFuturesOCADU/AltController
https://github.com/digitalfen/ArtificialDateTime https://github.com/digitalfen/ArtificialDateTime
https://github.com/digitalfen/PseudoDateTime https://github.com/digitalfen/PseudoDateTime
https://github.com/digitalfen/ArtificialRTC https://github.com/digitalfen/ArtificialRTC
@ -7662,13 +7678,20 @@ https://github.com/moononournation/Dev_Device_Pins.git
https://github.com/ELOWRO/ADS1119 https://github.com/ELOWRO/ADS1119
https://github.com/kelasrobot/KelasRobotIO https://github.com/kelasrobot/KelasRobotIO
https://github.com/rescenic/rescenicio https://github.com/rescenic/rescenicio
https://github.com/JokoArdh/inIo
https://github.com/robbywm/RobbyIO/ https://github.com/robbywm/RobbyIO/
https://github.com/cakraawijaya/MQ2_LPG https://github.com/cakraawijaya/MQ2_LPG
https://github.com/edwiyanto/CreatorKidsIO https://github.com/edwiyanto/CreatorKidsIO
https://github.com/cakraawijaya/ESP_FC28 https://github.com/cakraawijaya/ESP_FC28
https://github.com/CMB27/ModbusSlaveLogic https://github.com/CMB27/ModbusSlaveLogic
https://github.com/wwhai/MOTY-Mini-Temperature-Sensor.git https://github.com/wwhai/MOTY-Mini-Temperature-Sensor.git
https://github.com/kelasrobot/FoonteDuino
https://github.com/stacknix/stackmq-esp32 https://github.com/stacknix/stackmq-esp32
https://github.com/marekburiak/ESP32_MQTTClient https://github.com/marekburiak/ESP32_MQTTClient
https://github.com/levkovigor/PTZProtocolHandler
https://github.com/Alex-Stone-Github/pepstep
https://github.com/AirNgin/Airngin-esp32-mqtt-client
https://github.com/samy101/edge-ai-arduino-library
https://github.com/robertsonics/WAV_Trigger_Pro_Qwiic_Arduino_Library
https://github.com/YoavPaz/I2CR-CPP
https://github.com/Alex-Stone-Github/CNCShield
https://github.com/bitbank2/FastEPD
https://github.com/jerry-magnin/Mem24CSM01