Berlin Corona-Ampel

Published on 01 January 2021

This is a project about hardware.

Keeping informed without constant anxiety

What it is

During the pandemic, the government of Berlin used a series of "traffic lights" to communicate the current Coronavirus situation.

I built a simple hardware project to view the current levels, with a focus on giving me control of when to see them, and when not to.


In an age of information overload and distraction, having this information constantly visible increases anxiety. It's updated once a day, so it's not neccesary to have it always visible. Could there be a calmer way to display this that puts the user in control and makes the display itself a calm house guest?

IKEA's Yperlig storage boxes have a lid that can flip closed to reveal or hide their contents. This mechanism provides an effective way to peek at the current levels before hiding the display again.



Knud Möller has published a scraper for the official Berlin data in a simple JSON format.

This includes the current colour of each of the three traffic lights:

  • Basic reproduction number (R-number)
  • Incidence of new infections (per 100,000)
  • ICU occupancy rate (%)


I've used a Wemos D1 Mini (based on the ESP8266 microcontroller) running the Espruino firmware. This allows everything to be programmed in JavaScript, using built-in Wi-Fi support of the ESP8266 for very low cost.

The Wemos connects to my flat's Wi-Fi and every few minutes downloads the latest JSON. It sets the three neopixel RGB LEDs to the current traffic light status via Espruino's neopixel library.

The labels are Letraset on some opaque white polypropylene sheet.

The main issue was that Espruino running on the ESP8266 doesn't work with HTTPS so I'm using a Netlify function to proxy that data over an HTTP connection.

I've also published the Espruino code.