* Added Serial as RS485 interface demo
* Added more detail to initial comment
* Switched to UART_MODE definitions from uart_types.h in order to accomodate some versions of Arduino core
* Update libraries/ESP32/examples/Serial/RS485_Echo_Demo/RS485_Echo_Demo.ino
Co-authored-by: Lucas Saavedra Vaz <lucassvaz@yahoo.com.br>
* Update libraries/ESP32/examples/Serial/RS485_Echo_Demo/RS485_Echo_Demo.ino
Co-authored-by: Lucas Saavedra Vaz <lucassvaz@yahoo.com.br>
* Update libraries/ESP32/examples/Serial/RS485_Echo_Demo/RS485_Echo_Demo.ino
Co-authored-by: Lucas Saavedra Vaz <lucassvaz@yahoo.com.br>
* Removed HardwareSerial.h include. Switched RTS pin to GPIO 4 for broader compatability.
* using 115200 for UART0 - console
---------
Co-authored-by: Lucas Saavedra Vaz <lucassvaz@yahoo.com.br>
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
* DNSServer: switch to AsyncUDP instead of WiFiUDP
AsyncUDP offers event driven approch for handling udp dns req's
WiFiUDP hooks to loop() for packet processing and making useless malloc's each run
* DNSServer code refactoring
get rid of intermediate mem buffers and extra data copies,
most of the data could be referenced or copied from the source packet
- removed _buffer member
- replaced DNSQuestion.QName from uint8_t[] to char*
added sanity checks for mem bounds
optimize label/packet length calculations
other code cleanup
* DNSServer drop dynamically allocated member structs
DNSHeader and DNSQuestion structs could be created on stack
no need to keep it as obj members
* DNSServer: labels min length checks, simplified labels parser
* DNSServer use default settings for catch-all setup
- default constructor and start() method simply runs a catch-all DNS setup
- avoid string comparison for domain reqs in catch-all mode
- use IPaddress class for _resolvedIP (looking for IPv6 support in future)
* CaptivePortal example refactored
- use webserver instead of simple tcp setver
- use redirects to allows CaptivePortal detection pop-ups in modern systems
* DNSServer status getters added
add isUp() method - returns 'true' if server is up and UDP socket is listening for UDP req's
add isCaptive() method - returns 'true' if server runs in catch-all (captive portal mode)
some doxygen comments added
start() method now keeps existing IP address if any
---------
Co-authored-by: Lucas Saavedra Vaz <lucas.vaz@espressif.com>
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
* feat(ipaddress): add support for ipv6 type, following arduinocore api
* feat(ipaddress): align with latest arduinocore api
---------
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
* Removed virtual + moved socketOptions ot read/write
* Removed no needed code + edit
* removed Client::getTimeout
* removed setTimeout from WifiClient - read/write timeouts in constructor now
* Changed seconds to miliseconds in other classes relaed + examples
* Applied same changes for WifiClientSecure
* Added 0 init values to constructor
* Seconds are not rounded now
* removed +500 for previous rounding
+ unnecessary comments removed.
* fix rebased code in WifiClientSecure
* Fix rebased code
* Fix rebase code
* Create WiFiScanAsync.ino
* Create .skip.esp32h2
* Create README.md
* Update README.md - adds C6
* Update wifi.rst with new example
* avoid timeout with Async Mode
---------
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
dns_gethostbyname, as used in hostByName, is required to run in lwIP's TCP/IP
context. This can be verified by enabling LWIP_CHECK_THREAD_SAFETY in the
sdkconfig.
Calling dns_gethostbyname from the Arduino task can trigger race conditions
in lwIP or lower layers. One possibility is a corruption of IDF's Ethernet
buffers, causing an unstoppable flood of "insufficient TX buffer size" errors,
effectively severing all Ethernet connectivity.
This patch makes sure to call dns_gethostbyname from lwIP's TCP/IP context.
* Compile error if CONFIG_FREERTOS_HZ != 1000
* add a check at the CMake level, per feedback
* fix a punctuation glitch
* Remove `_Static_assert` per feedback
* add documentation on threading issues with WiFi.onEvent()
* more comments
* thin out comments, add docs
* Update WiFiProv.ino merge conflict issue fixed
* Added the CLK type and MAC from eFuse to Ethernet begin
* Fixed the order and arguments on the Ethernet begin function
---------
Co-authored-by: Pedro Minatel <pedro.minatel@espressif.com>
Co-authored-by: Pedro Minatel <pminatel@gmail.com>
* uppercase heltec board names
* debug commit - will be reverted
* debug commit - will be reverted
* debug commit - will be reverted
* debug commit - will be reverted
* revert debug commits
* Added USBMIDI support to libraries/USB
* Added MIDI examples to libraries/USB
* Added missing newline at end of file to MidiController.ino
* Added USBMIDI.cpp to CMake file
* Fix narrowing conversion warning in USBMIDI.cpp
* Fix incomplete initializers warning in USBMIDI.cpp
* Apply suggestions from code review
Co-authored-by: Lucas Saavedra Vaz <lucassvaz@yahoo.com.br>
* add skip files for C6+H2
* remove already patched workaroud for bug
* move #define to top of file
---------
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
Co-authored-by: Lucas Saavedra Vaz <lucas.vaz@espressif.com>
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
Co-authored-by: Lucas Saavedra Vaz <lucassvaz@yahoo.com.br>
1. Like a real keyboard, the USB interface descriptor will have an interface
subclass of boot and an interface protocol of keyboard. This will cause
some PC BIOS to send a SET PROTOCOL BOOT request to the device.
2. When the device sends reports to the host, if the host requested boot
protocol, don't send a report ID because boot protocol does not use report
IDs.
3. To work with some simple PC BIOS:
a. Use endpoint address of 1 for input and output.
b. Use separate reports for the shift key. These extra reports can be
disabled by calling USBHIDKeyboard::setShiftKeyReports(false).
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
* Update BLERemoteCharacteristic.cpp
Fix kernel panic issue when trying to release BLEClient when the target device have a ble descriptor.
* Update BLERemoteCharacteristic.cpp
Co-authored-by: Lucas Saavedra Vaz <lucassvaz@yahoo.com.br>
---------
Co-authored-by: Lucas Saavedra Vaz <lucas.vaz@espressif.com>
Co-authored-by: Lucas Saavedra Vaz <lucassvaz@yahoo.com.br>
Turns out that disabling the periman APIs from remap has a negligible
effect on the source: the core is already excluded from remapping, as
are most of the libraries. It's also expected to be a private API not
exposed by default.
This patch removes it from both esp32-hal.h and io_pin_remap.h,
adjusting the relevant libraries.
* Modified 'BLEAdvertising.h' & 'BLEAdvertising.cpp'
Added three methods for removing service UUID from BLEAdvertised
* Update BLEAdvertising.cpp
Changed 'i' to 'index'
---------
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
* esp32-hal-bt.c free Bluetooth LE memory if CONFIG_BTDM_CONTROLLER_MODE_BR_EDR_ONLY is set
BLE memory can be released if bluetooth-classic - only is requested
* tStart( add error output
* ble mem_release only for esp32
* disable BLE with BT_MODE define
* BluetoothSerial add begin()+disableBLE; add memrelease
* btStart with BT_MODE parameter
* beautification
* Update BluetoothSerial.cpp fix wrong merges
---------
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
* [pin_remap 1/3] platform: define ARDUINO_CORE_BUILD when building core files
* [pin_remap 2/3] core,libs: add pin remap hooks
* platform: remove previous build options if file is missing
"touch" would create the file if not present, but not delete its
contents if a previous run left the file in the build dir.
* platform: make debug_custom.json file customizable by board
* platform: fix default debug prefix
"debug.toolchain.prefix" must end with a dash, since only the tool name is
appended to this string.
The reason this is not a major issue is that the "debug_custom.json" file
(copied in the sketch directory when debugging is enabled) forces its own
prefix. And to make things more interesting, the "toolchainPrefix" entry
in that file should _not_ end with a dash.
* [pin_remap 3/3]: add Arduino Nano ESP32 board
* fix: periman: include it by default, add include guard
* fix: io_pin_remap: adjust for new perimap APIs
* fix: libraries: manually handled pin remapping files
Previously all libraries invoked either high-level APIs (transparently
remapped, like the user sketch) or low-level ESP-IDF calls (where the
remap to GPIO numbers had to be added manually).
Since 3.x, some of these are mixed (for example, periman* APIs are
remapped, while soc* are not). This must be handled by disabling the
automatic API remapping and making sure all calls use GPIO numbers.
* feat: show remapped pins in chip debug reports
---------
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
* Example sketch prints MAC for different interfaces
Interfaces described in documenation: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/misc_system_api.html#mac-address
* Update README.md to include 'MacAddress'
* Add files via upload
* Delete libraries/ESP32/examples/MacAddress/GetMacAddress.ino
* Delete libraries/ESP32/examples/MacAddress/GetMacAddress/GetMacAddress.ino
* Delete libraries/ESP32/examples/MacAddress/GetMacAddress/MacAddress directory
* Add files via upload
* Add files via upload
* Adds necessary MAC header file
* Reverting - moving to the sketch
* Adds include with esp_mac_type_t values
---------
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
* Example for IDF component registry
* Added readme
* updated readme
* remove idf dependency
* add empty lines on file end
* idf_component.yml version change
* Updated readme for local development
---------
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
* Update RMT initialization code
- Commented out setting interrupt priority for both TX and RX configurations in the RMT initialization code.
* checks IDF version within RMT interrupt priority
---------
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>