Skip to content

Mike Wilson

33 posts by Mike Wilson

Mastering Klipper: Updating Deprecated Firmware on MCU and EBB

If you updated Klipper in Mainsail or Fluidd and suddenly see a warning about deprecated code on your MCU and EBB board, this guide is for you.

The short version: updating Klipper on the host does not automatically update firmware on your physical boards. You need to recompile and flash both your toolhead board and your mainboard so protocol versions stay in sync.

  • Host: BTT CB1 or Raspberry Pi
  • Mainboard: BTT Manta M8P V1.1
  • Toolhead board: EBB2209 CAN
  • CAN bootloader: Katapult (formerly CanBoot)

Klipper has two parts:

  • Host software running on Linux
  • Firmware running on each microcontroller board

When the host updates but board firmware stays old, Klipper reports protocol mismatch/deprecated code until everything is aligned.

  1. SSH into your host.
  2. Back up your current config files.
  3. Keep your current board UUIDs handy from printer.cfg.
  4. Have physical access to the toolhead board in case you need a reset.
Terminal window
cd ~/klipper
make menuconfig
make clean
make

In menuconfig, choose options that match your exact EBB model and bootloader settings.

Terminal window
sudo service klipper stop

Use your EBB UUID from printer.cfg. If needed, discover devices with canbus_query first.

Terminal window
python3 ~/klipper/scripts/canbus_query.py can0
python3 ~/katapult/scripts/flashtool.py -i can0 -u <your-ebb-uuid> -f ~/klipper/out/klipper.bin

If the board is not detected or flash fails, do a double-tap reset on the EBB to force bootloader mode, then rerun the flash command.

Phase 2: Update the Mainboard (BTT Manta M8P)

Section titled “Phase 2: Update the Mainboard (BTT Manta M8P)”

If your Manta is acting as a USB-to-CAN bridge, your menuconfig settings matter a lot. Wrong settings can break CAN communication.

Use this reference profile for M8P V1.1:

SettingSelection
Micro-controllerSTMicroelectronics STM32
Processor modelSTM32G0B1
Bootloader offset8KiB bootloader
Clock Reference8 MHz crystal
Communication interfaceUSB to CAN bus bridge (USB on PA11/PA12)
CAN bus interfaceCAN bus (on PD12/PD13)

Then compile and flash with your normal M8P method (SD card, DFU, or your existing maintenance workflow), and confirm the new firmware boots cleanly.

Start Klipper again:

Terminal window
sudo service klipper start

Then refresh Mainsail/Fluidd and confirm:

  • Deprecated code warnings are gone
  • MCU and CAN stats populate normally
  • No recurring protocol shutdown errors

If errors remain, verify USB/CAN visibility from the host:

Terminal window
lsusb

If you repeatedly see protocol shutdowns or flash instability even after clean reflashes and reset attempts, hardware failure is possible (especially from heat/stress over time).

Potential replacement paths:

If this walkthrough helped, save it in your printer maintenance notes so the next Klipper update cycle takes minutes instead of hours.

Making 3D Prints Look Professional | OrcaSlicer 2.3.2 Final

Hey, this is Mike from Minimal 3DP, and today we are wrapping up our OrcaSlicer 2.3.2 series. The release candidate phase is officially over, and the stable 2.3.2 release is finally here.

In this fourth and final part of our series, we are moving away from structural engineering and focusing entirely on aesthetics. If you want your 3D prints to look like professionally manufactured, injection-molded parts, this is the update you’ve been waiting for. We are going to look at Fixed Angle Ironing, Structured Fuzzy Skin, and a seam alignment feature I completely missed for years. Let’s go ahead and get started.


The Hardware Bridge: Consistent Extrusion for Textures

Section titled “The Hardware Bridge: Consistent Extrusion for Textures”

Software textures and ironing only look good if your physical extrusion is perfectly consistent. If your hotend is pulsing or your extruder gears are skipping, no amount of slicer tuning will save your top surfaces. I’m testing these aesthetic upgrades on my K2 Plus ecosystem to ensure we have a rock-solid baseline.

Transparency Note: Some of the links in this post are affiliate links. If you go through them to make a purchase, I will earn a small commission (which helps support M3DP!). You will not pay a penny more.


1. Fixed Angle Ironing (Fixing Tiger Stripes)

Section titled “1. Fixed Angle Ironing (Fixing Tiger Stripes)”

Standard ironing algorithms dynamically change the ironing direction based on the longest dimension of the top layer. While this saves time, it creates “tiger striping”—where light reflects differently off varying sections of the flat top surface, making it look patchy and distinctly 3D printed.

The 2.3.2 Fix: OrcaSlicer 2.3.2 introduces a Fixed Ironing Angle setting. By forcing the nozzle to iron in the exact same vector (e.g., 45 degrees) across the entire top surface, the plastic grain aligns perfectly. The result is a smooth, uniform reflection of light.

To test your own top surfaces, you can use this Top Surface Ironing Test model.

2. Structured Fuzzy Skin (Voronoi, Perlin, Billow)

Section titled “2. Structured Fuzzy Skin (Voronoi, Perlin, Billow)”

Older versions of fuzzy skin simply jittered the nozzle randomly. It often looked like a printing error or wet filament rather than an intentional design choice. OrcaSlicer 2.3.2 introduces mathematically generated noise patterns to turn standard plastic into premium textures.

  • Voronoi Noise: Creates an aggressive, geometric, “leather-like” cracking effect. Perfect for automotive parts or tactical grips.
  • Perlin Noise: Generates a smooth, continuous, flowing texture suitable for organic shapes.
  • Billow Noise: Produces a clustered, “cloud-like” texture.

Klipper Configuration for Surface Finishes

Section titled “Klipper Configuration for Surface Finishes”

When ironing top layers, the extruder is pushing a microscopic amount of filament (typically around 10% flow). To prevent blobs or uneven pressure during these micro-movements, ensure your Klipper configuration is optimized for precise extrusion and smooth cornering.

# Minimal 3DP Surface Finish Baseline (printer.cfg)
[printer]
# Tuning square_corner_velocity prevents the toolhead from dwelling
# and leaving blobs at the edges during ironing passes
square_corner_velocity: 5.0
[extruder]
# Ensure your pressure advance is perfectly tuned for your specific filament
# to handle the rapid start/stops of Structured Fuzzy Skin
pressure_advance: 0.04
pressure_advance_smooth_time: 0.040

3. The True Value of Premium Parts (FDM Cost Calculator)

Section titled “3. The True Value of Premium Parts (FDM Cost Calculator)”

Now that your prints feature professional surface finishes, you can confidently sell them to commercial clients. But to run a profitable farm, you must know your exact margins.

I built the Minimal 3DP FDM Cost Calculator to help you factor in machine wear, transaction fees, and exact material usage.

📉 Check the True Cost of Your Prints Here

Join the Operator Tier on Patreon ($5/mo) to unlock the “Pro” features. This allows you to save your local electricity rates and exact filament spool costs directly to a cloud profile so you never have to type them in again.


OrcaSlicer 2.3.2 is officially stable, and it’s the biggest leap in both engineering utility and aesthetic control we’ve seen this year. Make sure you back up your configurations before upgrading to the final release!

Thanks for joining me on this deep dive series. Stay minimal.

Your support helps me continue developing technical tools and guides for the maker community.

Software Links

Dialing in Multi-Material & Smoother Infill | OrcaSlicer 2.3.2 (Part 3)

Hey, this is Mike from Minimal 3DP. Today we are taking a closer look at OrcaSlicer 2.3.2 with three focus areas: multiline infill, spiral Z-hop, and bulletproof wipe towers.

In older slicer builds, multi-material printing can look incredible until a prime tower collapses halfway through, taking hours of print time down with it. Even with aggressive tuning, wipe towers are still fragile when you mix materials like PETG and PLA.

The latest OrcaSlicer 2.3.2 release candidates include several software-level changes designed to reduce those failures. Let us break down what matters and what to enable.

Watch on YouTube: https://youtu.be/4Pr5vlJvTvk


The Hardware Bridge: Multi-Material Testing

Section titled “The Hardware Bridge: Multi-Material Testing”

Software tweaks only work if your hardware can keep up. For this test set, we are printing K2 Plus parts for an upcoming video and using that platform as the baseline for all 2.3.2 multi-material checks.

Transparency Note: Some links in this post are affiliate links. If you use them to make a purchase, I may earn a small commission that supports M3DP. You do not pay extra.


In previous versions, multiline infill patterns like Triangles or Cubic created harsh line intersections. As the nozzle crossed previously laid paths, you would hear micro-vibrations and grinding. Over time, those repeated impacts can weaken internal structure quality.

In OrcaSlicer 2.3.2 preview mode, those transitions are rebuilt with rounded corners. Rounded path transitions keep volumetric flow more consistent and reduce abrupt extruder start-stop behavior at intersections.

The practical result is less filament grinding and smoother internal motion, especially useful with softer materials like PLA+ and PETG.

2. Bulletproof Wipe Towers (PETG/PLA Interfaces)

Section titled “2. Bulletproof Wipe Towers (PETG/PLA Interfaces)”

PETG support interfaces for PLA are popular because the materials separate cleanly. The downside is that they also struggle to bond on the prime tower, which can lead to tower delamination and mid-print failure.

OrcaSlicer 2.3.2 adds interface-specific controls to improve tower survivability:

  • Interface temperature boosts: Temperature is raised on key interface layers to improve PETG/PLA tower adhesion.
  • Extra pre-extrusion: Nozzle pressure is built before tower engagement to reduce under-extrusion on critical early layers.
  • Flushing notches: The nozzle is wiped before flushing to reduce blob dragging across the part.

These new wipe tower controls can save long prints, but there is still a cost problem: prime towers consume a lot of filament.

To quantify that waste, use the Minimal 3DP FDM Cost Calculator:

Calculate Your True Print Costs

If you are tired of typing filament and machine costs into every run, the Operator tier on Patreon unlocks Pro calculator features with saved profile data:

Join the Operator Tier on Patreon ($5/mo)

This lets you store local energy rates and machine data so you can evaluate multi-color jobs quickly before you commit print time and material.


4. Spiral Z-Hop Optimization & Klipper Config

Section titled “4. Spiral Z-Hop Optimization & Klipper Config”

Standard Z-hop can force abrupt Z-axis movement. On lower-end controller boards, large amounts of micro-movement can overload the planner buffer and cause stutters or blobs.

Spiral Z-Hop in OrcaSlicer 2.3.2 introduces adaptive slicing resolution (roughly 4 to 24 segments), producing smoother motion commands that are easier for controllers to process.

If you run mainline Klipper, validate your retraction and Z-axis limits so the machine can execute rapid hop transitions reliably:

# Minimal 3DP Z-Hop & Retraction Baseline (printer.cfg)
[firmware_retraction]
retract_length: 0.8
retract_speed: 40
unretract_extra_length: 0.0
unretract_speed: 40
[stepper_z]
# Ensure max_z_velocity and max_z_accel can support rapid spiral hops
max_z_velocity: 15
max_z_accel: 100

OrcaSlicer 2.3.2 makes meaningful progress on three real production issues:

  • Cleaner multiline infill transitions
  • More reliable PETG/PLA wipe tower behavior
  • Smoother Z-hop motion delivery for constrained controllers

These are practical quality-of-life improvements, but they do not remove the economics of multi-material waste. Pair the new slicer controls with cost tracking so your print decisions stay both reliable and profitable.

Fixing Wavy Walls & Sagging Bridges: OrcaSlicer 2.3.2 Flow Tuning

Even after extensive tuning, such as running resonance compensation, 3D printed parts can still exhibit visual artifacts. Common issues include sagging bridges and “wavy” or “bulging” outer wall textures, which persist despite standard calibration efforts. OrcaSlicer 2.3.2 (Release Candidate) introduces highly granular software adjustments to address these specific hardware-extrusion bottlenecks.

This technical guide documents the process of utilizing structure-specific flow ratios and high-density bridging to achieve injection-molded surface qualities.


The Hardware Bridge: Extrusion Consistency

Section titled “The Hardware Bridge: Extrusion Consistency”

Software flow tuning is only effective if your hardware maintains consistent volumetric pressure. For these tests, we rely on the Creality K2 Plus to ensure baseline stability, utilizing eSUN PLA+ to accurately gauge the effect of flow modifications.

Affiliate Notice: Purchasing through these links supports the Minimal 3DP ecosystem at no additional cost to you.


Granular Flow Control: Eliminating the Ripple Effect

Section titled “Granular Flow Control: Eliminating the Ripple Effect”

Previous slicer iterations relied heavily on a global flow rate multiplier. OrcaSlicer 2.3.2 allows users to independently adjust the flow ratio for almost every distinct print structure (outer walls, inner walls, first layer, etc.).

When utilizing a uniform flow rate, the volume required for optimal layer adhesion on inner walls or infill often causes slight over-extrusion on the outer perimeters, resulting in a visible “ripple effect” or wavy interface on thin walls.

By navigating to the Quality tab and checking the “Set other flow ratios” box in the Walls and Surfaces section, we can decouple these values.

  1. Establish Baseline: Determine your optimal global flow rate. In our K2 Plus testing, the baseline flow was 0.98, whereas OrcaSlicer defaults to 1.0.
  2. Isolate Outer Walls: Decrease the flow rate strictly for the “Outer Wall” parameter.
  3. Result: Lowering the flow rate specifically on the outer perimeter eliminates the wavy texture, resulting in a visually smoother face and sharper corners without compromising the structural integrity of the infill.

High-Density Bridging: Structural Overhauls

Section titled “High-Density Bridging: Structural Overhauls”

Bridging unsupported geometry traditionally involves stretching filament across a gap. OrcaSlicer 2.3.2 introduces a setting designed to increase the density of the bridging surface, placing the extruded lines closer together to form a solid sheet.

Using the Unsupported Bridge Experiments Model, we observed the following:

  • Untuned Bridging: Lines are spaced far apart, lacking adhesion, resulting in gaps and severe sagging.
  • High-Density Enabled (Flow = 1.0): The top surface solidifies significantly, but requires further flow tuning.
  • High-Density + Altered Flow: The release notes advise using a lower flow rate paired with higher density. Testing with an erroneously high flow rate produced poor top surfaces. The ideal configuration requires matching the high density (closer lines) with a proportional drop in bridging flow to prevent material pooling.

When pushing high-density bridging and rapid flow transitions on high-speed machines, your Klipper extruder settings must be configured to handle sudden spikes in max_extrude_cross_section, especially if overlapping perimeters occur.

# Minimal 3DP Extruder Baseline (printer.cfg)
[extruder]
# Ensure this value accommodates high-density bridging calculations
max_extrude_cross_section: 5.0
# Ensure your pressure advance is tuned for the specific filament
# to prevent bulging during the rapid decelerations of bridging
pressure_advance: 0.04
pressure_advance_smooth_time: 0.040

OrcaSlicer v2.3.2 Beta 2: The Data-Driven Slicer Overhaul

The community has been waiting for a major update to the OrcaSlicer interface, and v2.3.2 Beta 2 delivers. This release isn’t just about small bug fixes; it represents a fundamental shift toward real-time monitoring and granular control—perfect for those of us who view our 3D printers as precision engineering tools.

In this deep dive, we’re exploring how these new UI changes and technical features can revolutionize your workflow.

[!WARNING]

Before you dive into the new features, remember that this is beta software. To avoid the “Foundation of Sand” issue where your profiles are lost during an update, back up your configuration folder immediately.

Pro Tip: In OrcaSlicer, go to Help > Show Configuration Folder. Zip that entire directory and save it to a safe location.

1. The Improved G-Code Viewer: Real-Time Flow Analysis

Section titled “1. The Improved G-Code Viewer: Real-Time Flow Analysis”

One of the most significant updates in v2.3.2 is the integration of an improved G-code viewer, ported directly from PrusaSlicer.

For the “Engineering Enthusiast,” this is a game-changer. You can now analyze your prints in real-time with specific views for:

  • Actual Speeds: Visualize exactly how fast your toolhead is moving at every point of the model.
  • Volumetric Flow Rates: Identify potential bottlenecks before you even start the print.

2. Fine-Tuning with “Set Other Flow Ratios”

Section titled “2. Fine-Tuning with “Set Other Flow Ratios””

OrcaSlicer now allows you to set individual flow ratios for nearly every feature of your model. This is critical for achieving “Gold Standard” quality.

If your base flow is even slightly off, your entire print can fail. By isolating flow ratios for different parts of the model, you gain the granular control needed for high-performance engineering prints.

3. Modular Printer Agents: Multi-Material Sync

Section titled “3. Modular Printer Agents: Multi-Material Sync”

The new Modular Printer Agent Architecture allows for seamless synchronization with multi-filament units like the AMS (Quitty, Snapmaker, Armor Turtle box). This architecture ensures your slicer and your hardware are always in sync, reducing the friction often found in multi-material workflows.

  • Compact Printer Interface: The new UI lists your printer, nozzle diameter, and bed type in a more informative, streamlined layout.
  • Wi-Fi Connectivity: Management has moved to a more visually pleasing location above the printer settings.
  • New Profiles: Dozens of new printer and filament profiles have been added, ensuring your hardware is supported out of the box.

In the next part of this series, we’ll be doing a technical deep dive into bridging and further testing these new flow rates.

Watch the full video walkthrough here: https://youtu.be/16ZUGGPG-pI


Your support helps me continue developing technical tools and guides for the maker community.

Transparency Note: Some of the links in this post are affiliate links. If you go through them to make a purchase, I will earn a small commission (which helps support M3DP!). You will not pay a penny more.

From Chromebook to Dev Machine - Setting up a Modern GIS & Python Stack

Chromebooks are no longer just for web browsing. With the built-in Linux subsystem, they are now capable of running a professional development environment. This guide walks you through setting up a “Gold Standard” stack: VS Code, Git/GitHub via SSH, Python (via uv), and Containerized PostGIS (via Podman).

First, you need to unlock the ability to run Linux apps on your ChromeOS device.

Open Settings > Advanced > Developers.

Turn on the Linux development environment.

Once the terminal opens, update your package list:

Terminal window
sudo apt update && sudo apt upgrade -y

Don’t settle for the web-based editors; get the full desktop experience.

Install Git: sudo apt install git -y.

VS Code: Download the .deb file (x64 for Intel/AMD, ARM64 for mobile chips) from the official site. Right-click it in your Files app and select Install with Linux.

SSH Keys: Generate a key for secure GitHub access:

Terminal window
ssh-keygen -t ed25519 -C "your_email@example.com"
cat ~/.ssh/id_ed25519.pub

