Malte's Arduino-Powered Info Display — Python Client and MAPID/CP (Control Program) on an Arduino
Go to file
Malte Bublitz 953534cce8
Web-UI: Load .env via phpdotenv
2023-11-09 12:43:54 +01:00
MAPID-CP MAPID/CP: Fixed parameter type of default handler and removed unnecessary header include 2023-10-31 17:57:07 +01:00
fifo-webui Web-UI: Load .env via phpdotenv 2023-11-09 12:43:54 +01:00
.env Write PID to a file 2023-11-08 19:59:03 +01:00
.gitignore Added .gitignore 2023-10-15 11:22:11 +02:00 Added some links 2023-11-08 19:59:23 +01:00 Write PID to a file 2023-11-08 19:59:03 +01:00 library 2023-10-15 18:01:09 +02:00 Docstrings for 2023-10-26 15:32:53 +02:00 Fixed Terminal test of STDIN 2023-10-31 17:57:41 +01:00
requirements.txt library 2023-10-15 18:01:09 +02:00

MAPID Malte's Arduino-Powered Info Display

Info display powered by two parts:

  1. Command line OS running on Arduino (MAPID/CP)
  2. Python pyserial script controlling the display over a serial connection


  • Arduino libraries
  • Python libraries
    • pyserial
    • python-dotenv


MAPID is configured using a dotenv file. Currently you have to set three options:

Serial device file. /dev/ttyUSB\* on Linux, /dev/cu.usbserial-* on macOS.
Speed (in Baud) of the serial connection. 9600 is the default value of the Arduino Sketch.
File name for the FIFO. Note that systemd uses a private /tmp for services, so the Web-UI cannot access these files, and you have to use a different location.

An example file for GNU/Linux:

# Serial device

# Serial baud rate

# FIFO filename



An Arduino sketch containing the command line os MAPID/CP (CP=Control Program). It supports some commands to control a LCD and a LED (there are even a few more non-relevant ones):

  • Turn the LED on/off: ON/OFF
  • Turn the display on/off: LCDON/LCDOFF
  • Select a line for output: LINE i
  • Display some text: ECHO Foo bar
  • Clear the display: CLS

A Python library used by the other scripts

Displays a fake bomb countdown like in one of those action movies. Written as a first test for Pyserial communication with MAPID/CP.

A Python script that provides a FIFO file to pass commands to MAPID/CP. Each line read from that file is directly passed over a serial connection.


PHP based Web interface for supporting all commands of MAPID/CP (except for those without a real purpose, that only return some information relevant for interactive serial connections).

Use the LED and display to show a notification, the purpose of the whole MAPID project.