Commit Graph

934 Commits

Author SHA1 Message Date
Gregg 6de645216c CHANGED default settings for StatusPin and ControlPin
Re-worked code to allow for NO Status LED Pin and NO Control Pin.  If Control Pin is not set explicitly with homeSpan.setControlPin(), there will be no Control Pin.  There is no longer a default since there are too many board variations with S2 and C3 chips now supported.  Same for Status Pin - it will not be defined unless set explicitly with homeSpan.setStatusPin(), with the exception that if LED_BUILTIN is defined (i.e. there is a built-in LED), then the Status LED Pin will default to LED_BUILTIN if not explicitly defined.  MUST UPDATE DOCUMENTATION - THIS CHANGES DEFAULT BEHAVIOR OF HOMESPAN AND MAY REQUIRE UPDATES TO EXISTING SKETCHES
2021-10-05 21:10:24 -05:00
Gregg b95ebcb4fa Added ARDUINO_ESP_VERSION Macro
Will be "1.0.6", "2.0.0", etc.  Can be used as anywhere as a c-string
2021-10-05 20:08:34 -05:00
Gregg 56c09c44aa Updated Blinker again to ensure C3 compatibility
moved gpio_set_direction to start() method so that it is called every time needed in case another part of the program (i.e. DEV_Identify) calls pinMode() and resets the pin to a strict OUTPUT.
2021-10-05 06:32:19 -05:00
Gregg 0fd9424d79 Added Arduino-ESP32 Version Number to initial output 2021-10-04 21:14:16 -05:00
Gregg d82566158a Disabled watchdog timeout messages when running on ESP32-C3 2021-10-04 20:39:32 -05:00
Gregg 641e2ca955 Added check in RFControl to allow for backwards compatibility with Arduino-ESP 1.0.6
To do: Disable watchdog timer in ESP32-C3
2021-10-03 22:01:37 -05:00
Gregg ae1037946a Update Blinker() to fix inherent problem with digitalRead() in ESP32-C3
Pin must be INPUT_OUTPUT for digitalRead to work with ESP32-C3 (the IDF uses a new protocol for the C3).
2021-10-03 21:39:23 -05:00
Gregg 7980273609 Completed update of RFControl for ESP32-S2 and -C3 compatability
Testing completed for RFControl and PWM on all three ESP32 chip types.

To Do: update RFControl documentation to include total number of usable channels per chip, as well as the alternate version of start();
2021-10-03 18:08:07 -05:00
Gregg dc5844b520 Updated RFControl for compatibility with ESP32-S2 and ESP32-C3
Complete re-write of code.
2021-10-03 12:08:33 -05:00
Gregg 82ad33c98f Updated error-check for out-of-range PWM frequency (an ESP32-S2 check)
PWM has now been fully tested and verified with an ESP32 device under Arduino-ESP32 versions 1.0.6 and 2.0.0, and with an ESP32-S2 device under Arduino-ESP32 version 2.0.0.  Tests confirmed using both high (5000 Hz) and low (1 Hz or 5Hz) frequencies to ensure timers are correctly configured.

Next Task:  Update RFControl routines for 2.0.0 and ESP32-S2 compatibility.
2021-09-25 15:58:23 -05:00
Gregg 50bdfd7d37 Added better display of IDF Version 2021-09-25 14:41:20 -05:00
Gregg e581dfbf8b Merge branch 'dev' of https://github.com/HomeSpan/HomeSpan into dev 2021-09-25 14:33:34 -05:00
Gregg 0ea762b4a8 Added backwards compatibility to PWM to operate in 2.0.0 and 1.0.6
Accounts for new *required* elements of the LEDC channel and timer structures to be set in later versions of the IDF.  These elements are not available in earlier versions of the IDF and the program can't be compiled unless ignored.
2021-09-25 14:33:32 -05:00
HomeSpan 5d9fc5ed58
Update Extras.md 2021-09-25 13:42:20 -05:00
HomeSpan d9bcb3426d
Update README.md 2021-09-24 06:20:29 -05:00
Gregg 07da5ac924 Updated SRP code for 2.0.0 compatibility
Arduino-ESP32 has modified the Mbed TLS library so that it uses ESP32 hardware acceleration.  However, there is a 512-byte limit to the size of the variables used in an exponential modulo calculation.  One of the steps in the SRP code used a 768-byte variable, which cannot be handled in version 2.0.0 though it works fine in version 1.0.6.  Solution was to simply reduce the 768-byte variable by modulo N prior to performing the exponential modulo calculation.
2021-09-23 21:12:37 -05:00
Gregg 0dd341faa9 Update HomeSpan.h
eliminates -Wpmf-conversion warnings generated by our checks for override of update(), loop(), and button() methods
2021-09-22 05:31:46 -05:00
Gregg 896418f179 Revert "added version numbers for sodium and mbedtls"
This reverts commit 53b6a7dfc3.
2021-09-21 05:48:12 -05:00
Gregg 5496503afd Added version info for sodium and mbedtls
Also, fixed "bug" in SRP route (did not impact function - just a generated less random numbers than expected).
2021-09-19 22:07:34 -05:00
Gregg 53b6a7dfc3 added version numbers for sodium and mbedtls 2021-09-19 18:23:06 -05:00
Gregg 4da033195a Removing .DS_Store files 2021-09-19 14:04:16 -05:00
Gregg 013622c263 Update .gitignore 2021-09-19 14:01:30 -05:00
Gregg 4d5a7754c7 Update .DS_Store 2021-09-19 13:55:36 -05:00
Gregg 09fec33f50 Update .DS_Store 2021-09-19 13:55:23 -05:00
Gregg 61a87ccc63 Clean up PWM - ready for testing
To do: Test RGB LED Examples with ESP32 and ESP32-S2 boards.

