Bus Schedule Display

Small device to show upcoming buses in realtime at a given stop. It runs on an ESP8266, get the data from NextBus and it's web configurable.

Similar projects worth following
The goal of this project is to have a small device that will display in realtime the bus schedule of a given bus stop. It's meant to serve like the apps on a mobile phone that give you the minutes remaining before the next bus arrives. The current hardware isn't very fancy, just off the shelf items put together. I've put more efforts into the software in order to make it really easy to use and configure.


  • Powered via USB so any wall charger will do
  • Color display to differentiate easily different times
  • Configurable via a web page:
    • Bus agency and stop id
    • Shown time interval (hide buses more that X minutes away)
    • Ignored bus lines (Do not show their schedule)
    • Text color depending on the time remaining (Like green when smaller than 10min.)
  • Get's real-time schedules/predictions from NextBus. The same API as the mobile phone apps.
  • Auto wifi configuration (go into hotspot mode when no wifi config)
  • OTA updates


- 1.8 inches (128x160) color SPI display
- ESP8266 (Wemos D1 mini)
- Black plastic box
- Jumper cables


  • 1 × 1.8 Inch Mini Serial SPI TFT Display ST7735S
  • 1 × ESP8266 ESP-12 WeMos D1 Mini
  • 1 × Black plastic box
  • 10 × Dupont cables
  • 1 × USB Micro to USB type A cable

  • Backlight auto off

    Chris07/16/2018 at 01:32 0 comments

    I've added a transistor to control the power of the lcd's backlight. This allows the ESP to turn the backlight off after a certain amount of time. To turn it back on, I also added a push button.

    The two buttons are intended to be used to cycle trough additional information screens and maybe for some configs.

  • Code on GitHub

    Chris04/09/2018 at 02:07 0 comments

    The code is available:

    Suggestions are welcome.

    Still on the todo list

    • OTA: expose file upload form and/or implement auto update
    • Configurable text color
    • Show the predictions  on the web page

    Bonus features I'm thinking about

    • Stream debug log on web page
    • Configure the number of bus predictions and the text size...

  • New UI

    Chris04/04/2018 at 03:20 0 comments

    The new interface has the following new features:

    - When powered-on the IP address is briefly shown so that the user knows where to access the configuration web page.

    - The bus schedule has a larger font and shows the bus route title. Only 3 buses are shown but it's mostly sufficient.

    - Current time at the bottom. It's updated/synced over the network.

  • Initial version

    Chris04/04/2018 at 02:55 0 comments

    What's inside the box

    Nothing fancy here. Just a Wemos D1 mini and an SPI display. Got both from my Chinese friends on Ebay.

    Note that I combined some cables because the display needs two 3.3V connections (Backlight and circuit).  I also combined the ground but you could use only one ground wire.

    On the bottom of the plastic box I drilled holes and cut a square for the display to show.

    A little trick to get the correct measurements: use the plastic screen protector. Just remove it from the screen and stick it on the plastic box. Then align, mark, drill and cut. 

    Assembled components with initial software

    Most of the settings are still hard-coded but the bus predictions are working.

    Every 30 seconds the ESP contacts the NextBus API and parses the result. Then all bus lines are put together, sorted by time and displayed.

    On the todo list:

    - Better Ui

    - Web page to configure:

         - bus agency

         - bus stop id

         - time interval (do not show buses more that X minutes away)

         - bus lines to hide

         - color depending the time remaining

    - Auto wifi configuration (go into hotspot mode when no wifi config)

    - OTA updates

View all 4 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates