Here's what the APC really does in a nutshell:

1. It controls the AC power to your printer by using a TRIAC (MAC12NG).

2. When it turns your printer on, it measures the minimum (baseline) current required to run the printer without heaters or motors. Current measurement is done with an ACS723 from Allegro.

3. It sets an acceptable power level (higher than the baseline) to use as a threshold.

4. Once the printer is running, it looks for that threshold and every time the current goes under the threshold it starts a timer. 

5. When the timer runs out, the TRIAC shuts the printer off.

Notes about control:

  • Both current threshold and time delay are adjustable.
  • There is a secondary shut-down system that is based on an electrical trigger. This can be set up as active high, active low, trigger high, trigger low or static. Most useful if a filament sensor is employed but can also be wired into a limit switch or something similar.

How to digest this project:

  • Schematic is in the files section.
  • Operation manual is in the files section.
  • Arduino code is in the files section.
  • LiquidCrystal library version used is in the files section.
  • Will add gerbers at a later date to the files section - if you need them PM me.

The road forward:

  • The processor to this gizmo is a beloved ESP8266-12S. None of the network features are currently used. 
  • Future implementation of control over network to be written. Thinking MQTT with a splash of JavaScript.
  • SecId is really the ChipId of the ESP8266 in decimal and will be used as the "Identifying feature" between units.
  • The SecId has nothing to do with the actual unit serial number.
  • Four prototypes have been produced and are currently being evaluated in field-test conditions. So far no mishaps.