Copy that output and add it to your GitHub Settings > SSH and GPG keys.

Standard pip and make are fine, but for speed and clarity, we use uv (an extremely fast Python manager) and just (a modern command runner).

Terminal window
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install just
sudo apt install just -y

With these installed, you can initialize a project with uv init and use a justfile to automate your chores. Instead of typing source .venv/bin/activate && python main.py, you simply type just run.

Since GIS work requires a database, we use Podman. It is a great “rootless” alternative to Docker that runs smoothly inside the Chromebook’s Linux container.

Install: sudo apt install podman -y

Alias it: Add alias docker=podman to your .bashrc so your existing scripts work without changes.

Spin up PostGIS:

Terminal window
podman pull postgis/postgis

5. Putting it All Together: The Genesis Template

Section titled “5. Putting it All Together: The Genesis Template”

The ultimate goal is to clone a “Gold Standard” template (like the genesis-template) and be ready to code in seconds.

Terminal window
# Clone your template
git clone git@github.com:your-username/your-template.git
cd your-template
# Sync dependencies and start the stack
uv sync
just start

Your Chromebook is now a full-fledged GIS development workstation, running a FastAPI backend, a PostGIS database, and a high-speed Python environment.

  • Port Forwarding: When you run a server on port 8000, ChromeOS automatically maps it. You can access it at localhost:8000 in the Chrome browser.
  • Storage: If you plan on running multiple containers, go to your Linux settings and increase the disk size to at least 20–30GB.

Enhancing Print Strength: A Deep Dive into the GeekDetour BrickLayers Implementation

If you’ve been following the channel, you know I’m a big fan of the BrickLayers concept. By offsetting layer lines—much like a bricklayer offsets joints in a wall—we can significantly improve the mechanical strength of 3D prints, particularly along the Z-axis.

Recently, I updated the Minimal 3DP Web Tool to include a second, more “hefty” implementation: the GeekDetour version. While the original Tenager Technologies script is excellent for its simplicity, the GeekDetour version offers granular control for power users.

However, because this script is more complex, your slicer settings need to be dialed in correctly to avoid errors. Here is everything you need to know to get the most out of this new implementation.

The Core Requirement: “Classic” Wall Mode

Section titled “The Core Requirement: “Classic” Wall Mode”

The most critical setting for the GeekDetour implementation is your Wall Generation mode.

Modern slicers like OrcaSlicer and PrusaSlicer often default to “Arachne” for wall generation. While Arachne is great for variable line widths, it can confuse the BrickLayers script, which relies on consistent pathing to calculate the offsets.

The Fix: Switch your Wall Generator to “Classic” before exporting your G-code. This ensures the script can accurately identify and shift the perimeters without creating pathing conflicts.

Key Setting Differences: GeekDetour vs. Tenager

Section titled “Key Setting Differences: GeekDetour vs. Tenager”

When using the GeekDetour version via the Minimal 3DP web app, you’ll notice a few default behaviors that differ from the original version:

  • Starting Layer: GeekDetour defaults to starting the effect at Layer 3. This ensures your first few layers (the foundation) remain untouched for maximum bed adhesion.
  • Extrusion Multiplier: The script uses a slightly smaller default extrusion multiplier. In my testing on the Creality K2 Plus, this helped manage the “bulging” that can sometimes occur when layers are shifted, though it can lead to slightly more stringing.
  • Z-Hop Integration: This implementation handles travel moves differently to account for the shifted paths. If you see “wispy” stringing, don’t panic—this is a known trade-off for the increased structural integrity.

You no longer need to struggle with Python environments or terminal commands. I have containerized this logic so you can run it directly in your browser:

  1. Slice your model in OrcaSlicer or PrusaSlicer (remember: Classic walls!).
  2. Export the G-code to your desktop.
  3. Upload to the Minimal 3DP BrickLayers Tool.
  4. Select “GeekDetour” from the implementation dropdown.
  5. Download and print.

I’ve personally verified the output by running the web-processed G-code against local Python script results using AI analysis. The movement commands are identical; the only difference is the metadata. Your prints will be just as strong as if you ran the script manually.


Support & Tools

If you found this technical deep dive helpful, consider supporting the lab:

Transparency Note: Some of the links in this post are affiliate links. If you go through them to make a purchase, I will earn a small commission (which helps support M3DP!). You will not pay a penny more.

BrickLayers Without the Code: Get 3D Printed Brick Wall Strength in Your Browser

Featured Image - Bricklayers

If you have been 3D printing for a while, you have likely heard of the “BrickLayers” technique. Originally popularized by CNC Kitchen, this post-processing method significantly increases the structural integrity of printed parts by offsetting layers—just like a real brick wall.

The engineering is sound, but for many makers, the execution has been a barrier. Until now, using BrickLayers required installing Python, managing dependencies, and running local scripts.

Today, I am removing that friction. I have updated the workflow to make it accessible to everyone through a free, browser-based tool.

The Theory: Why “Brick Wall” Patterns Matter

Section titled “The Theory: Why “Brick Wall” Patterns Matter”

To understand why this tool is valuable, we have to look at how FDM 3D printing handles stress.

In a standard print, layers are stacked directly on top of one another. When stress is applied perpendicular to these layer lines, the print is prone to delamination—basically, the layers rip apart because the failure point runs in a straight line down the part.

The BrickLayers concept borrows from masonry. By alternating the perimeter starts and creating an offset pattern (a “running bond”), you interrupt that direct line of stress. The interface between layers becomes complex and interlocking, making the part significantly stronger without changing the material.

While the result of BrickLayers is fantastic, the process was designed for engineers and developers. Running a Python script on your local machine to post-process G-code isn’t difficult if you code, but it is a hassle if you just want to print a strong part.

I decided to revisit this technique with a focus on usability. I wanted to bridge the gap between the engineering concept and the everyday printing workflow.

I have ported the BrickLayers logic into a web application. This means:

  • No Python installation required.
  • No command line usage.
  • Secure processing: The tool streams your G-code through our secure server for processing and immediately sends it back. No files are ever saved to a disk or database.

You can access the tool here: Minimal 3DP BrickLayers Tool

Data Verification: Does it Slow Down Printing?

Section titled “Data Verification: Does it Slow Down Printing?”

A common concern with altering G-code is the impact on print time. Does a more complex toolpath ruin your efficiency?

I ran a comparison using a standard Benchy to verify the data:

  • Standard Print: 29 minutes, 49 seconds

  • BrickLayers (Python Script): 30 minutes, 14 seconds

  • BrickLayers (Web Tool): 30 minutes, 14 seconds

The Result: You are looking at a difference of roughly 25 seconds (less than a 2% increase) for a part that benefits from structurally superior layer adhesion.

  • Slice your model as you normally would.
  • Save the G-code file.
  • Go to the BrickLayers Web Tool.
  • Load your G-code.
  • Let the browser process the file and download the new version.

If you have been reluctant to try this technique because you didn’t want to configure a development environment, give the web app a try. It is free to use, and it brings engineering-grade wall strength to your standard slicer workflow.


Support Minimal 3DP:

Transparency: We may earn a commission when you make a purchase through our links. Minimal 3DP is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to Amazon.com.

Step-by-Step Sovol SV08 Build: From Box to Klipper in Under 2 Hours

Is the Sovol SV08 the best entry point for a large-format CoreXY?

Section titled “Is the Sovol SV08 the best entry point for a large-format CoreXY?”

I realize the SV08 has been on the market for a bit now, but I recently decided to pick one up. Why? Because the price-to-performance ratio has hit a sweet spot that is hard to ignore. I grabbed this unit for under $500—shipped directly from a US warehouse via AliExpress—and frankly, for that price, it creates a very interesting proposition for anyone looking to get into the Voron ecosystem without the 40-hour build time.

In the first installment of this new series, I take the SV08 from the shipping box to a functional Klipper instance in under two hours.

Unboxing & Logistics: The AliExpress Surprise

Section titled “Unboxing & Logistics: The AliExpress Surprise”

There is often a stigma about ordering large hardware from AliExpress, but you can find some incredible deals if you look carefully. I ordered this specific unit from a seller stocking it in a US warehouse. The result? It arrived incredibly fast—less than a week—and the box was in perfect shape.

Packaging is tight and well-thought-out. If you’ve been hesitant about shipping damage on these larger printers, my experience here was reassuring.

Sovol SV08 (AliExpress)

Large-format CoreXY printer. 350mm build volume. Best value for money.
$499

Sovol SV08 (Amazon)

Same great printer, faster shipping with Prime.
Check Price

This is not a “kit” in the traditional Voron sense. It is a pre-assembled module that requires final integration.

If I wasn’t filming the process for the channel, I honestly believe I could have had this machine assembled in one hour. Even taking my time, the entire process took about two hours. It is surprisingly straightforward—the gantry comes mostly pre-assembled, and the wiring is largely managed for you.

However, having the right tools makes a difference. I used my go-to drivers for this build, which saves a massive amount of frustration compared to the little Allen keys included in the box.

Hex Head Allen Wrench Set

High-quality drivers that prevent stripped screws. A must-have.
Check Price

While the build is solid, there is one specific hardware quirk you need to know about immediately to avoid damaging your new machine.

Do not pick up the SV08 by the top frame.

Unlike a Voron 2.4, where the skirt (bottom) is often the weak point, the SV08 has a very thin aluminum top section. It is not 2020 extrusion; it’s a thinner profile. If you try to lift the printer by the top bar, you risk bending the frame.

Instead, use the handles built into the side of the plastic case. It’s the opposite of what we are used to with other CoreXY builds, but it’s crucial for the longevity of this machine.

Out of the box, the SV08 runs a fairly stock version of Klipper. It boots up, it prints, and it’s a solid machine right from the start.

But this video is just the baseline. My plan for this series is to treat the SV08 not as an appliance, but as a platform. In upcoming posts and videos, we are going to:

Root the machine to gain full control over the Klipper instance.

Upgrade the cooling and hotend for better performance.

Push the speeds to see what this frame can actually handle.

Check out the full build video below to see exactly how it comes together.

Support Minimal 3DP

If you found this guide helpful, consider supporting the channel so I can keep buying hardware to test, break, and rebuild for you.

Buy Me a Coffee: ko-fi.com/minimal3dp

Support me on Patreon: https://www.patreon.com/posts/buy-back-your-146166454?utm_medium=clipboard_copy&utm_source=copyLink&utm_campaign=postshare_creator&utm_content=join_link

Railway: https://railway.com?referralCode=7BPriG

Transparency Note: Some of the links in this post are affiliate links. If you go through them to make a purchase, I will earn a small commission (which helps support M3DP!). You will not pay a penny more.

Quantifying Risk: A Data-Driven Look at 3D Printing Air Quality

Why I Take 3D Printing Air Quality Seriously

For me, the conversation around 3D printing usually revolves around speed, calibration, and cost. But recently, the focus shifted to something far more critical: the air I breathe while I create.

Following my open-heart surgery in October, I became acutely aware of the environmental factors in my workspace . I work in a 200-square-foot office, and because I close the door to record, I realized I was essentially printing in a sealed box . This personal realization sparked a deep dive into the invisible byproducts of Fused Deposition Modeling (FDM) .

Rather than relying on forum hearsay, I took a rigorous approach. I utilized Notebook LM to synthesize data from 56 different scientific articles regarding emissions . The research highlights two invisible risk factors every maker should understand:

  • Ultrafine Particles (UFPs): Microscopic pieces of plastic and debris floating in the air .
  • Volatile Organic Compounds (VOCs): Gases released during the melting process, particularly from petroleum-based filaments like ABS and ASA .

Surprisingly, the research indicates that even PLA—often considered the “safe” option—can release VOCs equivalent to ABS depending on the brand, pigments, and additives used . In many cases, PLA is not just plant-based material; it has so many additives that it can cause risks .

To test the theory against reality, I set up a comprehensive sensor array using the Creality K2 Plus printing ASA . I placed air quality monitors inside the printer’s enclosure, directly outside near a HEPA filter, in the hallway, and downstairs .

The results were telling. The sensors demonstrated that a simple enclosure can act like a fireplace screen, keeping an estimated 95% of particles and gases contained . However, my testing also revealed a critical workflow error. In an attempt to clean the printer glass with alcohol, I inadvertently caused a massive spike in VOC readings, proving that sometimes our cleaning habits can be just as impactful as the printing itself .

Mitigation Infographic

I found several mitigation strategies derived from the scientific research that I now implement:

  • Enclosures: This is the first line of defense.
  • The “Cool Down” Rule: Letting a print sit for 10 to 20 minutes after completion significantly reduces the release of particles when you open the door.
  • Filtration: I recommend getting a HEPA filter that is oversized for your office to exchange the air roughly six times an hour.

For a complete breakdown of the data and to see the sensors in action, check out the full video.

If you are looking to upgrade your safety setup or replicate these tests, here is the equipment I used in the deep dive:

Air Quality Sensor Used: https://go.minimal3dp.com/go/aq-sensor2

Creality K2 Plus: https://go.minimal3dp.com/go/k2-plus

K2 Plus HEPA/Activated Carbon Filters: https://go.minimal3dp.com/go/k2-plus-hepa

ASA Filament: https://go.minimal3dp.com/go/asa-filament


Support Minimal 3DP:

Transparency: We may earn a commission when you make a purchase through our links. Minimal 3DP is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to Amazon.com.

Don't Panic: Rolling Back Firmware on the Creality K2 Plus 3D Printer

Don't Panic: Rolling Back Firmware on the Creality K2 Plus 3D Printer

If you are reading this, you probably did exactly what I did last night: I wasn’t paying attention, saw a green update button, and just pressed it .

Normally, updates are a good thing. But in this case, I immediately regretted it. I was trying to record a video and needed my K2 Plus for its enclosed chamber, but the moment I installed the new firmware, I had nothing but errors and couldn’t print a single thing . Specifically, it wouldn’t even get to the preheating stage before crashing out with stepper timing errors .

Since I don’t use Creality Print, it took me a while to figure out how to manually roll back the firmware to a stable version . If you are stuck in the same boat, here is the step-by-step process to get your machine running again without using their slicer software.

The first step is grabbing the firmware image from the Creality website. This gets a little confusing because of how they organize their files.

  1. Go to the Creality website and navigate to the K2 Plus in the categories section .
  2. Look at the firmware list. You might notice the version listed isn’t the previous one you were using—it might be several versions behind .
  3. The Trick: Click the “plus” sign next to “Old Versions” . Surprisingly, you will often find newer firmware hidden in this folder.
  4. Download the image file for the version you want to restore .

This is the most critical step. If you don’t format the drive correctly, the printer won’t read it.

  1. Insert a USB drive into your computer.
  2. Open your disk utility (I used a Mac, but right-clicking ‘Format’ on Windows works the same way) .
  3. Format the drive as exFAT . It is vital that you choose exFAT; otherwise, the bootloader likely won’t pick it up.
  4. Once formatted, drag and drop the downloaded image file onto the USB drive .
  5. Eject the drive safely .

Now we head over to the printer.

  1. Turn the printer OFF .
  2. Insert the USB drive into the port on the right-hand side of the machine .
  3. Turn the printer back ON .
  4. The screen will boot up and ask if you want to “Upgrade” to the version on the stick. Even though we are downgrading to an older version, hit Upgrade .

Note: The system might estimate this will take hours, but in my experience, it installs much faster than that . Just be aware that rolling back firmware will wipe any custom config files you had, so you will lose your customizations .

Once the installation is complete, the machine will reboot.

  1. Remove the USB drive .
  2. Since the machine thinks it has a fresh install, you need to recalibrate .
  3. Run the start detection/self-check to ensure your bed tension and leveling are correct .

Once that finishes, you should be clear to slice a file and send it to the printer to verify everything is working .

If you want to see exactly how I formatted the drive or navigated the menu, you can watch the full walkthrough here:

Hopefully, this saves you the frustration I dealt with last night!


Support Minimal 3DP:

Transparency: We may earn a commission when you make a purchase through our links. Minimal 3DP is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to Amazon.com.

The Hidden Cost of Open Source: Why I’m Launching the Minimal 3DP Patreon

In the domain of desktop manufacturing, we obsess over tangible costs. We calculate the price per kilogram of filament, analyze the depreciation of a nozzle, or measure the energy consumption of a heated bed. [cite_start]However, my research into optimization techniques highlights a critical variable often missing from the equation: Time[cite: 6].

[cite_start]For the past few years, Minimal 3DP has operated to bridge the gap between “Appliance Consumers” and “Engineering Enthusiasts”[cite: 2]. We’ve explored Klipper firmware, dissected OrcaSlicer profiles, and pushed prosumer hardware to its absolute limits. [cite_start]But as the market undergoes the “Great Bifurcation”—where machines diverge into locked-down appliances or complex open-source projects—the burden of configuration has shifted entirely to you, the user[cite: 2].

Open source is free, but your time is not.

The current ecosystem often forces a binary choice: pay a premium for a “walled garden” ecosystem or spend hours scrolling through forums to find a configuration that doesn’t result in a layer shift.

In my strategic analysis of the channel, I identified a critical inefficiency. [cite_start]You aren’t coming to Minimal 3DP just for entertainment; you are coming for data[cite: 1]. You need the verified parameters that turn a chaotic build into a reliable tool. You need optimization without the trial-and-error cycle that kills throughput.

Today, I am launching the Minimal 3DP Patreon to solve this specific problem.

I do not view this platform as a “donation jar.” [cite_start]I view it as essential infrastructure—a “Hardware Bridge” designed to accelerate your workflow[cite: 3]. By joining, you are investing in a verified data utility that allows you to bypass the tinkering phase and get straight to production.

We are launching with the Operator Tier, designed specifically to let you buy back your time.

You want to print. By joining this tier, you get access to the Minimal 3DP Platform tools that streamline your workflow:

  • Export Settings as OrcaSlicer Profiles on OrcaSlicer Settings Recommender Stop guessing at parameters. Generate and export optimized profiles directly.
    https://go.minimal3dp.com/settings/
  • AI-based analysis on the Printer Reviews and Analysis Get deep, data-driven insights into hardware before you buy, leveraging our aggregated testing data.
    https://go.minimal3dp.com/reviews/
  • Ability to save invoices on the FDM Cost Calculator Move from hobbyist to professional by tracking project costs accurately and saving your history for client billing or internal records.
    https://go.minimal3dp.com/fdm-cost/

This launch marks a strategic pivot for Minimal 3DP. [cite_start]While I will always produce high-quality tutorials for YouTube, the Patreon allows me to serve as a Data Authority[cite: 1]. [cite_start]It funds the acquisition of new hardware for “Rooting” projects (like the upcoming K2 Plus deep dive) and supports the rigorous testing required to validate the tools I share[cite: 3].

