# Orthus™ Filament Monitor

Dyze Design Orthus Filament Sensor

# Setup and Configuration Overview

  1. Mount the Orthus on your printer

    Use the two provided screws to mount the orthus on your printer. The closer the Orthus is to the extruder, the better it will be. The Orthus should be oriented so that filament is inserted in the direction of the arrow engraved on the acrylic cover.

    Please refer to the “Mounting” section of the present guide for further information.

  2. Connect the Orthus to your motherboard

    Connect the provided connector to your Orthus. Depending on the motherboard you are using, the pins used will vary.

    Refer to the “Wiring” section of the present guide for further information on the pins to use for a specific motherboard.

  3. Configure the firmware

    The firmware needs to be configured so that filament monitoring is made possible and that the right version of firmware is installed. The method to do so varies depending on the firmware you are using.

    Refer to the “Firmware configuration” section of the present guide to find the procedure associated with your firmware.

  4. Configure the slicer

    To activate filament monitoring on your print files, your slicer needs to be configured so that a certain G-code line is called at the beginning of every print.

    Refer to the “Slicer configuration” section of the present guide to find the procedure associated with your firmware.

  5. Protect your prints!

    Your Orthus filament monitor is now installed and ready to use. Whenever a problem will show itself while printing, be it filament blockage, filament break or extruder malfunction, the Orthus will be there to pause the print until the problem is resolved.

# General

# How it works

The Orthus is an extremely precise magnetic filament monitor that outputs a set amount of pulses per millimeter of material running through it.

With this output, it is possible to determine if the extruder is actually pushing the amount of filament that it is supposed to.

The Orthus hence makes it possible to detect if the filament is jammed, cut or even if the extruder is faulty and not outputting what it should be.

# What’s included

Item Quantity
Orthus Filament Monitor (1.75mm or 2.85mm) 1
Cable (1 meter) 1
Mounting hardware (M3 x 30 screw) 2

# What’s required

A compatible 3D printer controller with proper firmware version and configuration
(refer to the “Firmware configuration” section of the present guide).

# Specifications

Specifications Max Typical Min Unit
Input voltage 5.5 5 3.3 V
Input current 30 mA
Input power 150 mW
Output voltage Voltage Input Logical high/low 0 V
Temperature 45 21 0
Mounting thread M3x0.5 mm

# Labels and indicators

  • The LED indicates the Orthus is powered and ready to use.
  • The same flashing LED indicates filament movement.
  • A lit LED indicates a logical high at the output.
  • The numbers below the rotary indicate the possible modes the Orthus can be used in. Each of these modes have different sensibilities. The fourth mode deactivates the output.
    See the table below for the possible modes and their sensibilities.

Measured pulses/mm for a hard filament*:

Rotary switch position 1 Orthus Dip Switch Position 1 2 Orthus Dip Switch Position 2 3 Orthus Dip Switch Position 3 4 Orthus Dip Switch Position 0
1.75mm version pulses/mm 102.7 6.421 0.803 N/A
mm/pulse 0.010 0.156 1.246 N/A
2.85mm version pulses/mm 101.9 6.371 0.796 N/A
mm/pulse 0.010 0.157 1.256 N/A

* Values are for reference only, as they can vary slightly depending on the Othus unit, filament hardness, filament diameter and your setup.

# Mounting

Use the two provided screws to mount the orthus on your printer.

The Orthus can be installed before or after your extruder depending on your printer setup.

Orthus Filament Sensor Mounting

TIP

The closer the Orthus is to the extruder, the more accurate the readings will be.

WARNING

Always respect the filament insertion direction indicated on the Orthus. The Orthus should always be orientated so that the filament is inserted in the direction of the arrow situated on the cover.

WARNING

When extruding flexible filament, always position the Orthus directly next to the extruder. Failure to do so will result in very inaccurate readings and very slow detection delays.

# Wiring

Orthus Filament Sensor Wiring

Cable Color Connection
Black Ground
Blue Signal
Red +5V

# Pins

The easiest pins to use for the Orthus are the followings:

  • Servo pins
  • Endstop pins

Servo pins always have the right pins: 5V, Ground and Signal.

Most endstop pins will have the same 3 pins, and sometimes only Signal and Ground.
If you only have these two, there should be a 5V/3V somewhere else on your main board.

