Summary
This PR is refactoring of SigmaDelta HAL in order to use IDF instead of current Register manipulation approach.
Impact
Change in API:
uint32_t sigmaDeltaSetup(uint8_t channel, uint32_t freq);
changed to -->
uint32_t sigmaDeltaSetup(uint8_t pin, uint8_t channel, uint32_t freq);
void sigmaDeltaAttachPin(uint8_t pin); removed, no longer needed. Pin is attached in sigmaDeltaSetup()
Summary
RMT HAL refactoring based on IDF.
Impact
Improves RMT by adding IDF v4.4 support.
Receiving RMT can handle any size of data.
rmtInit() has a new parameter - RxBufferSize - to hold any number of data when receiving RMT.
rmtWrite() has a new parameter - wait_tx_done - to block writing until sending all data.
Related links
fix#5905
This PR is refactoring of LEDC HAL in order to use IDF instead of current Register manipulation approach.
Fixing duty -> if all bits in resolution are set -> FULL ON
## Summary
Arduino ```setup()``` and ```loop()``` run under a Task with a fixed Stack size of 8KB.
Users may want to change this size.
This PR adds this possibility by just adding a line of code, as for example:
``` dart
ESP_LOOP_TASK_STACK_SIZE(16384);
void setup() {
}
void loop() {
}
```
## Impact
None. It adds a new functionality to ESP32 Arduino.
If ```ESP_LOOP_TASK_STACK_SIZE(newSize);``` is not declared/used, it will compile the sketch with the default stack size of 8KB.
## Related links
fix#6010https://github.com/espressif/arduino-esp32/issues/6010#issuecomment-992701658
Thanks @igrr for the suggestion!
HardwareSerial flush() was returning before all data was sent out through serial port.
This is a problem to some RS485 libraries that depend on it to signaling.
This PR solves the issue by forcing it to block flush() until all data is sent.
This PR is refactoring of DAC HAL in order to use IDF instead of current Register manipulation approach.
Edited dacWrite() to use ESP-IDF api.
Added dacDisable() so there is an option to disable dac channel.
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
- 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>
Function analogReadResolution set how many bits will analogRead return.
Find out that this functionality was added back 2017 by @me-no-dev in #161.
Related issues:
#5163
* Fix build compilation due to changes in the HW_TIMER's structs
* Fix compilation warnings and errors with USB
* Update USBCDC.cpp
* Update CMakeLists.txt
* Update HWCDC.cpp
* Implement Thread-Safe I2C based on ESP-IDF API
* Update esp32-hal.h
* use proper types for size and timeout
* Allow disabling of the HAL locks
* Limit frequency settings to prevent Interrupt WDT
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.
Depending on `tud_cdc_tx_complete_cb` can cause in some cases the last packet to not be transmitted until more data is written and flushed. It's a rare case, but if the other end is expecting those last bytes, transmission will hang.
This PR also fixes debug output on CDC
## Summary
Applies the upstream changes here: https://github.com/arduino/ArduinoCore-API/compare/3b88acac8%5E...0d83f1afc3367037dbde5323c2abd0ae1bd2c583
## Impact
Adds new String convenience methods that are now available in the mainline Arduino implementation, simplifying interoperability with C code that uses pointer+length strings rather than 0-termination. Also includes a change to avoid mutating the source string when taking a substring.
## Summary
This PR is a complete reffactoring of UART Serial Hardware and respective HAL in order to use IDF instead of current Register manipulation approach.
It implements Arduino SerialEvent functionality.
Fix#5287Fix#5273Fix#5519Fix#5247Fix#5403Fix#5429Fix#5047Fix#5463Fix#5362Fix#5112Fix#5443
## Impact
It solves many reported issues related to UART.
It was tested and works fine for ESP32, ESP-S2 and ESP32-C3.
Fixes#5493
## Summary
PR #4996 has broken Touch Interrupt functionality by removing a single line of code used to set a Register.
## Impact
This PR fixes issue #5493 by reverting the removal of necessary code as described above.
Thanks @chegewara
I2C Scan was failing because i2c_master_write does not accept size of 0. This change checks and skips that call if no length is provided (usually when scanning)
* 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