/GPSTimeServer

WiFi-enabled GPS fed NTP server based on NodeMCU Amica and Arduino framework

Primary LanguageC++MIT LicenseMIT

GPSTimeServer

ezgif com-gif-maker0

WiFi enabled, GPS fed NTP/RDATE server based on NodeMCU Amica and Arduino framework

Functionalities:

  • Internal RTC synched from GPS satellites constellation (backed by CR2032 battery)
  • Dual voltage powered
  • Backup battery for the whole unit (18650)
  • NTP and RDATE (RFC868) protocols supported
  • Wifi functionality as a client or access point
  • Syslog logging
  • Configuration webpage for WiFi and Syslog, saving to persistent storage (LittleFS)
  • Informative display with a timestamp, satellites in view, accuracy, wifi server, IP address
  • Dual function button, short press switch information on display, long press disables WiFi
  • Status at a glance, with dedicated 5mm LEDs for GPS lock, PPS signal, and WiFi status, as well as visible internal leds for charging and GPS module statuses
    • Yellow led will be on or off to indicate respective WiFi status
    • Green led will blink/pulsate at different rates to indicate a lock is being acquired and stay steady green when locked
    • Red led will blink once a second once lock is acquired, in sync with the PPS signal

Parts list:

  • Amica NodeMCU (ESP8266 / ESP-12)
  • DS3231 RTC
  • Neo-6m V2 or ATGM336H GPS
  • 1.3" SH1106 OLED Display
  • Hi-Link 5V/3W
  • Mini-360 DC-DC Buck converter
  • TP4056 Module
  • 18650 battery holder
  • Red, Green and Yellow LEDs
  • Resistors (150, 100 and 150 Ohms respectivelly for above leds)
  • Switch key and momentary push button
  • 0.5A/230v fuse
  • 10D561K varistor

Check also the Dual Display PIR Enabled branch option: https://github.com/Montecri/GPSTimeServer/tree/Dual-Display


ATTENTION

Several DS3231 modules being sold today contain a hazardous design flaw in which it supplies a voltage to the battery cradle regardless if it came with a rechargeable battery or not. If it came with a CR2032 battery (non-rechargeable) the consequence is that it will swell, explode, or worse. If it came with a LIR2032 battery (rechargeable), the module being fed with 5v will generate an unsafe charging voltage for that battery.

There are workarounds for that so you don't need to toss your module away, the most popular being removing a diode and/or resistor.

There's a long discussion on the thread below about root cause and possible fixes:

https://forum.arduino.cc/t/zs-042-ds3231-rtc-module/268862/33


Libraries:

  • paulstoffregen/Time@^1.6
  • makuna/RTC@^2.3.5
  • mikalhart/TinyGPSPlus@^1.0.3
  • olikraus/U8g2@^2.28.8
  • arcao/Syslog@^2.0.0

Source code based on:

Contributions from:

@mmarkin @sjthespian

sketch_bb-menor power supply - UPDATED_bb-menor

https://www.linkedin.com/pulse/iot-maker-tale-stratum-1-time-server-built-from-scratch-monteiro/