A new flexible and powerful "pluggable discovery" system was added to the Arduino boards platform framework. This system
makes it easy for Arduino boards platform authors to use any arbitrary communication channel between the board and
development tools.
Boards platform configurations that use the old property syntax are automatically translated to the new syntax by
Arduino CLI:
https://arduino.github.io/arduino-cli/latest/platform-specification/#sketch-upload-configuration
> For backward compatibility with IDE 1.8.15 and older the previous syntax is still supported
This translation is only done in platforms that use the old syntax exclusively. If `pluggable_discovery` properties are
defined for the platform then the new pluggable discovery-style `upload.tool.<protocol_name>` properties must be defined
for each board as well.
This platform was converted to use the new pluggable discovery platform properties syntax, so those properties are
required. Although such properties were added to board definitions at the time the syntax was changed, new board
definitions without the required properties were added later.
Those missing properties caused uploads to fail for users of the recent versions of Arduino IDE and Arduino CLI with an
error of the form:
Error during Upload: Property 'upload.tool.serial' is undefined
It is also important to provide compatibility with versions of Arduino development tools from before the introduction of
the modern pluggable discovery system. For this reason, the old style `<board ID>.upload.tool` properties are retained.
Old versions of the development tools will treat the `<board ID>.upload.tool.default` properties as an unused
arbitrary user defined property with no special significance and the new versions of the development tools will do the
same for the `upload.tool` properties.
* fixed names on the VID and PID for boards
somehow had duplicated the same name across all my boards. the PID's and VID's were correct, but the name was the same for all of them. that is fixed now.
* added bee data logger board
* updated pins
* moved added board next to other bee boards
* fixed typo issue
* updated board name to all upper caps
* new variant Seeed XIAO_ESP32S3
* add pin define for camera example
* Remove excess comments and fix minor errors
---------
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
* Updated Pins of Devkits
Deleted soc_caps.h library and related commands at Deneyap Kart 1A v2, Deneyap Kart 1A, Deneyap Mini and Deneyap Mini v2.
Added TX1 and RX1 pins and updated LED pin definition at all Devkits.
Added BOOT (BT) pins at Deneyap Kart, Deneyap Kart 1A, Deneyap Mini and Deneyap Kart G.
Changed D0 and D1 pin numbers at Deneyap Kart G.
Changed D12, D13, D14, D15, PWM0 and PWM1 pin numbers at Deneyap Kart 1A v2.
Added A8, T0, T1, T2, T3, T4, T5, T6, T7, T8, D16, D17, D18, D19, PWM2, PWM3, PWM4 and BAT pin numbers at Deneyap Kart 1A v2.
Changed A2, A3, A4 (T0) and A5 (T1) pin numbers at Deneyap Kart and Deneyap Kart 1A.
Renamed DA2 (DAC2) pin as DA0 (DAC0) and changed DAC1 and DAC2 pin numbers at Deneyap Mini and Deneyap Mini v2.
* Updated board.txt of all Devkits
Updated board.txt of all Devkits
* ESP Insights: Added library support
* ESP Insights: Added Examples
* ESP Insights: Added custom partitions file
* ESP Insights: Added API documentation.
* Added recipe and script to create Insights package
* Updated ESP Insights examples.
* Changed Insights Firmware package output directory
* Changed license to include SPDX license
* Fix Insights package for Windows
* Updated .exe of insights script
* Added coredump partition to all schemes
* Updated header files of Insights diagnostics
* hotfix: Added elf-sha256-offset flag in elf2bin
builder
* Update API to be more Arduino-like and partitions offsets
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
* Added support for heltec_wifi_lora_32_V3 and heltec_wifi_kit_32_V3
Changes to be committed:
new file: variants/heltec_wifi_kit_32_v3/pins_arduino.h
new file: variants/heltec_wifi_lora_32_V3/pins_arduino.h
* Added support for heltec_wifi_lora_32_V3 and heltec_wifi_kit_32_V3
Changes to be committed:
new file: variants/heltec_wifi_kit_32_v3/pins_arduino.h
new file: variants/heltec_wifi_lora_32_V3/pins_arduino.h
modified: boards.txt
* Added Support for Heltec Boards V3
* change upload max size for HeltecV3
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
* feat: add ESP-C3-M1-I-Kit board to variants
* docs: rename file to slug format
* Fixes GPIO definitions
* Adds ESP32 C3 M1 I Kit to the board list
Fixes board.txt file to add the new ESP32_C3_M1_I_KIT variant
* fixes extra board separator
* Keeps only 4MB flash option
* Fix it to Flash 80Mhz QIO only
* Undo a change by mistake
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
* Correct upload tool name for "ESP32 FM DevKit"
The upload tool name was changed from `esptool` to `esptool_py`. The author of the "ESP32 FM DevKit" board definition used the old tool name and evidently never tested it, since the upload fails:
java.lang.NullPointerException
at cc.arduino.packages.uploaders.SerialUploader.uploadUsingProgrammer(SerialUploader.java:295)
at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:90)
at cc.arduino.UploaderUtils.upload(UploaderUtils.java:77)
at processing.app.SketchController.upload(SketchController.java:732)
at processing.app.SketchController.exportApplet(SketchController.java:703)
at processing.app.Editor$UploadHandler.run(Editor.java:2055)
at java.lang.Thread.run(Thread.java:748)
* Add protocol-explicit `upload.tool` properties required for pluggable discovery compatibility
A new flexible and powerful "pluggable discovery" system was added to the Arduino boards platform framework. This system
makes it easy for Arduino boards platform authors to use any arbitrary communication channel between the board and
development tools.
Boards platform configurations that use the old property syntax are automatically translated to the new syntax by
Arduino CLI:
https://arduino.github.io/arduino-cli/latest/platform-specification/#sketch-upload-configuration
> For backward compatibility with IDE 1.8.15 and older the previous syntax is still supported
This translation is only done in platforms that use the old syntax exclusively. If `pluggable_discovery` properties are
defined for the platform then the new pluggable discovery-style `upload.tool.<protocol_name>` properties must be defined
for each board as well.
This platform was converted to use the new pluggable discovery platform properties syntax, so those properties are
required. Although such properties were added to board definitions at the time the syntax was changed, some board
definitions were missed at that time, or added later without the required properties.
Those missing properties caused uploads to fail for users of the recent versions of Arduino IDE and Arduino CLI with an
error of the form:
Error during Upload: Property 'upload.tool.<protocol_name>' is undefined
(where `<protocol_name>` is the protocol of the selected port, if any)
It is also important to provide compatibility with versions of Arduino development tools from before the introduction of
the modern pluggable discovery system. For this reason, the old style `<board ID>.upload.tool` properties are retained.
Old versions of the development tools will treat the `<board ID>.upload.tool.<protocol_name>` properties as an unused
arbitrary user defined property with no special significance and the new versions of the development tools will do the
same for the `upload.tool` properties.
* Add the Partition Scheme Menu to HELTEC LoRa32 V1
This is missing from many boards, i may add that to all of them
* reordered heltec_wifi_lora_32 partition options
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
Somehow the fix#7129 was not applied to NORA-W10 probably both changes were happening at around the same time, this PR fixes this.
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
As per #6962 we have another case of build.flash_type incorrectly named qspi; this commit fixes the issue for the unphone9 board.
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
* Added support for Cytron Maker Feather AIoT S3.
* 1. Select OPI PSRAM by default.
2. Fixed pin name error in variant.cpp.
3. Added definition for RGB_BUILTIN.
* Define the RGB_BUILTIN as shown in #6979.
* Added pin definition for A12 (Vin Sense).
somehow had duplicated the same name across all my boards. the PID's and VID's were correct, but the name was the same for all of them. that is fixed now.
Description of Change
This PR adds support for Espoir, a mikroBUS PoE+ devboard, by Connaxio inc. However, the ESP32-MINI-1 is a single core CPU, so Connaxio will provide the builds for its devboard until single core CPUs are officially supported. Adding these modifications to the official repository will limit discrepancies between Connaxio's fork and the main repo.
Tests scenarios
Tests include Ethernet, SPI, USB, I2C, UART (1-wire).
More info: https://www.connaxio.com/electronics/espoir/
Implemented a new method for allowing folks to preserve their TinyUF2 bootloader setup when flashing their boards via Arduino IDE, without being locked out of not using it if they want to use a different partition.
Adafruit had already added support for keeping (reflashing) the TinyUF2 bootloader when flashing via Arduino IDE (thanks @ladyada ), but the issue with it is it doesn't allow users to not choose to use it. Even if they select a specific partition scheme from the partition drop down list, it ignores that selection and only does the TinyUF2 partitioning/bootloader thing.
We wanted to let users choose between keeping their TinyUF2 partitioning and bootloader, or choose another partition scheme and have the TinyUF2 support disabled and just operate like they would expect.
We've implemented this by adding the TinyUF2 support as a partition scheme option, and using these build options in platform.txt to choose to use teh UF2 path or use the standard path.
Add support for the Trueverit Universal IoT Driver MK III (https://www.trueverit.com/)
The board will be released on market using electronic distributors soon, as the other one board added via #5269
This new board (referred as MK III) has onboard Texas Instruments RTL8201 Eth PHY chip.
This pull request contains a few fixes and improvements to the HWCDC implementation.
- Rework `HWCDC::write()` to accept unlimited data
- Add Semaphore to guard the TX Ring Buffer
- Add events support
- Remove unnecessary 1200bps touch for flashing over HWCDC
- Fix `HardwareSerial::setDebugOutput()` not resetting `putc` if the port is already selected, causing debug output to also show on HWCDC even when not selected.
## Summary
Adds support for the new ATMegaZero ESP32-S2 board. Adds the relevant section to `boards.txt` and adds the folder for the `atmegazero-esp32s2` with the proper `pins_arduino.h` to the `variants` folder.
## Impact
Allows users to compile code properly for the ATMegaZero ESP32-S2 without having to use a similar board and manually entering pin numbers.
## Links
[ATMegaZero ESP32-S2](https://atmegazero.com/#/atmegazero_esp32s2_overview)
Thanks!
* The board.txt has been updated. Added variant folder.
Necessary additions for deneyapMiniKart were made in board.txt. Added pins_arduino to variant folder. deneyapMiniKart information has been added.
* Added variant files and added text in board.txt
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
* Add initial support for USB MSC
* Add Firmware Upload/Download With MSC
Current running firmware is available as file inside the MSC Disk. To update the firmware on the ESP, just copy a regular firmware bin into the drive
* Support overwriting of the firmware file
Overwriting a file is done totally differently on MacOS, Windows and Linux. This change supports it on all of them.
* Allow CDC, FirmwareMSC and DFU to be enabled on boot
* Add example ESP32-S2 USB-ONLY board
* Various device code optimizations
Added `end()` methods to MSC classes
Made begin() methods safe to be called multiple times
Optimized CDC class
* Fix CDC Connect/Disconnect detection in Arduino IDE on Windows
* Rework cdc_write
* Update ESP32-S2 board configs
* Fix compile archive arguments for the new toolchain
* Add menu to S2 for picking through which port to upload
Internal USB CDC requires to reset and wait for the new port (because persistence is not yet stable)
* USB CDC should also be started in main
* Fix URL and USB version for WebUSB
* Update vendor callback API
* Update CDC::write to use TX_DONE semaphore
* Update USB_Serial example
Add support for the Trueverit Universal IoT Driver MK II (https://www.trueverit.com)
The board will be released on market using electronic distributors soon, as the other one board added via #5219
This new board (referred as MK II) has onboard Texas Instruments DP83848 Eth PHY chip.
* Removed ProS2 and added TinyS2 to boards.txt
* Fixed incorrect NUM_OUTPUT_PINS - should be 47 not 45
This is why my APA doesn't work on my FeatherS2 as it usess IO45 and the check is for < not <=
* TinyS2 from boards.txt got stomped with old proS2 stuff (no idea why), so adding it back in.
done on behalf of @ladyada, this PR does:
Add Adafruit FunHouse and upcoming Adafruit Feather Esp32s2
Update Adafruit magtag and metro esp32s2 to have tinyuf2 as factory app
Also modify platform.txt as discussed in adafruit#2 + adafruit#3 + adafruit#4 to add support for
Board/variant partition.csv, bootloader.bin ( priority is user sketch > variant > build.parition/boot )
upload.extra_flags to optionally flash tinyuf2 as factory application
Remove duplicated parameter in running python script in linux and windows
Please review and let me know if you want any changes.
Notes: tinyuf2 is a uf2 bootloader for multiple platforms. For esp32s2, it is an factory app to perform uf2 firmware update.
This is very much still work in progress and much more will change before the final 2.0.0
Some APIs have changed. New libraries have been added. LittleFS included.
Co-authored-by: Seon Rozenblum <seonr@3sprockets.com>
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
Co-authored-by: geeksville <kevinh@geeksville.com>
Co-authored-by: Mike Dunston <m_dunston@comcast.net>
Co-authored-by: Unexpected Maker <seon@unexpectedmaker.com>
Co-authored-by: Seon Rozenblum <seonr@3sprockets.com>
Co-authored-by: microDev <70126934+microDev1@users.noreply.github.com>
Co-authored-by: tobozo <tobozo@users.noreply.github.com>
Co-authored-by: bobobo1618 <bobobo1618@users.noreply.github.com>
Co-authored-by: lorol <lorolouis@gmail.com>
Co-authored-by: geeksville <kevinh@geeksville.com>
Co-authored-by: Limor "Ladyada" Fried <limor@ladyada.net>
Co-authored-by: Sweety <switi.mhaiske@espressif.com>
Co-authored-by: Loick MAHIEUX <loick111@gmail.com>
Co-authored-by: Larry Bernstone <lbernstone@gmail.com>
Co-authored-by: Valerii Koval <valeros@users.noreply.github.com>
Co-authored-by: 快乐的我531 <2302004040@qq.com>
Co-authored-by: chegewara <imperiaonline4@gmail.com>
Co-authored-by: Clemens Kirchgatterer <clemens@1541.org>
Co-authored-by: Aron Rubin <aronrubin@gmail.com>
Co-authored-by: Pete Lewis <601236+lewispg228@users.noreply.github.com>
Add the Wemos Lolin32 Lite (no longer being produced same as Lolin32) and
the TTGO T7 v1.3 and v1.4 boards (status unknown). All three are rather
generic ESP32 boards the main difference being pin layouts.
* Add 'KITS Edu ESP32' board definition
add 'KITS Edu ESP32' board definition
* Modify board name
the board name was modified.
* Change the board name
Finally, we decided the board name.
- 'KITS ESP32 EDU'
Co-authored-by: Hamson Park <hamson.park@koreaits.com>
Co-authored-by: Hamson Park <hspark3235@gmail.com>
* Fix wrong values in .cvs files
Add missing upload size for partitions bigger than default one
* Add new partion to generic
Fix hardcoded partition for 16M flash
* Added 2 ffat partition schemes for 4MB modules + improved descriptions.
Existing format options were unclear on how much spiffs you were
getting. Also add missing 1MB App/3MB Spiffs split.
This addresses https://github.com/espressif/arduino-esp32/issues/1799
This makes it very clear what each option gives you, and also adds 2 options
to get ffat on 4MB chips..
* Added link to ffat howto.
* Update boards.txt
Add menu items for ffat on mhetesp32minikit board.
* Add partition table.
* Added ffat partition for 4MB ESP32 Dev Module.
* Added comment about partitioning schemes.
In Board.txt file added board revision submenu to distinguish the different revisions of the same board. By selecting different revision in the Arduino menu different value of the predefined macro will be applied which is used inside the pins_arduino.h file to make different defines and values for the specific revision.
In addition to this esp32-poe pin definitions is added ethernet power enable pin and also defined macro: BOARD_HAS_1BIT_SDMMC
* Add APB change callbacks and move cpu code to own file
* Properly set esp_timer and FreeRTOS tick dividers
* Improve updated devisors
* No need to update REF_TICK yet
* Add initial handling for UART baud change
* fix uartWriteBuf and uartDetectBaudrate
* trigger callbacks even when APB did not change
* toggle UART ISR on CPU change
* add XTAL freq getter and add cpu freq validation
* Support CPU frequency changes in I2C (#2287)
**esp32-hal-i2c.c**
* add callback for cpu frequency changes
* adjust fifo thresholds based on cpu frequency and i2c bus frequency
* reduce i2c bus frequency if differential is too small
**Wire.h**
* version to 1.1.0
* Implement clock change for the other peripherals
* remove bad CPU clock values from the menu
* Add note to CPU freqs that support WiFi and BT
* Add support to HAL for APB frequencies different than 80MHz
* Add support for CPU frequencies in the IDE board menu
* Switch to fast set_config
* Add method to uart so debug can be reassigned after apb frequency switch
* Return real APB frequency
* First commit of FFat library
* Fixed reboot loops if no fat present. Added CMakeLists
* Functionalize the partition checks
* Cleanup, especially in format
* Dont format if mounted. More wording cleanup
* 16M ffat should only be on 16M board
* Fix some casting issues that trip up the compiler when building as ESP-IDF component
* Add ttgo-lora32-v1 folder to variants folder
* Add ttgo-lora32-v1 info to boards.txt
* Add defs to pins_arduino.h for I2C OLED and SPI LoRa radio pinouts as per @stickbreaker
* Additional partition scheme min_spiffs
with minimal SPIFFS partition size and OTA support for bigger apps
* Selectable (from menu) partitions for m5stack
addition for m5stack (as is prepared for lolin32 board: https://github.com/espressif/arduino-esp32/pull/1379)
discourse here: https://github.com/espressif/arduino-esp32/issues/1378
* Selectable (from menu) partitions for MH ET LIVE boards
in reference to other boards (m5stack, lolin32)
this PR adds partition scheme selection for MH ET LIVE boards
also adds Core Debug Level selection for above boards
build.board is used to define a macro but - is not a permitted character in macro names. This causes the macro name to actually be only everything up to the first - and also many warnings when compiling for one of these boards:
<command-line>:0:14: warning: ISO C++11 requires whitespace after the macro name
<command-line>:0:14: warning: ISO C99 requires whitespace after the macro name
I have followed the convention of the other build.board names by replacing - with _.
* Update BLE lib
* Update IDF to f586f5e
* Restructure Bluetooth Serial includes
* Update esptool and gen_esp32part
* Add partition scheme selection for menuconfig
* Add partition scheme selection for Arduino IDE
* Fix BLE example
* Second attempt BLE fix
* Add exceptions to PIO
M5Stack variant (pins_arduino.h) file is not automatically included,
because boards.txt m5stack-core-esp32.build.variant=esp32
This commit changes m5stack-core-esp32.build.variant from esp32 to m5stack_core_esp32
also rename M5Stack variant directory from m5stack-core-esp32 to m5stack_core_esp32
The .build.board=xx proptery is used for generating a macro named "ARDUINO_xxx".
C macro names should never have a "-" sign.
* current: ARDUINO_NodeMCU-32S
* should be: ARDUINO_=NodeMCU_32S
* Create new pocket_32 diretory for Pocket 32 board
* Create pins_arduino.h for pocket_32
* Update boards.txt to support Dongsen Tech Pocket 32 and fake "WeMos" WiFi&Bluetooth Battery
* Create new espino32 diretory for ESPino32 board
* Delete wrong create file
* Create pins_arduino.h for espino32
* Update boards.txt to support ThaiEasyElec ESPino32
* Re-configure board name