Files
mangavalkandClaude Opus 5.5 0d3e878051 Run ESP_UniClock on the NixieIN12v2 clock
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>
2026-10-25 21:23:10 +01:00

38 lines
1.4 KiB
INI

; ESP_UniClock for the RetroModding NixieIN12v2 (5 V) clock. See README.md in this folder.
;
; The sketch keeps the upstream Arduino IDE layout (ESP32_UniClock2/ with all .ino files), so it
; still opens in the Arduino IDE. Libraries are the versions bundled upstream, unpacked in lib/.
[platformio]
src_dir = ESP32_UniClock2
data_dir = ESP32_UniClock2/data
default_envs = nixie_in12
[env:nixie_in12]
platform = espressif8266
board = esp12e
framework = arduino
; 4 MB flash: 2 MB app slot, 2 MB SPIFFS at 0x200000 (same split as the stock firmware)
board_build.ldscript = eagle.flash.4m2m.ld
board_build.filesystem = spiffs
board_build.flash_mode = dio
board_build.f_cpu = 80000000L
; evaluate #ifdefs when resolving includes: the sketch includes ESP32-only libraries inside #if
lib_ldf_mode = chain+
; CH340C adapter on COM7 without auto-reset: put the clock in flash mode by hand
; (hold GPIO0 to GND, tap RST, release GPIO0) before every upload/uploadfs.
upload_port = COM7
upload_speed = 460800
; "ck" = esptool --before no_reset --after soft_reset (no DTR/RTS toggling)
upload_resetmethod = ck
monitor_port = COM7
monitor_speed = 115200
monitor_filters = esp8266_exception_decoder
; Same firmware, uploaded over WiFi with ArduinoOTA (espota). Add --auth=<OTA_PASSWORD> to
; upload_flags once secrets.h sets one.
[env:nixie_in12_ota]
extends = env:nixie_in12
upload_protocol = espota
upload_port = 10.1.1.97