It is also possible to use the following pins:

  • Expansion pins
  • Communication pins

For the use of these pins, some boards are very limited and a deeper understanding is required for connecting the Orthus properly.

For pins location examples, refer to the “Connections examples” of our Sentinel™ support page, since the Sentinel uses the same pins.

# Connection examples

# Duet boards

The signal output of the Orthus should be connected to an endstop connection; normally E0 or E1, but can also be connected to the X, Y or Z endstops.

(See the Duet Wifi pinout below for a red highlight of the specified pins).

Duet boards connection example for Orthus Filament Monitor

# Ramps 1.4

  • Connect the signal output to the D4 SERVOS pins.
  • Connect the power and ground connectors to the 5V and ground pins associated with the D4 pins.
  • Use a jumper to connect the VCC pin to the 5V pin to power the SERVOS pins.

(See the Ramps 1.4 pinout below for a highlight of the specified pins).

Ramps 1.4 boards connection example for Orthus Filament Monitor

# Firmware Configuration

# Marlin Firmware

The Orthus works with Marlin 2.0 and up. You will need to uncomment the following lines of code:

# Configuration.h

#define FILAMENT_RUNOUT_SENSOR
#define FILAMENT_RUNOUT_DISTANCE
#define FILAMENT_MOTION_SENSOR
#define NOZZLE_PARK_FEATURE

The FILAMENT_RUNOUT_DISTANCE needs to be set to the following whole values depending on the position of the dip switch.

Rotary dip switch position 1 Orthus Dip Switch Position 1 2 Orthus Dip Switch Position 2 3 Orthus Dip Switch Position 3 4 Orthus Dip Switch Position 0
FILAMENT_RUNOUT_DISTANCE 1 4 7 N/A

# Runout.h

#define FILAMENT_RUNOUT_SENSOR_DEBUG

# Configuration_adv.h

#define ADVANCED_PAUSE_FEATURE

# pins_XXX.h or pins_YYY.h

Depending on your board you will have to search your board manufacturer pinout diagram to find the code of the pins you will connect the Orthus to.

Ex: for the MKS GEN L V2, the Z-max endstop where we will connect the Orthus is D19.

In the Marlin firmware folder, look for Marlin > src > pins and find the appropriate pins_XXX.h file where XXX is your board name.

If the pins_XXX.h file of your board have #include "pins_YYY.h" at the end of the code where YYY is another board, find and modify pins_YYY.h instead

Ex: for the MKS GEN L V2, the appropriate pins file is located in Marlin > src > pins > ramps > pins_MKS_GEN_L_V2.h. However, pins_MKS_GEN_L_V2.h contains #include "pins_RAMPS.h" so we will look for and modify pins_RAMPS.h instead

In the pins_XXX.h or pins_YYY.h file, search those lines:

#ifndef FIL_RUNOUT_PIN
  #define FIL_RUNOUT_PIN Z
#endif

Replace "Z" by the code of the pins you are using for the Orthus

Ex: for the MKS GEN L V2 and the Z-Max endstop

#define FIL_RUNOUT_PIN 19

Once these changes have been made, flash the firmware.

# RepRap Firmware

The Orthus requires RepRap firmware 2.03 or later running on the Duet.

No changes must be made to the firmware. Only the G Code needs to be modified (see the “Slicer configuration” section of the present guide to find the procedure associated with the RepRap Firmware).

# Klipper Firmware

In printer.cfg file, add a new section [filament_motion_sensor]:

[filament_motion_sensor Orthus]
detection_length: xxx
#   The minimum length of filament pulled through the sensor to trigger a state change on the switch_pin (see table below)
extruder: YourExtruder
#   The name of the extruder section this sensor is associated with (the same name used in your config file).
#   This parameter must be provided.
switch_pin: yyy
pause_on_runout: True
#runout_gcode: YourRunoutGcode
#insert_gcode: YourInsertGcode
#event_delay:
#pause_delay:

The detection length is the minimum length of filament pulled through the sensor to trigger a state change on the switch_pin. It depends on the switch position of the Orthus. This value will need to be tweaked in order to obtain a well calibrated sensing. You can refer to the table below to help you find the best value.

Dip switch position detection_length
Hard filament Soft filament
1 1.4* 2.7*
2 0.8 1.8
3 1.0 2.0

