Skip to content

AD5X

AD5X

  1. Key Features
  2. File Preparation in Orca
  3. Color Selection (COLOR)
  4. Print Menu (PRINT)
  5. Manual Spool Selection
  6. Waste Filament Configuration

  7. Add custom filament types

  8. Add custom colors
  9. Fixing Trash Bin and Filament Cutting Knife Operation

  10. IFS commands

  11. IFS Firmware Recovery

Plugins

  • bambufy - Bambu Studio compatibility, better prime towers, accurate estimates, waste reduction
  • nopoop - Maximum waste reduction by ninjamida
  • lessWaste - форк bambufy

1. Key Features

Differences from AD5M:

  • No Entware support
  • Always use FAST_CLOSE_DIALOGS (fast closing) instead of CLOSE_DIALOGS (slow closing).
  • The NEW_SAVE_CONFIG macro does not work.
  • To enable the camera, use CAMERA_ON VIDEO=video3 or CAMERA_ON VIDEO=video0 or CAMERA_ON VIDEO=video99.
  • Klipper may crash. Solution: 'Process Profile' -> 'Other' -> 'Output G-code' -> 'Exclude Models', uncheck.

2. How to Prepare a File in Orca

Send Files via "Octo/Klipper" for Printing

You must remove unused spools from the list in Orca.

Example: The printer has 4 spools (№1, №2, №3, №4). Only spools №1 and №3 are needed for printing.

  • In the file, they will be named T0 (first color) and T1 (second color).
  • In the menu, you’ll need to select:
    • T0 → spool №1
    • T1 → spool №3

3. How to Use the Color Selection Menu (Macro COLOR)

image

image

image

color

  • Extruder: 1 (PETG/Orange) – This means the printer is currently loaded with orange PETG filament from spool №1.
  • IFS: True – The automatic filament feeding system is active.

Now select the spool you want to work with (e.g., spool 2):

image

screenshot

You can perform four actions:

  1. Change the color of the spool.
  2. Change the material type (e.g., from PLA to PETG).
  3. Load this filament into the printer.
  4. Unload filament from the printer.

How to change color:

  1. Click "Change Color".
  2. Select a color from the list. This ensures the printer and native screen understand your selection. image

screenshot

  1. After selection, you’ll return to the menu, and the spool’s color should update. image

screenshot

If the color doesn’t change: Close the window with the "X" button and restart the COLOR macro. Sometimes the screen doesn’t refresh immediately.

How to change material type:

  1. Click "Change Type".
  2. Select a material type from the list. image

screenshot

If the type doesn’t change: Close the window with the "X" button and restart the COLOR macro. Sometimes the screen doesn’t refresh immediately.

Tip: If multiple spools are assigned the same color and material type, the printer will automatically switch to the next spool when the current one runs out. This is called "infinite spool mode".


4. Print Menu (Macro PRINT)

This window opens automatically when you start printing. image

screenshot

How to interpret the display:

  • Cube.gcode – The name of the file being printed.
  • T0 – The first color in the file. Printed using spool №4 (orange PLA).
  • T1 – The second color. Printed using spool №3 (black PLA).
  • T2 – The third color. Printed using spool №2 (green PLA).
  • T3 – The fourth color. Also printed using spool №2 (green PLA).

To change the spool for a color during printing:

  • Simply click the target T (e.g., T1) and select another spool from the list. image

screenshot

To prevent the color selection dialog from appearing at the start of a print, use the global parameter SILENT:

  • 0 – show dialog (default)
  • 1 – do not show dialog, use previously set colors
  • 2 – do not show dialog, do not use IFS
SAVE_ZMOD_DATA SILENT=1

5. How to Manually Tell the Printer Which Spool Is Loaded

Sometimes you manually change the spool, but the printer doesn’t recognize it and displays outdated information.

To fix this, use a dedicated command.

Type this phrase in the console:

SET_EXTRUDER_SLOT SLOT=1

