A tip on the G90/G91 issue - I put the G90 in the PRINT_END and CANCEL_PRINT macros so that it's always in absolute mode after a print or after cancelling, rather than putting it in PRINT_START. That makes any manual commands work as expected. Also, put an M18 in CANCEL_PRINT to put it into a "safe" state. You might have canceled because of skipped steps, so your firmware's coordinates are out of sync with the actual physical position. M18 turns off the steppers, which forces it to home before any other movements are allowed. This is obviously in addition to turning off the heaters, etc. which should already be in CANCEL_PRINT. If you're willing to learn how git works, or you're a programmer and already know, it's worth making a git repository for your klipper configs (and even your slicer configs). That gives you a backup, as well as tracking versions; maybe you made a change that broke something, and you don't know what it was - it's easy to revert that. You can also split it out into printer-specific configuration options from non-printer-specific ones. That way you can keep those options in sync across multiple printers very easily. For instance, if you write a cool new macro, you can add it to all of your printers with minimal effort. Generally, it's worth learning how the template/macro language works in Klipper. You can set up some pretty fancy macros for automatically managing filament-specific settings, heat soaks, automating a Nevermore, etc.
Thanks Nero, because of you I converted my printers to Klipper a year ago and I'm still very happy. So here is my little tip I want to share: define a [idle_timeout] section in your printer.cfg where you add what has to be disabled when paused. This way when making, for example, an M600 macro your bed will stay heated and your steppers enabled.
Not so much of klipper but mainsail quick tipp - in the file list there is a setting to hide the autobackup files mainsail creates. good to have them - but nobody wants to see them :)
You are technically correct, which is the best kind of correct. However, I beleive that is only in the 2.1.1 release. He is running v2.0.1. There are some features he doesn't have from the current release.
Great tips! I’m going to definitely move my macros over. One of the things that I didn’t like about macros was how cluttered it made my config file. Thank you!
Just wanted to add that if you're having problems with getting your heater bed to work correctly after making the PWM_CYCLE_TIME change, try playing around with the target HZ value (1/60 is for 60 hz, 1/59 is for 59 hz, etc.) to get it to behave normally and still eliminate the light flickering. I had to go to 59 hz because my SSR did not like the 60hz value and I kept missing the zero crossing window for my relay at 60hz. Just bump it up and down around your target until you're happy.
Great video, Liked the Editor Nero Overlay, Need to try the pwm_cycle_time, my LED blubs flicker during prints. These tips will help alot, Thank you NERO3d
Nero, thanks for all the help, my Voron build was a breeze thanks to you. Here is my problem: I blew my 5A 110V fuse within 2 seconds of using 0.01666 cycle, no motors moving 750W bed. I am also not sure how max_power affects it, but mine was at 0.6
dear sir, many thanks for your abundance of useful videos. I enjoy your format, I find you clear and concise. Given the ungodly hike in ras-pi's the last couple of years could you make a video on installing klipper onto a linux laptop ie a surplus old machine Mac or windows that has some for of debain distros on it. Unless of course you already have and my smooth brain hasn't sniffed it out yet-if so please point me into the right direction. I am but a nob so please don't hold back. Having scrapped around the lest few days im still at a loss at to exactly how I go about creating flash sd's to boot printers off. Ive sucsessfluy loaded linux onto a machine or two in the past but alas it is all still way above me. Many thanks for all your content. Keep on printing!
Nero, good stuff, as usual. Could you also consider making same format short tutorials, covering mechanics: Gantry alignment and belt tension. Z calibrate with klicky probe and best practice setting up start routine (homing, quad level, Z calibrate, mesh load etc) I know that most of it has been covered during life streams. But small tutorials are much easier to search and navigate. IMHO.
I had issues with my ups when using pwm_cycle_time of 0.0166. After printing for a while the ups started alarming. After searching in discord it appears that some ups don't like devices that cycle at exactly 60hz. Ellis uses 0.017. This works for me with my ups.
Hello hello :) SKR 1.3/1.4 you can flash directly from Raspberry Pi. Check the full list of boards supported by Klipper. So you don’t have to jogging with the SD card at all :)
G90 = Absolute mode = The coordinate values specify an exact location in 3D space. The toolhead will figure out how to get there from it's current location. G91 = Incremental mode = The coordinate values specify direct distance values for each axis. The toolhead simply moves by the amount specified in the values.
One video that would be extremely helpful would be a guide for how to create a klipper config based on a marlin config and marlin pins file. I have a printer which don't have a klipper config for the stock controller. Been trying to create one, but I'm pretty stuck getting all the pins correctly named etc
I'm not sure what you're looking at but there's not much about Klipper that has changed in recent memory that would affect a beginner setting up an Ender. Just check which motherboard and stepper motor drivers yours has.
Nearly at 30k subs. Early congratulations. Surely pwm_cycle_time should equal 0.0167, not 0.166? Might not make any difference, but my mathematical rounding rules OCD can't handle this truncation!
The G90/G91 hint is the most important and is not related to the Klipper only. Almost all firmwares use the same approach even considering the fact some Chinese vendors customize Marlin settings for their boards to have G90 mode as a default( and some use G91 as a default value). Quite often different bloggers/reddit topics and forums provide a "silver bullet" "start code" for slicer printing settings for newbies. In 99% this code has a purge line(s) movements, but only 2 out of 5 explicitly specify G90 mode before the line drawing commands.
doing the "pwm_cycle_time" caused me to get constant temp errors and firmware restarts. Discord users noted that SSR are 0 cross activated, meaning the wait for the AC wave to pass through 0 to trigger it on/off. if your cycle time matches that cross over time, it won't always turn on the SSR, but klipper won't know this and so the heater doesn't heat as fast as it should and fails.
Or ... instead of downloading printer.cfg, put your config files in a git repo and just commit every change and push it to a server repo as backup/history. I feel the Mainsail UI could add support to semi-automate this and also which every slicer would add this option for their profiles and config files (yes, I also do that manually on the config/profile files of SuperSlicer).
Keep you config in git. Make a commit after you make a change, now you can have infinite rollbacks. Push to a private GitHub to keep the config safe. VScode is worth investigating, it lets you edit the config in place, has github integration, has a terminal you can play with the pi and edit the files all from one place
Incremental is the term that has been used for at least 40 years for the G91 functionality in CNC machines. Using "relative" might be helpful in explaining the concept, but it is certainly not a replacement for the correct term.
@@daphoosa Good to know. For me who has no experience in CNC it make more immediate sense to think of a relative move. You are right increment works too, it just takes more thought for someone not familiar to figure out what it means.
Thanks for your videos! I just started using klipper on my Anycubic Mega S and i encountered the problem, that the stock speeds (F7600) used for the incremental movments (using the GUI) are too high for my printer and it just rattles and only moves a tiny bit. I can manually decrease speeds to 45% with the GUI and everything works just fine. Should i try to increase the voltage on the stepper driver or is there also a way to reduce the "stock speeds"?
Hi, I am trying to convert my CR-10 Smart to Klipper. I am reality new to to 3d printers and my first time working with Klipper. I have seen the over range issue you refrenced. Where can i find the "start_print macros", all I see is the mainsail.cfg file that does not contain the start _print macro. Also can you point me to a good reference to setup a webcam.
Just added the pwm code for 60hz. It definitely stopped my lights from flickering but then looking at the heat graph it's on a consistent temp increase anymore then I clipper emergency stop saying the bed wasn't heating as expected. Any idea why this could happen? Using BTT Octopus with SSR controlling the bed on mains power (110v). Removed that line and seems to be working fine again. Thanks!
You might have a problem with synchronization and turning the ssr on/off. Some SSR turn on when the voltage (sine wave) goes true 0. All SSR turn off when the current goes thru 0. If you get lucky and try to match the frequency you might get funny regulation no mater what PID settings you are using. If you would want to do it "proper" then you would need to synchronise your pwm_cycle_time to the mains frequency. We can thank that the time response of the alu plate is >>> then mains frequency, as if not the PID regulator would not be stable at any setting.
I barely know how to use github lol, All the voron configs are available on the voron github though and theres many example configs for most printers/controller boards on the klipper github
what if for example u create a new folder and u keep ur macros.cfg in that folder (klipper will say it cannot find it in pi home klipper_config) how to u add a path
I would love to use Klipper, unfortunaley it doesnt work on my enderV2. Everytime i try ls /dev/serial/by-id/* i get "ls: cannot access '/dev/serial/by-id/*': No such file or directory". Did all the steps Nero recommends in his stream/ video, followed the mainsail/ klipper doc 1:1, nothing helps. Has anyone any idea what could gone wrong? First time with Klipper/ Rapsberry
i have 1 problem with me jumping into klipper firmware how to you turn off everything by turning off the power supply aka protecting the raspberry pi and sd card corruption nobody anwser that very question :S thanks Edit1: right now i found a diagram to send a low signal when power out and a ups for the RPI but how does i program the pi to read a GPIO pin since i do not know how linux work i am lost aslo klipper seem to be using his own OS so how does that compare to raspian when it come to stuff like this Edit2: found a script you can install for that but afraid to try with actual RPI with klipper installed to see if its the same as raspian os waiting for a pico to get shipped
Hey man ive just gotten my first voron(kit) and ive gotten it built but i cant figure out how to home my axis When i home any axis the z goes up as it should but then stops and tells me mcu shutdown please help. Got plenty of usable memory on my pi aswell as low cpu usage.
bro if your lights flicker when your bed is on you need to call an electrician for real anything else is just asking for trouble they should not flicker under any resistive power draw. youre not magnetizing a big transformer or starting a 1MW induction motor! youre switching a resistive heater. imagine using one of those 3kW air heaters, thats much more then your max 1kW bed, only a question of time when your house burns down.
Unfortunately, not all SSRs are compatible with pwm_cycle_time settings. You should warn your viewers. Otherwise they will flood your comments section with angry crying messages . 🤣
Flashing controller firmware is even simpler than that - in recent versions of Klipper it is zero copy. Klipper has a bunch of scripts for flashing firmware, including "flash-sdcard.sh" that copies the firmware directly to the SD card in the controller board, then reboots the controller. As long as there is an SD card in the board (I leave mine in there permanently) then it is just a matter of running the script. You have to supply the name of the USB connection as a parameter.
A tip on the G90/G91 issue - I put the G90 in the PRINT_END and CANCEL_PRINT macros so that it's always in absolute mode after a print or after cancelling, rather than putting it in PRINT_START. That makes any manual commands work as expected. Also, put an M18 in CANCEL_PRINT to put it into a "safe" state. You might have canceled because of skipped steps, so your firmware's coordinates are out of sync with the actual physical position. M18 turns off the steppers, which forces it to home before any other movements are allowed. This is obviously in addition to turning off the heaters, etc. which should already be in CANCEL_PRINT.
If you're willing to learn how git works, or you're a programmer and already know, it's worth making a git repository for your klipper configs (and even your slicer configs). That gives you a backup, as well as tracking versions; maybe you made a change that broke something, and you don't know what it was - it's easy to revert that. You can also split it out into printer-specific configuration options from non-printer-specific ones. That way you can keep those options in sync across multiple printers very easily. For instance, if you write a cool new macro, you can add it to all of your printers with minimal effort.
Generally, it's worth learning how the template/macro language works in Klipper. You can set up some pretty fancy macros for automatically managing filament-specific settings, heat soaks, automating a Nevermore, etc.
Would love a video like this going through motor settings.
Run current, hold current, resistance, stealth chop, etc.
klipper docs plenty good for that no need to waste the masters time
I also recommend Eddie's video on stepper motor speeds
awesome idea... I would love this as well.
those are the things he actually needs to cover like day 1 but still haven’t
I like the way Nero does those tutorials. It helps then navigate in manuals, when needed.
I struggled with the move out of range issue since over a year and didn't find a fix. Hopefully it works:) thank you really much !!!!
Yeah that move out of range error has been driving me nuts. Thanks again for the tips.
That trick to get a hold of the .bin file is invaluable, thank you so very much.
Good topic for next round would be SLICER gcode for print_start to properly recognize temp variables. This one tripped me up something fierce.
This is so nice, I have spent a couple of hours searching for how to make the lights not flicker when the bed is on. Thanks
Thanks Nero, because of you I converted my printers to Klipper a year ago and I'm still very happy. So here is my little tip I want to share: define a [idle_timeout] section in your printer.cfg where you add what has to be disabled when paused. This way when making, for example, an M600 macro your bed will stay heated and your steppers enabled.
Holy moly Nero! This is amazing! This kind of thing will be huge for many people! Thank you for doing this and everything else you do.
Awesome Tipps! Had to Google my way through nearly every single one of these when first starting with Klipper.
This is the best awesome quick tips i have ever got. More of this please.
THANK YOU💪
All I can say is "Thank You! Awesome informational video."
Thank you, I knew you could separate the macros but not how. Also that firmware move is the best thing ever, saves so much time.
Not so much of klipper but mainsail quick tipp - in the file list there is a setting to hide the autobackup files mainsail creates. good to have them - but nobody wants to see them :)
You are technically correct, which is the best kind of correct. However, I beleive that is only in the 2.1.1 release. He is running v2.0.1. There are some features he doesn't have from the current release.
Ya, ive got many different versions of mainsail/fluidd on my machines, im horrible when it comes to keeping them up to date. lol
Thanks for the tip! It's in 2.1.0 according to the mainsail github releases.
Thanks! Very good video. I think software is the thing most people struggle with.
Thank you for the flicker fix! It was starting to drive me nuts!
Great tips! I’m going to definitely move my macros over. One of the things that I didn’t like about macros was how cluttered it made my config file. Thank you!
The flickering! I thought I was stuck with it, thank you sir
Great info here! My 650W heater causes some SERIOUS flickering, going to try this out tonight to see how she goes.
Want more videos like these. They can really help
Just wanted to add that if you're having problems with getting your heater bed to work correctly after making the PWM_CYCLE_TIME change, try playing around with the target HZ value (1/60 is for 60 hz, 1/59 is for 59 hz, etc.) to get it to behave normally and still eliminate the light flickering. I had to go to 59 hz because my SSR did not like the 60hz value and I kept missing the zero crossing window for my relay at 60hz. Just bump it up and down around your target until you're happy.
Nice, thanks for the include macros tip!
Editing Nero seems like a real cool dude
Would be interested in seeing your start/end script just to do a comparison...
Man, I freaking love you
Great video with some awesome tips! Thank you!!
Great video! the copy of the bin file was a good idea!
Please more of this! Awesome video!
Good video! I would love more Klipper tips like this. :)
Fixed my lights.. Excelllllllllent.
Like that smash button everytime.
Great video, Liked the Editor Nero Overlay, Need to try the pwm_cycle_time, my LED blubs flicker during prints. These tips will help alot, Thank you NERO3d
Great video! I'll be updating my config file when I get home :D
please do more vids like this. klipper tricks in small steps :)
Nero, thanks for all the help, my Voron build was a breeze thanks to you. Here is my problem:
I blew my 5A 110V fuse within 2 seconds of using 0.01666 cycle, no motors moving 750W bed. I am also not sure how max_power affects it, but mine was at 0.6
Same here.
750W bed? The fuse holds up to 550W, that seems to be the problem here
dear sir, many thanks for your abundance of useful videos. I enjoy your format, I find you clear and concise. Given the ungodly hike in ras-pi's the last couple of years could you make a video on installing klipper onto a linux laptop ie a surplus old machine Mac or windows that has some for of debain distros on it. Unless of course you already have and my smooth brain hasn't sniffed it out yet-if so please point me into the right direction. I am but a nob so please don't hold back. Having scrapped around the lest few days im still at a loss at to exactly how I go about creating flash sd's to boot printers off. Ive sucsessfluy loaded linux onto a machine or two in the past but alas it is all still way above me. Many thanks for all your content. Keep on printing!
Nero, good stuff, as usual. Could you also consider making same format short tutorials, covering mechanics:
Gantry alignment and belt tension.
Z calibrate with klicky probe and best practice setting up start routine (homing, quad level, Z calibrate, mesh load etc)
I know that most of it has been covered during life streams. But small tutorials are much easier to search and navigate.
IMHO.
Brilliant video!!
Great videos man. Could you do a review of the stealthburner and compare it to other fan ducts? I feel like it's not getting the love it deserves.
I had issues with my ups when using pwm_cycle_time of 0.0166. After printing for a while the ups started alarming. After searching in discord it appears that some ups don't like devices that cycle at exactly 60hz. Ellis uses 0.017. This works for me with my ups.
0.017 my lights flicker, at 0.01666 I blew one of the 5A 110V fuses.
Hello hello :) SKR 1.3/1.4 you can flash directly from Raspberry Pi. Check the full list of boards supported by Klipper. So you don’t have to jogging with the SD card at all :)
G90 = Absolute mode = The coordinate values specify an exact location in 3D space. The toolhead will figure out how to get there from it's current location.
G91 = Incremental mode = The coordinate values specify direct distance values for each axis. The toolhead simply moves by the amount specified in the values.
One video that would be extremely helpful would be a guide for how to create a klipper config based on a marlin config and marlin pins file.
I have a printer which don't have a klipper config for the stock controller.
Been trying to create one, but I'm pretty stuck getting all the pins correctly named etc
0:32
"Hey Alexa, flicker the lights with dramatic effect"
"Alright, flickering light with dramatic effect"
Love these videos you make. Any plans to make an up to date beginners style Ender 3 clipper video ?
I'm not sure what you're looking at but there's not much about Klipper that has changed in recent memory that would affect a beginner setting up an Ender. Just check which motherboard and stepper motor drivers yours has.
Nearly at 30k subs. Early congratulations.
Surely pwm_cycle_time should equal 0.0167, not 0.166? Might not make any difference, but my mathematical rounding rules OCD can't handle this truncation!
Now go and measure the frequency of the mains and see your OCD trigger.
Gracias por compartir!!!
The G90/G91 hint is the most important and is not related to the Klipper only. Almost all firmwares use the same approach even considering the fact some Chinese vendors customize Marlin settings for their boards to have G90 mode as a default( and some use G91 as a default value). Quite often different bloggers/reddit topics and forums provide a "silver bullet" "start code" for slicer printing settings for newbies. In 99% this code has a purge line(s) movements, but only 2 out of 5 explicitly specify G90 mode before the line drawing commands.
doing the "pwm_cycle_time" caused me to get constant temp errors and firmware restarts. Discord users noted that SSR are 0 cross activated, meaning the wait for the AC wave to pass through 0 to trigger it on/off. if your cycle time matches that cross over time, it won't always turn on the SSR, but klipper won't know this and so the heater doesn't heat as fast as it should and fails.
Or ... instead of downloading printer.cfg, put your config files in a git repo and just commit every change and push it to a server repo as backup/history. I feel the Mainsail UI could add support to semi-automate this and also which every slicer would add this option for their profiles and config files (yes, I also do that manually on the config/profile files of SuperSlicer).
The pwm_cycle_time trick is not just for AC beds, solves the flickering for me on my DC bed.
Yup, this applies to more than just AC beds, but they seem to be the ones that suffer from the flickering effect the most
Keep you config in git. Make a commit after you make a change, now you can have infinite rollbacks. Push to a private GitHub to keep the config safe.
VScode is worth investigating, it lets you edit the config in place, has github integration, has a terminal you can play with the pi and edit the files all from one place
Hey Nero, would you be willing to make a video on how to use an old Android phone (or tablet) as a KlipperScreen? Thank you for your work!
First time first comment ever :)
SCNR
I think calling G91 a relative movement to the current position might be easier for people to grasp?
Incremental is the term that has been used for at least 40 years for the G91 functionality in CNC machines. Using "relative" might be helpful in explaining the concept, but it is certainly not a replacement for the correct term.
@@daphoosa Good to know. For me who has no experience in CNC it make more immediate sense to think of a relative move. You are right increment works too, it just takes more thought for someone not familiar to figure out what it means.
i liked that smash button
Thanks for your videos! I just started using klipper on my Anycubic Mega S and i encountered the problem, that the stock speeds (F7600) used for the incremental movments (using the GUI) are too high for my printer and it just rattles and only moves a tiny bit. I can manually decrease speeds to 45% with the GUI and everything works just fine. Should i try to increase the voltage on the stepper driver or is there also a way to reduce the "stock speeds"?
Hi! Can you please do a Klipper install on an android tv box? Thank you!
Warning! If you have a zero crossing solid state relay (technically the better ones) and you set cycle time 1/frequency, it won't work properly.
Hi, I am trying to convert my CR-10 Smart to Klipper. I am reality new to to 3d printers and my first time working with Klipper.
I have seen the over range issue you refrenced. Where can i find the "start_print macros", all I see is the mainsail.cfg file that does not contain the start _print macro.
Also can you point me to a good reference to setup a webcam.
Just added the pwm code for 60hz. It definitely stopped my lights from flickering but then looking at the heat graph it's on a consistent temp increase anymore then I clipper emergency stop saying the bed wasn't heating as expected. Any idea why this could happen?
Using BTT Octopus with SSR controlling the bed on mains power (110v). Removed that line and seems to be working fine again.
Thanks!
Re-run your PID tune after adding the pwm_cycle_time
You might have a problem with synchronization and turning the ssr on/off. Some SSR turn on when the voltage (sine wave) goes true 0. All SSR turn off when the current goes thru 0. If you get lucky and try to match the frequency you might get funny regulation no mater what PID settings you are using.
If you would want to do it "proper" then you would need to synchronise your pwm_cycle_time to the mains frequency. We can thank that the time response of the alu plate is >>> then mains frequency, as if not the PID regulator would not be stable at any setting.
So are you saying that the SKR mini E3 can’t be flashed over usb?
@NERO 3D Do you have any GitHub account with all your configuration for klipper for example ? Thanks 🙂
I barely know how to use github lol, All the voron configs are available on the voron github though and theres many example configs for most printers/controller boards on the klipper github
Why don't you use a symlink in linux to permanently link the firmware.bin to the config folder?
what if for example u create a new folder and u keep ur macros.cfg in that folder (klipper will say it cannot find it in pi home klipper_config) how to u add a path
I have a 24v bed but still see a little bit of flickering, will this fix it?
It should, if not, just delete the line after :P
@@CanuckCreator seems to have worked :)
I would love to use Klipper, unfortunaley it doesnt work on my enderV2.
Everytime i try ls /dev/serial/by-id/* i get "ls: cannot access '/dev/serial/by-id/*': No such file or directory".
Did all the steps Nero recommends in his stream/ video, followed the mainsail/ klipper doc 1:1, nothing helps.
Has anyone any idea what could gone wrong? First time with Klipper/ Rapsberry
i have 1 problem with me jumping into klipper firmware
how to you turn off everything by turning off the power supply
aka protecting the raspberry pi and sd card corruption
nobody anwser that very question :S
thanks
Edit1: right now i found a diagram to send a low signal when power out and a ups for the RPI
but how does i program the pi to read a GPIO pin since i do not know how linux work i am lost aslo klipper seem to be using his own OS
so how does that compare to raspian when it come to stuff like this
Edit2: found a script you can install for that but afraid to try with actual RPI with klipper installed to see if its the same as raspian os waiting for a pico to get shipped
Can you run mainsail on your web browser and use the internet for emails at the same time?
It just loads up like any normal webpage, so yes
Hey man ive just gotten my first voron(kit) and ive gotten it built but i cant figure out how to home my axis When i home any axis the z goes up as it should but then stops and tells me mcu shutdown please help. Got plenty of usable memory on my pi aswell as low cpu usage.
Try a different USB cable first
Woah nero without glasses is so strange...
Near sighted, so normally when im on the computer i dont wear em lol
Tonge twisters: "Quick Klipper Tips"
Woho there mister. You without an apron should be reserved for onlybenchies. :D
hello santa
If you turn on your printer, and your lights flicker... get a new house!
bro if your lights flicker when your bed is on you need to call an electrician for real
anything else is just asking for trouble
they should not flicker under any resistive power draw. youre not magnetizing a big transformer or starting a 1MW induction motor! youre switching a resistive heater.
imagine using one of those 3kW air heaters, thats much more then your max 1kW bed, only a question of time when your house burns down.
Unfortunately, not all SSRs are compatible with pwm_cycle_time settings. You should warn your viewers. Otherwise they will flood your comments section with angry crying messages . 🤣
Flashing controller firmware is even simpler than that - in recent versions of Klipper it is zero copy. Klipper has a bunch of scripts for flashing firmware, including "flash-sdcard.sh" that copies the firmware directly to the SD card in the controller board, then reboots the controller. As long as there is an SD card in the board (I leave mine in there permanently) then it is just a matter of running the script. You have to supply the name of the USB connection as a parameter.