If you are tired of “calibration hell” and want to treat your printer like the precision tool it is, I invite you to join us.

Click here to buy back your time and join the Minimal 3DP Patreon.


From Text Prompt to Tangible Print: Using Tripo 3.0 to Commemorate Recovery

By Mike Wilson

As many of you know, this past October got a little personal for me. I underwent heart surgery, and I’ve spent the last few months focused on recovery. I’m finally reaching the point where I feel like myself again—I even started physical therapy this week.

To commemorate this journey and mark getting back on my feet, I wanted to create a project that felt significant: a realistic, 3D-printed human heart.

Usually, a project like this would involve hunting down a specific STL or spending hours sculpting in Blender. Instead, I used this as an opportunity to test a new AI tool: Tripo 3.0.

Note: A big thank you to Tripo 3.0 for sponsoring this project. As always, while they are supporting the channel, the opinions and testing results below are entirely my own.

Tripo 3.0 is an AI generation tool capable of creating 3D models from simple text prompts or reference images. The developers claim it offers the “cleanest, sharpest, and most detailed geometry” in the AI 3D space.

That is a bold claim. We are used to AI models requiring hours of mesh repair before they are printable. However, after using it for this project, I have to admit—the topology was shockingly clean.

For this project, I tested two different generation methods to see which produced the best “printable” result.

I started with a simple command: “Create a model of a realistic human heart.”

Result: It generated a highly detailed, anatomically correct heart. However, it was just the organ itself—no base, no stand. Great for anatomy, harder to display.

Next, I uploaded a reference image from Wikipedia and combined it with the text prompt.

Result: This was the winner. The AI not only generated the heart but interpreted the context of the image to include a display stand.

The Verdict: Both models generated in about two minutes. The level of surface detail—specifically the veins popping out from the surface—was stunning. For a “set it and forget it” tool, the quality was surprisingly high.

Getting AI models out of the browser and into the physical world is usually where the headache starts. Here is exactly how I handled the files for anyone looking to replicate this workflow.

Tripo offers OBJ, STL, and 3MF exports.

[!TIP] Pro Tip: Use the 3MF format.

Why? In my testing, the STL files exported at a very small scale, requiring manual resizing. The 3MF files imported into the slicer at a reasonable, printable size immediately.

I brought the model into OrcaSlicer. Even though the geometry was clean, organic shapes always need support help.

  • Scale: For the version without the stand, I scaled it to 150%. For a massive heart, I tested scaling up to 300% (though that would have taken forever to print).
  • Supports: I utilized Slim Tree Supports (Organic).
  • Adhesion: I added an Outer Brim to ensure the small contact points on the bottom didn’t detach.
  • Printer: FDM Printer
  • Time: The stand version took roughly 1 hour 21 minutes. The larger, stand-less version took 4 hours 27 minutes.
  • Post-Processing: The supports snapped off cleanly. There was some minor scarring on the back of the stand-less model where it lay on the build plate (mostly due to my orientation choice, not the model geometry), but the display side was pristine.

While I used this for a personal commemorative piece, the toolset inside Tripo 3.0 is definitely aiming at the professional crowd.

  • Segmentation: I tested this on a robot model. The software automatically broke the single mesh into distinct parts (arms, legs, head), allowing you to edit or merge specific components.
  • Retopology: For those of you using Blender or ZBrush, the generated topology is workable, not the usual “soup of triangles” we see from photogrammetry or older AI tools.

I printed a realistic thyroid years ago for my wife after her surgery (she found it romantic, I promise), and this project felt like a similar closing of a chapter for me.

If you are looking to generate artistic models, figurines, or organic shapes without needing to master digital sculpting, this is the easiest workflow I have found to date.

If you want to try this out for your own projects, you can grab some extra credits and a discount on the pro plan using the links below.

Try Tripo 3.0: Click Here to Start Creating

Discount Code: Use code TRIPOCREW for a discount on the Professional subscription.

Happy printing, and thanks for following along with my recovery journey.

Creality K2 Plus Upgrade Series: Installing the Micro Swiss FlowTech Hotend

The Creality K2 Plus has established itself as a flagship machine, but for the “Engineering Enthusiast,” stock hardware is rarely the end of the road. In the latest installment of the K2 Plus Upgrade Series, I tackle a critical component swap: replacing the stock hotend with the Micro Swiss FlowTech system equipped with the CM2 High Flow Hardened Steel nozzle.

This guide covers the technical specifications, a direct weight comparison, and the step-by-step installation process to help you decide if this upgrade is right for your rig.


The primary motivation for this upgrade is flow performance and durability. While browsing upgrade paths, I secured the Micro Swiss FlowTech hotend, pairing it specifically with the CM2 High Flow nozzle.

It is important to distinguish between the nozzle options available for this ecosystem. Micro Swiss offers standard plated nozzles and generic high-flow versions, but the CM2 stands out because it utilizes hardened steel. This is a critical distinction for users printing with abrasive engineering materials like carbon fiber filled filaments.

The CM2 boasts a flow rate of 50 cubic millimeters per second, ensuring the hotend can keep up with the rapid kinematics of the K2 Plus.

📸 IMAGE PLACEHOLDER: Product shot of Micro Swiss FlowTech hotend and CM2 nozzle packaging

Micro Swiss FlowTech Hotend for Creality K2 Plus

High-performance hotend replacement designed specifically for the K2 Plus

Micro Swiss CM2 High Flow Hardened Steel Nozzle

50mm³/s flow rate, hardened steel for abrasive filaments

Before installation, I performed a side-by-side comparison of the OEM equipment versus the Micro Swiss replacement.

Stock K2 Plus Hotend

Stock K2 Plus Hotend

Micro Swiss FlowTech Hotend

Micro Swiss FlowTech Hotend

Visually, the Micro Swiss unit features significantly larger and more complex cooling fins, suggesting improved thermal management. Interestingly, the heating element section appears slightly smaller on the FlowTech compared to stock.

In terms of mass—a critical factor for input shaping calibration—the difference is negligible:

ComponentWeight
Stock Hotend44 grams
Micro Swiss FlowTech45 grams

This 1-gram difference confirms that the Micro Swiss is effectively a drop-in replacement that won’t drastically alter the toolhead’s mass characteristics. This means your existing input shaping profiles will remain largely valid.


The process begins by carefully unplugging the two connectors attached to the main breakout board. These connectors can be tight, so caution is required to avoid damaging the board headers.

Once disconnected, remove the two retaining screws located near the bottom plate of the hotend assembly.

When seating the new FlowTech hotend, proper orientation is vital:

  1. The unit features an indent that must face the front of the printer
  2. Ensure the wires are routed toward the front
  3. Position the brass wire at the top

Getting this orientation correct prevents issues with thermistor readings and ensures proper cooling fan operation.

With the hotend seated, reinstall the mounting screws:

  1. Loosely thread the front screws first
  2. Then secure the top screws
  3. Final tightening once everything is aligned

This sequence ensures the unit is properly aligned before final tightening and prevents cross-threading or misalignment.


Hardware installation is only half the battle. After powering on the machine, I verified that the thermistor was reporting ambient temperature correctly before attempting to heat the nozzle.

Because the mass and flow characteristics have changed slightly, users should run the full calibration suite:

  1. PID Tune: To ensure stable temperatures
  2. Input Shaping: To account for the slightly different weight distribution
  3. Auto-Leveling: To adjust for any Z-offset changes

To validate the install, I printed a 3DBenchy using ASA filament.

Results:

  • Extrusion quality: Excellent, consistent flow throughout
  • Layer adhesion: Perfect interlayer bonding
  • ⚠️ Bed adhesion: Lifting at the chimney (common with ASA on stock surface)

While the print suffered from a bed adhesion issue—a common struggle with ASA on stock build surfaces—the extrusion quality itself was excellent. The body of the Benchy looked “phenomenal,” confirming that the FlowTech is delivering consistent extrusion.


Creality K2 Plus Printer

Core XY high-speed printer

K2 Plus Hardened Extruder Gears

Prevent wear from abrasive filaments - highly recommended companion upgrade

This project is sponsored by PCBWay. Whether you need custom PCB prototyping, CNC machining, or 3D printing services for your next build, PCBWay offers professional-grade manufacturing solutions.

Check them out here: https://www.pcbway.com/


The Micro Swiss FlowTech hotend paired with the CM2 High Flow nozzle represents a meaningful upgrade for K2 Plus owners who:

  • Print with abrasive engineering materials (carbon fiber, glass fiber, etc.)
  • Need higher flow rates for large prints
  • Want improved thermal management
  • Seek longer nozzle lifespan

The near-identical weight means minimal impact on your existing calibrations, while the hardened steel construction ensures durability for hundreds of hours of printing.

Yes, if you:

  • Regularly print with abrasive filaments
  • Push high flow rates with large nozzles
  • Want to future-proof your hotend investment

Maybe wait if you:

  • Only print PLA/PETG with standard flow rates
  • Haven’t experienced issues with the stock hotend
  • Are on a tight budget

If you found this technical guide helpful in navigating your K2 Plus upgrades, consider supporting the channel directly.

Ko-fi: https://ko-fi.com/minimal3dp

YouTube: Subscribe to Minimal 3DP on YouTube for more upgrade guides and technical deep dives.



Disclaimer: This post contains affiliate links. Minimal 3DP may earn a small commission at no extra cost to you, which helps fund future technical deep dives.

Stop Guessing: Introducing the FDM Filament Recommendation Engine

One of the biggest problems I have in my 3D printing journey is simply trying to remember which filament is best for which scenario. If I need a UV-resistant filament for an outdoor part, or if I need to know if a specific engineering-grade material is actually printable on my current setup, digging through PDF Technical Data Sheets (TDS) takes forever.

To solve this, I’ve developed a new app: the FDM Filament Recommendation Engine.

You can watch my full video introduction here:

The Solution: A Data-Driven Filament Finder

Section titled “The Solution: A Data-Driven Filament Finder”

Link to Tool: filament.minimal3dp.com

The goal of this application is to let you sort, query, and filter through over 40 different materials to find the one that fits your specific project needs.

I developed this by analyzing various manufacturer TDS records, but I know those aren’t always perfectly accurate. To validate the data, I also cross-referenced peer-reviewed journal articles. I utilized AI to help extract and organize this massive amount of data into a usable format.

For those of you who saw the early version of this tool, I’ve made several updates based on my own testing and user feedback:

I originally had three different choices for “strength,” but they were all telling me the same thing. I have simplified this to just General Strength and Compressive Strength to make the data easier to read.

You can filter by “Printability.” If you back the slider off to an 8, you’ll see familiar materials like PLA and PETG. If you look at engineering materials like PC or ASA, you’ll see that score drop significantly—reflecting the real-world difficulty of printing those materials.

This is probably the most useful feature. You can select multiple filaments (for example, UV-resistant materials like ASA, PC, and others) and hit “Compare.” This gives you a side-by-side look at their cost score, heat compatibility, and stiffness.

I’ve added information on whether a material can be annealed—the process of heating the print after printing to make the material stronger and more dimensionally stable.

I have added a feedback form to the site. If you have a better source of data than the TDS sheets or journal articles I have used, please feel free to submit it. My goal is to make this a complete repository of knowledge for us to use.

This project is sponsored by PCBWay. I want to thank them for their continued support of the Minimal 3DP channel.

If you are working on a project that requires custom PCBs, I highly recommend checking out their design services. They have powerful tools on their website to get an instant quote, and their help with PCB design layout starts at just $88.70 US.

Looking for more 3D printing tools and guides?


If you found this tool helpful, you can support my work here:

K2 Plus Upgrade Series Part 1: All-Metal Extruder Gear Kit

Intro motivation; stock limitations; goals (reliability, higher flow, reduced wear).

Series Navigation: Part 1 (Current) · Part 2 (Nozzle Wiper) · Part 3 (Klipper & Profile)

List gear kit components, required tools, affiliate links placeholders.

  1. Disassemble stock extruder
  2. Inspect drive gears & tensioner
  3. Install all-metal gear kit
  4. Reassemble & tension spring

Common issues (slipping, grinding, inconsistent extrusion) and fixes.

Continue with Part 2: Nozzle Wiper Module or jump ahead to Part 3: Klipper Installation & Profile.

K2 Plus Upgrade Series Part 2: Nozzle Wiper Module

Why nozzle hygiene matters; benefits for automation.

Module components; mounting hardware; safety precautions.

  1. Positioning and alignment
  2. Mounting hardware torque guidance
  3. Firmware/macros adjustments (Klipper snippets placeholder)

First layer test; stringing reduction examples.

Link back to Part 1 and forward to Part 3 (Klipper install + profile).

K2 Plus Upgrade Series Part 3: Klipper Installation & OrcaSlicer Profile

Transformation benefits: speed, macro control, print quality.

Completed Part 1 & 2; hardware state summary.

Flash process; configuration file sections; CAN notes (future expansion).

Baseline settings; acceleration, input shaping references; filament presets.

Speed vs quality trade-offs; sample prints.

Summarize improvements; invite feedback; internal links to related guides.

Mastering Bed Types in OrcaSlicer: Automate Z-Offsets and Temperatures

I found a feature that is incredibly powerful for anyone running multiple build plates on a single printer: specifying bed types.

If you swap between a smooth PEI sheet, a textured plate, or a cool plate, you usually have to manually adjust your Z-offset or run a bed level every time. However, OrcaSlicer allows you to automate this process, saving your Z-offset and temperature settings based on the specific bed you select. For broader slicer tuning, visit the OrcaSlicer Tutorials Hub.

OrcaSlicer generally supports four standard bed definitions: Cool Plate, Engineering Plate, High Temp Plate, and Textured PEI Plate. Even if your specific brand of plate isn’t listed, you can use these presets as placeholders to trigger specific settings.

To enable this feature:

  1. Open OrcaSlicer and go to Printer Settings.
  2. Check the box for “Support multiple bed types”.
  3. Once enabled, you will see a dropdown menu allowing you to select your active bed type directly in the main interface.

One immediate benefit of this feature is temperature management. Different bed materials require different surface temperatures.

For example, I typically use a smooth PEI high-temp plate at 60°C. However, I recently started using the BigTreeTech MENT BQ Cryo Grip ProGlacial beds. These are double-sided (smooth and textured), but they run best about 5 to 10 degrees cooler than standard PEI.

By utilizing the bed type settings in the Filament tab, I can assign specific temperatures to specific plate types (e.g., setting the “Cool Plate” slot to 55°C). This allows me to “set it and forget it”—the slicer handles the temp change automatically based on the bed I select.

The most powerful application of this feature is automating your Z-offset. To make this work, you need to pass the bed type variable from OrcaSlicer to your printer’s start code. After implementing this, refine extrusion consistency using Flow Calibration and ringing reduction with Input Shaping.

In your OrcaSlicer machine start G-code, you need to add a specific variable so the printer knows which bed is selected. The code looks like this:

{if curr_bed_type=="Textured PEI Plate"}
SET_GCODE_OFFSET Z=-0.05
{else}
SET_GCODE_OFFSET Z=0.0
{endif}

Available bed types are:

Terminal window
"Cool Plate"
"Engineering Plate"
"High Temp Plate"
"Textured PEI Plate"

This line sends the current bed selection to your printer’s configuration. For more macro examples see the Klipper Calibration Hub.

Once the printer receives the variable, you can use conditional logic (If/Else statements) in your printer’s configuration (like Klipper macros) to adjust the Z-offset.

Based on examples found on the Creality K2 Plus forums and AI-generated code, the logic works as follows:

  • Capture the Variable: The macro grabs the uppercase variable CURR_BED_TYPE.
  • If/Else Statements: The printer checks which bed is active and applies a specific offset.
    • Example: If using a glass plate, set Z-offset to 0.
    • Example: If using Textured PEI, set Z-offset to -0.03.
  • Fallback: You can include an else statement to handle any unknown bed types.

This feature adds a layer of convenience and optimization to your workflow. Whether you are looking to automate temperature changes for Cryo Grip plates or swap between smooth and textured sheets without releveling, specifying bed types in OrcaSlicer is a game changer.

Thanks for stopping by! I’m still recovering, so I appreciate your patience if this wasn’t up to my usual standards, but I look forward to talking to you again soon.

Have questions about your start G-code? Leave a comment on the video!

Stop Guessing: I Built a FREE App for Your Best 3D Slicer Settings

Hey, this is Mike from Minimal3DP.

I’ve had a lot of time to think recently while recovering from heart surgery, and I put that time to use. Today, I want to talk about “the best 3D printer slicer settings” and what that really means.

We’ve all seen videos (even from my own channel) about the “best” settings. But when you open a modern slicer—my choice is OrcaSlicer—you’ll find hundreds, maybe thousands of different settings. The truth is, there is no single perfect setting for every scenario.

  • ✅ Why there’s no “one size fits all” slicer setting
  • ✅ How to use academic research to optimize your prints
  • ✅ How the new OrcaSlicer Expert Assistant works
  • ✅ How to prioritize settings for strength, speed, quality, or accuracy
  • ✅ What 130+ manufacturer data sheets reveal about filament properties

The Problem: Too Many Settings, Not Enough Guidance

Section titled “The Problem: Too Many Settings, Not Enough Guidance”

Instead of claiming one perfect setting exists, what we’re really doing is optimizing for a specific goal, whether that’s:

  • Aesthetics and quality - For display models and miniatures
  • Strength - For functional parts and mechanical components
  • Flexibility - For parts that need to bend or compress
  • Surface roughness - For smooth finishes or specific textures
  • Dimensional accuracy - For parts that must fit together precisely

Each goal requires different settings, and that’s where most tutorials fall short.

My Approach: Using Research, Not Just Opinion

Section titled “My Approach: Using Research, Not Just Opinion”

Rather than just giving you my opinion, I’m a big proponent of using Google Scholar. It’s a search engine for academic papers and journal articles. I typically filter my searches to find new articles (e.g., since 2021) to see what parameters affect what properties.

For example, a quick search for “FDM 3D printing process parameters” brings up articles that show exactly how slicer settings impact mechanical properties. I found one article I really like that provides a systematic survey of these parameters and their influence on part characteristics. It has a great diagram showing how settings affect:

  • Build time
  • Dimensional accuracy
  • Surface roughness
  • Flexural, compressive, and tensile strength

This research is incredibly helpful, but it’s not easy for everyone to parse. So, I started working on a program to help pull these settings from journal articles and give you a clear reference.

