Skip to content
IEMI Labs
Build log
Pilot design rev AFree trials · Austin area

MachineState

Know when your machines stop. Without wiring a thing.

Clip it onto the stack light, stick the controller to the machine with its magnets, plug it into USB. It texts you when a machine has been idle for 20 minutes and sends every machine’s run hours at 6 pm.

Target $150 per machine + $19 a month · not for sale yet

MachineState installed: three black lamp clips strapped to a red, amber and green stack light on a machine, cables running to a small black controller on the machine's front panel
Render of the actual CAD. Prototype parts are 3D-printed; photos follow after the first build.
  • Installed on a machine: a clip on each tier, the controller on the side panel. Green = running.

    Installed on a machine: a clip on each tier, the controller on the side panel. Green = running.

  • Lamp clip close-up: the sensor sits in a black hood pressed against the lens; a silicone strap holds it.

    Lamp clip close-up: the sensor sits in a black hood pressed against the lens; a silicone strap holds it.

  • Exploded: clips off the tower, controller lid off the magnet back cover.

    Exploded: clips off the tower, controller lid off the magnet back cover.

  • What ships for one machine: controller, back cover with magnets, three clips, straps, cable and a UL-listed USB adapter.

    What ships for one machine: controller, back cover with magnets, three clips, straps, cable and a UL-listed USB adapter.

How it works

Read the light, decide on the device, text a person

  1. 01

    Read

    Light sensors in black hoods read every lamp 50 times a second. No wiring into the machine.

  2. 02

    Decide

    The controller learns each lamp’s on and off level and decides on, off or flashing every second.

  3. 03

    Send

    It sends the lamp states over Wi-Fi (or our 4G router) with TLS: on every change and every 30 s.

  4. 04

    Tell

    Our server applies your shift hours: idle text after 20 min, fault text after 5 min of red, 6 pm report.

Real CAD

Turn it, explode it, change the lamp

The clips and controller are the exact printable parts from our code-first CAD, on a 60 mm three-tier tower.

Loading the CAD…

Real CAD · drag to rotate · scroll to zoomReal CAD · swipe sideways

The machine shows:

MachineState reports running. Run time counts toward today’s report.

What it reads

Stack-light towers

Pilot

Patlite, Werma, Banner, Schneider, Eaton/Edwards and generic towers of 40, 50, 60 and 70 mm. One clip per tier.

Haas pendant beacon

Pilot, calibrating

Haas mills and lathes use one beacon: solid green = running, flashing green = paused, flashing red = alarm. A colour-sensor cap reads it.

Manual mills and lathes

Planned

No light at all: a small vibration sensor held on the spindle head by a magnet shows when it is cutting.

The colour meaning is set per machine: some shops light amber while a cycle runs.

Text message · MachineState

Haas VF-2 has been idle for 20 min.

Mazak QT-250: red alarm light for 5 min.

Haas VF-2 is running again after 34 min.

Shop A today: 41h 30m machine run time.
Haas VF-2: ran 5h 10m (55%), idle 3h 50m, longest stop 72 min at 10:05 AM
Mazak QT-250: ran 7h 40m (82%), idle 1h 20m
Reply STOP to opt out.

Software

A text, not another dashboard

For the trial there is no app to learn. The rules run on our server and are covered by automated tests.

  • Shift-aware. Alerts only inside your shift hours; overnight shifts work.
  • One text per stop. Idle after 20 min, red alarm after 5 min, sensor offline after 10 min, and a “running again” note only if we alerted.
  • 6 pm report. Run hours, idle hours, utilisation and the longest stop per machine, worst first.
  • Per machine. Thresholds, who gets the text, and the colour meaning (a Haas preset included).
  • Private by design. Each device has its own login and can publish only its own data; everyone who gets texts opts in, and STOP works.

Hardware

Pilot parts and where to buy

One machine node, from retail stores. Prices checked 23 Oct 2026, before shipping and tax. About $49 per machine at retail; the production board is planned at about half that.

PartQtyPriceBuy from
M5Stack AtomS3 Lite (ESP32-S3) controller1$8.00DigiKey
Adafruit ALS-PT19 light sensor (#2748)4$2.25Adafruit
Silicone ribbon cable, 1 m (#3892)4$1.95Adafruit
Female/female jumpers (#1950)1$1.95Adafruit
Rare-earth magnets (#9)2$2.25Adafruit
UL-listed 5 V 1 A USB power supply (#501)1$5.95Adafruit
USB-A to USB-C cable, 1 m (#4474)1$4.95Adafruit
USB extension, 3 m (#993)1$6.95Adafruit
Black PETG or ASA filament (prints all clips and housings)shared$24.29 / kgPrinted Solid
ADXL345 accelerometer unit (manual machines)option$3.95M5Stack
GL.iNet Puli 4G router (if shop Wi-Fi is weak)per shop$129.00GL.iNet

Downloads

Print it, flash it, run it

Black ASA (or PETG), 0.2 mm layers, 4 walls, no supports. Clips print flat with the pocket up; the shell prints front face down.

Specifications

Pilot design, rev A

SensingUp to 3 tower lamps + room-light reference, or one RGBW beacon sensor; 50 Hz; steady vs flashing
DecisionsOn the device, every second; per-lamp learned thresholds with hysteresis
AlertsSMS or WhatsApp: idle after 20 min, red alarm after 5 min, sensor offline after 10 min (all adjustable, shift hours only)
ReportEvery evening per machine: run hours, idle hours, utilisation, longest stop
ConnectionWi-Fi 2.4 GHz, outbound TLS only; or our 4G router so nothing touches your network
PowerUSB 5 V from a UL-listed adapter; about 0.5 W
InstallStrap-on clips, magnet-mounted controller, no tools, no connection to the machine control
Controller size32 × 32 × 22 mm (pilot)
ClipsBlack ASA or PETG; 120° saddle; 40/50/60/70 mm; 10 mm silicone strap
Pilot controllerM5Stack AtomS3 Lite (ESP32-S3), rated 0–40 °C
Production controllerCustom board on ESP32-C3-MINI-1 (FCC ID 2AC7Z-ESPC3MINI1), −40 to 85 °C

Where it stands

  • All 9 printed parts generate as closed, manifold solids from code
  • Alert server: 11 unit tests and an end-to-end test with a real MQTT broker pass
  • Firmware written, not yet compiled
  • Parts not yet printed or tested on a real machine
  • FCC Part 15B test before any unit is sold

Promises we will keep

  • Never touches your machine. It only reads light; no wiring, no network link to the control.
  • Warranty for as long as you subscribe (at least 12 months), replacement shipped in 2 business days, 60-day money back.
  • Security updates for at least 5 years.
  • Not a safety device. It must never be used for alarms that protect people.

Follow the build