The gadget spec URL could not be found
Auto-Pause Filament Monitor for 3D Printers

WARNING: This Upgrade May Require Soldering to the Certain Printer Models. See advisory at bottom of page.

3D Printer Filament Monitor

Monitors Filament motion and triggers a Pause Print (P-Stop) to printer firmware for any of the following causes:
  • Filament Empty
  • Total Filament Clog
  • Filament Spool Tangle
Other Features:
  • Connection point for external pause button
  • User-Settable Motion Timeout
  • Ultra-Low Profile
  • Open Source
  • Arduino Programmable (with AVRISP mkII)
The Filament Monitor uses a mechanical 24PPR wheel encoder to detect both forward and reverse filament motion. When filament motion is not detected for an extended (programmable) period, a pause signal is sent to the Printer Motherboard.

This system requires Sailfish firmware. 


Installation Instructions

  1. Install Sailfish Firmware version 7.5 r1129 or higher
  2. Finalize bracket assembly.
    1. Bolt the backplate onto the bottom of the monitor bracket.
    2. Zip-tie hooks on back plate should face backwards 
  3. Connect Bracket(s) to top of bot.
    1. Remove zip-tie and zip-tie holder on mesh bundle on back of bot by removing M6 Bolt.
    2. Orient monitor bracket with lip-hooks forward and slide over the top rear of bot.
    3. For Double Models, the connecting ribbon should be in front of the mesh hose.
    4. Backplate should slide in between mesh bundle and line up with M6 Bolt hole.
    5. Replace M6 Bolt, this fastens the brackets firmly in place
    6. Peel open the mesh and slide the connecting wires down the mesh jacket toward the bottom of the bot.
    7. Zip tie the mesh hose in place again.
  4. Turn printer on Right Side.
  5. Access Mightyboard through bottom of printer by removing M3 Bolts.
  6. Pass Motherboard Hookup Wires (Red Black, Blue) through mesh jacket all the way under the bot. 
  7. Solder the Hookup wires as shown (may require removing motherboard depending on technique used):

     Monitor Connection Mightyboard Direct Wire Connection (R2/2X)

    Rep2/2X Motherboard Soldering

    Box Header Mightyboard Connection (R2/2X) Soldering to Motherboard on Rep2/2X 
  8. Zip the Mesh jacket in place again as it was before
  9. Replace Mightyboard covering.
  10. Power Up the Bot. You should see LED activity on the Filament Monitor.
  11. Pass filament through in the direction of the triangles on the housing (this is for ease of feeding only, filament travel direction is not important.
  12. Navigate to the P-Stop setting in firmware Utilities --> General Settings --> P-Stop Control
  13. Set to "ON"
  14. Feed filament as usual and Start Printing
Thing O Matic and REPLICATOR 1
Follow the instructions above, but connect as follows. 
Recommended to purchase the connectorized kit for ease of connectivity:
 Thing-O-Matic 2.5 Board Thing O Matic 2.4 Board Replicator 1 Board

Marlin RAMPS Boards
Firmware Modification Instructions here 
Special thanks to Ziggy from the Robo3D forums.
Red = 5V
Black = 0V
Blue = Pause Signal Line

Assembly and Installation Videos

Filament Monitor Assembly

Filament Monitor Installation

Usage Instructions

  1. Whenever a new print is started or a paused print is continued, the Filament Monitor must be reset. Press the red "RST" button to do this.
  2. The Monitor will flash indicating the number of seconds it is programmed to timeout and then turn Blue.
  3. Each time a pulse is detected from the encoder, the encoder LED will flash Orange, and the Master LED will flash Green.
  4. After the filament has driven the encoder 1/4 turn, the system is considered "Armed" and can generate a pause if motion ever times out
  5. When the system is armed and motion is detected, the system LED will flash Green and the timer is reset. 
  6. When motion is between pulses or not detected, the system LED remains Yellow and counts time.
  7. When Motion is not detected for the preset number of seconds, the system LED turns Red, the PJ2 output is set low (around 0.5V) and the system is locked.
  8. Rev 4 firmware (on boards shipped after 7/1/14) have the feature of bypassing the monitor buy pressing the SET during runtime.

  The Monitor comes preset to timeout at 8 seconds of "no motion" but can be reprogrammed at any time. This is ideal for users who drive their bot slowly or prints with long travel moves where filament does not move for extended periods. See video in playlist above.
  1. Hold down both the SET and RST buttons.
  2. Release the RST button but continue holding down SET.
  3. The system LED should turn Cyan and will flash twice Yellow for each second of wait time programmed.
  4. Continue holding the SET button until the desired number of seconds have been programmed.
  5. Release the SET button.
  6. The system will flash Red to confirm the number of seconds that are programmed for timeout.
  7. This value is stored in the onboard memory (EEPROM) for future use.

  The Filament Monitor comes with a connection point for any external hardware that the user might wish to connect. This could be any kind of additional protection hardware, filament management, or a simple Mushroom Button.
Simply solder any Normally Open switch to the EXT pins on the Filament monitor. These are connected to 0V and an internally pulled-up (5V) pin on the microcontroller.
When these two pins are connected, the pause will be triggered and conditioned on the existing machine connection.

Design Choices

There were a number of ways to solve this problem. Some which may be more robust, larger, and complex. I wanted to design a system that was as easy to use as possible for the novice user. These were my design constraints:
  • Ease of Use
  • Avoid User Soldering
  • Minimum Necessary Connections
  • Smallest Possible Size
  • Absolute Minimum Component Count
  • Expandable to 2 Encoders
  • Low Cost
  • Pin Accessibility
  • User Programmable Timeout


The Monitor is triggering false pauses during print. Why is this?
There may be two reasons for this. 
1) Usually this is because the tensioner arm is not making a tight grip on the filament. Often this is due to filaments with varying                     diameters. Simply tighten the tensioner bolt on the side of the problem monitor and this 
2) This may also happen if you use a heated chamber at high temperatures. The monitor housing is made of natural PLA. This PLA on         the tensioner arm may warp if it becomes too warm, resulting in a loss of traction on the filament. Recommend re-printing the housing using natural ABS. Files available on the thingiverse page.