Introducing: The OrcaSlicer Expert Assistant

Section titled “Introducing: The OrcaSlicer Expert Assistant”

I’m excited to show you what I’ve built: The OrcaSlicer Expert Assistant.

➡️ Try the FREE app now:
https://settings.minimal3dp.com
No registration required • Works in your browser • Based on real research

While it’s named for OrcaSlicer, the principles and recommendations should work for any slicer you use, including PrusaSlicer and Cura.

The tool is designed to be simple and intuitive.

First, you select the filament you want to use. This is more than just a name—I’ve fed data from over 130 manufacturer technical data sheets into the app. I used AI to extract all the technical information (strength, heat distortion, glass transition temperature, chemical resistance, etc.) from those PDFs.

This means when you select a material like ABS, the app will give you:

Important Warnings:

  • 🔥 Heated enclosure required
  • 💧 Must be dried before use
  • 🌫️ Ventilation needed (releases fumes)

Material Benefits:

  • ✅ Good chemical resistance
  • ✅ High strength-to-weight ratio
  • ✅ Good heat resistance

You can also check out my complete filament guide for more details on each material type.

Next, you set your print priority on a scale from 0 (I don’t care) to 100 (max priority) for four key areas:

  • 💪 Strength: For functional parts, tools, and mechanical properties
  • ⚡ Speed: Great for iterating on a design and rapid prototyping
  • ✨ Quality: For display models, miniatures, and aesthetics
  • 📏 Accuracy: Critical for prints that need to fit together

The app understands that these priorities often conflict. For example, maximum speed usually reduces quality. The tool balances these trade-offs based on your priorities.

Once you hit “Get Expert Recommendations,” the tool analyzes your priorities and the filament data to give you a solid starting point.

Example 1: Dimensional Accuracy Priority

If you set Dimensional Accuracy to 100%:

  • ⚠️ The app will point out that shrinkage is a factor
  • 🐌 Recommend a slower outer wall speed (improves precision)
  • 🕸️ Recommend using the Arachne wall generator (better dimensional control)
  • 📐 Suggest layer height of 0.12 to 0.16mm (optimal for accuracy)

Example 2: Strength + Speed Priority

If you bump up Mechanical Strength and Build Time:

  • 🔥 Recommend higher print temperatures (better layer adhesion)
  • 📊 Suggest specific infill patterns (grid or honeycomb for strength)
  • ⚙️ Optimize speeds and acceleration for faster prints
  • 🎯 Balance layer height for strength vs speed trade-off

What makes this tool different from other “best settings” guides:

130+ manufacturer technical data sheets analyzed
Academic research from peer-reviewed journals
Systematic approach to parameter optimization
Material-specific recommendations based on properties
Priority-based balancing of conflicting goals

None of this is “perfect,” but it’s designed to give you a clear idea of how to set your settings in your slicer based on actual research, not just my opinion.

I’m not saying this is the be-all, end-all, but if you’re new to 3D printing and trying to figure out what settings to use, this should be a great start for you.

If you find the OrcaSlicer Expert Assistant helpful, check out my other free calculators:

I did add some affiliate links for different filaments on the side of the app. My hope is that this will help generate a little revenue that I can plow right back into my work for the channel and developing more free tools for the community.

If you’d like to support my work:

Is the OrcaSlicer Expert Assistant really free?

Yes! The app is 100% free with no registration required. It runs entirely in your browser and doesn’t collect any personal data. I may add affiliate links to filament brands to help support development.

Will this work with other slicers like PrusaSlicer or Cura?

Yes! While it’s designed for OrcaSlicer, the principles and most settings translate directly to PrusaSlicer (OrcaSlicer’s parent), Cura, and other FDM slicers. The parameter names might be slightly different, but the concepts are universal.

How accurate are the recommendations?

The recommendations are based on peer-reviewed academic research and technical data from 130+ manufacturer data sheets. However, they’re starting points that should be refined through calibration for your specific printer, material batch, and environment. Think of it as an educated starting point rather than a final answer.

What if I have multiple priorities (e.g., both strength AND quality)?

That’s exactly what the priority sliders are for! Set each priority from 0-100, and the app will balance the recommendations. For example, if you set both strength and quality to 80, it will find settings that optimize both without sacrificing too much of either.

Which filaments are included in the database?

The app includes data for major filament types (PLA, PETG, ABS, ASA, Nylon, TPU, etc.) compiled from 130+ manufacturer technical data sheets. Check my complete filament guide for detailed comparisons.

Can I request new features or report bugs?

Absolutely! Please email me at minimal3dp@gmail.com or comment on the YouTube video. I’m actively developing this tool and appreciate all feedback from the community.

Please, check out the app and let me know what you think. If you have any questions, comments, or notice any errors, please let me know.

🚀 Launch the OrcaSlicer Expert Assistant

https://settings.minimal3dp.com

Get research-backed slicer settings in seconds

After you get your recommended settings:

  1. Calibrate your printer - Ensure your printer is properly calibrated
  2. Learn OrcaSlicer features - Master the slicer’s advanced features
  3. Calculate print costs - Know the true cost of your prints
  4. Join the community - Ask questions and share results

I look forward to talking to you again soon. Thanks, and have a great day!


The Ultimate 3D Printing Filament Guide (2025) - Every Material Tested

Choosing the right 3D printing filament can make or break your project. After years of testing dozens of brands and materials, I’ve compiled this comprehensive guide to help you find the perfect filament for any application.

Quick Navigation:


PLA (Polylactic Acid) is the most popular 3D printing filament for good reason: it’s easy to print, doesn’t require a heated bed, and produces minimal odor. Perfect for beginners and decorative prints.

SUNLU PLA 3D Printer Filament

Best budget choice. SUNLU’s PLA offers exceptional value with excellent layer adhesion and dimensional accuracy. At under $14/kg, it’s my go-to for everyday printing.

Pros: Affordable, consistent diameter, great color selection
Cons: Slightly more brittle than premium brands
Best for: Prototypes, decorative prints, learning

$13.99

OVERTURE PLA Filament

Premium quality. OVERTURE is known for incredibly consistent diameter control (±0.03mm) and smooth finish. If you need reliability for important prints, this is worth the extra $6.

Pros: Consistent quality, smooth surface, minimal stringing
Cons: Higher price point
Best for: Final parts, gifts, detailed models

$19.99

Also Consider:

  • ELEGOO PLA ($16.99) - B0D421Q2Q2 - Vibrant colors, good middle-ground option
  • eSUN PLA ($17.99) - B0CS2XHNKL - Reliable basic PLA from a trusted brand

PLA+ offers significantly better layer adhesion and impact resistance compared to standard PLA, making it ideal for functional parts that need more durability.

eSUN PLA+ Filament

The industry standard. eSUN’s PLA+ is the original and still one of the best. Prints like PLA but with 3-4x the impact strength. Perfect bridge between ease-of-use and functionality.

Pros: Excellent toughness, minimal warping, easy to print
Cons: Slightly higher printing temperature
Best for: Functional parts, tools, fixtures

$20.99

Budget Alternative:

  • LANDU PLA+ ($17.99) - B0D69RV8W1 - Cost-effective with excellent strength

SUNLU 3D Printer Silk Filament

Beautiful silk finish with metallic sheen. Perfect for decorative items, jewelry, and artistic prints. The copper and gold colors are especially stunning.

Tip: Print slowly (40-50mm/s) for best surface finish.

$19.99

Creality Wood Filament PLA

Natural wood fiber composite with authentic wood texture. Can be sanded and stained like real wood. Great for decorative items, models, and artistic projects.

Tip: Vary temperature (190-220°C) during print to create wood grain effect.

$19.99

ELEGOO Carbon Fiber PLA Filament

Carbon fiber reinforced PLA for enhanced rigidity. Excellent dimensional stability and a premium matte finish. Warning: Use hardened steel nozzle to prevent wear.

Best for: Drone parts, RC car components, rigid structures

$24.99

AMOLEN Glow in The Dark PLA Filament

Luminous PLA that glows in the dark after light exposure. Fun for kids’ projects, decorations, and practical items like light switch covers.

Tip: “Charge” with UV light or bright LED for strongest glow.

$21.99

PETG combines the ease of PLA with the strength of ABS. It’s my top choice for functional parts that need durability without requiring an enclosure.

OVERTURE PETG 3D Printer Filament

Best all-around PETG. OVERTURE’s PETG offers excellent layer adhesion, minimal warping, and good chemical resistance. Perfect for mechanical parts, containers, and outdoor items.

Print Settings: 235-245°C hotend, 70-80°C bed
Pros: Strong, flexible, chemical resistant
Cons: Can be stringy (use retraction tuning)
Best for: Mechanical parts, containers, outdoor items

$21.99

Budget Options:

  • SUNLU PETG ($18.99) - B0DJS3PJVX - Reliable quality at best price
  • Creality PETG ($19.99) - B0C8NP63GD - Strong and flexible

For parts requiring heat resistance and durability, ABS and ASA are your go-to materials. Requires enclosure to prevent warping.

Polymaker ABS Filament

Premium ABS with minimal warping. Polymaker’s formula is easier to print than standard ABS and produces less odor. Excellent for automotive parts and functional components.

Print Settings: 240-250°C hotend, 100-110°C bed, requires enclosure
Best for: Automotive parts, tools, high-temp applications

$29.99

Polymaker ASA Filament

Best for outdoor use. ASA has excellent UV resistance (won’t fade or degrade in sunlight) while maintaining ABS’s strength and heat resistance. Perfect for outdoor fixtures, signs, and garden items.

Why ASA > ABS for outdoors: Won’t yellow or become brittle from UV exposure
Best for: Outdoor fixtures, automotive trim, signage

$29.99

Flexible filaments open up entirely new applications. Print phone cases, seals, gaskets, and flexible parts.

OVERTURE TPU Filament (95A)

Best TPU for beginners. 95A hardness offers good balance between flexibility and printability. Works on most direct drive printers without modifications.

Print Settings: 220-230°C, slow speed (20-30mm/s), direct drive recommended
Pros: Excellent elasticity, durable, abrasion resistant
Best for: Phone cases, gaskets, bumpers, wearables

$23.99

More Flexible Option:

  • OVERTURE TPU 85A ($29.99) - B0CYPGVK4D - Ultra-flexible for specialized applications

Engineering-grade material with excellent mechanical properties. Hygroscopic - requires dry box or dryer.

OVERTURE Nylon Filament

Strong and flexible nylon for mechanical parts. Excellent wear resistance and low friction coefficient make it perfect for gears, bushings, and living hinges.

Print Settings: 250-270°C hotend, 70-80°C bed, must keep dry
Best for: Gears, bushings, mechanical parts, living hinges

$27.99

Polymaker Fiberon PA612-CF Carbon Fiber Nylon

Industrial-grade material for demanding applications. CF-reinforced nylon offers incredible stiffness and dimensional stability. Requires hardened steel nozzle.

Best for: Drone frames, RC parts, tooling, jigs and fixtures

$69.99

Polymaker HT-PLA-GF Filament

Heat-stabilized PLA+ with enhanced temperature resistance. Can withstand temps up to 90°C after annealing. Prints like PLA but performs like engineering plastic.

Process: Print normally, then anneal at 100°C for 1 hour in oven
Best for: Functional parts, automotive, under-hood applications

$25.49

Polymaker Polycarbonate Filament

Virtually unbreakable. PC is used for bulletproof glass and riot shields. Excellent for protective cases, safety equipment, and impact-resistant parts.

Print Settings: 270-290°C, 100-120°C bed, enclosed printer required
Best for: Protective cases, safety equipment, high-impact applications

$39.99

For complex prints with overhangs, water-soluble supports make post-processing effortless.

SUNLU PVA Filament

Best water-soluble support. PVA dissolves completely in water, leaving perfect surface finish. Essential for dual-extrusion printers printing complex geometries.

Usage: Print PVA as support, soak in water 12-24 hours, supports dissolve completely
Compatible with: PLA, PETG (at lower temps)
Storage: Keep sealed with desiccant - extremely hygroscopic

$32.99

Alternative:

  • Polymaker PVA ($34.99) - B09KL8WBRY - Premium quality for critical prints

Filament Dryer (Critical for Nylon, PETG, PVA)

Section titled “Filament Dryer (Critical for Nylon, PETG, PVA)”

Creality Official Filament Dryer Box

Efficient filament dryer with adjustable temperature. Essential for hygroscopic materials like Nylon, PETG, and PVA. Prevents moisture-related print issues.

Why you need this: Moisture in filament causes:

  • Bubbling and popping during extrusion
  • Poor layer adhesion
  • Stringing and oozing
  • Brittle prints
$39.99

Decorative / Display:

  • Standard PLA - Best value
  • Silk PLA - Metallic sheen
  • Wood PLA - Natural texture

Functional Parts (Indoor):

  • PLA+ - Good strength, easy to print
  • PETG - Better impact resistance
  • Nylon - Maximum durability

Functional Parts (Outdoor):

  • ASA - UV resistant, weatherproof
  • PETG - Good all-around choice

Flexible / Elastic:

  • TPU 95A - Phone cases, bumpers
  • TPU 85A - Ultra-flexible applications

Heat Resistance:

  • ABS - Up to 100°C
  • ASA - Up to 100°C + UV stable
  • Nylon - Up to 120°C
  • HT-PLA (annealed) - Up to 90°C
  • Polycarbonate - Up to 140°C

Engineering / High-Strength:

  • Nylon - Mechanical parts
  • Nylon CF - Maximum stiffness
  • PC - Impact resistance
  • PETG CF - Engineering parts

  • Temperature: 200-220°C (hotend), 50-60°C (bed optional)
  • Speed: 50-80mm/s
  • Cooling: 100%
  • Easy: Best for beginners
  • Temperature: 235-245°C (hotend), 70-80°C (bed)
  • Speed: 40-60mm/s
  • Cooling: 0-50% (less is better)
  • Tip: Use glue stick on bed for easy removal
  • Temperature: 240-250°C (hotend), 100-110°C (bed)
  • Speed: 40-60mm/s
  • Cooling: 0-20%
  • Required: Enclosed printer, ventilation
  • Tip: Draft shield helps prevent warping
  • Temperature: 250-270°C (hotend), 70-80°C (bed)
  • Speed: 30-50mm/s
  • Cooling: 0-30%
  • Critical: Must store in dry box, dry before printing
  • Temperature: 220-230°C (hotend), 40-60°C (bed)
  • Speed: 20-30mm/s (slow!)
  • Cooling: 0-50%
  • Recommended: Direct drive extruder

Keep Filament Dry:

  1. Store in sealed bags with desiccant
  2. Use filament dry box for hygroscopic materials (Nylon, PETG, PVA)
  3. Dry before printing if absorbed moisture

Signs of Wet Filament:

  • Popping/crackling sounds during extrusion
  • Excessive stringing
  • Poor layer adhesion
  • Brittle prints

Drying Guide:

  • PLA: 45-50°C for 4-6 hours
  • PETG: 60-65°C for 4-6 hours
  • Nylon: 70-80°C for 8-12 hours
  • PVA: 45-50°C for 4 hours

Q: What’s the best filament for beginners?
A: Standard PLA. It’s affordable, easy to print, and doesn’t require a heated bed. Start with SUNLU PLA ($13.99) for best value.

Q: Can I print PETG without an enclosure?
A: Yes! PETG prints well without enclosure, unlike ABS/ASA. Just use 70-80°C bed temp and minimal cooling.

Q: Do I need a special nozzle for carbon fiber filaments?
A: Yes, hardened steel nozzle is essential. Brass will wear out quickly from abrasive CF particles.

Q: How long does filament last in storage?
A: PLA/PLA+: 1-2 years if kept dry. PETG/Nylon: 6-12 months. Always use desiccant in storage.

Q: Why is my nylon print brittle?
A: Most likely moisture absorption. Dry your nylon for 8-12 hours at 70-80°C before printing.

Q: Can I mix brands/materials?
A: Yes for same material type (different PLA brands work fine together). No for different materials in same print without proper interface settings.


Choosing the right filament depends on your specific application:

  • Just starting out? SUNLU PLA ($13.99)
  • Need strength? eSUN PLA+ ($20.99)
  • Functional parts? OVERTURE PETG ($21.99)
  • Outdoor use? Polymaker ASA ($29.99)
  • Flexible parts? OVERTURE TPU ($23.99)
  • Engineering? Nylon or Nylon CF

Remember: The “best” filament is the one that meets your specific needs at the right price point. Don’t overspend on engineering materials for decorative prints, but don’t compromise on quality for functional parts.

Have questions about which filament is right for your project? Drop a comment below and I’ll help you choose!


This post contains affiliate links. As an Amazon Associate, I earn from qualifying purchases at no cost to you. All recommendations are based on personal testing and experience.

M3DP 3D Print Cost Calculator

If you’ve ever thought about selling your 3D prints, one of the first and biggest hurdles is figuring out how to price them accurately. Most people just look at the material and electricity costs, but that’s a quick way to lose money.

I recently read an article called “Refined Cost Calculation Framework for FDM Parts,” which breaks down the entire cost process into much greater detail. It factors in everything:

  • Machine costs and energy
  • Tooling costs (like nozzle wear and build sheet lifespan)
  • Material and model costs
  • Labor costs (for setup, slicing, and post-processing)

This model is far more accurate, but the one major problem is that with so many inputs, it’s incredibly hard to keep it all straight.

I started building a spreadsheet to manage this for myself, and… well, it turned into a full-blown web tool.

Introducing the M3DP 3D Print Cost Calculator

Section titled “Introducing the M3DP 3D Print Cost Calculator”

I’ve created a 3D Print Cost Calculator that’s now live on my website. You can find it under the “M3DP Tools” menu item.

This tool is designed to help you capture all those hidden costs and generate a detailed quote, which you can save for your own records or print as a PDF to send to a customer.

In it, you can dial in specific parameters for:

  • Labor: Set your own hourly rate for slicing, machine setup, and post-processing.
  • Machine: Input your machine’s cost and estimated lifespan in hours.
  • Components: Add costs and lifespans for your nozzle and build plate (I found research suggesting a PEI sheet can last 5,000+ hours!).
  • Failure Rate: Add a percentage to help cover the cost of failed prints.
  • Markup: Add a final markup to the total calculated value.

One of the most important features: everything is saved 100% client-side. It all stays on your machine; nothing is saved to my server. You can even save and load different setting profiles.

I put together a video walking through the entire calculator, using a real-world part as an example. I show you where to find the tool, how to pull the data from your slicer, and how to fill out every field.

Watch the full video on YouTube: https://youtu.be/nA_-z5UbBJY