What this means:

  • SET_EXTRUDER_SLOT – Command telling the printer: "Remember this spool!"
  • SLOT=1 – The spool number you just loaded. You can change this number!

Examples:

  • If you loaded filament from spool №3: SET_EXTRUDER_SLOT SLOT=3
  • If from spool №2: SET_EXTRUDER_SLOT SLOT=2

After this command, the printer will know which spool is active and won’t mix up colors.


6. How to Configure Waste Filament During Filament Change

These settings help reduce plastic waste when switching spools. To adjust them, first disable the printer’s native screen using the DISPLAY_OFF macro.

In screen-off mode, these sensors are enabled:

  • Head Switch Sensor – Detects filament presence in the extruder
  • Ifs Motion Sensor – Monitors filament movement in IFS

To disable automatic filament insertion into the extruder, use the global parameter AUTOINSERT:

SAVE_ZMOD_DATA AUTOINSERT=0

To disable dumping of filament into the trash when printing, use the USE_TRASH_ON_PRINT parameter.

SAVE_ZMOD_DATA USE_TRASH_ON_PRINT=0

To unload the filament after printing is complete, use the REMOVE_FILAMENT parameter.

SAVE_ZMOD_DATA REMOVE_FILAMENT=1

To prevent the color selection dialog from appearing at the start of a print, use the global parameter SILENT:

  • 0 – show dialog (default)
  • 1 – do not show dialog, use previously set colors
  • 2 – do not show dialog, do not use IFS
SAVE_ZMOD_DATA SILENT=1

How to find these settings:

  1. Open the "Configuration" tab.
  2. Navigate to the mod_data folder.
  3. Open the filament.json file.

File Location

In this file, each material type (PLA, ABS, PETG, etc.) has a list of values. Here’s what they mean:


Basic Parameters (Most Frequently Adjusted):

For these settings to work, you need to disable the printer's native display using the DISPLAY_OFF macro.

  1. temp — Nozzle temperature for filament change. Default value depends on material type.
  2. filament_drop_length (Purge Length)

    • In simple terms: How many millimeters of filament the printer will purge into the waste bin to clean the nozzle from the previous color.
      • Tip: Increase this value if colors mix during spool changes. Decrease it to reduce waste.
  3. filament_drop_length_add (Additional Purge)

    • In simple terms: Extra purge length when switching material types (e.g., PLA to PETG), not just colors.
      • Why it’s needed: Different materials don’t mix well, so deeper nozzle cleaning is required.
  4. nozzle_cleaning_length — The length (in mm) of filament pulled out of the extruder when cleaning the nozzle when the spool is no longer in use. Default: 60 mm.

    • If you have a newer 4-in-1 module, set this value to 70 or higher.

Advanced Parameters (Do Not Adjust If Unsure of the Result):

For these settings to work, you need to disable the printer's native display using the DISPLAY_OFF macro.

  • filament_tube_length — Total PTFE tube length from IFS module to extruder. Useful for non-standard tubes. Default: 1000 mm.
  • filament_unload_before_cutting — Filament lift distance before cutting. Default: 0 mm.
  • filament_unload_after_cutting — Filament lift distance after cutting, before moving to the waste bin. Default: 5 mm.
  • filament_unload_after_drop — Retraction distance after purging to prevent oozing. Default: 3 mm.
  • filament_load_speed — Filament loading speed (mm/min). Default: 300 mm/min (5 mm/s).
  • filament_unload_speed — Filament unloading speed (mm/min). IFS operates twice as fast. Default: 600 mm/min (10 mm/s).
  • filament_fan_speed — Fan speed (0–255) during purging to cool oozing. Default: 102.
  • filament_autoinsert_empty_length — Filament length pulled when auto-loading into an empty extruder. Default: 600 mm.
  • filament_autoinsert_full_length — Filament length pulled when replacing existing filament. Default: 550 mm.
  • filament_autoinsert_ret_length — Retraction distance after extruder sensor triggers (empty extruder only). Default: 90 mm.
  • filament_autoinsert_speed — Auto-insertion speed (mm/min). Default: 1200 mm/min (20 mm/s).