* In theory, the dip switch position “1” is the most sensible, but it is so sensible that vibrations from the printer moving during a print cause false positives on the pulses sent, causing error in the readings. It is recommended to use only in setups where the Orthus is completely immobile (per example, on a bowden setup). In which case, the detection_length value can be lowered.

In klipper, pin definition is the same as the mcu one. So you have to know which microcontroller you’re using to identify the pin connected to the Orthus. See your board's manufacturer documentation to find the appropriate code.

Ex: For the MKS GEN L v2.0 the code for the Y min endstop is PJ1

switch_pin: PJ1

# Slicer Configuration

# Marlin Firmware

  1. Open your slicer and enter your printer settings.

  2. In the Custom Start G-Code window, enter the M412 S1 Dy command (where y is the value of the FILAMENT_RUNOUT_DISTANCE constant you set in the firmware configuration section)

    The filament runout detection will be activated for all of your next prints.

# RepRap Firmware

The filament monitor is configured using the M591 (opens new window) command.

Following is an example of the command:

M591 D0 P7 C3 S1 R70:130 L0.156 E0.625
  • Orthus pulse generating sensor (P7) for extruder drive 0 (D0) is connected to E0 endstop input (C3)
  • Filament monitoring enabled (S1)
  • 70% to 130% tolerance (R70:130)
  • Sensitivity 0.156mm/pulse (L0.156)
  • 0.625mm detection length (E0.625)

A lot of these values will need to be tweaked to obtain a well calibrated system.

The starting values for E and L should be set depending on the dip switch position, the hardness of the filament and the permitted deviation you desire.

# Hard Filaments

Dip switch position (Sensibility) Permitted deviation “R” (%) Detection length “E” (mm) Sensitivity “L” (mm/pulse)
1 (Most sensible*) 50:150 0.6 0.01
85:115 2.3 0.01
2 50:150 0.4 0.156
85:115 2 0.156
3 (Least sensible) 50:150 2.6 1.246
85:115 2.6 1.246

# Soft Filaments

Dip switch position (Sensibility) Permitted deviation “R” (%) Detection length “E” (mm) Sensitivity “L” (mm/pulse)
1 (Most sensible*) 50:150 2.7 0.010
85:115 8.9 0.010
2 50:150 1.2 0.156
85:115 4.7 0.156
3 (Least sensible) 50:150 2.6 1.246
85:115 4.3 1.246

* In theory, the dip switch position “1” is the most sensible, but it is so sensible that vibrations from the printer moving during a print cause false positives on the pulses sent, causing error in the readings. It is recommended to use only in setups where the Orthus is completely immobile (per example, on a bowden setup). In which case, the E value can be lowered.

# Quick Setup

WARNING

Choosing to opt for the “quick setup” will result in an increased amount of false positives and a lower sensitivity as the proposed settings are not calibrated to fit your exact system.

If you do not require an extremely accurate reading of the Orthus, you can use any combination of Dip switch position, “R”, “E” and “L” given in the preceding table.

Following is a table of settings examples (for extruder drive 0 and E0 endstop input):

Filament Objective Dip switch position Recommended M591 Command
Hard Filament Quicker filament presence detection, lower sensitivity for jam detection 2 M591 D0 P7 C3 S1 R50:150 L0.156 E0.4
Slower filament presence detection, higher sensitivity for jam detection 2 M591 D0 P7 C3 S1 R85:115 L0.156 E1.2
Soft Filament Quicker filament presence detection, lower sensitivity for jam detection 2 M591 D0 P7 C3 S1 R50:150 L0.156 E2
Slower filament presence detection, higher sensitivity for jam detection 2 M591 D0 P7 C3 S1 R85:115 L0.156 E4.7

# Accurate Setup

This method requires a calibration of the parameters to fit your extruder. Follow these steps to calibrate the system:

  1. Open your slicer and enter your printer settings. Enter the M591 command with the correct E and L starting parameters (found in the first table of the “RepRap firmware” section) in the “Custom Start G-Code” window. Raa:bb should be set at R0:1000 for the calibration so the calibration print can run its course without being interrupted.

  2. In the “Custom End G-Code” window, enter M591 DX, where “X” is your extruder drive number.

  3. Slice the Orthus_Calibration_Print_1.75mm.stl (opens new window) or the Orthus_Calibration_Print_2.85mm.stl (opens new window) file (depending on your filament size) and print it.

  4. Once the print is finished, the firmware will report the measured mm/rev over the print as well as its variation. The measured mm/rev should be set as your new L parameter value.

  5. The R parameter values should be set to be a fair margin bigger than the reported value of the variation. For example, if the measured variation was 90-110%, it would be safe to input an R value or R75:125 (75-125%).

  6. If the reported variation is larger than you would like, the E parameter value should be doubled.

