Skip to content
This repository has been archived by the owner on Jan 29, 2023. It is now read-only.

Commit

Permalink
v1.1.0
Browse files Browse the repository at this point in the history
### Releases v1.1.0

1. Add support to **Arduino AVR ATmega2560** such as **Mega, Mega2560, Mega ADK, etc.**
2. Add support to **Arduino ATmega4809** such as **UNO WiFi Rev2, AVR_NANO_EVERY, etc.**
3. Remove dependency on <functional>.
4. Add OVH.com support.
5. Update and add examples for AVR and megaAVR
6. Add Version string
7. Add Table-of-Contents
  • Loading branch information
khoih-prog authored Apr 4, 2021
1 parent ca96f5b commit 900b177
Show file tree
Hide file tree
Showing 10 changed files with 442 additions and 120 deletions.
24 changes: 12 additions & 12 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
## Contributing to ESP_WiFiManager
## Contributing to DDNS_Generic

### Reporting Bugs

Please report bugs in ESP_WiFiManager if you find them.
Please report bugs in DDNS_Generic if you find them.

However, before reporting a bug please check through the following:

* [Existing Open Issues](https://github.com/khoih-prog/ESP_WiFiManager/issues) - someone might have already encountered this.
* [Existing Open Issues](https://github.com/khoih-prog/DDNS_Generic/issues) - someone might have already encountered this.

If you don't find anything, please [open a new issue](https://github.com/khoih-prog/ESP_WiFiManager/issues/new).
If you don't find anything, please [open a new issue](https://github.com/khoih-prog/DDNS_Generic/issues/new).

### How to submit a bug report

Please ensure to specify the following:

* Arduino IDE version (e.g. 1.8.11) or Platform.io version
* `ESP8266` or `ESP32` Core Version (e.g. ESP8266 core v2.6.3 or ESP32 v1.0.4)
* Arduino IDE version (e.g. 1.8.13) or Platform.io version
* Board Core Version (e.g. Arduino SAMDUE core v1.6.12, ESP8266 core v2.7.4, etc.)
* Contextual information (e.g. what you were trying to achieve)
* Simplest possible steps to reproduce
* Anything that might be relevant in your opinion, such as:
Expand All @@ -26,13 +26,13 @@ Please ensure to specify the following:
### Example

```
Arduino IDE version: 1.8.11
ESP8266 Core Version 2.6.3
OS: Ubuntu 16.04 LTS
Linux Inspiron 4.4.0-170-generic #199-Ubuntu SMP Thu Nov 14 01:45:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Arduino IDE version: 1.8.13
Arduino SAM DUE Core Version 1.6.12
OS: Ubuntu 20.04 LTS
Linux xy-Inspiron-3593 5.4.0-70-generic #78-Ubuntu SMP Fri Mar 19 13:29:52 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Context:
I encountered an endless loop while trying to connect to Local WiFi.
I encountered a crash while trying to use the Timer Interrupt.
Steps to reproduce:
1. ...
Expand All @@ -44,7 +44,7 @@ Steps to reproduce:

Feel free to post feature requests. It's helpful if you can explain exactly why the feature would be useful.

There are usually some outstanding feature requests in the [existing issues list](https://github.com/khoih-prog/ESP_WiFiManager/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement), feel free to add comments to them.
There are usually some outstanding feature requests in the [existing issues list](https://github.com/khoih-prog/DDNS_Generic/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement), feel free to add comments to them.

### Sending Pull Requests

Expand Down
428 changes: 366 additions & 62 deletions README.md

Large diffs are not rendered by default.

16 changes: 8 additions & 8 deletions library.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"name": "DDNS_Generic",
"version": "1.0.1",
"description": "DDNS Update Client for Arduino boards, ported to run on SAM DUE, nRF52, SAMD21/SAMD51, STM32F/L/H/G/WB/MP1, etc. besides ESP8266/ESP32, using WiFi, WiFiNINA, Ethernet W5x00, ENC28J60, LAN8742A",
"keywords": "ddns, update, wifi, ethernet, client, server, noip, duckdns, dyndns, dynu, enom, all-inkl, selfhost.de, dyndns.it, strato, freemyip, afraid.org, communication",
"version": "1.1.0",
"description": "DDNS Update Client for Arduino boards, ported to run on SAM DUE, nRF52, SAMD21/SAMD51, STM32F/L/H/G/WB/MP1, AVR Mega, megaAVR, etc. besides ESP8266/ESP32, using WiFi, WiFiNINA, Ethernet W5x00, ENC28J60, LAN8742A",
"keywords": "ddns, update, wifi, ethernet, client, server, noip, duckdns, dyndns, dynu, enom, all-inkl, selfhost.de, dyndns.it, strato, freemyip, afraid.org, ovh, communication, dynamic-dns",
"authors":
{
"name": "Khoi Hoang",
Expand Down Expand Up @@ -38,31 +38,31 @@
{
"owner": "khoih.prog",
"name": "WiFiNINA_Generic",
"version": ">=1.8.0",
"version": ">=1.8.5",
"platforms": ["*"]
},
{
"owner": "khoih-prog",
"name": "EthernetWebServer",
"version": ">=1.2.0",
"version": ">=1.3.0",
"platforms": ["*"]
},
{
"owner": "khoih-prog",
"name": "EthernetWebServer_STM32",
"version": ">=1.1.0",
"version": ">=1.1.1",
"platforms": ["ststm32", "stm32"]
},
{
"owner": "khoih-prog",
"name": "WiFiWebServer",
"version": ">=1.1.0",
"version": ">=1.1.1",
"platforms": ["*"]
},
{
"owner": "khoih-prog",
"name": "ESP8266_AT_WebServer",
"version": ">=1.1.1",
"version": ">=1.1.2",
"platforms": ["*"]
}
],
Expand Down
4 changes: 2 additions & 2 deletions library.properties
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
name=DDNS_Generic
version=1.0.1
version=1.1.0
author=Ayush Sharma, Khoi Hoang
license=MIT
maintainer=Khoi Hoang <khoih.prog@gmail.com>
sentence=DDNS Update Client Library for SAM DUE, nRF52, SAMD21/SAMD51, STM32F/L/H/G/WB/MP1, etc. besides ESP8266/ESP32, using ESP8266-AT/ESP32-AT WiFi, WiFiNINA, Ethernet W5x00, ENC28J60 or LAN8742A
sentence=DDNS Update Client Library for SAM DUE, nRF52, SAMD21/SAMD51, STM32F/L/H/G/WB/MP1, AVR Mega, megaAVR, etc. besides ESP8266/ESP32, using ESP8266-AT/ESP32-AT WiFi, WiFiNINA, Ethernet W5x00, ENC28J60 or LAN8742A
paragraph=A simple library that implements an automatic DDNS Update Client for SAM DUE, nRF52, SAMD21/SAMD51, STM32F/L/H/G/WB/MP1, etc. besides ESP8266/ESP32, using ESP8266-AT/ESP32-AT WiFi, WiFiNINA, Ethernet W5x00, ENC28J60 or LAN8742A. It is designed to be light-weight and currently supports DuckDNS, No-ip, DynDNS, Dynu, enom, all-inkl, selfhost.de, dyndns.it, strato, freemyip, afraid.org.
category=Communication
url=https://github.com/khoih-prog/DDNS_Generic
Expand Down
28 changes: 14 additions & 14 deletions platformio/platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -36,32 +36,32 @@ upload_speed = 921600
lib_deps =
; PlatformIO 4.x
ArduinoHttpClient@>=0.4.0
Functional-VLPP@>=1.0.1
WiFiNINA_Generic@>=1.8.0
WiFiWebServer@>=1.1.0
EthernetWebServer@>=1.2.0
EthernetWebServer_STM32@>=1.1.0
ESP8266_AT_WebServer@>=1.1.1
Functional-VLPP@>=1.0.2
WiFiNINA_Generic@>=1.8.5
WiFiWebServer@>=1.1.1
EthernetWebServer@>=1.3.0
EthernetWebServer_STM32@>=1.1.1
ESP8266_AT_WebServer@>=1.1.2
Ethernet@>=2.0.0
EthernetLarge@>=2.0.0
Ethernet2@>=1.0.4
Ethernet3@>=1.5.3
Ethernet3@>=1.5.5
EthernetENC@>=2.0.0
UIPEthernet@>=2.0.9
STM32duino LwIP@>=2.1.2
STM32duino STM32Ethernet@>=1.2.0
; PlatformIO 5.x
; arduino-libraries/ArduinoHttpClient@>=0.4.0
; khoih-prog/Functional-Vlpp@>=1.0.1
; khoih-prog/WiFiNINA_Generic@>=1.8.0
; khoih-prog/WiFiWebServer@>=1.1.0
; khoih-prog/EthernetWebServer@>=1.2.0
; khoih-prog/EthernetWebServer_STM32@>=1.1.0
; khoih-prog/ESP8266_AT_WebServer@>=1.1.1
; khoih-prog/Functional-Vlpp@>=1.0.2
; khoih-prog/WiFiNINA_Generic@>=1.8.5
; khoih-prog/WiFiWebServer@>=1.1.1
; khoih-prog/EthernetWebServer@>=1.3.0
; khoih-prog/EthernetWebServer_STM32@>=1.1.1
; khoih-prog/ESP8266_AT_WebServer@>=1.1.2
; PaulStoffregen/Ethernet@>=2.0.0
; PaulStoffregen/EthernetLarge@>=2.0.0
; adafruit/Ethernet2@>=1.0.4
; sstaub/Ethernet3@>=1.5.3
; sstaub/Ethernet3@>=1.5.5
; jandrassy/EthernetENC@>=2.0.0
; UIPEthernet/UIPEthernet@>=2.0.9
; stm32duino/STM32duino LwIP@>=2.1.2
Expand Down
19 changes: 12 additions & 7 deletions src/DDNS_Generic.h
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
/****************************************************************************************************************************
DDNS_Generic.h
For all Generic boards such as ESP8266, ESP32, SAM DUE, SAMD21/SAMD51, nRF52, STM32F/L/H/G/WB/MP1
For all Generic boards such as ESP8266, ESP32, SAM DUE, SAMD21/SAMD51, nRF52, STM32F/L/H/G/WB/MP1, AVR, megaAVR
with WiFiNINA, ESP8266/ESP32 WiFi, ESP8266-AT, W5x00, ENC28J60, built-in Ethernet LAN8742A
DDNS_Generic is a library to update DDNS IP address for DDNS services such as
duckdns, noip, dyndns, dynu, enom, all-inkl, selfhost.de, dyndns.it, strato, freemyip, afraid.org
duckdns, noip, dyndns, dynu, enom, all-inkl, selfhost.de, dyndns.it, strato, freemyip, afraid.org, ovh.com
Based on and modified from
1) EasyDDNS (https://github.com/ayushsharma82/EasyDDNS)
Expand All @@ -14,12 +14,13 @@
Built by Khoi Hoang https://github.com/khoih-prog/DDNS_Generic
Licensed under MIT license
Version: 1.0.1
Version: 1.1.0
Version Modified By Date Comments
------- ----------- ---------- -----------
1.0.0 K Hoang 11/09/2020 Initial coding for Generic boards using many WiFi/Ethernet modules/shields.
1.0.1 K Hoang 28/09/2020 Fix issue with nRF52 and STM32F/L/H/G/WB/MP1 using ESP8266/ESP32-AT
1.1.0 K Hoang 03/04/2021 Add OVH.com support. Remove dependency on <functional>. Add support to AVR Mega and megaAVR.
*****************************************************************************************************************************/

#ifndef DDNS_Generic_H
Expand All @@ -28,6 +29,9 @@
#include "Arduino.h"
#include "DDNS_Generic_Debug.h"

#ifndef DDNS_GENERIC_VERSION
#define DDNS_GENERIC_VERSION "DDNS_Generic v1.1.0"
#endif

#if ( !defined(DDNS_USING_WIFI) || DDNS_USING_WIFI || !DDNS_USING_ETHERNET)
#define DDNS_USING_WIFI true
Expand Down Expand Up @@ -57,8 +61,8 @@
//#include "WiFiNINA_Generic.h"
#include "ArduinoHttpClient.h"

#if ( (WIFI_USE_STM32 || WIFI_USE_NRF528XX) && DDNS_USING_WIFI_AT )
#warning Using HTTP_ResponseParser to fix for ESP8266/ESP62-AT on nRF52/STM32
#if ( (WIFI_USE_STM32 || WIFI_USE_NRF528XX || WIFI_USE_AVR || WIFI_USE_MEGA_AVR) && DDNS_USING_WIFI_AT )
#warning Using HTTP_ResponseParser to fix for ESP8266/ESP62-AT on nRF52/STM32/AVR
#include "HTTP_ResponseParser.h"
#endif
#elif DDNS_USING_ETHERNET
Expand All @@ -72,12 +76,13 @@

#else
// To support lambda function in class
#include <functional>
//#include <functional>

#endif

// Handler to notify user about new public IP
typedef std::function<void(const char* old_ip, const char* new_ip)> DDNSUpdateHandler;
//typedef std::function<void(const char* old_ip, const char* new_ip)> DDNSUpdateHandler;
typedef void (*DDNSUpdateHandler)(const char* old_ip, const char* new_ip);

class DDNSGenericClass
{
Expand Down
7 changes: 4 additions & 3 deletions src/DDNS_Generic_Debug.h
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
/****************************************************************************************************************************
DDNS_Generic_Debug.h
For all Generic boards such as ESP8266, ESP32, SAM DUE, SAMD21/SAMD51, nRF52, STM32F/L/H/G/WB/MP1
For all Generic boards such as ESP8266, ESP32, SAM DUE, SAMD21/SAMD51, nRF52, STM32F/L/H/G/WB/MP1, AVR, megaAVR
with WiFiNINA, ESP8266/ESP32 WiFi, ESP8266-AT, W5x00, ENC28J60, built-in Ethernet LAN8742A
DDNS_Generic is a library to update DDNS IP address for DDNS services such as
duckdns, noip, dyndns, dynu, enom, all-inkl, selfhost.de, dyndns.it, strato, freemyip, afraid.org
duckdns, noip, dyndns, dynu, enom, all-inkl, selfhost.de, dyndns.it, strato, freemyip, afraid.org, ovh.com
Based on and modified from
1) EasyDDNS (https://github.com/ayushsharma82/EasyDDNS)
Expand All @@ -14,12 +14,13 @@
Built by Khoi Hoang https://github.com/khoih-prog/DDNS_Generic
Licensed under MIT license
Version: 1.0.1
Version: 1.1.0
Version Modified By Date Comments
------- ----------- ---------- -----------
1.0.0 K Hoang 11/09/2020 Initial coding for Generic boards using many WiFi/Ethernet modules/shields.
1.0.1 K Hoang 28/09/2020 Fix issue with nRF52 and STM32F/L/H/G/WB/MP1 using ESP8266/ESP32-AT
1.1.0 K Hoang 03/04/2021 Add OVH.com support. Remove dependency on <functional>. Add support to AVR Mega and megaAVR.
*****************************************************************************************************************************/

#ifndef DDNS_Generic_Debug_H
Expand Down
22 changes: 16 additions & 6 deletions src/DDNS_Generic_Impl.h
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
/****************************************************************************************************************************
DDNS_Generic_Impl.h
For all Generic boards such as ESP8266, ESP32, SAM DUE, SAMD21/SAMD51, nRF52, STM32F/L/H/G/WB/MP1
For all Generic boards such as ESP8266, ESP32, SAM DUE, SAMD21/SAMD51, nRF52, STM32F/L/H/G/WB/MP1, AVR, megaAVR
with WiFiNINA, ESP8266/ESP32 WiFi, ESP8266-AT, W5x00, ENC28J60, built-in Ethernet LAN8742A
DDNS_Generic is a library to update DDNS IP address for DDNS services such as
duckdns, noip, dyndns, dynu, enom, all-inkl, selfhost.de, dyndns.it, strato, freemyip, afraid.org
duckdns, noip, dyndns, dynu, enom, all-inkl, selfhost.de, dyndns.it, strato, freemyip, afraid.org, ovh.com
Based on and modified from
1) EasyDDNS (https://github.com/ayushsharma82/EasyDDNS)
Expand All @@ -14,12 +14,13 @@
Built by Khoi Hoang https://github.com/khoih-prog/DDNS_Generic
Licensed under MIT license
Version: 1.0.1
Version: 1.1.0
Version Modified By Date Comments
------- ----------- ---------- -----------
1.0.0 K Hoang 11/09/2020 Initial coding for Generic boards using many WiFi/Ethernet modules/shields.
1.0.1 K Hoang 28/09/2020 Fix issue with nRF52 and STM32F/L/H/G/WB/MP1 using ESP8266/ESP32-AT
1.1.0 K Hoang 03/04/2021 Add OVH.com support. Remove dependency on <functional>. Add support to AVR Mega and megaAVR.
*****************************************************************************************************************************/

#ifndef DDNS_Generic_Impl_H
Expand All @@ -37,7 +38,7 @@ void DDNSGenericClass::client(String ddns_domain, String ddns_username, String d
ddns_p = ddns_password;
}

#if ( (WIFI_USE_STM32 || WIFI_USE_NRF528XX) && DDNS_USING_WIFI_AT )
#if ( (WIFI_USE_STM32 || WIFI_USE_NRF528XX || WIFI_USE_AVR || WIFI_USE_MEGA_AVR) && DDNS_USING_WIFI_AT )
// this method makes a HTTP connection to the server
String DDNSGenericClass::publicIPRequest(Client& client)
{
Expand Down Expand Up @@ -175,7 +176,7 @@ void DDNSGenericClass::update(unsigned long ddns_update_interval, bool use_local

else
{
#if ( (WIFI_USE_STM32 || WIFI_USE_NRF528XX) && DDNS_USING_WIFI_AT )
#if ( (WIFI_USE_STM32 || WIFI_USE_NRF528XX || WIFI_USE_AVR || WIFI_USE_MEGA_AVR) && DDNS_USING_WIFI_AT )
// To fix issue on nRF52 and STM32 using ESP8266/ESP32-AT
// ######## GET PUBLIC IP ######## //
DDNS_LOGDEBUG(F("Calling publicIPRequest"));
Expand Down Expand Up @@ -321,7 +322,16 @@ void DDNSGenericClass::update(unsigned long ddns_update_interval, bool use_local
access_path = "/u/" + ddns_u + "/";

update_url = "http://sync.afraid.org/u/" + ddns_u + "/";
}
}
else if (ddns_choice == "ovh")
{
needAuth = true;

access_url = "www.ovh.com";
access_path = "/nic/update?system=dyndns&hostname=" + ddns_d + "&myip=" + new_ip + "";

update_url = "http://" + ddns_u + ":" + ddns_p + "@www.ovh.com/nic/update?system=dyndns&hostname=" + ddns_d + "&myip=" + new_ip + "";
}
else
{
DDNS_LOGERROR(F("## INPUT CORRECT DDNS SERVICE NAME ##"));
Expand Down
7 changes: 4 additions & 3 deletions src/HTTP_ResponseParser.h
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
/****************************************************************************************************************************
HTTP_ResponseParser.h
For all Generic boards such as ESP8266, ESP32, SAM DUE, SAMD21/SAMD51, nRF52, STM32F/L/H/G/WB/MP1
For all Generic boards such as ESP8266, ESP32, SAM DUE, SAMD21/SAMD51, nRF52, STM32F/L/H/G/WB/MP1, AVR, megaAVR
with WiFiNINA, ESP8266/ESP32 WiFi, ESP8266-AT, W5x00, ENC28J60, built-in Ethernet LAN8742A
DDNS_Generic is a library to update DDNS IP address for DDNS services such as
duckdns, noip, dyndns, dynu, enom, all-inkl, selfhost.de, dyndns.it, strato, freemyip, afraid.org
duckdns, noip, dyndns, dynu, enom, all-inkl, selfhost.de, dyndns.it, strato, freemyip, afraid.org, ovh.com
Based on and modified from
1) EasyDDNS (https://github.com/ayushsharma82/EasyDDNS)
Expand All @@ -14,12 +14,13 @@
Built by Khoi Hoang https://github.com/khoih-prog/DDNS_Generic
Licensed under MIT license
Version: 1.0.1
Version: 1.1.0
Version Modified By Date Comments
------- ----------- ---------- -----------
1.0.0 K Hoang 11/09/2020 Initial coding for Generic boards using many WiFi/Ethernet modules/shields.
1.0.1 K Hoang 28/09/2020 Fix issue with nRF52 and STM32F/L/H/G/WB/MP1 using ESP8266/ESP32-AT
1.1.0 K Hoang 03/04/2021 Add OVH.com support. Remove dependency on <functional>. Add support to AVR Mega and megaAVR.
*****************************************************************************************************************************/

#ifndef HTTP_ResponseParser_h
Expand Down
7 changes: 4 additions & 3 deletions src/HTTP_ResponseParser_Impl.h
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
/****************************************************************************************************************************
HTTP_ResponseParser_Impl.h
For all Generic boards such as ESP8266, ESP32, SAM DUE, SAMD21/SAMD51, nRF52, STM32F/L/H/G/WB/MP1
For all Generic boards such as ESP8266, ESP32, SAM DUE, SAMD21/SAMD51, nRF52, STM32F/L/H/G/WB/MP1, AVR, megaAVR
with WiFiNINA, ESP8266/ESP32 WiFi, ESP8266-AT, W5x00, ENC28J60, built-in Ethernet LAN8742A
DDNS_Generic is a library to update DDNS IP address for DDNS services such as
duckdns, noip, dyndns, dynu, enom, all-inkl, selfhost.de, dyndns.it, strato, freemyip, afraid.org
duckdns, noip, dyndns, dynu, enom, all-inkl, selfhost.de, dyndns.it, strato, freemyip, afraid.org, ovh.com
Based on and modified from
1) EasyDDNS (https://github.com/ayushsharma82/EasyDDNS)
Expand All @@ -14,12 +14,13 @@
Built by Khoi Hoang https://github.com/khoih-prog/DDNS_Generic
Licensed under MIT license
Version: 1.0.1
Version: 1.1.0
Version Modified By Date Comments
------- ----------- ---------- -----------
1.0.0 K Hoang 11/09/2020 Initial coding for Generic boards using many WiFi/Ethernet modules/shields.
1.0.1 K Hoang 28/09/2020 Fix issue with nRF52 and STM32F/L/H/G/WB/MP1 using ESP8266/ESP32-AT
1.1.0 K Hoang 03/04/2021 Add OVH.com support. Remove dependency on <functional>. Add support to AVR Mega and megaAVR.
*****************************************************************************************************************************/

#ifndef HTTP_ResponseParser_Impl_h
Expand Down

0 comments on commit 900b177

Please sign in to comment.