This tool is brand new, and I’m still testing it and adding features.

Please check it out, give it a try, and let me know what you think. If you see any errors, have suggestions for new features, or think of any costs that I’m not currently capturing, please let me know in the video comments or contact me through the site.

Hopefully, this helps you price your prints more accurately and professionally. I look forward to hearing what you think!


The methodology for this calculator was based on the concepts presented in the following research, which is also referenced within the tool itself:

OrcaSlicer 2.3.1 Alpha Just Dropped & How to Use the New Flow Rate Calibration

Mastering Extrusion: A Deep Dive into OrcaSlicer’s New Archimedean Flow Calibration

Section titled “Mastering Extrusion: A Deep Dive into OrcaSlicer’s New Archimedean Flow Calibration”

From Subjective Guesswork to Visual Precision: A Step-by-Step Guide to Perfecting Your Flow Rate with the OrcaSlicer 2.3.1 Alpha Feature

Section titled “From Subjective Guesswork to Visual Precision: A Step-by-Step Guide to Perfecting Your Flow Rate with the OrcaSlicer 2.3.1 Alpha Feature”

The Next Evolution in Slicing: Introducing OrcaSlicer 2.3.1 Alpha

Section titled “The Next Evolution in Slicing: Introducing OrcaSlicer 2.3.1 Alpha”

If you’re like me, you’re constantly on the lookout for the latest and greatest features to elevate your 3D prints from good to flawless.1 This relentless pursuit of perfection is the lifeblood of the 3D printing community, and it’s a spirit embodied by the team behind OrcaSlicer. More than just a piece of software, OrcaSlicer has established itself as a dynamic, open-source project at the vanguard of Fused Deposition Modeling (FDM) technology.2 It’s a slicer built by and for the community, characterized by a rapid development cycle that consistently delivers powerful, cutting-edge tools into our hands.

It is in this spirit of continuous innovation that the developers have released OrcaSlicer version 2.3.1 Alpha.1 This isn’t just a minor update; it’s a significant leap forward, offering an exciting glimpse into the future of slicing. This release is packed with enhancements that promise to refine our workflows and improve our print quality in tangible ways.

A Glimpse of the Future: What’s New in Version 2.3.1 Alpha?

Section titled “A Glimpse of the Future: What’s New in Version 2.3.1 Alpha?”

The 2.3.1 Alpha release is a treasure trove of new functionalities that address various aspects of the printing process. While this guide will focus on one revolutionary feature, it’s worth taking a moment to appreciate the breadth of improvements included in this update.1 The key additions are:

  • A new sparse infill rotation system for stronger, more efficient internal structures.
  • Substantial changes and improvements to the fuzzy skin feature, offering more creative control over surface textures.
  • Integrated input shaping calibration for printers running Klipper firmware.
  • A new junction deviation calibration test for users with Marlin-based machines.
  • And, the focus of our deep dive today, a completely redesigned and more intuitive method for flow rate calibration.1

Each of these features deserves its own detailed exploration, and I plan to cover them in future articles and videos. However, the new flow calibration method represents such a fundamental shift in approach and offers such a significant improvement in accuracy and ease of use that it warrants a dedicated, comprehensive guide. My goal here is to provide a focused, exhaustive walkthrough that will empower you to master this new tool immediately, without wasting your time.1

Multimedia Integration: Watch the Guide in Action

Section titled “Multimedia Integration: Watch the Guide in Action”

For those who prefer a visual demonstration, I have created a complete video walkthrough that complements this written guide. You can watch it to see the entire process in action, from launching the test in OrcaSlicer to analyzing the physical prints.

The Philosophy of Alpha Releases in Open Source

Section titled “The Philosophy of Alpha Releases in Open Source”

Before we dive into the technical details, it’s important to understand the context of an “Alpha” release. In the world of open-source software, an alpha version is far more than just an early, potentially unstable preview. It represents a philosophical choice that lies at the heart of community-driven development.2 Unlike the closed, internal testing of proprietary software, a public alpha is a transparent invitation for the most engaged users to become active participants in the development process.

The OrcaSlicer project thrives on this collaborative model, offering not just stable releases but also “Nightly Builds” for those who want to test the absolute latest code.2 When you download and use OrcaSlicer 2.3.1 Alpha, you are not merely a consumer; you are a collaborator. The feedback you provide, particularly through well-documented bug reports, is invaluable data that helps the developers refine, debug, and perfect these new features before they are rolled into a stable release.1 This guide will not only show you how to use the new flow calibration but also how to responsibly contribute back to the project that provides these powerful tools for free.

From Subjective Feel to Objective Data: A Paradigm Shift in Flow Calibration

Section titled “From Subjective Feel to Objective Data: A Paradigm Shift in Flow Calibration”

The Old Way: Limitations of the Diagonal Surface Test

Section titled “The Old Way: Limitations of the Diagonal Surface Test”

To fully appreciate the brilliance of the new flow calibration method, we must first understand the limitations of the one it replaces. For a long time, flow rate calibration in OrcaSlicer (and many other slicers) involved printing a series of square patches, each with a different flow modifier.[4, 5] The top surface of these squares was printed with a simple diagonal line pattern, moving back and forth at a 45-degree angle.1

The process for determining the correct flow rate was almost entirely subjective. The official instruction was to run your fingers across the printed squares and select the one that felt the smoothest to the touch.1 While this method can work, its effectiveness is heavily dependent on the user’s experience and tactile sensitivity. A beginner might struggle to discern the subtle differences between patches, while even an expert’s judgment could be influenced by lighting or the specific texture of the filament. This subjectivity was the primary weakness of the old system, creating a barrier to achieving consistent, repeatable results.

Introducing the Archimedean Chord: A Smarter Pattern for a Smarter Slicer

Section titled “Introducing the Archimedean Chord: A Smarter Pattern for a Smarter Slicer”

The 2.3.1 Alpha release replaces the ambiguous diagonal pattern with a far more intelligent design: a concentric pattern based on an Archimedean chord.1 This isn’t just a cosmetic change; it’s a fundamental re-engineering of the test based on geometric principles.

An Archimedean spiral is a shape defined by a path that moves away from a central point at a constant angular velocity. In simpler terms, the distance between each successive turn of the spiral remains constant. When the toolhead of a 3D printer traces this path, it should lay down a series of perfectly concentric lines with a uniform gap between them. This geometric purity is the key to the test’s effectiveness. Any deviation from the ideal amount of extruded filament—either too much or too little—will immediately disrupt this perfect, repeating pattern in a way that is visually and tactically obvious.

Unlike the old diagonal pattern, where over-extrusion might simply result in a slightly rougher surface, the Archimedean pattern provides clear, unmistakable evidence. This new test, as highlighted in the updated OrcaSlicer wiki, is now the recommended method for dialing in your flow rate.1

This evolution from a tactile, experience-based method to a visually explicit one represents more than just a technical upgrade; it’s a move that democratizes precision in 3D printing. It effectively lowers the barrier to entry for achieving one of the most critical calibrations, empowering users of all skill levels to diagnose and resolve extrusion issues with a newfound level of confidence.

The old method relied on an acquired skill—a developed “feel” for surface smoothness that created a knowledge gap between newcomers and seasoned veterans.1 The new test replaces this subjectivity with objective, observable data. Over-extrusion presents itself as distinct ridges where “the edge of the circle is really sticking out,” while under-extrusion creates clear “valleys” or gaps between the lines.1 These are not matters of opinion; they are measurable physical artifacts.

This aligns perfectly with OrcaSlicer’s overarching mission: to package “advanced calibration tools” within a “user-friendly interface” that supports a “wide printer compatibility”.2 By making a foundational calibration process like flow rate easier to perform and more reliable to interpret, the software empowers a much broader range of users to achieve superior print quality. It removes the gatekeeper of subjective “feel” and replaces it with the clarity of visual evidence. This new feature is a perfect encapsulation of the project’s philosophy: it doesn’t just add power for experts; it engineers that power in a way that elevates the entire community.

A Practical Guide: Dialing in Your Flow Rate with the New Test

Section titled “A Practical Guide: Dialing in Your Flow Rate with the New Test”

Before you jump into printing the new calibration test, a little preparation will ensure you get the most accurate results possible.

First, this test is designed to refine an existing flow rate, not to establish one from absolute zero. It is most effective when you start with a filament profile that is already reasonably well-configured. The calibration test works by applying small positive and negative modifiers to your filament’s current flow ratio setting. As the transcript notes, “it doesn’t reset it back to one. It’s based on what it’s currently set at”.1 So, if your filament profile’s flow ratio is already set to 0.98, the test chips will be modifiers based on that value.

Second, for the most scientifically accurate calibration, it’s crucial to follow the recommended order of operations. According to the official OrcaSlicer wiki, you should always calibrate temperature before calibrating flow rate.4 The temperature of your nozzle directly affects the viscosity of the filament, which in turn impacts how it flows. Dialing in your temperature first ensures that you are calibrating flow under the correct thermal conditions.

With your slicer open and your printer profile selected, launching the new test is straightforward.

  1. Navigate to the top menu bar.
  2. Click on the “Calibration” dropdown.
  3. Select “Flow Rate.” A new test plate will be automatically generated in your workspace.

You will see a series of small, square chips laid out on the build plate. Each chip is labeled with a modifier value, such as 0, -0.01, +0.01, etc. This is the new, recommended test that utilizes the Archimedean pattern.1

Once the test plate is generated, simply slice it using the filament profile you wish to calibrate and send it to your printer. While it’s printing, prepare a well-lit area for inspection. Good lighting is critical for visually identifying the subtle surface differences between the test chips.

Step 3: Interpreting the Print – The Art of Sight and Touch

Section titled “Step 3: Interpreting the Print – The Art of Sight and Touch”

This is the most critical part of the process. Once the print is finished and has cooled, carefully remove it from the build plate. You will now analyze each chip, using both your eyes and your fingertips, to find the one that represents the “Goldilocks” zone of perfect extrusion.

Over-extrusion occurs when the printer pushes out too much filament. On the Archimedean pattern, this is incredibly easy to spot.

  • Visual Cues: Look for concentric circles where the edges are raised and pronounced. As the transcript describes, “the edge of the circle is really sticking out”.1 This happens because the excess plastic has nowhere to go and is forced upwards, creating distinct ridges. The surface may look overly glossy and lose fine detail.
  • Tactile Cues: When you run your finger across an over-extruded chip, it will feel bumpy and rough. You will be able to clearly feel the ridges formed by the excess filament. The chips with positive modifiers (e.g., +0.03, +0.05) are most likely to exhibit these characteristics.

Under-extrusion is the opposite problem: the printer is not pushing out enough filament to fill the toolpath completely.

  • Visual Cues: Look for visible gaps between the concentric lines. You may be able to see the layer below through these gaps. The transcript refers to these as “valleys” in the surface.1 The surface might also have a dull, matte, or unfinished appearance because the lines are not properly squishing together.
  • Tactile Cues: An under-extruded chip will feel textured or even hollow. Your finger will catch on the gaps between the lines, giving it a rough or scratchy feel. The chips with negative modifiers (e.g., -0.03, -0.05) are the primary candidates for this issue.

The “Goldilocks” Zone – Identifying the Optimal Result

Section titled “The “Goldilocks” Zone – Identifying the Optimal Result”

Your goal is to find the single chip that is perfectly smooth, both visually and by feel.1

  • The Ideal Chip: The best chip will have a uniform, smooth top surface with a consistent, healthy shine.1 The concentric lines should be laid down perfectly next to each other with very little to no visible gaps. When you run your finger across it, it should feel almost like a single, solid surface. In my own testing for the video, the chip labeled 0 was the best, indicating my existing flow rate was already well-calibrated.1
  • An Important Nuance: It is crucial to understand one key detail from the official documentation: “it is okay to have a visible line between the inner and outer spiral”.1 The goal is not to create a completely fused, monolithic surface where the lines are indistinguishable. The perfect result is one that shows distinct lines laid down with “very little gap between” them.1 Do not mistake the faint line between toolpaths for under-extrusion. You are looking for the smoothest possible surface that is free of ridges (over-extrusion) and significant valleys (under-extrusion).

Step 4: Applying the Results and Updating Your Profile

Section titled “Step 4: Applying the Results and Updating Your Profile”

Once you have identified the best chip, updating your filament profile is incredibly simple. The value printed on the chip is the exact modifier you need to apply to your current flow ratio.

The logic is simple addition or subtraction:

  • If you picked a chip with a positive value (e.g., +0.02), you add that value to your current flow ratio.
  • If you picked a chip with a negative value (e.g., -0.03), you subtract that value from your current flow ratio.
  • If you picked the 0 chip, no changes are needed.

Let’s use the concrete example from the transcript: imagine your filament’s flow ratio was set to 0.98 and you determined that the chip labeled +0.01 was the smoothest. Your new flow ratio would be $0.98 + 0.01 = 0.99$.1 This direct arithmetic is a significant improvement in user experience over older, more complex percentage-based formulas.[4, 5]

To make the change in OrcaSlicer:

  1. Go to the “Filament” tab in the left-hand panel.
  2. Click the “Edit preset” icon next to your chosen filament profile.
  3. In the filament settings window, scroll down until you find the “Flow Ratio” parameter.
  4. Enter your newly calculated value.
  5. Crucially, click the “Save” icon at the top of the window to save your changes to the profile. Forgetting this last step is a common mistake that will cause you to lose your newly calibrated value.

The Enabler’s Guide: Responsible Use of Alpha Software

Section titled “The Enabler’s Guide: Responsible Use of Alpha Software”

Choosing to use alpha software is choosing to step onto the front lines of development. It’s a decision that reframes your role from a passive user to an active tester and contributor. Every print you run, every setting you tweak, provides real-world data that is impossible to replicate in a controlled lab environment. By engaging with these new features early, you are providing an invaluable service to the developers and the entire OrcaSlicer community. You are helping to forge the tools that everyone will be using in the next stable release.

How to Submit an Effective Bug Report: A Checklist

Section titled “How to Submit an Effective Bug Report: A Checklist”

Finding a bug in alpha software is not a failure; it’s a success. It’s an opportunity to contribute directly to the project’s improvement. However, the usefulness of your discovery depends entirely on the quality of your bug report. A vague or incomplete report is often unusable. To help you make the most impactful contributions, here is a checklist for submitting an effective bug report on the OrcaSlicer GitHub page, based directly on best practices.1

StepActionWhy It’s Important
1Search FirstGo to the OrcaSlicer GitHub “Issues” page and search to see if your bug has already been reported.
2Provide ContextState the exact OrcaSlicer version (e.g., 2.3.1 Alpha), your Operating System (e.g., Windows 11, macOS Sonoma), and OS version.
3Document StepsWrite a clear, numbered list of the exact steps required to reproduce the error. Be as specific as possible.
4Include Your SetupMention the specific 3D printer profile you are using (e.g., Voron 2.4, Bambu Lab X1C, Creality Ender 3).
5Add Visuals & LogsAttach screenshots that clearly show the issue. If the slicer crashes, include the debug log file it generates.

A well-structured bug report is one of the most powerful contributions a user can make to an open-source project. It transforms a moment of frustration into a constructive step toward a more robust and reliable piece of software for everyone. Despite its “Alpha” status, my own experience with version 2.3.1 has been that it “seems rock solid,” a testament to the quality of the developers’ work and likely the result of excellent community feedback during the nightly build phase.1

Conclusion, Community, and Further Resources

Section titled “Conclusion, Community, and Further Resources”

The introduction of the Archimedean chord flow calibration in OrcaSlicer 2.3.1 Alpha is a definitive step forward for precision 3D printing. By replacing a subjective, tactile test with a visually objective and geometrically intelligent one, OrcaSlicer has made a critical calibration process more accessible, repeatable, and accurate for users of all experience levels. It is a smarter test for a smarter slicer, and a perfect example of the thoughtful innovation that defines the project.

Your experience and feedback are what make the 3D printing community thrive. Now that you’ve learned about this new feature, I encourage you to join the conversation.

  • Have you tried the new flow test? What were your results? Is there another new feature in the 2.3.1 Alpha release that you feel I should highlight in a future guide? As I always say, “just leave me a comment and I’ll get back to you as soon as I can”.1
  • If you found this guide valuable, please consider giving it a few ‘claps’ here on Medium. This is a simple, free way to show your support, and it helps the platform’s algorithm show this article to more people who might benefit from it.
  • For more deep dives, tutorials, and the latest updates in 3D printing and OrcaSlicer, be sure to subscribe to my YouTube channel and follow me here on Medium.1

The OrcaSlicer Ecosystem: References and Further Reading

Section titled “The OrcaSlicer Ecosystem: References and Further Reading”

To continue your journey and become more involved with the OrcaSlicer project, here are the essential official resources. I strongly recommend bookmarking these to ensure you are always getting information from the primary source.

  • Official OrcaSlicer GitHub Repository: This is the home of the project. Here you can download the latest stable and alpha releases, read the full release notes, and report bugs.2
  • Official OrcaSlicer Wiki: An invaluable resource for detailed documentation on all of OrcaSlicer’s features, including the main Calibration page which provides a broader overview of the entire tuning process.4
  • Official OrcaSlicer Discord Server: The best place to engage with the community in real-time, ask questions, and get support from fellow users and the developers themselves.2

Finally, I want to extend a heartfelt thank you to all of my subscribers and members. Your support is what makes it possible for me to create in-depth content like this guide. Thank you for being a part of this community.1

Level Up Your Prints: Why Line Width is Your 3D Printing Secret Weapon

Level Up Your Prints: Why Line Width is Your 3D Printing Secret Weapon

Section titled “Level Up Your Prints: Why Line Width is Your 3D Printing Secret Weapon”

Hey everyone! In my latest video, I dove deep into a 3D printing setting that often gets overlooked but makes a massive difference in your final prints: line width. For a long time, I was all about chasing faster print times, but I’ve come to realize that optimizing for quality and strength is well worth a few extra minutes – and line width is a key player in achieving just that [00:35].

What I Learned (and You Should Too!):

One of the biggest takeaways for me was just how much line width impacts the strength of your parts. Think about it: wider lines mean more material is laid down and there’s greater overlap between those lines, especially when it comes to printing walls. This significantly reduces those annoying little voids and makes your prints much more structurally sound [01:25], [03:06].

In the video, I specifically explored the line width settings within Orca Slicer. It’s pretty cool how much control you have, with options for the default width, the first layer, outer walls, and even the top surface [01:38].

