summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--extmod/ntptime.py (renamed from ports/esp8266/modules/ntptime.py)17
-rw-r--r--ports/esp32/boards/manifest.py2
-rw-r--r--ports/esp8266/boards/GENERIC_512K/manifest.py1
-rw-r--r--ports/esp8266/boards/manifest.py1
-rw-r--r--ports/rp2/boards/PICO_W/manifest.py1
5 files changed, 16 insertions, 6 deletions
diff --git a/ports/esp8266/modules/ntptime.py b/extmod/ntptime.py
index dd07e46f1..05d7e9717 100644
--- a/ports/esp8266/modules/ntptime.py
+++ b/extmod/ntptime.py
@@ -1,3 +1,5 @@
+import utime
+
try:
import usocket as socket
except:
@@ -7,9 +9,6 @@ try:
except:
import struct
-# (date(2000, 1, 1) - date(1900, 1, 1)).days * 24*60*60
-NTP_DELTA = 3155673600
-
# The NTP host can be configured at runtime by doing: ntptime.host = 'myhost.org'
host = "pool.ntp.org"
@@ -26,6 +25,17 @@ def time():
finally:
s.close()
val = struct.unpack("!I", msg[40:44])[0]
+
+ EPOCH_YEAR = utime.gmtime(0)[0]
+ if EPOCH_YEAR == 2000:
+ # (date(2000, 1, 1) - date(1900, 1, 1)).days * 24*60*60
+ NTP_DELTA = 3155673600
+ elif EPOCH_YEAR == 1970:
+ # (date(1970, 1, 1) - date(1900, 1, 1)).days * 24*60*60
+ NTP_DELTA = 2208988800
+ else:
+ raise Exception("Unsupported epoch: {}".format(EPOCH_YEAR))
+
return val - NTP_DELTA
@@ -33,7 +43,6 @@ def time():
def settime():
t = time()
import machine
- import utime
tm = utime.gmtime(t)
machine.RTC().datetime((tm[0], tm[1], tm[2], tm[6] + 1, tm[3], tm[4], tm[5], 0))
diff --git a/ports/esp32/boards/manifest.py b/ports/esp32/boards/manifest.py
index 1dc1481a4..f0ed38b51 100644
--- a/ports/esp32/boards/manifest.py
+++ b/ports/esp32/boards/manifest.py
@@ -1,6 +1,6 @@
freeze("$(PORT_DIR)/modules")
freeze("$(MPY_DIR)/tools", ("upip.py", "upip_utarfile.py"))
-freeze("$(MPY_DIR)/ports/esp8266/modules", "ntptime.py")
+freeze("$(MPY_DIR)/extmod", "ntptime.py")
freeze("$(MPY_DIR)/drivers/dht", "dht.py")
freeze("$(MPY_DIR)/drivers/onewire")
include("$(MPY_DIR)/extmod/uasyncio/manifest.py")
diff --git a/ports/esp8266/boards/GENERIC_512K/manifest.py b/ports/esp8266/boards/GENERIC_512K/manifest.py
index ee148c808..e43d94843 100644
--- a/ports/esp8266/boards/GENERIC_512K/manifest.py
+++ b/ports/esp8266/boards/GENERIC_512K/manifest.py
@@ -1,5 +1,4 @@
freeze("$(BOARD_DIR)", "_boot.py", opt=3)
-freeze("$(PORT_DIR)/modules", ("apa102.py", "ntptime.py", "port_diag.py"))
freeze("$(MPY_DIR)/drivers/dht", "dht.py")
freeze("$(MPY_DIR)/drivers/onewire")
include("$(MPY_DIR)/extmod/webrepl/manifest.py")
diff --git a/ports/esp8266/boards/manifest.py b/ports/esp8266/boards/manifest.py
index 598572d62..c5809717e 100644
--- a/ports/esp8266/boards/manifest.py
+++ b/ports/esp8266/boards/manifest.py
@@ -1,4 +1,5 @@
freeze("$(PORT_DIR)/modules")
+freeze("$(MPY_DIR)/extmod", "ntptime.py")
freeze("$(MPY_DIR)/tools", ("upip.py", "upip_utarfile.py"))
freeze("$(MPY_DIR)/drivers/dht", "dht.py")
freeze("$(MPY_DIR)/drivers/onewire")
diff --git a/ports/rp2/boards/PICO_W/manifest.py b/ports/rp2/boards/PICO_W/manifest.py
index 1953d5cbd..eb748da48 100644
--- a/ports/rp2/boards/PICO_W/manifest.py
+++ b/ports/rp2/boards/PICO_W/manifest.py
@@ -2,6 +2,7 @@ include("../manifest.py")
freeze("$(MPY_DIR)/tools", "upip.py")
freeze("$(MPY_DIR)/tools", "upip_utarfile.py")
+freeze("$(MPY_DIR)/extmod", "ntptime.py")
if os.path.isdir(convert_path("$(MPY_LIB_DIR)")):
freeze("$(MPY_LIB_DIR)/python-ecosys/urequests", "urequests.py")