The machines of Maelstrom are powered by custom carrier boards that connect the following peripherals (depending on the machine):
- NRF24L01+ radios, either SMD or PTH
- Single-channel I2S amplifiers and speakers
- WS281x LEDs
- I2C DAC for meter output
- I2C EEPROMs for carrier/machine identification and parameter configuration
- I2C ADC for pot readings
- Status lights for RX, TX, heartbeat
- Soft-power button
- I2C Displays: HD44780, SSD1327, SSD130x, GU20x8
to host machines of the following architectures:
- Raspberry Pi (Zero W, 3A, 3B, 4)
- Orange Pi Zero (via custom Pi GPIO adapter that also hosts AVR micro for driving WS281X)
- ESP32 (via custom Pi GPIO PCB)
which may also be directly connected to additional peripherals including:
- 1D/2D barcode scanner
- WiFi probe request sniffer
- BTLE radio scanner
- Cameras (USB and Pi-type)
- HDMI displays
Maelstrom's carrier boards unify these host architectures to a single, constrained pinout, allowing for I2C, I2S, NRF24, WS281x, status LEDs, and a standardized mechanical footprint to be "automatically inherited" for each machine.
The software of Maelstrom is a largely unified codebase that dynamically configures itself in each machine based off of JSON data stored in an EEPROM on the carrier board. In this way, a host can be quickly replaced, should its storage or hardware fail, and it will reconfigure itself without other external input. The main codebase is written in Cython, using my internal artistic framework, "Rad," first created for my artwork, "Road Ahead." (There is a minimal C port used for ESP32.) Rad provides a multiprocess renderer/module environment with a unified message bus and health monitoring, letting me quickly prototype new ideas.
The enclosures and physical machines of Maelstrom are a mix of commercial enclosures, found objects, and 3D printed cases that generally attach to DIN rail.
8-Class: Shares relevant datapoints in a familiar, video-entertainment interface
AM-Class: Speaks data observed about recognized personalities
C-Class: These machines show a color to indicate a recognized personality
FR-Class: Recognizes faces and associates them with Maelstrom-D™ profiles
L-Class: Shows Maelstrom datapoints in several familiar interfaces, including that of the Bird social platform (B-Class) and a Terminal environment
M-Class: Designed for integration specialists, these display recognized Maelstrom datapoints on an LED matrix
T-Class: Shows recently observed facts on a character display
Plus several data entry stations for card readers and joining the Maelstrom_PUBLIC wifi portal.