If you do much with a 3d printer, at some point you will need to head out of the house but still want to monitor your printer’s progress. There are a few ways to do it. I’ll tell you how I have my printer set up for this.

A few years ago I tried Octoprint on a Raspberry Pi, which was configured and connected to my printer with an attached camera. I used Octoprint to manage my printer and all of my gcode. It did a fine job, to be honest, and I don’t really have any complaints except that Octoprint feels “heavy” and sluggish.

At some point I found out about Klipper. I set it up one day to give it a try and I’ve stayed with Klipper ever since. It provides all of the tools that I need to monitor my printer and to manage my printer. It also provides me with an upgraded firmware that seems to give me better print results.

I’ve only been able to get Klipper to work on my home network, so I wasn’t really able to monitor my printer if I had to run to the grocery store for a minute. I found a telegram plugin that allows me to communicate with the printer from my cell phone, even if I’m not home. 

Have you ever looked at your 3d print and wondered what those little patterns are in the sides of your print? It’s possible that they are artifacts from resonance in your X and Y axes. Resonance, meaning that your axis is vibrating, which means that your nozzle, which rides on the axis, is also vibrating, which means that you are transferring those vibrations to your print.

There are a few things you can adjust.

Most printers have off center holes in the bearings that the axes ride. This is done intentionally, so that you can adjust the tension. Make sure that your bearings are tight. Make sure that your belts are tight too. Try wiggling the motors, the print head, the bed, and the vertical supports. 

What does this have to do with resonance compensation? I’m a believer that you can’t solve a mechanical problem with software. If something is loose, don’t try to apply compensation, fix the problem.

Even after you have a mechanically solid machine, however, you will still have some resonance remaining in the system. I believe that this is what resonance compensation is for, not to mask underlying mechanical problems.

Ringing. Ghosting. Wavy walls. They all are the same thing and they all come from vibrations in your printer. A loose belt on a printer can cause a significant degradation of your prints. When I see that I have wavy walls, I start by checking to make sure that my belts are tight and that my rollers function smoothly and that they are tight too. From there, I cycle the motors back and forth, one axis at a time. Make sure that the look smooth. The human eye is not great at approximating large distances, but fantastic at noticing small changes, such as a roller that has a slight bump in it at a certain point in the axis.

Once I am convinced that my printer is mechanically as good as I’m able to make it, I pull out my software tricks. I enable resonance tuning in Klipper and run the resonance tuning test part. I typically get different values for the x and y axis, as they tend to resonate at different frequencies. This does a pretty good job of removing any remaining vibrations out of the system.

For those using Klipper, they just released a pretty major change in the way that they store files. When I updated to the latest version all of my config files disappeared. As I looked into it, there seemed to be a lot of other people experiencing the same issue. It turns out that my files did not disappear at all. They were still there, they just had the incorrect file permissions. Here is how I was able to fix it after some Googling.

First, ssh into your pi and take a look in ~/printer_data/configand ~/klipper_config.

If your files are in one of those places, then you should be fine. If neither of those folders has your config files, then that is a separate issue entirely and you should reinstall moonraker and klipper. If you were able to see the config files in your ssh session, but not from your web access, then run the following commands in ssh.

cd ~/moonraker
git pull
./scripts/data-path-fix.sh

I recently stumbled across MobileRaker on the iPhone app store. If you are using Klipper, MobileRaker makes things so easy for you. I would encourage you to use it. And if you aren’t using Klipper, I would encourage you to check it out. I’ve noticed a significant improvement in both the quality of my prints and the speed at which they print. Usually, those two things work against one another, but Klipper has managed to accomplish both.

This tip is so specific that I’m surprised that it has come up as frequently as it has. For context, many people use Klipper on a Raspberry Pi to manage their 3d printer. There are two main interfaces for Klipper, Mainsail and Fluidd. This tip is for those who are set up with Mainsail.

When moving your 3d printer to a new wifi network, there are two things that I do. With the Raspberry Pi powered off, remove the SD card and put it into your laptop or desktop computer. Ensure that you don’t use Notepad or Wordpad to edit the file, as they tend to bring in characters that mess up files. Use something like Notepad++ instead. In the root directory of the SD card you will find a file called mainsailos-wpa-supplicant.txt. Open that file in your text editor and change your network information. Most common nowadays is WPA/WPA2.

The other optional step that I do is to log into the router and set up my Raspberry Pi as a static ip address instead of letting DNS manage it. Each router is different, so I won’t go into detail on how to do that here. Most routers have something like “Advanced networking.”

[boldgrid_component type=”wp_block”]

Mesh Fade


I recently saw a question on a forum about a warped bed. The question had to do with whether or not the top of the part would also be warped because it follows the bed shape. You can avoid this in Klipper by implementing mesh fade in your bed mesh block. Below is a complete bed mesh block, the last 2 lines are the significant ones to implement mesh fade. Fade_start tells Klipper to start expanding or contracting layers, starting at 1mm height to start to normalize everything. Fade_end tells Klipper that the fade should be complete by a height of 10mm. So, at 10mm and upwards, the top of the part should be flat even though the bottom of the part will follow the bed’s contour.

[bed_mesh]
speed: 120
horizontal_move_z: 5
mesh_min: 35, 6 
mesh_max: 240, 198 
probe_count: 5, 3 
fade_start: 1 
fade_end: 10