diff --git a/README.md b/README.md index 081a004..ca84008 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,65 @@ Headless Raspberry Pi Zero W project: - RTC boot restore + NTP sync + RTC write-back - Autostart via systemd +## Current State + +Current implementation status: +- Boot flow restores system time from RTC (`hwclock -s`) before starting logging. +- If WLAN + internet is unavailable, AP fallback starts on `wlan0`: + - SSID: `serial` + - Password: `serialserial` + - AP IP: `192.168.4.1/24` + - DHCP range: `192.168.4.10` to `192.168.4.200` +- Web portal is available on port `80`: + - `/` WiFi scan + connect UI + - `/serial` live serial console (SSE via `/events/serial`) +- ESP32 serial bridge: + - Auto-detects `/dev/ttyUSB*`, `/dev/ttyACM*`, `/dev/serial/by-id/*` + - Reconnects automatically on unplug/replug + - Daily log rollover at midnight with datetime filename +- Once internet is available, NTP sync runs and writes corrected time back to RTC (`hwclock -w`). + +Runtime check commands: +```bash +systemctl status serial-bridge +journalctl -u serial-bridge -f +ip a show wlan0 +ls -l /home/pi/xxx.log /home/pi/xxx_*.log +sudo hwclock -r +``` + +## RTC GPIO Wiring (Raspberry Pi Zero W) + +Use I2C1 pins on the 40-pin header: + +| RTC module pin | Raspberry Pi pin | BCM GPIO | Notes | +|---|---|---|---| +| `VCC` | `Pin 1` | 3V3 | Use 3.3V | +| `GND` | `Pin 6` | GND | Common ground | +| `SDA` | `Pin 3` | GPIO2 (`SDA1`) | I2C data | +| `SCL` | `Pin 5` | GPIO3 (`SCL1`) | I2C clock | + +Minimal pin marker (header top): +```text +Pin 1 (3V3) Pin 2 (5V) +Pin 3 (SDA1) Pin 4 (5V) +Pin 5 (SCL1) Pin 6 (GND) +``` + +Enable I2C + RTC overlay (example DS3231): +```bash +sudo raspi-config nonint do_i2c 0 +echo 'dtoverlay=i2c-rtc,ds3231' | sudo tee -a /boot/firmware/config.txt +sudo reboot +``` + +Verify: +```bash +ls -l /dev/rtc0 +sudo i2cdetect -y 1 +sudo hwclock -r +``` + ## Quick install (on Raspberry Pi) ```bash