Does the Monitor only pay attention during extrusion (i.e. when the extruder stepper is moving)?
No. The system uses a simple timeout. Monitoring the stepper motors or "expected motion" from the motherboard would have increased the complexity of the solution with marginal gains.

Is it possible to blow an output line on my motherboard by doing this upgrade?
If the pins are properly soldered and are not bridging between each other (causing a short circuit) then there is no danger of damage to the board. On the Monitor circuit, the PJ2 line is connected to 5V through a 15k resistor and to the Monitor through a 1.5k resistor. The controlling line on the monitor is normally held high until a filament fault is detected. It then switches to 0V. This causes a voltage divide into the PJ2 line resulting in about .5V on PJ2 at fault condition. PJ2 is never connected directly to either 0V or 5V.

The System LED is Red every time I come back to the machine when a print is finished. Is this normal? Is my print OK?
A: Yes this is totally normal. Since the monitor only cares when filament stops moving, it will naturally trigger when the print finishes successfully. If the print appears unfinished, it is most likely the Monitor triggered a pause due to a filament issue.

If the print finished successfully, simply push the RST button to reset the monitor when beginning a new print.

Why a 4 week lead time?
Some of the components (Specifically the PCBs and Rubber tires) take up to 3 weeks for delivery. I may or may not have them in stock at the time you order. Your product could arrive sooner depending on when components arrive.

The cost of the components on the BOM is lower than you are charging, WHY?
A: I am hand-assembling, programming, and testing each of these devices, some parts may be scrapped in this process. Also I must pay for shipping, accessories, etc and other related costs to distributing these devices myself. In addition, hand assembly of surface-mount components is a slow and physically intensive process. It takes a considerable amount of time to produce each device.
    If the demand for volume ever gets high enough, it may be cost-effective for me to order pre-assembled and distribute professionally. but that would be a future date.


Follow Proper Static Discharge and personal safety precautions when working with your makerbot.
I accept No responsibility whatsoever for any damage to your person or property due to use of the Filament Monitor or related systems. 
No guarantees of functionality or fitness for any particular use of the Filament Monitor. User Accepts All risk.
Aaron Tunell,
Jul 3, 2014, 6:09 PM
Aaron Tunell,
Oct 21, 2014, 7:13 PM
Aaron Tunell,
Jun 13, 2014, 3:00 PM
Aaron Tunell,
Jul 1, 2014, 9:56 PM
Aaron Tunell,
Jul 1, 2014, 10:19 PM
Aaron Tunell,
Jul 1, 2014, 9:58 PM
Aaron Tunell,
Jul 1, 2014, 9:57 PM