Skip to content
Code and Designs for the Design Studio as a State Machine (Sign, Realtime Sign Status + Printer Feeds, and Scheduler)
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

State Machine

Treating the Design Studio as one grand Moore Machine, exposing outputs to users and mentors.


  • Magnetic door-open sensor
  • Mentor control switch
  • Passive infrared (PIR) motion sensor (activity measurement)
  • Ultimaker Printer API
  • Google Sheets (mentor shifts)
  • for current weather


  • Raspberry Pi
    • Physical presence of the machine in the Design Studio
    • Bundles sensory inputs into a JSON and sends them to the public endpoint over a websocket
  • Public Endpoint (
    • Serves websocket requests
    • Manages logic for sign state changes using inputs
    • Notifies all connected clients with outputs (when they change, or on first connection)
    • Updates inputs when a Pi request is received
    • Defaults to serving an empty JSON when the Pi does not respond within a time period
      • Is there a better default?



    • Live Printer Feeds
    • Live Sign Status
    • Current Schedule

    • Sign as an HTTP webpage
    • Displayed on 2 monitors in the Design Studio via the Raspberry Pi
      • Fullscreen Chromium tab in Kiosk Mode
You can’t perform that action at this time.