WARNING

If the E parameter becomes too big and the detection time hence becomes too long, it probably means that your Orthus is situated too far away from the extruder and hysteresis in the filament is causing wrong readings. Install the Orthus closer to the extruder to solve the issue.

  1. Restart steps 1 to 6 with the new E, R and L parameters, until the reported variation is well within the R range. Keep the variation range the closest possible to 100% for more accurate detections of flow reduction. Know however that the system will be more prone to false positives as its sensibility is increased.

  2. Once correct E, L, and R values have been determined, enter the M591 command with the right parameters in the “Custom Start G-Code” window and erase the m591 command in the “Custom End G-Code” window so that all your next prints get protected.

WARNING

It is necessary to recalibrate the system once a change has been made in the system. Recalibration-worthy changes include:

  • Changing the filament used from a flexible one to a hard one or vice versa.
  • Switching the configuration from 1.75mm to 2.85mm filaments or vice versa.
  • Moving the Orthus closer or farther away from the extruder.
  • Changing the dip switch position.

# Troubleshooting

# False positives

In case of a false detection, many options can solve the issue.

  • The most reliable option remains to mount the Orthus filament monitor closer to the extruder to eliminate filament hysteresis. If the Orthus is already as close as it can be to the extruder, the following actions should be able to eliminate the false positives.

  • Double the E value in the M591 command. If doing so brings your detection distance to an unacceptable value, skip to the next solution. (RepRap firmware)

  • Add +- 10 to the R range. For example, if your R parameter was R80:120, bring it to R70:130. Repeat this step if needed until no false positives are detected anymore. Do not bring the lower value below 10. (RepRap firmware)

  • Increase the value of FILAMENT_RUNOUT_DISTANCE. Remember that it must remain a whole number. Enter the M412 S1 Dy command in your slicer where y is the value of the FILAMENT_RUNOUT_DISTANCE constant. (Marlin firmware)

  • Ensure your filament is within the specifications. A filament too small might not be detected while a filament too large might deform internal components.

# Maintenance

# Cleaning your Orthus

Some dust and debris might slip through and accumulate in the Orthus over a long period of time. It is recommended to open up the Orthus and clean it inside out every 5 to 15 kg.

  1. Disconnect the connector to turn the Orthus off.

  2. Unscrew the 2 M3x0.5x10 low profile screws.

  3. Remove the acrylic plate.

  4. Unscrew the M3x0.5x4 low profile hex screw.

  5. Remove the PCB.

  6. Remove the M3x0.5x11 shoulder screw holding the right wheel in place.

  7. Remove the wheel.

  8. Remove the M3x0.5x4 low profile hex screw maintaining the magnet wheel in place.

  9. Remove the magnet wheel.

  10. With a dry cloth or brush, remove any accumulated dust from the wheels and their housings. If necessary, use a compressed air duster to remove the remaining dust.

  11. Use a compressed air duster to blow away any dust on the PCB. Make sure no condensation forms on the PCB. If so, dry it off carefully with a dry cloth.

  12. Reinstall the magnet wheel.

  13. Fasten the M3x0.5x4 low profile hex screw maintaining the magnet wheel in place.

  14. Reinstall the rubber wheel.

  15. Fasten the M3x0.5x11 shoulder screw holding the transparent rubber wheel in place.

  16. Reinstall the PCB.

  17. Fasten the M3x0.5x4 low profile hex screw holding the PCB.

  18. Reinstall the acrylic plate.

  19. Fasten the 2 M3x0.5x10 low profile screws holding the acrylic plate.

  20. Reconnect the connector to turn the Orthus on again.

WARNING

Do not overtighten any part of the assembly. Failure to do so will damage the bearings and/or PCB and/or acrylic plate. A light tightening suffices.

Last Updated: 11/11/2022, 6:32:12 PM