How Long Are You Going to Wait at the Bus Stop? Less than a Minute, with Sun’O’Clock

Simone Lippolis
Simone Lippolis
Published in
5 min readMay 30, 2018

--

Public transport, their organisation, and how to improve their efficiency have always been a very interesting topic to me: in my view, people should not use cars in the city, or better yet, they should not need cars in the city. Shared and smart mobility are a reality, but also a field where innovation is still possible and needed.

Even if you are an avid public transport supporter, and even if you live in a city where public transport works well, you can’t deny that sometimes the life of a commuter isn’t easy. For me, the worst thing is waiting at the bus stop during the winter, because well, I hate the cold!

I usually leave my apartment around 8am, and it takes around 5 minutes to get to the bus stop. What if I was able to find a way to exit my house exactly 6 minutes before the arrival of the bus?

In Milan, where I live, each bus stop has a LED screen where you can read which buses stop there and the maximum wait time for each of them. This data is usually accurate during the day, and it gets updated in real time with GPS chips on each bus. During the night the accuracy of the displays decreases, and sometimes they are off.

… For me, the worst thing is waiting at the bus stop during the winter, because well, I hate the cold!

Nowadays, waiting times at the bus stops are available both in the official ATM App and on Google Maps, but at the time this info was available only at the bus stop or on the trip planner section on the official ATM’s website. There were no public APIs (ATM released some API in 2015, soon before the beginning of the International Expo), thus getting this data required some creativity.

The idea

The first idea was to find a way to grab the waiting time from all the bus stops around my house, and to show them in a mobile App. But then I started thinking about me as a user, and tried to analyze what I do every morning before leaving: a check at the window for current weather, a check at the weather App for the forecast for the rest of the day, shoes, coat, and go. What would improve this experience? Avoiding the need to reach for the phone in the pocket, unlock it, and start an App. My Sun’o’clock needed to be a wall or furniture clock.

The development

I started working on a first prototype, and started showing it around. It featured the current time and weather in a prominent way, the weather forecast for the next 8 hours, and the waiting time at the bus stops around me. I installed everything on a RaspberryPi, and bought a small and cheap rear camera monitor to use it as a screen. I built the interface using web technologies: html, css, knockoutJS. Weather comes from OpenWeatherMap. But what about the bus stop info?

The scraper

As mentioned above, there were no APIs, and this wait time functionality wasn’t even present in the official app. I needed to find a way to grab these info from the only place where they were publicly visible (apart from the stops themselves): the customized google map central feature of the trip planner.

I started analyzing the web traffic of that page, and easily found how the needed info was fetched and showed on the map dialogs. Once identified the endpoint, I tried to understand how to correctly call it, but this was fortunately easy: there was just one parameter, and that was the bus stop ID, a number written on every bus stop. Once I had understood where to get the information, scraping the service and parsing it was easy. And once that info was acquired, assemblying the entire interface was fast.

The product

To create the actual clock, I connected the RaspberryPi to a 4’’ rear view monitor (one of the cheap car spare parts you can buy on Amazon). I configured the Raspberry to automatically start Apache and the bots at startup (the weather scraper that queries OpenWeatherMap APIs is run once an hour, the ATM scraper runs every minute) and to load a full screen chromeless version of Chromium that opens the local web server page. The page itself is built with normal HMTL + CSS using KnockoutJS as MVVC framework.

I was totally unsure about how to transform this collection of cables and components into a product I could be proud to display: fortunately, frog came to my rescue.

If you want to read a more detailed description on the software that powers the clock, please have a look at this other article on Medium.

The event

During the “Salone del Mobile” in Milan, frog usually hosts a party. In 2014, the theme of the event was “Creativity Afterhours” and it was dedicated to showcasing personal projects of Milan’s frog employees. In order to show my clock I needed to make it more “appealing”, so asked frog IDs for help. Malin Grummas, an industrial designer working at the Munich studio, helped me by designing a beautiful concept, and then by creating a simpler prototype.

Two images of the concept design by Malin Grummas.

As of today, the clock is still working. I am considering replacing the cheap monitor with the official 7’’ touchscreen monitor from Element14, and improving the UI in order to be able to exploit its new powerful touch interface.

My name is Simone Lippolis, after spending almost ten years as Design Technologist at frog, I am now with Cisco, as a Data Visualization Expert. This article is part of my online portfolio that you can access at: simonelippolis.com.

--

--

Simone Lippolis
Simone Lippolis

Data Visualization Practicioner in Milan, with a passion for connected objects and photography.