https://github.com/cdfer/wellington-live-train-map
https://github.com/cdfer/wellington-live-train-map
Last synced: 9 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/cdfer/wellington-live-train-map
- Owner: CDFER
- License: gpl-3.0
- Created: 2025-08-19T03:44:41.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-08-23T05:37:45.000Z (9 months ago)
- Last Synced: 2025-08-24T08:49:42.191Z (9 months ago)
- Language: Jupyter Notebook
- Size: 20.8 MB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Wellington Live Train Map
[](LICENSE)
[](https://kicad.org/)
**You can support my work by buying through my store:** [**https://keastudios.co.nz**](https://keastudios.co.nz)
A physical, real-time LED map of the Wellington train network, powered by an ESP32-C3 microcontroller. Train movements are displayed using addressable RGB LEDs, with live data fetched over Wi-Fi.

## Features
- **Real-time Train Tracking:** Displays the locations of trains on the Wellington network.
- **Addressable LEDs:** WS2812B-compatible RGB LEDs for a vibrant display.
- **Wi-Fi Connectivity:** ESP32-C3's built-in Wi-Fi fetches live train data.
- **Adjustable Brightness** You can use the buttons to adjust the brightness of the LEDs
- **Adaptive Brightness** The circuit board has an ambient light sensor to automatically adjust the brightness of the LEDs
- **Open Source:** Hardware and firmware are open source under GPL-3.0.
## Hardware
It is powered by an ESP32-C3 chip (in particular the -FH4 version with 4MiB of inbuilt flash).
It is using a 2 layer board and a chip so routing is quite tricky (but the cost savings are significant for this large of a circuit board). I really do not want to use an esp32 module due to aesthetics.
I've made a few changes compared to the Auckland version:
- Level Shifter: I'm now using a single channel level shifter for the addressable LED data Line (SN74LV1T34DBV from TI)
- New LDO: I'm trying out a nicer 3.3V LDO (RT9080-33GJ5 from Richtek Tech)
- I've added an I2C Ambient Light Sensor (LTR-303 from Lite-On)
- Using 10uF, 47uF Capacitors everywhere (explained below)
- Not having a CLC filter to the VDD3P3 power pin (I tested removing this and it seems to be unnecessary and removing it enables me to bring the LDO and capacitors closer)
### Bulk Capacitance
Originally for bulk capacitance I used two 1206 100uF 6.3V ceramic capacitors (derate to about 40uF each at 3.3V). This worked fine but with some lower quality USB power supplies the 1206 100uF capacitors had an audible whine at around 18-20khz. I fixed this in future versions by moving to one 100uF 6.3V tantalum for my 3.3V bulk cap and this fixed the whine issues but the tantalum package is a bit fragile (for aesthetics this is a fully exposed PCB) and I have some ethical concerns for tantalum (coltan) mining. For this version I am going back to ceramic bulk caps (3 x 47uF 0805 6.3V that derate to about 20uF at 3.3V) and hoping that the smaller package (0805 vs 1206) will whine at a higher (not audible) frequency.
### Decoupling Capacitors
For the Auckland version I followed the esp32 application schematic for decoupling capacitors (all 0402 and a mix of 10nF, 100nF, 1uF, 10uF) but after reading this [white paper from TI](https://www.ti.com/content/dam/videos/external-videos/en-us/9/3816841626001/6313253251112.mp4/subassets/notes-decoupling_capacitors.pdf) and making a post on reddit discussing it [(A 10uF 0402 X5R is basically always a better decoupling capacitor than 100nF 0402 X7R)](https://www.reddit.com/r/ElectricalEngineering/comments/1ldd9ul/am_i_understanding_this_correct_a_10uf_0402_x5r/) I moved to using a combination of 1uF and 10uF capacitors and I got slightly lower ripple on the the 3.3V rail. For this version I am moving to only using 0402 10uF 6.3V capacitors (derate to 3.3uF at 3.3V and 2uF at 5V)


## PCB Design
- Designed in **KiCad V9.0** using [my JLCPCB KiCad Library](https://github.com/CDFER/jlcpcb-kicad-library)
- **View Online:** [Interactive PCB Layout (Kicanvas)](https://kicanvas.org/?github=https%3A%2F%2Fgithub.com%2FCDFER%2FWellington-Live-Train-Map%2Ftree%2Fmain%2FPCB)
- **Source Files:** `/PCB` directory

## Software / Firmware
The ESP32-C3 firmware is in the process of being moved to a separate LED-Rails-Firmware repo
## Contributing
Contributions are welcome! Open an issue or submit a pull request for improvements, bug fixes, or feature suggestions.
## License
This project is released under the GPL-3.0-or-later license.
© 2025 Chris Dirks