Warning! Modifying advanced parameters may cause printer malfunctions, filament jams, or hardware damage. Adjust only if you fully understand each parameter’s purpose and potential consequences.

Key takeaway: To reduce waste, start by decreasing filament_drop_length and filament_drop_length_add for your material. Don’t forget to save the file after changes!

7. Add custom filament types

For these settings to work, you need to disable the printer's native display using the DISPLAY_OFF macro.

To add a new filament type, add the following to mod_data/user.cfg:

[zmod_ifs]
filament_NEWTYPE: 300
Where NEWTYPE is replaced with the desired filament type (e.g., HIPS), and the number is the melting point of this filament.

IFS_PRINT_DEFAULTS - displays available filament types and their melting points


8. Add custom colors

For these settings to work, you need to disable the printer's native display using the DISPLAY_OFF macro.

To add or rename a color, open mod_data/colors/en.cfg (use your language instead of en):

Add a new color or rename an existing one.

To display the color name, the color name must begin with an underscore _

Example:

{
"ffffff": "white",
"fffff1": "_transparent",
"fef043": "bright yellow",
"dcf478": "light green",
"0acc38": "green",
"067749": "dark green",
"0c6283": "blue-green",
"0de2a0": "turquoise",
"75d9f3": "cyan",
"45a8f9": "blue",
"2750e0": "dark blue",
"46328e": "violet",
"a03cf7": "bright violet",
"f330f9": "purple",
"d4b0dc": "lilac",
"f95d73": "pink",
"f72224": "red",
"7c4b00": "brown",
"f98d33": "orange",
"fdebd5": "beige",
"d3c4a3": "light brown",
"af7836": "terracotta",
"898989": "gray",
"bcbcbc": "light gray",
"161616": "black"
}

The text _transparent will be displayed on buttons.


9. Fixing Trash Bin and Filament Cutting Knife Operation

Alternative version of the instructions

Different AD5X printers may have different coordinates for the trash bin and knife. Sometimes the difference can reach up to 4 mm.

Because of this:

  • Filament may not reach the trash bin;
  • Knife does not cut the filament;
  • Printer head may hit the wall.

To fix this, you need to:

  1. Update zMod.
  2. Open the file /rw/Adventurer5M.json.
  3. Find these lines:
    {
            "CutXOffset" : 0.5,
            "CutYOffset" : -0.20000001788139343,
            "xOffset" : 0.0,
            "yOffset" : -0.20000001788139343,
            "zOffset" : 0.0,
            "zProbeOffset" : 0.004999995231628418
    },
    
    image

Replace only these values:

"CutXOffset": 0.0,
"CutYOffset": 0.0,
"yOffset": 0.0,

  1. Enter the command: UPDATE_FF_OFFSET (this will update the settings).
  2. Then enter: _GOTO_TRASH (this will move to the trash bin).

Trash Bin Calibration

Alternative version of the instructions

  1. Enter the command _GOTO_TRASH — the printer head will move to the trash bin.
  2. If the bin doesn't close. Сarefully move the head until the bin closes. You need use GCODE: G1 Y230.2
  3. Check what Y coordinate you now have.
  4. Subtract 229 from this number. The result will be your yOffset.

Examples:

  • If Y = 230.2, then yOffset = 230.2 - 229 = 1.2
  • If Y = 228.4, then yOffset = 228.4 - 229 = -0.6
  • Formula: yOffset = Y - 229

Write this number to the file /rw/Adventurer5M.json. The bin is calibrated.

  1. Enter the command: UPDATE_FF_OFFSET (this will update the settings).
  2. Then enter: _GOTO_TRASH (this will move to the trash bin).

Knife Calibration

