The alarm light consists of a 16 pixel NeoPixel ring, controlled by a Teensy LC micro-controller. Additionally, a piezo buzzer can emit beeps.
The device can be controlled by sending commands over the serial port (emulated via USB).
A simple command-line interface semaphore_cli.py
provides a
command line tool to send commands over USB to the device.