From Hackstrich

LaserBox is a blinky art thing involving lasers and fog, being designed and built as part of Tiny Galleries 2017. It will drink rain water to generate fog, and soak up the sun to generate its power.

Project Status

  • 2017-04-22: Built the FONA 808 shield that will handle telemetry. Can't test this until I have a lipoly battery pack for it though, and nobody in Toronto seems to have these in stock right now.
  • 2017-04-17: Put together a drawing of how all the various laser cut parts will fit onto sheets of acrylic, and split out a couple that had too many parts in one file, which limited panelization efficiency.
  • 2017-04-16: Created a simple configuration subsystem to hold things we'll want to be able to dynamically change at runtime.
  • 2017-04-15: Rewrote the debug subsystem to have a hierarchical menu structure using SerialUI rather than single-byte commands. Completed hardware for RTC and added ability to set/read clock from the debug subsystem.
  • 2017-04-14: First integration test, fog and fan tested together, all seems to work well. Next step will be to overhaul the debug system using the SerialUI library, as the current system is very limited and it's slowing down progress.
  • 2017-04-09: Built fog control circuitry, seems to work in an initial test with a meter.
  • 2017-04-06: Documented all pinouts to make mistakes less likely in the future and make reference easy. Built the fan control circuitry and wrote the fan test, all working. Next step is to build the fogger control circuitry.
  • 2017-04-05: Completed all laser cut part design files and added amount of material needed for each.
  • 2017-04-04: Added current firmware into the github repo. Put together design files for box rails, left vertical plate, right vertical plate, and top plate. Remaining to be done is bottom plate and laser plates, then all the things that I designed wrong or missed.
  • 2017-04-03: Integrated gesture recognition into the main application.
  • 2017-04-02: Implemented importing of Pattern v2 (LBP) files into the pattern editor. This should effectively obsolete Pattern v1 format files, but I'll leave support in the editor until I'm sure the v2 support is stable.
  • 2017-04-01: Tested gesture sensor board (with level shifter), all seems to work. Not yet integrated into LaserBox code at all.
  • 2017-03-31: Fixed second mux board, was a manufacturing error where one side of the LED was bridged to the +5V_LED plane. Completed assembling the second mux board after fixing that, tests OK.
  • 2017-03-28: Started building a second mux board, all working except channel 3 bit 0 which is stuck off. Need to troubleshoot this more next work session.
  • 2017-03-24: Finished the basic Storage and Pattern subsystems to the point where a pattern can be read from the SD card and played back successfully.
  • 2017-03-21: Implemented export of pattern file format v2 from the pattern editor, so now files can be exported to a format that the hardware can interpret.
  • 2017-03-19: Implemented Live Mode in the GUI tool, now you can attach the tool to a running LaserBox and all changes are shown in real-time.
  • 2017-03-18: Built the first MuxBoard and implemented all of the pattern parsing, as well as code to support Live Mode on the Arduino side.
  • 2017-03-15: Wrote a GUI tool to generate pattern files.
  • 2017-03-12: Started putting together firmware, decided on adding an SD card to hold patterns to make the system much more flexible.
  • 2017-03-03: Mux board design sent off for manufacturing, designed laser-cut cardboard plate to hold one plane worth of lasers for test purposes.
  • 2017-02-28: Submission accepted!
  • 2017-01-21: Started putting together electronics design.
  • 2016: Idea and 3D model mostly complete.


  • Box with 6x6 grids of lasers in two axes, and ultrasonic fog generation to make the lasers visible.
  • Gesture input to control the patterns



  • Arduino Mega 2560
    • SparkFun MG2639 Cellular Shield for telemetry
    • Adafruit Datalogger Shield for SD card and RTC
    • Mega Proto Shield with connectors for:
      • Mux boards
      • Liquid sensor
      • Gesture sensor
      • Phototransistors to monitor fog level
  • SparkFun APDS-9960 board for gesture recognition
  • Liquid level sensor to monitor water level for fogger
  • 2x Mux Board
    • One for each axis, located on the plate with the lasers

Resource Collection


Power will be solar, stored in a liion battery pack likely. Power system details to be worked out with Little Dada.


Fogger will need water! Given the spring theme, want this to "drink" rain water to run itself.

  • Probably need to filter it
  • Devices in public need to be prepared to have random things poured into them
    • May want to have a valve that only allows water into the holding tank if the weather forecast calls for rain, or something like that
      • Would be possible since the project will have a cellular backhaul anyways
  • Would be ideal to have a way of measuring how much water was being taken in

Power Budget

  • Sleep
    • Gesture: 1mA
  • Active
    • Gesture: 14mA


I won't be in the same part of the city as the installation likely, so I want to be able to communicate with it remotely to check its status and such.


Alerts will happen as soon as an error condition is detected.

  • Low water
  • Fogger failure


Reports will be sent out on a regular basis, maybe every 24h or something like that.

  • Minutes active in the reporting period
  • Usage counts of various gestures
  • Hourmeters for fogger and each laser
  • Current water level
  • Current battery charge
  • Solar charge minutes in the reporting period
  • Any resource collection activities that took place

Remote Configuration

Not sure yet, but likely will need some as the project comes along.