Alternative version of the instructions

  1. Enter the command _CUT_PRUTOK — the head will move to the knife.
  2. You need use GCODE: G1 Y-7.7 G1 X-1.7, move the head until the knife activates.
  3. Check what X and Y coordinates you have.
  4. For Y:

    • Subtract your Y-coordinate from 7.5 by absolute value.
    • Example: if Y = -7.7, then CutYOffset = 7.5 - 7.7 = -0.2
    • Example: if Y = -5.9, then CutYOffset = 7.5 - 5.9 = 1.6
    • Formula: CutYOffset = 7.5 + Y
  5. For X:

    • Subtract your X-coordinate from 2.5 by absolute value.
    • Example: if X = -1.7, then CutXOffset = 2.5 - 1.7 = 0.8
    • Example: if X = -2.8, then CutXOffset = 2.5 - 2.8 = -0.3
    • Formula: CutXOffset = 2.5 + X

Write these numbers to the file /rw/Adventurer5M.json. The knife is calibrated.

  1. Enter the command: UPDATE_FF_OFFSET (this will update the settings).
  2. Then enter: _GOTO_TRASH (this will move to the trash bin).

Restart the printer — everything is ready.


Setting up the basket on the AD5X stock firmware

  1. Go to the "i" tab and press the Status button

image

  1. Go to the 6th tab

image

  1. Press and hold Move the extruder to waste tray position for 20 seconds image

  2. Adjust the head position in the waste tray so that it closes. Using the control arrows, park the print head at the receiver in such a way that the print head sufficiently presses the shutter lever, the nozzle is behind the moving shutter, and the shutter itself is flush with the front surface of the receiver.

image

Press the Set button.

  1. Press and hold Move the extruder to cutter striker position for 20 seconds image

  2. Adjust the cutter. Press CutX — the cutter should cut the filament without slipping or striking.

image

Press the Set button.


10. IFS commands

For these settings to work, you need to disable the printer's native display using the DISPLAY_OFF macro.

  • IFS_F10 - Insert filament
  • IFS_F11 - Remove filament
  • IFS_F13 - IFS state
  • IFS_F15 - Reset driver
  • F18 - Filament purge everywhere
  • F23 - Mark filament as inserted
  • F24 - Filament clamp
  • F39 - Filament purge
  • F112 - Stop filament feed
  • PURGE_PRUTOK_IFS - Purge filament from IFS to the extruder
  • REMOVE_PRUTOK_IFS - Removes filament by filament number
  • INSERT_PRUTOK_IFS - Insert filament into IFS by filament number
  • SET_CURRENT_PRUTOK - Tell klipper which filament is currently active
  • ANALOG_PRUTOK - Load an analog rod
  • IFS_MOTION - Check if the filament has stopped or run out

IFS module parameters:

  • debug - debugging (True, False)
  • silk_count - number of attempts to read a rod into IFS (1)
  • stall_count - number of attempts to count a rod as stopped (1)
  • retry_count - number of times to retry the command on error (3)
  • filament_NEWFILEMENT - Add a new filament type. Parameter - replacement temperature for this type of plastic.

Set via mod_data/user.cfg:

[zmod_ifs]
debug: True
silk_count: 1
stall_count: 1
filament_NEWTYPE: 300

11. IFS Firmware Recovery

To recover the IFS firmware, you need an ARM J-LINK V9 programmer.

image

image

Solder wires to the iFS board.

image

Connect:

  • CLK to SWCK
  • DIO to SWIO
  • VCC to 3.3
  • GND to GND

  • Target Device - Nations N32G455RE
  • Target interface: SWD
  • Speed: 4000
  • Check the first checkbox.
  • Uncheck the second checkbox.
  1. Connect.
  2. Select the firmware file. Don't forget to extract it.
  3. Press F7 and wait for the device to be flashed.

IFS: sensor error: Serial communication error: read failed: device reports readiness to read but returned no data (device disconnected or multiple access on port?)

This error occurs when the native display and the mod access the IFS simultaneously.

It's best to reduce the native display lifetime to 10 seconds: SAVE_ZMOD_DATA DISPLAY_OFF_TIMEOUT=10