In the UK, we’re lucky to have access to a rich supply of transport data. From bus timetables to cycle hire stats, there’s a load of open data just waiting to be used in clever ways. Some of the more interesting data – at least for geeks like me – is contained in the National Rail data feeds. These provide real-time information about trains moving around the country. Every late-running service, every platform change, every cancelled train… it’s all there, in near real-time.
There are already some excellent tools built on top of this data. You may have come across some of these sites:
- RealTimeTrains: essential for anyone who wants to go beyond the standard passenger information displayed at the station.
- Live Departures Info: perfect for an always-on browser display – e.g. on digital signage.
- LED Departure Board: provides a view of upcoming departures or arrivals at a chosen station.
There are even physical displays, like those from UK Departure Boards. These look to be beautifully made and ideal for an office or hallway wall. But they’re not cheap. And that got me thinking…
Why not build my own?
Armed with a Raspberry Pi Zero W and an inexpensive OLED display, I decided to have a go at making my own.
A quick bit of Googling turned up an excellent website by Jonathan Foot, whose DIY departure board guidance gave me exactly what I needed. It walks through how to connect everything up, pull real-time train data, and output it to a screen. There’s even a GitHub repo for the code. Perfect.
Well, almost.
A slightly different display
Jonathan recommends a particular OLED display but I thought it was a bit on the pricey side. In the spirit of experimentation (and budget-conscious tinkering), I opted for a 3.12″ OLED display (256×64, SSD1322, SPI) from AliExpress. I think it’s the same – just from another channel.
This wasn’t entirely straightforward.
The display I received was described as SPI-compatible, but it wasn’t actually configured for SPI out of the box. I sent the first one back. Then I realised they’re all like that – you have to modify the board yourself.
Breaking out the soldering iron
There were no jumpers to move. No handy DIP switch to flick. Instead, I had to convert it from 80xx to 4SPI mode. This involved removing a resistor (R6), then soldering a link between two pads (R5). Not the hardest job in the world, but definitely not plug-and-play either.
This wasn’t ideal. I’m terrible at soldering, and I’d deliberately bought versions of the Raspberry Pi and the display with pluggable headers. But hey, I’d got this far. The worst thing that could happen is that I blew up a £12 display, right?

Once that was done, though – magic! The display came to life with data from my local station, and a rolling list of upcoming arrivals and departures. It’s a surprisingly satisfying thing to see working for the first time, especially knowing what went into making it happen.
What’s next?
All that’s left now is to print a case (or find someone with a 3D printer who owes me a favour). For around £50 in total, I’ve got a configurable, real-time train departure board that wouldn’t look out of place in a study, hallway or even the living room (subject to domestic approval, of course).
It’s been a fun little side project. A mix of software tinkering, a bit of hardware hacking, and that moment of joy when it all works together. And if you’ve ever looked at those expensive display boards and thought, I bet I could make one of those – well, now you know… you probably can.
Featured image: author’s own.