Through my research (and a bit of trial and error!), I found that for a standard 0.4mm nozzle, bumping up the default line width to around 0.5mm (that’s 125%) seems to be a sweet spot. This aligns with recommendations in the Orca Slicer wiki and what others in the community are finding [05:10].

The best part? I was genuinely surprised at how little impact these adjustments had on the overall print time. The test print I showed in the video only took about 7 seconds longer with the optimized settings [10:06]. That’s a tiny trade-off for a noticeable improvement in quality!

Speaking of quality, I was really happy with how much cleaner the top surface looked after making these changes. You could see a real difference in how those layers blended together, resulting in fewer visible lines [11:22].

Oh, and here’s a little bonus tip I shared in the video: if you’re struggling with removing support material, try using a slightly thinner line width (smaller than your nozzle diameter) for your support structures. It makes them much easier to break away [08:37].

Give it a Shot!

Ultimately, what I wanted to show in this video is that taking the time to dial in your line width settings is well worth the effort. It’s all about finding that balance between print speed, the quality of your finished product, and the overall strength of your 3D prints [12:33].

Check out the full video for a more in-depth look and to see the results for yourself!

Watch the video here: Video Link

Let me know in the comments what line width settings you’ve found work best for you – I’m always learning! What else are you curious about in the world of 3D printing?

Extrusion Rate Smoothing in OrcaSlicer

Extrusion Rate Smoothing in OrcaSlicer: A Comprehensive Guide

Section titled “Extrusion Rate Smoothing in OrcaSlicer: A Comprehensive Guide”

Understanding and Optimizing Your 3D Prints

Section titled “Understanding and Optimizing Your 3D Prints”

3D printing involves a lot of intricate settings to achieve the best possible results. One of the advanced features in Orcaslicer that can significantly impact print quality is extrusion rate smoothing. This post will explore what it is, why it’s important, and how to use it effectively.

Extrusion rate smoothing, similar to Prusaslicer’s pressure equalizer, is a feature that limits the rate of extrusion volume change below a certain threshold. In simpler terms, it helps Orcaslicer manage how much plastic needs to be pushed out by the extruder. Think of it as gently applying the brakes in a car rather than jamming them on. It smooths out the start and stop of extrusion, especially during speed changes at corners and bridges.

  • Consistent Extrusion: It leads to more consistent extrusion, particularly at high speeds.
  • Reduced Inconsistencies: It helps eliminate inconsistencies during speed changes, such as at corners
  • Aids Pressure Advance: It works in conjunction with pressure advance for better results.
  • Smoother Finishes: Contributes to smoother surface finishes.

During printing, the printer constantly speeds up and slows down, especially at corners and overhangs. These speed changes necessitate changes in the amount of plastic being pushed out. Sudden changes can be difficult for the extruder and firmware to handle, leading to artifacts like bumps and bulges. Extrusion rate smoothing creates speed ramps, gently slowing down before a change and gradually speeding up afterward. This makes it easier for the extruder to keep up, reducing unwanted artifacts.

Extrusion Rate Smoothing, Pressure Advance, and the Motion Planner

Section titled “Extrusion Rate Smoothing, Pressure Advance, and the Motion Planner”

The printer’s firmware has a motion planner that interprets speed change commands and translates them into motor movements. Pressure advance calculates the necessary slowdown to reach the target speed. Extrusion rate smoothing regulates the pressure changes, creating a smooth ramp-up and ramp-down of pressure. Without it, sudden speed changes can cause blobs and artifacts.

Using Extrusion Rate Smoothing in OrcaSlicer

Section titled “Using Extrusion Rate Smoothing in OrcaSlicer”

In OrcaSlicer, the extrusion rate smoothing settings can be found in the speed section of the process parameters. These settings include segment length and an option to apply it only to external features.