Next:  Re-work Remote Control routines to make compatible with S2 and C3
2021-09-19 13:53:20 -05:00
Gregg fdc3dfb474 Update .DS_Store 2021-09-19 13:40:50 -05:00
Gregg 0ccb1d34a0 More updates to PWM to ensure S2 and C3 compatibility
New IDF parameter in 2.0.0 for LEDC allows PWM signal to be inverted!  Need to ensure flags.output_inverted is set to 0!

Also:  Deleted old PWM class, which was saved for backwards compatibility.  This "breaks" HomeSpan for those using the old PWM class (instead of LedPin).

Also:  Added checks to ensure that frequency is achievable (for S2 and C3, the 14-bit duty resolution is insufficient to allow frequencies slower than 5 Hz - this is  not a practical limit when using LedPin to drive actual LEDs and lights).
2021-09-19 13:39:40 -05:00
HomeSpan 7255a9530f Updating Extras to work through S2 and C3 issues 2021-09-18 16:28:56 -05:00
Gregg 8b33f61464 Update src.ino 2021-09-18 13:59:36 -05:00
Gregg c67336ab57 Updated Blinker logic to support S2 and C3
Needed to set clk_src to APB, else default is XTAL, which is only 40MHz clock!
2021-09-18 06:35:41 -05:00
Gregg 014def4c66 Fixed compiler complaint about pow() function.
AND added 2.0.0 only variable - see LED_USE_APB_CLK.
2021-09-15 20:05:15 -05:00
Gregg 6c9bf39f54 Added PWM diagnostic messages and chip-specific maximum duty resolution 2021-09-14 21:09:58 -05:00
HomeSpan 7469ab8a93
Update Extras.md 2021-09-14 06:17:16 -05:00
Gregg 377e1d00c0 Merge branch 'dev' of https://github.com/HomeSpan/HomeSpan into dev 2021-09-13 06:02:38 -05:00
Gregg 3ea8f956a5 Converted initial level of LedPin from uint8_t to float 2021-09-13 06:02:20 -05:00
HomeSpan aeaca68bca
Update Extras.md 2021-09-13 06:01:31 -05:00
HomeSpan 98a5a895cc Update PwmPin.cpp
Tested new functionality on RGB LED.  Works well with using floating point precision.
2021-09-12 16:19:10 -05:00
HomeSpan 60cb20f132 Completed update to PWM code
Should now work with ESP32-S2 and C3.  Allows for as many LEDs and Servos as there are channels and timers across low and high (esp32 only) modes. Allows LED to be set with floating point precession instead of just uint8.  Allows specification of LED frequency for each LED (1-65535 Hz).  Automatically provides maximum duty resolution for frequency chosen.
2021-09-12 15:17:27 -05:00
HomeSpan 0a0c536b6d Starting work on ServoPin update 2021-09-12 12:31:08 -05:00
HomeSpan a5d31b1ea5 Re-working PWM routines 2021-09-12 09:23:29 -05:00
HomeSpan aa128411c9
Update ServiceList.md 2021-09-08 22:01:36 -05:00
HomeSpan 8d45e20671 Update Utils.h 2021-09-06 21:29:13 -05:00
HomeSpan 6088fb16fe Added logic to Timer code to allow for compiling under S2 and C3
With these changes the code compiles but nothing has been tested yet to see if it actually works under S2 and C3!
2021-09-06 12:35:26 -05:00
HomeSpan edf5522ca0 Addresses compiler warnings in Arduino-ESP32 2.0.0 2021-09-05 20:39:37 -05:00
HomeSpan 28356c327a
Update Reference.md 2021-09-05 09:31:19 -05:00
HomeSpan 70ebb290da
Update Reference.md 2021-09-05 09:30:00 -05:00
HomeSpan 3d6bc0d095
Update Reference.md 2021-09-05 09:29:08 -05:00
Gregg 946819f3d4 updated setValidValues() to return pointer to self
Allows for chaining methods.
2021-09-05 09:14:21 -05:00
Gregg 6a74ce9283 Add setValidValues(int n, ...) method to Characteristic
Allows user to explicitly set the valid values for a Characteristic of type UINT8.  Throws an error if used with any other Characteristic type.
2021-09-05 08:54:34 -05:00
HomeSpan 79a0175dda
Update FAQ.md 2021-08-23 20:13:45 -05:00