Skip to content

Releases: yamanote1138/z-duino

v2.2.0: Add Yamanote E235 train favicon

31 Mar 06:43

Choose a tag to compare

Full favicon set depicting the front of a Yamanote line E235 train.

What's new

  • Hand-crafted SVG favicon — green train body, dark windshield, grey Z badge, headlights
  • All standard favicon sizes: SVG, ICO (16+32), PNG (16/32/180/192/512)
  • Apple touch icon for iOS home screen
  • Web app manifest for Android/PWA with Yamanote green theme
  • Total favicon set: ~36KB — well within LittleFS budget

v2.1.0: Party Mode

20 Mar 08:17

Choose a tag to compare

What's New

  • Party Mode — New button in the footer that cycles the status LED through random colours at varying intervals, giving the appearance of bopping along to music. Because every model railway deserves a disco.
  • Clicking Party Mode keeps the throttle visible (no view switch)
  • Clicking again returns the LED to normal status display

v2.0.0 — Nuxt UI + TypeScript

16 Mar 17:42

Choose a tag to compare

What's New

Complete frontend rewrite — the webapp has been migrated from Bootstrap 5 / vanilla JS / Options API to a modern stack:

  • Nuxt UI — component library built on Tailwind CSS v4
  • TypeScript — throughout the entire frontend
  • Vue 3 Composition API<script setup> single-file components
  • Proper Vite project structure — composables, components, type safety

Frontend Architecture

  • useTrainController.ts — singleton composable with all state, WebSocket logic, and ramping
  • 6 Vue SFCs: SpeedController, LedTestPanel, DebugModal, DirectionInvert, TrainHeader, TrainFooter
  • Icons via @iconify-json/mdi (replaces Font Awesome)

Documentation

  • Updated all docs (README, CONTRIBUTING, CLAUDE.md) for the new architecture
  • Added concrete macOS setup instructions with Homebrew, arduino-cli, and expected install paths
  • Documented full WebSocket protocol including invert, led, and led_auto commands
  • Added RGB status LED to hardware parts list and wiring section

No Firmware Changes

The ESP8266 firmware is functionally unchanged — this release is purely a frontend and documentation update. The WebSocket protocol is fully backward-compatible.

Full Changelog: v1.1.0...v2.0.0

v1.1.0 - Emergency Stop Visual Feedback

15 Mar 01:37

Choose a tag to compare

What's New

Emergency Stop Visual Feedback

  • Status LED now blinks magenta 4 times when the emergency stop button is clicked
  • Provides clear visual confirmation that the emergency stop has been triggered
  • LED automatically returns to its previous state after the blink sequence completes

Technical Details

  • Blink sequence: 150ms on, 150ms off, 4 repetitions (1.2s total)
  • Magenta color: RGB(1000, 0, 1000)
  • Non-blocking implementation in StatusLED update loop

v1.0.1

08 Mar 07:25

Choose a tag to compare

Documentation

  • Add Fritzing wiring diagram image to README
  • Update corrected Fritzing source file (.fzz)

v1.0.0 — First Working Release

08 Mar 06:17

Choose a tag to compare

The Nerdery Express is open for business.

What's New

  • It works. Webapp served from the ESP8266, train controlled from any browser at http://ztrain.local
  • LittleFS fix — corrected the mklittlefs image size (253 blocks × 8192 = 2,072,576 bytes). The previous value (252 blocks) caused a silent reformat on every boot, destroying all packed files. See docs/LITTLEFS.md for the full story.
  • Configurable MAX_PWM — top speed is now tuneable via arduino_secrets.h (default: 500 out of 1000, roughly half voltage to the track — plenty for Z-scale)
  • Railroad name — configurable display name shown in the throttle UI header and browser tab, sent via WebSocket status messages
  • Build script improvements — dependency checks, correct LittleFS parameters, better error handling

Hardware

  • Wemos D1 Mini (ESP8266)
  • TB6612FNG H-bridge motor driver
  • 12V DC power supply
  • Z-scale track + locomotive

Quick Start

cp firmware/z-duino/arduino_secrets.h.example firmware/z-duino/arduino_secrets.h
# Edit with your WiFi credentials
cd frontend && npm install && cd ..
./build.sh   # Select option 7

Then open http://ztrain.local in any browser.