Commit graph

2553 commits

Author SHA1 Message Date
Ikko Eltociear Ashimine
394ebb673b
Fix typo in Updater.cpp (#9511)
arguement -> argument
2024-04-15 12:00:31 +03:00
Lucas Saavedra Vaz
908ca9f022
fix(ftm): Fix compilation warning (#9508) 2024-04-15 11:07:08 +03:00
Me No Dev
49b94644c6
IDF release/v5.1 (#9498)
* fix(ble): rename esp_ble_gap_ext_adv_report_t

* IDF release/v5.1 d23b7a0361
2024-04-12 18:21:27 +03:00
Sly Gryphon
3a0dd1cbe5
fix(dns): Fix IPv6-only network, by checking IPv6 first if you have public address (#9443)
Work around because AF_UNSPEC does not check available addresses when
determining result.

If you have a global scope IPv6 address, then first check for IPv6 DNS result;
if you don't have an IPv6, or there is no IPv6 result, then check IPv4.

This allows IPv6-only networks to connect to dual-stack destinations, as they
will get the IPv6 address (rather than the unusable IPv4).

It also means a dual-stack host to a dual-stack destination will preference
IPv6.

There is no effect if you are on an IPv4-only network, or it is an IPv4-only
destination.
2024-04-12 12:28:12 +03:00
Rodrigo Garcia
04b70bbf6a
Change name to HWCDC_Events.ino (From HWSerial_Events.ino) (#9483)
* Create HWCDC_Events.ino

* Delete libraries/ESP32/examples/HWSerial_Events/.skip.esp32

* Delete libraries/ESP32/examples/HWSerial_Events/.skip.esp32s2

* Delete libraries/ESP32/examples/HWSerial_Events/HWSerial_Events.ino

* Create .skip.esp32

* Create .skip.esp32s2

* Fixes HWCDC_Events.ino

* Fixes CI for S3
2024-04-11 18:19:11 +03:00
Nathan Nau
93448d7f34
Handle large octet-stream (master branch) (#9440)
* Handle large octet-stream

* Add exemple Upload Huge File

* Remove unuse function printDirectory

* Fix upload path

* Simplify and generalize the body parsing.

* Create .skip.esp32h2

---------

Co-authored-by: me-no-dev <hristo@espressif.com>
2024-04-11 14:42:31 +03:00
s-hadinger
f7b4959994
fix(ethernet): move event listener earlier to avoid missing event ETH_CONNECTED (#9481)
* Ethernet: Move event listener earlier

* fix(ethernet): move network listener after initNetif
2024-04-11 01:55:32 +03:00
Me No Dev
8c75c35290
feat(wifi): Add support for NAPT to WIFI AP (#9478)
Allows another interface's connection to be shared to the AP
2024-04-10 15:09:22 +03:00
Rodrigo Garcia
8ceb4bacb2
fix: USB HID Keyboard raw report (#9473) 2024-04-10 11:54:31 +03:00
Sly Gryphon
858b107bdf
feat(dns): Check type of IP addresses and clear DNS cache if they changed (#9476) 2024-04-10 11:53:16 +03:00
Sly Gryphon
17888679c7
fix(tls): Enable IPv6 support in ssl_client connect (#9470)
Similar to NetworkClient, check the family of the passed in address and configure the socket and socket address accordingly, for both IPv6 and IPv4 support.
2024-04-09 16:33:51 +03:00
Jan Procházka
b6ca5a8630
fix(sd): AquireSPI lock in sdcard_uninit (#9468) 2024-04-09 14:01:43 +03:00
Rodrigo Garcia
34f5456f51
fix: HW CDC write() (#9401)
When writing a stream of data to the HW CDC of S3/C3/C6/H2, the SoC looses some bytes and don't send them all.

This fix makes it work fine.
2024-04-08 15:17:40 +03:00
Me No Dev
8dbb7c0c13
feat(net): Add support for esp_netif flags (#9460)
* feat(net): Add support for esp_netif flags

Provides better automation for setting IP/DNS

* feat(net): Show DHCPC status as OFF when static IP is used
2024-04-08 12:10:11 +03:00
Juraj Andrássy
0a47f34b34
docs migration guide: WiFiServer changes (#9458)
Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-04-07 02:01:47 +03:00
Me No Dev
d805b88c32
feat(net): Add support for selecting the default network interface (#9457) 2024-04-05 15:38:11 +03:00
Juraj Andrássy
9b32541c0c
WiFiClient - rename flush() to clear() (breaking) (#9453)
Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-04-05 14:41:26 +03:00
Me No Dev
cff2a18aa2
Add option to specify AP auth mode and cipher (#9454) 2024-04-04 13:27:06 +03:00
Lucas Saavedra Vaz
78820f2236
ESP-NOW: Fix examples and improve logging (#9455) 2024-04-04 13:25:01 +03:00
Lucas Saavedra Vaz
dcc307665f
Fix NetworkManager compilation warning (#9452) 2024-04-04 00:04:43 +03:00
Sly Gryphon
64235dc6d6
Network refactoring - fix some IPv6 DNS issues (#9439)
* fix(dns): Handle IPv6 DNS server address results

If the result from esp_netif_get_dns_info is an IPv6 address, then parse to an IPAddress.

* fix(dns): Use getaddrinfo for DNS, to fix some IPv6 issues

Replace hostbyname with getaddrinfo for better IPv6 support. The API is also
simpler, as it has no callbacks (they are handled internally). Allows
dual-stack networks to connect to IPv6-only destinations.

Still does not work for IPv6-only networks, as IPv6 DNS is not enabled in the
pre-built ESP-IDF libraries.
2024-04-03 18:23:11 +03:00
Jan Procházka
1a80829435
Add ESP-NOW Arduino library (#9395)
* feat(libs): Add ESP-NOW Arduino library

* Update libraries/ESP_NOW/src/ESP32_NOW.cpp

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* Update libraries/ESP_NOW/src/ESP32_NOW.cpp

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* fix(esp-now): Add check if Wifi is started.

* Fix ESP_NOW_Serial

* Add ESP NOW Serial Example

* Add comment

* Skip esp-now example for esp32h2

* Add broadcast address constant

* Change return value to align with other APIs

* Apply suggested changes

* Improve example

* Fix example

* Improve serial example

* Add argument to receive callback to know if a message was broadcasted

* Update libraries/ESP_NOW/src/ESP32_NOW_Serial.cpp

* Simplify example

* Add broadcast example

* Change comments

* Change comment

* Improve broadcast master example

* Remove examples using IDF's API

* Fix example

* Add network example

* Add skip file

* Add LMK back

* Add logs

* Improve example

* Fix example

* Apply @suglider suggestions from code review

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>

* Add documentation

* fix examples links in docs

* Apply @lucasssvaz suggestions to docs

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* Update espnow.rst

* Update examples

* make onSent optional and remove underscores for virtual functions

* Make onRecieve also optional and make constructor protected

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
Co-authored-by: me-no-dev <hristo@espressif.com>
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
2024-04-03 18:18:57 +03:00
Stanimir-Petev
6c6666adc2
ESP32-DevKit-LiPo PSRAM (#9451)
Added PSRAM menu (WROOM/WROVER option)
2024-04-03 10:34:13 +03:00
Juraj Andrássy
205781b921
core Server class back to Arduino Core API version (#9447) 2024-04-02 20:40:37 +03:00
Rodrigo Garcia
e709b9a388
Set Apache license to Update Library (#9446)
* feat: update license

* feat: update license

* feat: update license

* feat: update license

* feat: license

* Update Update.h

* Update HttpsOTAUpdate.h

* Update HttpsOTAUpdate.cpp

* Update HttpsOTAUpdate.cpp

* Update HttpsOTAUpdate.cpp

* Update HttpsOTAUpdate.cpp

* Update HttpsOTAUpdate.cpp

* Update HttpsOTAUpdate.h
2024-04-02 19:35:05 +03:00
Me No Dev
e4a57854a6
Ensure that Static IP configuration for network interfaces is kept until STOP (#9445) 2024-04-02 19:18:46 +03:00
Juraj Andrássy
3c1885f8ef
WiFi.config handle Arduino parameters ordering and auto dns,gw,mask (#9425)
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2024-04-02 18:36:54 +03:00
Ludovic BOUÉ
0523b94e1a
Add board definition for Wemos C3 Pico V1.0.0 - Lolin (#9442)
* Add board definition for Wemos C3 Pico V1.0.0 - Lolin

Add board definition for Wemos C3 Pico V1.0.0 - Lolin
https://www.wemos.cc/en/latest/c3/c3_pico.html

* Add board definition for Wemos C3 Pico V1.0.0 - Lolin (9442)

* feat(esp32): Add board definition for Wemos C3 Pico to boards.txt

* Wemos C3 Pico V1.0.0 - Lolin: Add SS pin to fix CI build

Wemos C3 Pico V1.0.0 - Lolin: Add SS pin to fix CI build

* Update boards.txt
2024-04-02 16:03:16 +03:00
Me No Dev
7bdf67e518
Use WiFi.mode to enable/disable the Network Interfaces (#9436) 2024-04-02 12:26:17 +03:00
Juraj Andrássy
7b29bac625
WiFi BSSID getter fix (#9434)
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2024-03-29 12:28:05 +02:00
powerfeatherdev
baca007957
Define Wire1 pins for ESP32-S3 PowerFeather (#9398) (#9431) 2024-03-29 12:13:26 +02:00
lbernstone
654aeada0a
Matched pin numbers in doco to numbers in variants files (#9422)
* Matched pin numbers in doco to numbers in variants files

* Non-breaking dashes

* Changed SD examples to make REASSIGN_PINS more transparent. Fixes #9082

---------

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2024-03-27 12:07:12 +02:00
Jan Procházka
91c9ecd3c4
[DOC] Add core compatibility guide (#9417)
* docs(): Add core compatibility guide

* Update core_compatibility.rst

* Update core_compatibility.rst

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-03-27 12:06:49 +02:00
Me No Dev
f2026f1e34
3.0.0 Network Refactoring (#8760)
* Create ESP_NetworkInterface class and have Ethernet extending it

* Update CMakeLists.txt

* Split networking from WiFi (H2 can now use Ethernet)

Now all libs have been checked yet. More to do on WiFi side

* Fix build errors

* Guard WiFi classes and fix RMII ETH examples

* Decouple network related libraries from WiFi

* Fix examples and WiFiUpdate

* Guard WiFiProv lib to compile only on WiFi chips

* Add periman string for network and "fix" mdns on the first ETH

* Revert back location of Client/Server/Udp in order to accept some PRs

* Fix periman

* Some fixes from merging master

* Fix web server missing fs.h

* Move Client, Server and Udp out of WiFi

* More fixes

* more fixes

* Fix CMakekLists and rework lib menu dependencies

* Fix CMake issues

* move back WiFiClient to rebase with master

* Update ETH_TLK110.ino

* Move back WiFiClient

* Update progress

* Update WiFiGeneric.cpp

* More fixes

* Switch AP to the new interface

* Cleanup

* Rename AP methods

* Add extra interface info for Printable

* Rename IPv6 getters to clarify that they are returning LinkLocal address

cc @sgryphon

* Rename network classes

cc @sgryphon

* Update NetworkManager.h

* Rename WiFi Server and UDP

* Rename WiFiClient and WiFiClientSecure

* Update CMakeLists.txt

* Update on-push.sh

* Rename Network library

* Remove unnecessary guard

* Get the correct interface MAC address for mDND Workstation service

* Apply suggestions from code review

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-03-26 23:31:23 +02:00
Holger Lembke
e92b4ca62b
Add: make digitalRead() for RGB_BUILTIN work (#9419)
* make digitalRead() for RGB_BUILTIN work

Standard Arduino-Way of blinking a LED can be the shortest with:

void loop() {
  static uint32_t ledticker = 0;
  if (millis() - ledticker > 1000) {
    ledticker = millis();
    digitalWrite(RGB_BUILTIN, !digitalRead(RGB_BUILTIN));
  }
}

Worked with the old LED_BUILTIN on Pin 2, now even works with Pin 48/neopixel.

* Add: make digitalRead() for RGB_BUILTIN work

Standard Arduino-Way of blinking a LED can be the shortest with:

void loop() {
  static uint32_t ledticker = 0;
  if (millis() - ledticker > 1000) {
    ledticker = millis();
    digitalWrite(RGB_BUILTIN, !digitalRead(RGB_BUILTIN));
  }
}

Worked with the old LED_BUILTIN on Pin 2, now even works with Pin 48/neopixel.

(Retry. Didn't sync my local sources. Sorry.)
2024-03-26 17:46:59 +02:00
Rodrigo Garcia
6345350584
Adds a new example: onReceiveExample.ino (#9415)
* feat: onReceiveExample.ino

Adds a new example that uses HardwareSerial::onReceive(). The example demosntrates how to read all the data sent to UART0, considering that the end of transmission is defined by a period of time with UART in idle state.

* fix: onReceiveExample.ino

Fixes typos

* feat: add explanation header

* fix: mutex release

* fix: add Mutex verification

* feat: Mutex error message

* feat: Mutex NULL testing
2024-03-26 12:21:41 +02:00
Lucas Saavedra Vaz
9c0d59f9c4
Add method to set the WiFi radio channel (#9405)
* Add method to set the WiFi radio channel

* Fix Tab

* Add check

* Change name

* Fix description

* Add check

* Add error return

* Improve error message
2024-03-26 12:21:00 +02:00
Daniel Eisterhold
75f7b3303b
Add variant for Waveshare ESP32-S3-Touch-LCD-1.28 (#9386)
* feat(esp32): Add variant for Waveshare ESP32 board

Variant for https://www.waveshare.com/wiki/ESP32-S3-Touch-LCD-1.28

* feat(esp32): Add Waveshare ESP32 board variant to boards.txt

* fix(esp32): Update bootloader address and remove PSRAM flags

* fix(esp32): Updated boards.txt for Waveshare based on suggestions

* fix(esp32): Specify PSRAM type and remove unused board options

---------

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
Co-authored-by: me-no-dev <hristo@espressif.com>
2024-03-26 12:20:39 +02:00
Lucas Saavedra Vaz
f9bb62a91f
Add MacAddress string constructor (#9400)
* Add MacAddress string constructor

* Change implementation
2024-03-22 12:50:23 +02:00
Daniel Eichhorn
29ede4826c
Add board definition for ThingPulse ePulse Feather C6 (#9399)
* feat: Add board definition for ThingPulse ePulse Feather C6

* fix: remove duplicated section for esp32c6
2024-03-21 14:26:52 +02:00
Akeem Hart
896f072f67
Fixing small typo in DiscoverConnect.ino BluetoothSerial example (#9389) 2024-03-20 14:11:59 +02:00
Jan Procházka
fcef7395e8
fix(boards): Fixes needed to pass CI all-boards-test (#9390) 2024-03-20 14:11:35 +02:00
Jan Procházka
c17a688b62
Feature: New Class MacAddress similar to IPAddress (#9304)
* Added new classes MacAddress and MacAddress8

In the same style as class IPAddress.
Based on Apache License.

* Update MacAddress8.h

* Added Printable, constructor and extra operators

Added a few changes to make it closer to IPAddress Class implementation.

* Added construtor and Printable

Makes it closer to IPAddress Class implementation

* Fixes include Printable

* Update MacAddress.cpp

* Update MacAddress.h

* Update MacAddress.cpp

* Added Printable

* Added Printble and some more operators

* Cleanup and bounds checking

Moved implementation details .h->.cpp.  Added bounds checking on index operators.  Added constructor to MacAddress8 to match MacAddress.

* Fixed printTo

Chars must be uppercase to match toString() and pass test

* feat(MAC): Rework API to support both 6+8 bytes MacAddress

* feat(MAC): Remove MacAddress8.h file

* fix(MAC): Remove comment + reorder lines

* Update toString function with single buf and return

* Fix buffer size for toString

---------

Co-authored-by: David McCurley <44048235+mrengineer7777@users.noreply.github.com>
Co-authored-by: David McCurley <mrengineer02@gmail.com>
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-03-18 15:45:00 +02:00
Jason2866
82a634845c
add f_boot (#9380)
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2024-03-18 15:44:32 +02:00
Aaron.Lee
ab322be480
Heltec ESP32 Series boards update (#9367)
* Heltec ESP32 Series boards update

* Update variants/heltec_capsule_sensor_v3/pins_arduino.h

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>

* Update variants/heltec_capsule_sensor_v3/pins_arduino.h

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>

* Update variants/heltec_ht_de01/pins_arduino.h

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>

* Update variants/heltec_wireless_mini_shell/pins_arduino.h

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>

* Update variants/heltec_wireless_mini_shell/pins_arduino.h

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>

* Fix board definition format

* Update Wireless Stick Lite V3 pin defintion

* Update Heltec boards defintion

* Heltec Wireless Shell (V3) format update

* Heltec Capsule Sensor V3 information update

* Heltec E-Ink Driver board menu update

* Heltec E-Ink Driver board menu update

---------

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2024-03-18 14:32:27 +02:00
Rodrigo Garcia
0a26a8c4e3
Fixes HW Serial attaching pins, PHY initialization, crash after end() (#9365)
* fix: HWCDC pin number

Fixes HW Serial pin setup.

The pins were set up to the wrong value and it could not be correctly configured and used.

* fix: PHY initialization

Fixes the PHY initialization.

After detaching the pin and ending the HW Serial, a new begin() wouldn't start the CDC because it lacked the proper PHY initialization.

* fix: crashing end()

Fixes a crash when calling end()

end() treminanates the `tx_ring_buf` but it was not tested for NULL in the ISR and in the cdc0_write_char() causing a crash if those are used. This depends on events and happens eventually.

* reduces number of debug messages

* fix git stash/commit added lines

* fixes usb_phy_ll include and call

* roll back

* solves HWSerial initialization

* fixes C6|H2 issue

issue with `if(Serial)` not working always

* github commit problem

* fixes
2024-03-14 11:51:41 +02:00
Lucas Saavedra Vaz
2479efb10d
Fix documentation build instructions (#9350) 2024-03-11 15:11:13 +02:00
Lucas Saavedra Vaz
dce754b693
Improve USBVendor Example (#9349)
* Add WebUSB console

* Improve Console Page

* Improve example

* Add comments

* Add flush method

---------

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2024-03-11 15:10:46 +02:00
Rodrigo Garcia
b92ad5574a
fix: begin cts rts (#9353)
Begin() may undo a setpins() that has set RTS and/or CTS pin.
This pins are only changed with RTS and CTS.
setpins() can be called after or before begin()
when called before, begin() shall not change those pins.
2024-03-11 15:09:50 +02:00
Lucas Saavedra Vaz
4123e20a2c
Fix indentation (#9343) 2024-03-05 20:56:46 +02:00