The clock answers like a WLED device (mDNS _wled._tcp, /json/info,
/json/state, realtime UDP on 21324 and DDP on 4048), so SignalRGB can
drive the 4 backlight LEDs, one per tube, LED 0 = left tube. Frames are
shown at most 30 times a second (WLED_MAX_FPS); the normal effect
returns 2.5 s after they stop, and the alarm flash still wins.
Three new settings on the RGB page: enable (also a Home Assistant
switch), stay dark while the tubes are off, and scale by the RGB
brightness. They are stored in EEPROM after prm with their own magic
value, so the update does not factory-reset the clock.
page.js and site.css are now sent with no-cache: browsers kept them
for a year and ran the old script after a web UI update.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- The bit-banged WS2812 update disables interrupts (about 30 us per
pixel), which made the lit tube stay on longer and flash. neoShow()
now only sends when the pixels changed (fixed colour was resent every
second) and waits for the dark gap between tubes; the bit-bang strip
has no headroom pixels. This also fixed digits that seemed to hang.
- 4 WS2812 on this board, one per tube (not 8)
- Saving the firmware URL in the web UI no longer starts an HTTP
update; never update from an empty URL
- Restart once after the first switch from AP mode to WiFi, so
ArduinoOTA and MQTT start on the real network
- Optional web UI password (WEB_USER/WEB_PASSWORD in secrets.h);
/getConfiguration returns the stored WiFi and MQTT passwords
- Cathode protect: random mode now starts at a random tube (the +-1
start digits were swapped and then overwritten)
- Apply the unused gamma table to wheel colours
- LOOP_DIAG (off by default): main-loop stalls in /getCurrentInfos,
which now also reports uptime and free heap
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Upgrade ArduinoHA from 1.3.0 to 2.1.0 and rewrite mqtt.ino for it.
The clock now shows up in Home Assistant (discovery prefix
"homeassistant") with:
- switches Tubes (blank the display, runtime only) and Auto dim
- numbers Day/Night brightness
- light Backlight (on/off, brightness, RGB mapped to the colour wheel)
- select LED effect, button Cathode protect
- sensors Light (LDR) and WiFi signal, plus the upstream sensors when
the clock has them; master-clock subscriptions are kept
Settings changed from HA are saved to EEPROM 3 s after the last change.
Fixes the unbounded memcpy in the MQTT message handler.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adds CLOCK_90 and the nixie595.ino driver: two 74HC595s on hardware
SPI (GPIO13/14, latch GPIO15), multiplexed from an IRAM-only timer1
ISR. Neon dots on P1; P2 is the decimal-point line on this board.
Also:
- NeoPixel on any ESP8266 pin via bit-bang (GPIO12), and take the pin
back after SPI.begin() claimed it as MISO
- ArduinoOTA (USE_ARDUINO_OTA), with an OTA upload env in platformio.ini
- DST: EU end date (last Sunday of October) instead of the first Sunday
of November, and recompute the time from the rules when DST is
toggled instead of shifting it by 1 h
- forward declarations so PlatformIO's .ino conversion compiles
- FIRMWARE_SERVER can be overridden; empty for CLOCK_90
Verified on the clock: tubes, order, dots, LEDs, LDR, NTP time with DST.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Vendored from https://github.com/gpeter62/ESP_UniClock: the sketch
source, the web UI and the libraries the ESP8266 build needs, unpacked
from the bundled zips. Adds a PlatformIO project for the ESP-12. The
source is unchanged; local changes follow as separate commits.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Disassembled the SV1.3 app image and confirmed the shift-register
(HSPI 13/14 + latch 15), WS2812 (12), LDR (A0) and button pins, the
16-bit bit map and the tube order. The stock firmware has no I2C code
and drives a DFPlayer on UART0. Adds the ELF/xref helper tools.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Core/SDK version, flash layout, settings files and the hidden /d
hardware page whose Debug mode enables web OTA at /u.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Notes on the RetroModding IN-12 v2 clock (pinout, programming header,
plan for ESP_UniClock) and the maker's v2 schematic.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>