A New Way to Use Dublin Bus Open APIs
Increasing Clarity and User Experience with Dublin Bus Real Time
“Phantom Buses” which disappear from real time displays and may or may not show up are a common problem with Dublin Bus. This real time display offers increased clarity over incoming buses by highlighting where they currently are along the route prior to the selected stop.
Strategy & Planning
User Experience Design
Coding (Processing + Arduino)
This redesigned Dublin Bus real time display shows only the buses that are relevant to the user at their selected stops. The screen displays the stops before their current stop and highlights when buses are close to those stops.
LEDs on the physical map light up to represent when a bus is at a stop along the route. This allows users to track bus progress and plan their time accordingly.
HOW IT WORKS
Arduino & Raspberry Pi
The majority of the real-time display was programmed in processing and ran on a Raspberry Pi. Using the firmata library for arduino, the physical input information was sent directly to the Raspberry Pi to be processed and displayed on the monitor.
Dublin Bus Open APIs
The display functioned by pulling and processing the XML data from the open Dublin Bus Real Time API. Only relevant buses to the user would be shown, along with real-time information for the current stop, the real-time information for all previous stops, and most importantly, the location of each of the buses along the route.
Bus locations were represented both on the monitor and on the physical map through LEDs.
The display was programmed to function for four different bus stops and routes which some classmates used every day.
The display could be switched to view these other routes by turning the dial to their name in the physical interface. Other buttons on the display were on/off, stop selection along their route, and refresh rate.
Due to the time limitations in the project and the nature of Dublin Bus stop numbering, the program doesn’t currently function for every route. However, with more work this could be coded as p5.js and hosted online as an accessible alternative to the current app.
The GUI is also currently very basic; future iterations of this application would include an imporved graphical & physical interfaces.