AD5X
AD5X¶
- Key Features
- File Preparation in Orca
- Color Selection (
COLOR) - Print Menu (
PRINT) - Manual Spool Selection
- Add custom colors
- 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
Entwaresupport - Always use
FAST_CLOSE_DIALOGS(fast closing) instead ofCLOSE_DIALOGS(slow closing). - The
NEW_SAVE_CONFIGmacro does not work. - To enable the camera, use
CAMERA_ON VIDEO=video3orCAMERA_ON VIDEO=video0orCAMERA_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)¶
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):
You can perform four actions:
- Change the color of the spool.
- Change the material type (e.g., from PLA to PETG).
- Load this filament into the printer.
- Unload filament from the printer.
How to change color:
- Click "Change Color".
- Select a color from the list. This ensures the printer and native screen understand your selection.
- After selection, you’ll return to the menu, and the spool’s color should update.
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:
- Click "Change Type".
- Select a material type from the list.
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.
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.
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 extruderIfs 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:
- Open the "Configuration" tab.
- Navigate to the
mod_datafolder. - Open the
filament.jsonfile.
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.
temp— Nozzle temperature for filament change. Default value depends on material type.-
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.
- In simple terms: How many millimeters of filament the printer will purge into the waste bin to clean the nozzle from the previous color.
-
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.
- In simple terms: Extra purge length when switching material types (e.g., PLA to PETG), not just colors.
-
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
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:
- Update zMod.
- Open the file
/rw/Adventurer5M.json. - Find these lines:
{ "CutXOffset" : 0.5, "CutYOffset" : -0.20000001788139343, "xOffset" : 0.0, "yOffset" : -0.20000001788139343, "zOffset" : 0.0, "zProbeOffset" : 0.004999995231628418 },
Replace only these values:
"CutXOffset": 0.0,
"CutYOffset": 0.0,
"yOffset": 0.0,
- Enter the command:
UPDATE_FF_OFFSET(this will update the settings). - Then enter:
_GOTO_TRASH(this will move to the trash bin).
Trash Bin Calibration¶
Alternative version of the instructions
- Enter the command
_GOTO_TRASH— the printer head will move to the trash bin. - If the bin doesn't close. Сarefully move the head until the bin closes. You need use GCODE:
G1 Y230.2 - Check what Y coordinate you now have.
- 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.
- Enter the command:
UPDATE_FF_OFFSET(this will update the settings). - Then enter:
_GOTO_TRASH(this will move to the trash bin).
Knife Calibration¶
Alternative version of the instructions
- Enter the command
_CUT_PRUTOK— the head will move to the knife. - You need use GCODE:
G1 Y-7.7G1 X-1.7, move the head until the knife activates. - Check what X and Y coordinates you have.
-
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
-
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.
- Enter the command:
UPDATE_FF_OFFSET(this will update the settings). - 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¶
- Go to the "i" tab and press the
Statusbutton
- Go to the 6th tab
-
Press and hold
Move the extruder to waste tray positionfor 20 seconds -
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.
Press the Set button.
-
Press and hold
Move the extruder to cutter striker positionfor 20 seconds -
Adjust the cutter. Press
CutX— the cutter should cut the filament without slipping or striking.
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 filamentIFS_F11- Remove filamentIFS_F13- IFS stateIFS_F15- Reset driverF18- Filament purge everywhereF23- Mark filament as insertedF24- Filament clampF39- Filament purgeF112- Stop filament feedPURGE_PRUTOK_IFS- Purge filament from IFS to the extruderREMOVE_PRUTOK_IFS- Removes filament by filament numberINSERT_PRUTOK_IFS- Insert filament into IFS by filament numberSET_CURRENT_PRUTOK- Tell klipper which filament is currently activeANALOG_PRUTOK- Load an analog rodIFS_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.
Solder wires to the iFS board.
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.
- Connect.
- Select the firmware file. Don't forget to extract it.
- 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