* Create ledcWrite_demo_ESP32_RGB.ino
adding the public domain example ledcWrite_demo_ESP32.ino to this repo. Added RGB to the name for people searching, added some comments, and renames things to make a bit more sense.
* Update ledcWrite_demo_ESP32_RGB.ino
renamed to ledcWrite_RGB.ino and added a couple more comments based on https://github.com/espressif/arduino-esp32/issues/689
* Rename libraries/ESP32/examples/AnalogOut/ledcWrite_demo_ESP32_RGB/ledcWrite_demo_ESP32_RGB.ino to libraries/ESP32/examples/AnalogOut/ledcWrite_RGB/ledcWrite_RGB.ino
Renamed.
* Addition of a i2cReset method and timeout handling for the case where the i2c hardware FSM (state machine) gets stuck in a busy state.
* Use newly added i2cReset function within the wire library.
* Add example to update ESP32 via SD card
* Delete update.bin from sd upon finishing update
* remove precompiled binary from example
* Check whether update.bin is a file
* Change disconnect function
Current implementation does not disconnect the WiFi. Use of `esp_wifi_disconnect()` does.
* Update WiFiSTA.cpp
put back the clear ssid + password
remove the duplicate `esp_wifi_set_config(WIFI_IF_STA, &conf);`
send() can return a value > 0 but less than size indicating it was able to accept some of the data in buffer. The caller must try again after updating the buffer pointer and size remaining.
* Add files via upload
Calls to writePattern() don't send the desired number of bytes when the pattern size doesn't divide evenly into the hardware FIFO size (e.g. sending 18-bit RGB data, 11 patterns take 63 bytes, so 1/64th of the data is never sent).
* Add files via upload
Remove white space changes.
* Edit comments for clarity
I was a little confused reading what this sketch did the first time so I attempted to edit these for clarity.
* code edits as well
Grammar fixes for some parts of the code as well
Method:
--------
Added a verbose print method for ease.
Test Case:
-----------
Putting ESP32 to sleep will give a different reason on wake than the first
time power up.
* Create hall_effect_esp32.ino
A simple example to access the hall effect sensor in the esp32
* Create hall_effect.ino
* Update hall_effect.ino
Simple sketch to access the internal hall effect detector on the esp32
* Delete hall_effect_esp32.ino
* Create HallSensor.ino
* Update HallSensor.ino
* Update HallSensor.ino
* Delete hall_effect.ino
* Update WiFiAP.cpp
set from code the maximum number of clients to smaller than 4 (in my case i must allow only one client at a time)
* Update WiFiAP.h
* Update WiFiAP.cpp
* Update WiFiAP.cpp
* Create WiFiAP.cpp
* Fix possible infinite loop in the example
* Remove workaround of sockets always return -76
Remove workaround of sockets always return -76 (because it's fixed on IDF now)
Remove delay during handshake (improving stability)
* Remove unusable mbedtls_net of context creation
* Fix bad destructor
* Compatibility with WiFiClient for HTTPClient
* Initial port from ESP8266
Changed SHA1 fingerprint by Root CA verification
Changed log system
* Remove deprecated function
* Support self signed certificates
Fix for https://github.com/espressif/arduino-esp32/issues/265
mbedtls_ssl_conf_authmode was defined before mbedtls_ssl_config_defaults causing several bugs when no CA certificate is defined.
* Implement Arduino's log facility
Replace printf by ESP log handling
* Remove \n from debug messages
log_ doesn't need \n to break line.
Actually WiFiMulti is not working due some functions haven't equal comportment of ESP8266
Replace status == WL_DISCONNECTED => status != WL_CONNECTED
Replace scanComplete() => scanNetworks()
Maybe is more interesting, for keep the maximum compatibility, investigate why WL_DISCONNECTED and scanComplete() doesn't works in this case instead of just replace by this pull request.
* Add CA certificate in example
SHA1 fingerprint is broken now: more info: https://shattered.io
* Best error handling
When occur an error in WiFiClientSecure library just return the error message
and clean the context avoiding crash - fix for https://github.com/espressif/arduino-esp32/issues/211
Translate MbedTLS error codes in messages for best understanding
* Declarate certificates as const
mbedtls_pk_parse_key needs a const unsigned char * certificate. In old implementation the certificate was declarated as char * so first it converts to unsigned and after to const.
When we convert signed to unsigned it may result in a +1 larger output.
Fix issue https://github.com/espressif/arduino-esp32/issues/223
* Rework WiFiClient
Rework WiFiClient to correct error where making a copy of a WiFiClient object resulted in the socket being closed prematurely.
Added loop and select to write to handle/prevent EAGAIN errors.
* Rework WiFiClient to use shared_ptr
Rework changes to utilize shared_ptr rather than manually maintaining reference count.
Revert changes to write
* Incorporate comments from review
Move WiFiClientSocketHandle and fd() into WiFiClient.cpp
The send call may return EAGAIN. This indicates a recoverable error and a retry should be attempted. The current implementation treats this as a fatal error. Further, the current implementation strips the error code, setting it to 0, which prevents the caller from handling it directly.
This change utilizes select to verify the socket is available prior to calling send and will retry on an EAGAIN condition.
WiFi and BlueTooth can now be started and stopped at will.
basic functions added to esp32-hal to start and stop the BT radio
SimpleBLE class added to show the most basic functionality
Example to show how to switch between BT, WiFi or Both
Implement semaphore and mutex to safeguard the ISR.
This is the proper way to handle hardware Interrupts with FreeRTOS. The
more regular approach may/will lead to exceptions
* Added LEDC Fade exmaple
* Renamed LEDCFade example to LEDCSoftwareFade
Added valueMax parameter for ledcAnalogWrite
* Remove usage of LED_BUILTIN constant to solve CI errors
* Refactoring EPS32NVS library to Preferences library
* Renaming all set* functions to put
* Added functions for float, double and bool
* Small redesign of Preferences API
* added type to put* function names
* for (u)int64_t used functions name with *(U)Long64
* added functions for long and unsigned long (same like int a unsigned int)