To determine the appropriate values, you can refer to the OrcaSlicer wiki or use my [Klipper Calibration spreadsheet(https://docs.google.com/spreadsheets/d/1LlSHsa86RuT_btswmDsmQp0LrTJ9U0HJcRhorsqz1ug/edit?usp=sharing)]. The spreadsheet helps calculate the maximum ERS value based on parameters like outer wall acceleration, line width, and layer height. It’s recommended to start with an experimental value between 60% and 80% of the maximum calculated ERS.

  • A lower ERS value means more aggressive smoothing, and a higher value means less smoothing.
  • If the ERS value exceeds the maximum, it won’t be applied.
  • Extrusion rate smoothing is most useful for high accelerations and large flow rates, such as on a Voron with a high flow hotend and when pressure advance is set.
  • For Bowden printers, especially with flexible filaments, a lower ERS value is generally better. Direct drive printers can typically use higher values.
  • This value may need to be adjusted when changing acceleration or if you notice inconsistencies.
  • It’s a user-determined value, so experimentation is key.
  • Potential downsides include increased print time (though this is rare) and a possible loss of fine detail in some cases.
  • Crucially, extrusion rate smoothing won’t solve problems caused by an improperly calibrated printer.
  • The ERS value sets the maximum rate of change for extruded plastic, not the extrusion speed itself.
  • Start with recommended values (60-80% of the maximum) and increment by 10%.
  • Use low rates for Bowden setups with flexible filaments and higher rates for direct drive.
  • Pay close attention to overhangs to assess the effect of the setting.
  • Don’t exceed the maximum ERS value.
  • If using Klipper, calibrate pressure advance before adjusting extrusion rate smoothing.

Extrusion rate smoothing is a powerful tool in OrcaSlicer for optimizing print quality. By understanding its mechanics and how to adjust the settings, you can achieve smoother, more consistent 3D prints.

3D Printing and Max Volumetric Speed

Finding Your 3D Printer’s Sweet Spot - A Guide to Maximizing Print Speed

Section titled “Finding Your 3D Printer’s Sweet Spot - A Guide to Maximizing Print Speed”

Have you ever wondered how fast your 3D printer can truly go? When I get a new printer or see a new model released, the first question that pops into my head is always, “How fast can I print with this thing?”

This post will explore how to determine the optimal print speed for your 3D printer, ensuring both speed and quality.

  • Infill: While not a major time-saver, adjusting infill patterns and density can slightly reduce print time.
  • Wall Thickness: Reducing the number of walls can significantly decrease print time, but it can also compromise the model’s strength.
  • Layer Height: Increasing layer height generally speeds up printing, but it can also affect print quality and part strength.
  • Other Parameters: Factors like print speed, infill density, and layer height also impact the mechanical properties of the printed part, according to research. Finding the balance between speed and strength is crucial.
  • Max Flow Rate: Each extruder has a maximum flow rate, which determines how much filament it can push out per second. Exceeding this limit leads to inconsistent extrusion, poor print quality, and weaker parts.

Ellis’s Print Tuning Guide provides valuable information and equations to calculate your extruder’s max flow rate. A simple test involves extruding a known length of filament at increasing speeds until you observe a noticeable drop in extrusion quality.

One of the key points that Ellis’ guide points out is that using approximate values (Table 1) is possible.

HotendFlow Rate (mm3/s)
E3D V611
E3D V6 Volcano20
E3D Revo11
Dragon SF15
Sailfish20
Dragon HF24
Dragonfly BMO13
Rapido HF24
Rapido UHF30
Mosquito20
Mosquito Magnum30
Bambu X135

Determine Max Flow Rate: Conduct tests as described above to find your extruder’s maximum volumetric flow rate. Set Volumetric Speed: Adjust the volumetric speed setting in your slicer software to match your calculated max flow rate. Optimize Print Profiles: Experiment with different print speed settings for various parts of the model, ensuring that the speeds for visible features do not exceed the calculated safe limit. Test and Iterate: Print test parts and adjust parameters based on the results. Observe print quality, part strength, and overall print time.

  • Model Size: Smaller models may not allow the printer to reach maximum speed due to acceleration and deceleration times.

  • Part Complexity: Complex models with intricate details may require slower print speeds to ensure accurate and high-quality results.

By carefully considering these factors and conducting thorough testing, you can optimize your 3D printer’s print speed while maintaining excellent print quality and part strength.

Disclaimer: This information is for general guidance only. Always refer to your printer’s manual and manufacturer’s recommendations for specific instructions and safety guidelines.

I hope this guide helps you unlock your 3D printer’s full potential!

Ender 3 S1 Plus (e3s1p) Klipper Config

3.6
# !Ender-3 S1 Plus
# printer_size: 300x300x300
# This file contains pin mappings for the stock 2021 Creality Ender 3
# S1 & S1 Pro. To use this config, check the STM32 Chip on the
# Mainboard, during "make menuconfig" select accordingly either the
# STM32F103 with "28KiB bootloader" or the STM32F401 with
# "64KiB bootloader" and serial (on USART1 PA10/PA9) for both.
# For a direct serial connection, in "make menuconfig" select
# "Enable extra low-level configuration options" and Serial
# (on USART2 PA3/PA2), which is on the 10 pin IDC cable used
# Flash this firmware by copying "out/klipper.bin" to a SD card and
# turning on the printer with the card inserted. The filename
# must be changed to "firmware.bin"
# With STM32F401, you might need to put "firmware.bin" in a
# folder on the SD card called "STM32F4_UPDATE" in order to flash.
# See docs/Config_Reference.md for a description of parameters.
###fluidd set
[include cx_printer.cfg]
[display_status]
[pause_resume]
[gcode_macro PAUSE]
description: Pause the actual running print
rename_existing: PAUSE_BASE
# change this if you need more or less extrusion
variable_extrude: 1.0
gcode:
##### read E from pause macro #####
{% set E = printer["gcode_macro PAUSE"].extrude|float %}
##### set park positon for x and y #####
# default is your max posion from your printer.cfg
{% set x_park = printer.toolhead.axis_maximum.x|float - 5.0 %}
{% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %}
##### calculate save lift position #####
{% set max_z = printer.toolhead.axis_maximum.z|float %}
{% set act_z = printer.toolhead.position.z|float %}
{% if act_z < (max_z - 2.0) %}
{% set z_safe = 2.0 %}
{% else %}
{% set z_safe = max_z - act_z %}
{% endif %}
##### end of definitions #####
PAUSE_BASE
G91
{% if printer.extruder.can_extrude|lower == 'true' %}
G1 E-{E} F2100
{% else %}
{action_respond_info("Extruder not hot enough")}
{% endif %}
{% if "xyz" in printer.toolhead.homed_axes %}
G1 Z{z_safe} F900
G90
G1 X{x_park} Y{y_park} F6000
{% else %}
{action_respond_info("Printer not homed")}
{% endif %}
[gcode_macro RESUME]
description: Resume the actual running print
rename_existing: RESUME_BASE
gcode:
##### read E from pause macro #####
{% set E = printer["gcode_macro PAUSE"].extrude|float %}
#### get VELOCITY parameter if specified ####
{% if 'VELOCITY' in params|upper %}
{% set get_params = ('VELOCITY=' + params.VELOCITY) %}
{%else %}
{% set get_params = "" %}
{% endif %}
##### end of definitions #####
{% if printer.extruder.can_extrude|lower == 'true' %}
G91
G1 E{E} F2100
{% else %}
{action_respond_info("Extruder not hot enough")}
{% endif %}
RESUME_BASE {get_params}
[gcode_macro CANCEL_PRINT]
description: Cancel the actual running print
rename_existing: CANCEL_PRINT_BASE
gcode:
TURN_OFF_HEATERS
{% if "xyz" in printer.toolhead.homed_axes %}
G91
G1 Z4.5 F300
G90
{% else %}
{action_respond_info("Printer not homed")}
{% endif %}
G28 X Y
{% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %}
G1 Y{y_park} F2000
M84
CANCEL_PRINT_BASE
[stepper_x]
step_pin: PC2
dir_pin: PB9
enable_pin: !PC3
rotation_distance: 40
microsteps: 16
endstop_pin: !PA5
position_min: -5
position_endstop: -5
position_max: 305
homing_speed: 80
[stepper_y]
step_pin: PB8
dir_pin: PB7
enable_pin: !PC3
rotation_distance: 40
microsteps: 16
endstop_pin: !PA6
position_min: -2
position_endstop: -2
position_max: 305
homing_speed: 80
[stepper_z]
step_pin: PB6
dir_pin: !PB5
enable_pin: !PC3
rotation_distance: 8
microsteps: 16
endstop_pin: probe:z_virtual_endstop #enable to use bltouch
#endstop_pin: !PA15 #disable to use bltouch
#position_endstop: -0.1
position_min: -10
position_max: 305
homing_speed: 4
second_homing_speed: 1
homing_retract_dist: 2.0
[extruder]
max_extrude_only_distance: 1000.0
step_pin: PB4
dir_pin: PB3
enable_pin: !PC3
rotation_distance: 7.74
microsteps: 16
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA1
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
#control: pid
# tuned for stock hardware with 200 degree Celsius target
#pid_Kp: 23.904
#pid_Ki: 1.476
#pid_Kd: 96.810
min_temp: 0
max_temp: 265
[idle_timeout]
timeout: 172800
[heater_bed]
heater_pin: PA7
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
#control: pid
# tuned for stock hardware with 50 degree Celsius target
#pid_Kp: 74.000
#pid_Ki: 1.965
#pid_Kd: 696.525
min_temp: 0
max_temp: 130
[verify_heater extruder]
check_gain_time: 200
hysteresis: 5
[fan]
pin: PA0
kick_start_time: 0.5
#set heater fan runnig with temperature over 60;
[heater_fan my_nozzle_fan]
pin: PC0
max_power: 0.8
shutdown_speed : 0
heater:extruder
heater_temp : 60
fan_speed : 1.0
[mcu]
serial: /dev/serial/by-id/usb_serial_1
restart_method: command
# [mcu rpi]
# serial: /tmp/klipper_host_mcu
# [adxl345]
# cs_pin: rpi:None
# spi_speed: 2000000
# spi_bus: spidev2.0
# [resonance_tester]
# accel_chip: adxl345
# accel_per_hz: 70
# probe_points:
# 150,150,10
[input_shaper]
shaper_type_x = mzv
shaper_freq_x = 59.2
shaper_type_y = mzv
shaper_freq_y = 30.0
[filament_switch_sensor filament_sensor]
pause_on_runout: true
switch_pin: ^!PC15
[bltouch]
sensor_pin: ^PC14 #signal check port ^stand for pull up
control_pin: PC13 #singal control prot
x_offset: -30.0
y_offset: -40.0
#z_offset: 0 #z off_set configuration
stow_on_each_sample = false #high speed for bltoch,
speed: 3.0
samples: 2
samples_result: median
sample_retract_dist: 6.0
samples_tolerance: 0.01
samples_tolerance_retries: 3
[safe_z_home]
home_xy_position:185,195
speed: 200
z_hop: 10
z_hop_speed: 10
[bed_mesh]
speed: 150
mesh_min: 25,30 #need to handle head distance with bl_touch
mesh_max: 273,250 #max probe range
probe_count: 5,5
fade_start: 1
fade_end: 10
algorithm: bicubic
[bed_screws]
screw1: 25, 33
screw2: 262, 33
screw3: 262, 272
screw4: 25, 272
[gcode_arcs]
#resolution: 1.0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 4000
max_z_velocity: 10
max_z_accel: 1000
square_corner_velocity: 5.0
[exclude_object]
[include timelapse.cfg]
[include cx_gmcro.cfg]

Zero G Mercury One.1 Klipper Config

GitHub Backup

[include shell_command.cfg]
[include mainsail.cfg]
# host MCU service is preinstalled and ready to use with:
[mcu CB1]
serial: /tmp/klipper_host_mcu
# This file contains common pin mappings for the BIGTREETECH Manta M8P
# To use this config, the firmware should be compiled for the
# STM32G0B1 with a "8KiB bootloader" "8 MHz crystal"
# and "USB (on PA11/PA12)" or "CAN bus (on PD12/PD13)".
# https://github.com/Klipper3d/klipper/blob/master/config/generic-bigtreetech-manta-m8p-v1.1.cfg
# See docs/Config_Reference.md for a description of parameters.
[mcu]
#@serial: /dev/serial/by-id/usb-Klipper_stm32g0b1xx_3C001B000B504B4633373520-if00
canbus_uuid=5b426f4e5253
[mcu HermitCrab]
#serial: /dev/serial/by-id/usb-Klipper_stm32f072xb_28002C000757434331363920-if00
canbus_uuid=00ee6e545867
[printer]
kinematics: corexy
max_velocity: 300
max_accel: 4000 #Max 4000
max_z_velocity: 15 #Max 15 for 12V TMC Drivers, can increase for 24V
max_z_accel: 350
square_corner_velocity: 5.0
[stepper_x] # B M1
step_pin: PE2
dir_pin: !PB4
enable_pin: !PC11
rotation_distance: 40
microsteps: 16
full_steps_per_rotation: 200 #set to 200 for 1.8 degree stepper
endstop_pin: ^PF3
position_endstop: 357
position_max: 377
homing_speed: 50
homing_retract_dist: 10
[tmc5160 stepper_x]
cs_pin: PC10
#spi_bus: spi1
interpolate: False
run_current: .7
#diag1_pin: ^!PF3
sense_resistor: 0.110
#driver_SGTHRS: 125
driver_SGT: 0
stealthchop_threshold: 0
spi_software_sclk_pin: PA5
spi_software_mosi_pin: PA7
spi_software_miso_pin: PA6
[stepper_y] # A M2
step_pin: PF12
dir_pin: !PF11
enable_pin: !PB3
rotation_distance: 40
microsteps: 16
full_steps_per_rotation: 200 #set to 200 for 1.8 degree stepper
endstop_pin: ^PF4
position_endstop: 365
position_max: 370
homing_speed: 50
homing_retract_dist: 10
[tmc5160 stepper_y]
cs_pin: PF13
#spi_bus: spi1
interpolate: False
run_current: .7
#hold_current: 1.0
#diag1_pin: ^!PF4
sense_resistor: 0.110
#driver_SGTHRS: 125
driver_SGT: 2
stealthchop_threshold: 0
spi_software_sclk_pin: PA5
spi_software_mosi_pin: PA7
spi_software_miso_pin: PA6
[stepper_z] # M3 Left
step_pin: PD7
dir_pin: !PD6
enable_pin: !PF10
microsteps: 16
rotation_distance: 2
full_steps_per_rotation: 200 #set to 200 for 1.8 degree stepper
endstop_pin: probe:z_virtual_endstop
position_max: 350
position_min: -50
homing_speed: 8.0
second_homing_speed: 3
[tmc2209 stepper_z]
uart_pin: PF9
##diag_pin: PF5
run_current: 0.7
sense_resistor: 0.110
stealthchop_threshold: 0
[stepper_z1] # M4 Center
step_pin: PD3
dir_pin: !PD2
enable_pin: !PD5
microsteps: 16
rotation_distance: 2
full_steps_per_rotation: 200 #set to 200 for 1.8 degree stepper
[tmc2209 stepper_z1]
uart_pin: PD4
##diag_pin: PC0
run_current: 0.7
sense_resistor: 0.110
interpolate: False
stealthchop_threshold: 0
[stepper_z2] # M6 Right
step_pin: PA10
dir_pin: !PA14
enable_pin: !PA15
microsteps: 16
rotation_distance: 2
full_steps_per_rotation: 200 #set to 200 for 1.8 degree stepper
[tmc2209 stepper_z2]
uart_pin: PF8
run_current: 0.7
sense_resistor: 0.110
interpolate: False
stealthchop_threshold: 0
[extruder]
step_pin: HermitCrab: PA6
dir_pin: !HermitCrab: PA7
enable_pin: !HermitCrab: PA5
microsteps: 16
rotation_distance: 24.235
gear_ratio: 7:1
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: HermitCrab: PA2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: HermitCrab: PA1
#control: pid
#pid_Kp: 21.527
#pid_Ki: 1.063
#pid_Kd: 108.982
min_temp: 0
max_temp: 250
max_extrude_cross_section: 4
pressure_advance: 0.05
[tmc2209 extruder]
uart_pin: HermitCrab: PB0
run_current: 0.650
sense_resistor: 0.110
interpolate: false
stealthchop_threshold: 0
[fan]
pin: HermitCrab: PA4
[heater_fan hotend_fan]
pin: HermitCrab: PA3
heater: extruder
heater_temp: 50.0
#####################################################################
# Bed Heater
#####################################################################
[heater_bed]
## SSR Pin - BED_OUT
heater_pin: PB5
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA0
## Adjust Max Power so your heater doesn't warp your bed
max_power: 0.7
min_temp: 0
max_temp: 120
#control: pid
#pid_kp: 58.437
#pid_ki: 2.347
#pid_kd: 363.769
[board_pins]
aliases:
# EXP1 header
EXP1_1=PE9, EXP1_2=PE10,
EXP1_3=PE11, EXP1_4=PE12,
EXP1_5=PE13, EXP1_6=PE14, # Slot in the socket on this side
EXP1_7=PE15, EXP1_8=PB10,
EXP1_9=<GND>, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PB14, EXP2_2=PB13,
EXP2_3=PF7, EXP2_4=PB12,
EXP2_5=PE7, EXP2_6=PB11, # Slot in the socket on this side
EXP2_7=PE8, EXP2_8=<RST>,
EXP2_9=<GND>, EXP2_10=<NC>
# See the sample-lcd.cfg file for definitions of common LCD displays.
#####################################################################
# Probe
#####################################################################
[safe_z_home]
home_xy_position: 188,185
speed: 150
z_hop: 10 # Move up 10mm
z_hop_speed: 5
[bltouch]
sensor_pin: ^HermitCrab:PB2
control_pin: HermitCrab:PB1
x_offset: -31.8
y_offset: -40.5
#z_offset: 4 # Uncomment if starting fresh; Distance should be enough to keep the z-offset positive.
speed: 5.0
pin_move_time: 0.7
lift_speed: 8
pin_up_touch_mode_reports_triggered: True
probe_with_touch_mode: True
samples: 2
samples_result: median
sample_retract_dist: 6.0
samples_tolerance: 0.05
samples_tolerance_retries: 3
[bed_mesh]
speed: 300
mesh_min: 30,30
mesh_max: 345,329
probe_count: 5,5
mesh_pps: 2,2
algorithm: bicubic
bicubic_tension: 0.2
move_check_distance: 3.0
split_delta_z: .010
fade_start: 1.0
fade_end: 10.0
[screws_tilt_adjust]
screw1: 360,13.5
screw1_name: front_left
screw2: 360,363
screw2_name: front_right
screw3: 185,10
screw3_name: back_middle
# Additional bed leveling screws. At least two screws must be
# defined.
speed: 50
horizontal_move_z: 5
screw_thread: CW-M3
[bed_screws]
screw1: 360,13.5
screw2: 360,363
screw3: 185,10
[z_tilt]
z_positions:
10,13.5
185,350
355,13.5
points:
0,55
155,365
325,55
speed: 200
horizontal_move_z: 15
retries: 10
retry_tolerance: 0.03 #0.0075
#####################################################################
# PInput Shaping
#####################################################################
[adxl345]
cs_pin: HermitCrab: PB12
spi_bus: spi2
axes_map: y,z,-x
[resonance_tester]
accel_chip: adxl345
probe_points:
188,185, 20 # middle of bed as an example
[input_shaper]
shaper_freq_x: 43.0
shaper_type_x: 2hump_ei
shaper_freq_y: 52.6
shaper_type_y: 2hump_ei
#####################################################################
# Macros
#####################################################################
# All customizations are documented in globals.cfg. Just copy a variable from
# there into the section below, and change the value to meet your needs.
[gcode_macro _km_options]
# These are examples of some likely customizations:
# Any sheets in the below list will be available with a configurable offset.
#variable_bed_surfaces: ['smooth_1','texture_1']
# Length (in mm) of filament to load (bowden tubes will be longer).
variable_load_length: 50.0
# Hide the Octoprint LCD menu since I don't use it.
#variable_menu_show_octoprint: False
# Customize the filament menus (up to 10 entries).
#variable_menu_temperature: [
# {'name' : 'PLA', 'extruder' : 200.0, 'bed' : 60.0},
# {'name' : 'PETG', 'extruder' : 230.0, 'bed' : 85.0},
# {'name' : 'ABS', 'extruder' : 245.0, 'bed' : 110.0, 'chamber' : 60}]
# Length of filament (in millimeters) to purge at print start.
variable_start_purge_length: 30 # This value works for most setups.
gcode: # This line is required by Klipper.
# Any code you put here will run at klipper startup, after the initialization
# for these macros. For example, you could uncomment the following line to
# automatically adjust your bed surface offsets to account for any changes made
# to your Z endstop or probe offset.
# ADJUST_SURFACE_OFFSETS
variable_park_x: 10.0
# Y position to park toolhead (set "max" or "min" to infer from stepper config).
variable_park_y: 350.0
# This line includes all the standard macros.
[include klipper-macros/*.cfg]
# Uncomment to include features that require specific hardware support.
# LCD menu support for features like bed surface selection and pause next layer.
#[include klipper-macros/optional/lcd_menus.cfg]
# Optimized bed leveling
[include klipper-macros/optional/bed_mesh.cfg]
# The sections below here are required for the macros to work. If your config
# already has some of these sections you should merge the duplicates into one
# (or if they are identical just remove one of them).
[idle_timeout]
gcode:
_KM_IDLE_TIMEOUT # This line must be in your idle_timeout section.
[pause_resume]
[respond]
[save_variables]
filename: ~/printer_data/config/variables.cfg # UPDATE THIS FOR YOUR PATH!!!
[virtual_sdcard]
path: ~/printer_data/gcodes # UPDATE THIS FOR YOUR PATH!!!
on_error_gcode: CANCEL_PRINT
[display_status]
[exclude_object]
[gcode_macro update_git]
gcode:
RUN_SHELL_COMMAND CMD=update_git_script
[gcode_shell_command update_git_script]
command: bash -c "bash $HOME/klipper-backup/script.sh"
timeout: 90.0
verbose: True

Zero G Mercury One.1 Klipper Config

GitHub Backup

[include shell_command.cfg]
[include mainsail.cfg]
# host MCU service is preinstalled and ready to use with:
[mcu CB1]
serial: /tmp/klipper_host_mcu
# This file contains common pin mappings for the BIGTREETECH Manta M8P
# To use this config, the firmware should be compiled for the
# STM32G0B1 with a "8KiB bootloader" "8 MHz crystal"
# and "USB (on PA11/PA12)" or "CAN bus (on PD12/PD13)".
# https://github.com/Klipper3d/klipper/blob/master/config/generic-bigtreetech-manta-m8p-v1.1.cfg
# See docs/Config_Reference.md for a description of parameters.
[mcu]
#@serial: /dev/serial/by-id/usb-Klipper_stm32g0b1xx_3C001B000B504B4633373520-if00
canbus_uuid=5b426f4e5253
[mcu HermitCrab]
#serial: /dev/serial/by-id/usb-Klipper_stm32f072xb_28002C000757434331363920-if00
canbus_uuid=00ee6e545867
[printer]
kinematics: corexy
max_velocity: 300
max_accel: 4000 #Max 4000
max_z_velocity: 15 #Max 15 for 12V TMC Drivers, can increase for 24V
max_z_accel: 350
square_corner_velocity: 5.0
[stepper_x] # B M1
step_pin: PE2
dir_pin: !PB4
enable_pin: !PC11
rotation_distance: 40
microsteps: 16
full_steps_per_rotation: 200 #set to 200 for 1.8 degree stepper
endstop_pin: ^PF3
position_endstop: 357
position_max: 377
homing_speed: 50
homing_retract_dist: 10
[tmc5160 stepper_x]
cs_pin: PC10
#spi_bus: spi1
interpolate: False
run_current: .7
#diag1_pin: ^!PF3
sense_resistor: 0.110
#driver_SGTHRS: 125
driver_SGT: 0
stealthchop_threshold: 0
spi_software_sclk_pin: PA5
spi_software_mosi_pin: PA7
spi_software_miso_pin: PA6
[stepper_y] # A M2
step_pin: PF12
dir_pin: !PF11
enable_pin: !PB3
rotation_distance: 40
microsteps: 16
full_steps_per_rotation: 200 #set to 200 for 1.8 degree stepper
endstop_pin: ^PF4
position_endstop: 365
position_max: 370
homing_speed: 50
homing_retract_dist: 10
[tmc5160 stepper_y]
cs_pin: PF13
#spi_bus: spi1
interpolate: False
run_current: .7
#hold_current: 1.0
#diag1_pin: ^!PF4
sense_resistor: 0.110
#driver_SGTHRS: 125
driver_SGT: 2
stealthchop_threshold: 0
spi_software_sclk_pin: PA5
spi_software_mosi_pin: PA7
spi_software_miso_pin: PA6
[stepper_z] # M3 Left
step_pin: PD7
dir_pin: !PD6
enable_pin: !PF10
microsteps: 16
rotation_distance: 2
full_steps_per_rotation: 200 #set to 200 for 1.8 degree stepper
endstop_pin: probe:z_virtual_endstop
position_max: 350
position_min: -50
homing_speed: 8.0
second_homing_speed: 3
[tmc2209 stepper_z]
uart_pin: PF9
##diag_pin: PF5
run_current: 0.7
sense_resistor: 0.110
stealthchop_threshold: 0
[stepper_z1] # M4 Center
step_pin: PD3
dir_pin: !PD2
enable_pin: !PD5
microsteps: 16
rotation_distance: 2
full_steps_per_rotation: 200 #set to 200 for 1.8 degree stepper
[tmc2209 stepper_z1]
uart_pin: PD4
##diag_pin: PC0
run_current: 0.7
sense_resistor: 0.110
interpolate: False
stealthchop_threshold: 0
[stepper_z2] # M6 Right
step_pin: PA10
dir_pin: !PA14
enable_pin: !PA15
microsteps: 16
rotation_distance: 2
full_steps_per_rotation: 200 #set to 200 for 1.8 degree stepper
[tmc2209 stepper_z2]
uart_pin: PF8
run_current: 0.7
sense_resistor: 0.110
interpolate: False
stealthchop_threshold: 0
[extruder]
step_pin: HermitCrab: PA6
dir_pin: !HermitCrab: PA7
enable_pin: !HermitCrab: PA5
microsteps: 16
rotation_distance: 24.235
gear_ratio: 7:1
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: HermitCrab: PA2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: HermitCrab: PA1
#control: pid
#pid_Kp: 21.527
#pid_Ki: 1.063
#pid_Kd: 108.982
min_temp: 0
max_temp: 250
max_extrude_cross_section: 4
pressure_advance: 0.05
[tmc2209 extruder]
uart_pin: HermitCrab: PB0
run_current: 0.650
sense_resistor: 0.110
interpolate: false
stealthchop_threshold: 0
[fan]
pin: HermitCrab: PA4
[heater_fan hotend_fan]
pin: HermitCrab: PA3
heater: extruder
heater_temp: 50.0
#####################################################################
# Bed Heater
#####################################################################
[heater_bed]
## SSR Pin - BED_OUT
heater_pin: PB5
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA0
## Adjust Max Power so your heater doesn't warp your bed
max_power: 0.7
min_temp: 0
max_temp: 120
#control: pid
#pid_kp: 58.437
#pid_ki: 2.347
#pid_kd: 363.769
[board_pins]
aliases:
# EXP1 header
EXP1_1=PE9, EXP1_2=PE10,
EXP1_3=PE11, EXP1_4=PE12,
EXP1_5=PE13, EXP1_6=PE14, # Slot in the socket on this side
EXP1_7=PE15, EXP1_8=PB10,
EXP1_9=<GND>, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PB14, EXP2_2=PB13,
EXP2_3=PF7, EXP2_4=PB12,
EXP2_5=PE7, EXP2_6=PB11, # Slot in the socket on this side
EXP2_7=PE8, EXP2_8=<RST>,
EXP2_9=<GND>, EXP2_10=<NC>
# See the sample-lcd.cfg file for definitions of common LCD displays.
#####################################################################
# Probe
#####################################################################
[safe_z_home]
home_xy_position: 188,185
speed: 150
z_hop: 10 # Move up 10mm
z_hop_speed: 5
[bltouch]
sensor_pin: ^HermitCrab:PB2
control_pin: HermitCrab:PB1
x_offset: -31.8
y_offset: -40.5
#z_offset: 4 # Uncomment if starting fresh; Distance should be enough to keep the z-offset positive.
speed: 5.0
pin_move_time: 0.7
lift_speed: 8
pin_up_touch_mode_reports_triggered: True
probe_with_touch_mode: True
samples: 2
samples_result: median
sample_retract_dist: 6.0
samples_tolerance: 0.05
samples_tolerance_retries: 3
[bed_mesh]
speed: 300
mesh_min: 30,30
mesh_max: 345,329
probe_count: 5,5
mesh_pps: 2,2
algorithm: bicubic
bicubic_tension: 0.2
move_check_distance: 3.0
split_delta_z: .010
fade_start: 1.0
fade_end: 10.0
[screws_tilt_adjust]
screw1: 360,13.5
screw1_name: front_left
screw2: 360,363
screw2_name: front_right
screw3: 185,10
screw3_name: back_middle
# Additional bed leveling screws. At least two screws must be
# defined.
speed: 50
horizontal_move_z: 5
screw_thread: CW-M3
[bed_screws]
screw1: 360,13.5
screw2: 360,363
screw3: 185,10
[z_tilt]
z_positions:
10,13.5
185,350
355,13.5
points:
0,55
155,365
325,55
speed: 200
horizontal_move_z: 15
retries: 10
retry_tolerance: 0.03 #0.0075
#####################################################################
# PInput Shaping
#####################################################################
[adxl345]
cs_pin: HermitCrab: PB12
spi_bus: spi2
axes_map: y,z,-x
[resonance_tester]
accel_chip: adxl345
probe_points:
188,185, 20 # middle of bed as an example
[input_shaper]
shaper_freq_x: 43.0
shaper_type_x: 2hump_ei
shaper_freq_y: 52.6
shaper_type_y: 2hump_ei
#####################################################################
# Macros
#####################################################################
# All customizations are documented in globals.cfg. Just copy a variable from
# there into the section below, and change the value to meet your needs.
[gcode_macro _km_options]
# These are examples of some likely customizations:
# Any sheets in the below list will be available with a configurable offset.
#variable_bed_surfaces: ['smooth_1','texture_1']
# Length (in mm) of filament to load (bowden tubes will be longer).
variable_load_length: 50.0
# Hide the Octoprint LCD menu since I don't use it.
#variable_menu_show_octoprint: False
# Customize the filament menus (up to 10 entries).
#variable_menu_temperature: [
# {'name' : 'PLA', 'extruder' : 200.0, 'bed' : 60.0},
# {'name' : 'PETG', 'extruder' : 230.0, 'bed' : 85.0},
# {'name' : 'ABS', 'extruder' : 245.0, 'bed' : 110.0, 'chamber' : 60}]
# Length of filament (in millimeters) to purge at print start.
variable_start_purge_length: 30 # This value works for most setups.
gcode: # This line is required by Klipper.
# Any code you put here will run at klipper startup, after the initialization
# for these macros. For example, you could uncomment the following line to
# automatically adjust your bed surface offsets to account for any changes made
# to your Z endstop or probe offset.
# ADJUST_SURFACE_OFFSETS
variable_park_x: 10.0
# Y position to park toolhead (set "max" or "min" to infer from stepper config).
variable_park_y: 350.0
# This line includes all the standard macros.
[include klipper-macros/*.cfg]
# Uncomment to include features that require specific hardware support.
# LCD menu support for features like bed surface selection and pause next layer.
#[include klipper-macros/optional/lcd_menus.cfg]
# Optimized bed leveling
[include klipper-macros/optional/bed_mesh.cfg]
# The sections below here are required for the macros to work. If your config
# already has some of these sections you should merge the duplicates into one
# (or if they are identical just remove one of them).
[idle_timeout]
gcode:
_KM_IDLE_TIMEOUT # This line must be in your idle_timeout section.
[pause_resume]
[respond]
[save_variables]
filename: ~/printer_data/config/variables.cfg # UPDATE THIS FOR YOUR PATH!!!
[virtual_sdcard]
path: ~/printer_data/gcodes # UPDATE THIS FOR YOUR PATH!!!
on_error_gcode: CANCEL_PRINT
[display_status]
[exclude_object]
[gcode_macro update_git]
gcode:
RUN_SHELL_COMMAND CMD=update_git_script
[gcode_shell_command update_git_script]
command: bash -c "bash $HOME/klipper-backup/script.sh"
timeout: 90.0
verbose: True

Zero G Mercury One.1 Klipper Config

GitHub Backup

[include shell_command.cfg]
[include mainsail.cfg]
# host MCU service is preinstalled and ready to use with:
[mcu CB1]
serial: /tmp/klipper_host_mcu
# This file contains common pin mappings for the BIGTREETECH Manta M8P
# To use this config, the firmware should be compiled for the
# STM32G0B1 with a "8KiB bootloader" "8 MHz crystal"
# and "USB (on PA11/PA12)" or "CAN bus (on PD12/PD13)".
# https://github.com/Klipper3d/klipper/blob/master/config/generic-bigtreetech-manta-m8p-v1.1.cfg
# See docs/Config_Reference.md for a description of parameters.
[mcu]
#@serial: /dev/serial/by-id/usb-Klipper_stm32g0b1xx_3C001B000B504B4633373520-if00
canbus_uuid=5b426f4e5253
[mcu HermitCrab]
#serial: /dev/serial/by-id/usb-Klipper_stm32f072xb_28002C000757434331363920-if00
canbus_uuid=00ee6e545867
[printer]
kinematics: corexy
max_velocity: 300
max_accel: 4000 #Max 4000
max_z_velocity: 15 #Max 15 for 12V TMC Drivers, can increase for 24V
max_z_accel: 350
square_corner_velocity: 5.0
[stepper_x] # B M1
step_pin: PE2
dir_pin: !PB4
enable_pin: !PC11
rotation_distance: 40
microsteps: 16
full_steps_per_rotation: 200 #set to 200 for 1.8 degree stepper
endstop_pin: ^PF3
position_endstop: 357
position_max: 377
homing_speed: 50
homing_retract_dist: 10
[tmc5160 stepper_x]
cs_pin: PC10
#spi_bus: spi1
interpolate: False
run_current: .7
#diag1_pin: ^!PF3
sense_resistor: 0.110
#driver_SGTHRS: 125
driver_SGT: 0
stealthchop_threshold: 0
spi_software_sclk_pin: PA5
spi_software_mosi_pin: PA7
spi_software_miso_pin: PA6
[stepper_y] # A M2
step_pin: PF12
dir_pin: !PF11
enable_pin: !PB3
rotation_distance: 40
microsteps: 16
full_steps_per_rotation: 200 #set to 200 for 1.8 degree stepper
endstop_pin: ^PF4
position_endstop: 365
position_max: 370
homing_speed: 50
homing_retract_dist: 10
[tmc5160 stepper_y]
cs_pin: PF13
#spi_bus: spi1
interpolate: False
run_current: .7
#hold_current: 1.0
#diag1_pin: ^!PF4
sense_resistor: 0.110
#driver_SGTHRS: 125
driver_SGT: 2
stealthchop_threshold: 0
spi_software_sclk_pin: PA5
spi_software_mosi_pin: PA7
spi_software_miso_pin: PA6
[stepper_z] # M3 Left
step_pin: PD7
dir_pin: !PD6
enable_pin: !PF10
microsteps: 16
rotation_distance: 2
full_steps_per_rotation: 200 #set to 200 for 1.8 degree stepper
endstop_pin: probe:z_virtual_endstop
position_max: 350
position_min: -50
homing_speed: 8.0
second_homing_speed: 3
[tmc2209 stepper_z]
uart_pin: PF9
##diag_pin: PF5
run_current: 0.7
sense_resistor: 0.110
stealthchop_threshold: 0
[stepper_z1] # M4 Center
step_pin: PD3
dir_pin: !PD2
enable_pin: !PD5
microsteps: 16
rotation_distance: 2
full_steps_per_rotation: 200 #set to 200 for 1.8 degree stepper
[tmc2209 stepper_z1]
uart_pin: PD4
##diag_pin: PC0
run_current: 0.7
sense_resistor: 0.110
interpolate: False
stealthchop_threshold: 0
[stepper_z2] # M6 Right
step_pin: PA10
dir_pin: !PA14
enable_pin: !PA15
microsteps: 16
rotation_distance: 2
full_steps_per_rotation: 200 #set to 200 for 1.8 degree stepper
[tmc2209 stepper_z2]
uart_pin: PF8
run_current: 0.7
sense_resistor: 0.110
interpolate: False
stealthchop_threshold: 0
[extruder]
step_pin: HermitCrab: PA6
dir_pin: !HermitCrab: PA7
enable_pin: !HermitCrab: PA5
microsteps: 16
rotation_distance: 24.235
gear_ratio: 7:1
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: HermitCrab: PA2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: HermitCrab: PA1
#control: pid
#pid_Kp: 21.527
#pid_Ki: 1.063
#pid_Kd: 108.982
min_temp: 0
max_temp: 250
max_extrude_cross_section: 4
pressure_advance: 0.05
[tmc2209 extruder]
uart_pin: HermitCrab: PB0
run_current: 0.650
sense_resistor: 0.110
interpolate: false
stealthchop_threshold: 0
[fan]
pin: HermitCrab: PA4
[heater_fan hotend_fan]
pin: HermitCrab: PA3
heater: extruder
heater_temp: 50.0
#####################################################################
# Bed Heater
#####################################################################
[heater_bed]
## SSR Pin - BED_OUT
heater_pin: PB5
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA0
## Adjust Max Power so your heater doesn't warp your bed
max_power: 0.7
min_temp: 0
max_temp: 120
#control: pid
#pid_kp: 58.437
#pid_ki: 2.347
#pid_kd: 363.769
[board_pins]
aliases:
# EXP1 header
EXP1_1=PE9, EXP1_2=PE10,
EXP1_3=PE11, EXP1_4=PE12,
EXP1_5=PE13, EXP1_6=PE14, # Slot in the socket on this side
EXP1_7=PE15, EXP1_8=PB10,
EXP1_9=<GND>, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PB14, EXP2_2=PB13,
EXP2_3=PF7, EXP2_4=PB12,
EXP2_5=PE7, EXP2_6=PB11, # Slot in the socket on this side
EXP2_7=PE8, EXP2_8=<RST>,
EXP2_9=<GND>, EXP2_10=<NC>
# See the sample-lcd.cfg file for definitions of common LCD displays.
#####################################################################
# Probe
#####################################################################
[safe_z_home]
home_xy_position: 188,185
speed: 150
z_hop: 10 # Move up 10mm
z_hop_speed: 5
[bltouch]
sensor_pin: ^HermitCrab:PB2
control_pin: HermitCrab:PB1
x_offset: -31.8
y_offset: -40.5
#z_offset: 4 # Uncomment if starting fresh; Distance should be enough to keep the z-offset positive.
speed: 5.0
pin_move_time: 0.7
lift_speed: 8
pin_up_touch_mode_reports_triggered: True
probe_with_touch_mode: True
samples: 2
samples_result: median
sample_retract_dist: 6.0
samples_tolerance: 0.05
samples_tolerance_retries: 3
[bed_mesh]
speed: 300
mesh_min: 30,30
mesh_max: 345,329
probe_count: 5,5
mesh_pps: 2,2
algorithm: bicubic
bicubic_tension: 0.2
move_check_distance: 3.0
split_delta_z: .010
fade_start: 1.0
fade_end: 10.0
[screws_tilt_adjust]
screw1: 360,13.5
screw1_name: front_left
screw2: 360,363
screw2_name: front_right
screw3: 185,10
screw3_name: back_middle
# Additional bed leveling screws. At least two screws must be
# defined.
speed: 50
horizontal_move_z: 5
screw_thread: CW-M3
[bed_screws]
screw1: 360,13.5
screw2: 360,363
screw3: 185,10
[z_tilt]
z_positions:
10,13.5
185,350
355,13.5
points:
0,55
155,365
325,55
speed: 200
horizontal_move_z: 15
retries: 10
retry_tolerance: 0.03 #0.0075
#####################################################################
# PInput Shaping
#####################################################################
[adxl345]
cs_pin: HermitCrab: PB12
spi_bus: spi2
axes_map: y,z,-x
[resonance_tester]
accel_chip: adxl345
probe_points:
188,185, 20 # middle of bed as an example
[input_shaper]
shaper_freq_x: 43.0
shaper_type_x: 2hump_ei
shaper_freq_y: 52.6
shaper_type_y: 2hump_ei
#####################################################################
# Macros
#####################################################################
# All customizations are documented in globals.cfg. Just copy a variable from
# there into the section below, and change the value to meet your needs.
[gcode_macro _km_options]
# These are examples of some likely customizations:
# Any sheets in the below list will be available with a configurable offset.
#variable_bed_surfaces: ['smooth_1','texture_1']
# Length (in mm) of filament to load (bowden tubes will be longer).
variable_load_length: 50.0
# Hide the Octoprint LCD menu since I don't use it.
#variable_menu_show_octoprint: False
# Customize the filament menus (up to 10 entries).
#variable_menu_temperature: [
# {'name' : 'PLA', 'extruder' : 200.0, 'bed' : 60.0},
# {'name' : 'PETG', 'extruder' : 230.0, 'bed' : 85.0},
# {'name' : 'ABS', 'extruder' : 245.0, 'bed' : 110.0, 'chamber' : 60}]
# Length of filament (in millimeters) to purge at print start.
variable_start_purge_length: 30 # This value works for most setups.
gcode: # This line is required by Klipper.
# Any code you put here will run at klipper startup, after the initialization
# for these macros. For example, you could uncomment the following line to
# automatically adjust your bed surface offsets to account for any changes made
# to your Z endstop or probe offset.
# ADJUST_SURFACE_OFFSETS
variable_park_x: 10.0
# Y position to park toolhead (set "max" or "min" to infer from stepper config).
variable_park_y: 350.0
# This line includes all the standard macros.
[include klipper-macros/*.cfg]
# Uncomment to include features that require specific hardware support.
# LCD menu support for features like bed surface selection and pause next layer.
#[include klipper-macros/optional/lcd_menus.cfg]
# Optimized bed leveling
[include klipper-macros/optional/bed_mesh.cfg]
# The sections below here are required for the macros to work. If your config
# already has some of these sections you should merge the duplicates into one
# (or if they are identical just remove one of them).
[idle_timeout]
gcode:
_KM_IDLE_TIMEOUT # This line must be in your idle_timeout section.
[pause_resume]
[respond]
[save_variables]
filename: ~/printer_data/config/variables.cfg # UPDATE THIS FOR YOUR PATH!!!
[virtual_sdcard]
path: ~/printer_data/gcodes # UPDATE THIS FOR YOUR PATH!!!
on_error_gcode: CANCEL_PRINT
[display_status]
[exclude_object]
[gcode_macro update_git]
gcode:
RUN_SHELL_COMMAND CMD=update_git_script
[gcode_shell_command update_git_script]
command: bash -c "bash $HOME/klipper-backup/script.sh"
timeout: 90.0
verbose: True

New Minimal 3DP Website

Minimal 3DP YouTube Schedule
Minimal 3DP YouTube Schedule

With my previous website, I put it together with Wordpress. As what typically happens, WordPress was just too cumbersome for me to maintain. Additionally, it seemed like someone was always trying to hack it. It was a pain and I worried about the hacks.

I have used Hugo in the past and I thought I would try to rewrite the site in it. I liked the Docsy theme but I was not sure I could create the Klipper Calibration website. It turns out it was easier that I thought.

One of my main goals for creating this site, is the Klipper Calibration calculators I have put together. I have my Klipper Calibration Spreadsheet but many people are requesting edit access. To simplify things, I thought it would be a good idea to create these online tools. It also gave me the opportunity to do some simple programming. It has been a while.

Because I am using Docsy, there are tools built in to leave comments and post issues on github. I thought this integration would be helpful as I tried to improve and expand the tools. I am looking forward to the feedback. I know that there is room for improvement.

To many time I do not document my work well enough. I have several different tools for reference and documentation. Because it is several different tools, I never know where to look. With this in mind, I am hoping this site can serve as a repository of knowledge for my work. I sometime wish I had more time. There are so many cool ideas to try. Hopefully, I will have a chance to explore.

The blog is a minor feature for me. I always have good intentions for keeping it up but I always have trouble finding the time. We will see how this iteration goes. I am thinking that Hugo will make it easy. A lot of content here was done via my iPhone. Working Copy and Textastic are amazing apps and worth every penny.

Sidewinder X1 (SWX1) Klipper Config

GitHub Backup

[include shell_command.cfg]
[include fluidd.cfg]
[include mainsail.cfg]
# This file contains common pin mappings for the BigTreeTech SKR 2.
# To use this config, the firmware should be compiled for the
# STM32F407 with a "32KiB bootloader".
# In newer versions of this board shipped in late 2021 the STM32F429
# is used, if this is the case compile for this with a "32KiB bootloader"
# You will need to check the chip on your board to identify which you have.
#
# The "make flash" command does not work on the SKR 2. Instead,
# after running "make", copy the generated "out/klipper.bin" file to a
# file named "firmware.bin" on an SD card and then restart the SKR 2
# with that SD card.
# See docs/Config_Reference.md for a description of parameters.
# Note: The initial revision of this board has a flaw that can cause
# damage to itself and other boards. Be sure to verify the board is
# not impacted by this flaw before using it.
[stepper_x]
step_pin: PE2
dir_pin: !PE1
enable_pin: !PE3
microsteps: 16
rotation_distance: 40
endstop_pin: ^!PC1
position_endstop: 0
position_max: 300
homing_speed: 100
[tmc2209 stepper_x]
uart_pin: PE0
run_current: 0.800
diag_pin:
[stepper_y]
step_pin: PD5
dir_pin: !PD4
enable_pin: !PD6
microsteps: 16
rotation_distance: 40
endstop_pin: ^!PC3
position_endstop: 0
position_max: 300
homing_speed: 100
[tmc2209 stepper_y]
uart_pin: PD3
run_current: 0.800
diag_pin:
[stepper_z]
step_pin: PA15
dir_pin: PA8
enable_pin: !PD1
microsteps: 16
rotation_distance: 8
endstop_pin: probe:z_virtual_endstop
position_max: 400
homing_speed: 20
second_homing_speed: 1
[tmc2209 stepper_z]
uart_pin: PD0
run_current: 0.800
diag_pin:
[stepper_z1]
step_pin: PD11
dir_pin: PD10
enable_pin: !PD13
microsteps: 16
rotation_distance: 8
[tmc2209 stepper_z1]
uart_pin: PD12
run_current: 0.800
diag_pin:
[extruder]
step_pin: PD15
dir_pin: PD14
enable_pin: !PC7
microsteps: 16
rotation_distance: 33.500
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PB3
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA2
#control: pid
#pid_Kp: 22.2
#pid_Ki: 1.08
#pid_Kd: 114
min_temp: 0
max_temp: 250
[tmc2209 extruder]
uart_pin: PC6
run_current: 0.600
diag_pin:
[heater_bed]
heater_pin: PD7
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA1
#control: pid
min_temp: 0
max_temp: 130
#pid_kp: 42.365
#pid_ki: 0.545
#pid_kd: 822.940
[fan]
pin: PB7
[heater_fan fan1]
pin: PB6
#[heater_fan fan2]
#pin: PB5
# Due to BTT implementing a Marlin-specific safety feature,
# "anti-reversal stepper protection", this pin needs pulling
# high to pass power to stepper drivers and most FETs
[output_pin motor_power]
pin: PC13
value: 1
[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32f429xx_200044001450304738323420-if00
[printer]
kinematics: cartesian
max_velocity: 250
max_accel: 3000
max_z_velocity: 50
max_z_accel: 400
square_corner_velocity: 5.0
[bltouch]
## If these change, adjust coords in [z_tilt], [safe_z_home]
sensor_pin: ^PE4
control_pin: PE5
x_offset: 29
y_offset: -34
z_offset: 10
samples: 3
samples_result:average
probe_with_touch_mode: true
stow_on_each_sample: false
[safe_z_home]
home_xy_position: 122,183
speed: 150
z_hop: 10 # Move up 10mm
z_hop_speed: 5
[bed_screws]
screw1: 55,55
screw1_name: front left
screw2: 255,55
screw2_name: front right
screw3: 255,255
screw3_name: back right
screw4: 55,255
screw4_name: back left
speed: 100.0
[screws_tilt_adjust]
screw1: 22,83
screw1_name: front left
screw2: 222,83
screw2_name: front right
screw3: 22,283
screw3_name: back left
screw4: 222,283
screw4_name: back right
speed: 100.0
screw_thread: CW-M5
[bed_mesh]
speed: 800
mesh_min: 30,30
mesh_max: 270,270
probe_count: 5,5
mesh_pps: 2,2
algorithm: bicubic
bicubic_tension: 0.2
move_check_distance: 3.0
split_delta_z: .010
fade_start: 1.0
fade_end: 5.0
########################################
# EXP1 / EXP2 (display) pins
########################################
[board_pins]
aliases:
# EXP1 header
EXP1_1=PC5, EXP1_3=PB1, EXP1_5=PE10, EXP1_7=PE12, EXP1_9=<GND>,
EXP1_2=PB0, EXP1_4=PE9, EXP1_6=PE11, EXP1_8=PE13, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PA6, EXP2_3=PE7, EXP2_5=PB2, EXP2_7=PC4, EXP2_9=<GND>,
EXP2_2=PA5, EXP2_4=PA4, EXP2_6=PA7, EXP2_8=<RST>, EXP2_10=<NC>
# See the sample-lcd.cfg file for definitions of common LCD displays.
[gcode_macro update_git]
gcode:
RUN_SHELL_COMMAND CMD=update_git_script
[gcode_shell_command update_git_script]
command: bash /home/wilsonm/printer_1_data/klipper-backup/script.sh
timeout: 90.0
verbose: True

OrcaSlicer Calibration and Max Flowrate

OrcaSlicer Calibration and Max Flowrate: Fix It Fast with Orca Slicer’s Calibration Tool

Section titled “OrcaSlicer Calibration and Max Flowrate: Fix It Fast with Orca Slicer’s Calibration Tool”

According to Prusa3D, Max Volumetric Speed is defined as:

The Maximum volumetric speed setting (MVS) is one of the most powerful features in PrusaSlicer. The MVS setting essentially creates a manager for the maximum amount of filament that the slicer will attempt to push through your 3D printer’s hotend.

Dial in Your Prints: OrcaSlicer Max Flow Rate Calibration Test

Stop printing with gaps and blobs! Master your flow rate with OrcaSlicer’s built-in Max Flow Rate Calibration Test.

This beginner-friendly tutorial will guide you step-by-step through the entire calibration process. Learn how to:

  • Access and configure the Max Flow Rate test in Orca Slicer
  • Print the test model and identify the optimal flow rate for your filament
  • Apply the new flow rate settings to achieve flawless prints with consistent material extrusion

Say goodbye to under-extrusion and hello to smooth surfaces and sharp details! This video is perfect for anyone who wants to take their 3D printing to the next level with OrcaSlicer.

Calibration Spreadsheet: https://docs.google.com/spreadsheets/d/1LlSHsa86RuT_btswmDsmQp0LrTJ9U0HJcRhorsqz1ug/edit?usp=sharing

References:

#3dprinting #klipper #3dprinter #orcaslicer