Very clear and helpful presentation with key details to get me going. Only issue is I didn't listen carefully enough and so my machine was running with the sensor not reporting and my printer didn't tell me! lol. My runout lights were all working but my runout sensor was not because I didn't put the exclamation mark in front of the pin. All working well now for next time I run out!
Thanks for the clear tutorial! I installed the same sensor last week, for some reason your code didn’t work for me but I just copied the one from Ellis and that worked fine. However after now using up a dozen almost empty spools, I am not sure if I can recommend the TL sensor to others: While a simple install that works in some cases, more often it does not for me: most filament manufacturers fix the beginning (or end as you are printing) of the filament onto the spool in some way when they roll it up, so it does not simply unroll, but leaves a very sharp end. This bent end piece will often get stuck in the entrance of my TL filament sensor, so that it doesn’t trigger, but just skips extruder steps or grinds on the filament (this is with my LGX Lite which has large grippy gears) instead. I am now going to try the BTT smart filament sensor next, since that one can detect actual movement as well, and can tell when the filament is stuck while it should be moving, and not just tell whether there is filament inserted in the sensor or not.
@@KapmansBasementWorkshop Esun are renowned but have stop taping the ends. Be sure to check with suppliers before purchase...they will fix it quick enough 🙂
Great video, I really appreciate the detailed code walk through. Tip: when perusing a large file use Ctrl+f or cmd+f on Mac that way you don't have to visually inspect the file
Not a great idea plugging in peripherals into motherboards while they are on. I should know, I've broken a few in my time. That aside, really appreciate your channel, it's proven useful many times. Thanks.
Wow, I forgot to turn it off and did not notice! I'll post a warning in the notes. Thanks for the kind words and I'm glad the channel has proven useful. Even when it's showing something one should not be doing! Thanks for watching!
I actually considered it. But I needed to design a mount and I did not have the time. But really, on a direct drive extruder, that IS the location for it. I fully agree with you. Thank you for watching!
I'm running Klipper Mainsail on a SKR V2 on my Hypercube.Runout sensor is from TH3D.It will trip with light on sensor,but not on Klipper screen,So more work to try and figure out why.
Thanks...solid video. Isnt there the bed info available in the 'params' object ie just use params.bedsize * 0.5 (Im not sure of the actual named parameter)? If I comment out 'pause_resume' I get an error: "gcode command M600 already registered" but I cant find the def in printer.cfg and the def in macro.cfg is commented out?
My apologies, are you referring to the location of the "pause_resume" macro? I created "pause_resume" in the "printer.cfg" file. I use fluidd, so the Pause macro and the resume macro are in the "Fluidd.cfg" file. I left those "as-is". I hope that helps.
Neat! something I have been considering and have lost prints from this. Does that filament run out sensor allow filament to be fed through it backwards? I'm not a fan of removing the filament from the top of the print head where the ptfe tube enters. I'd like to set a 100mm retract to fully unload the filament from the print head. With such a retraction it would be pushed back into the filament run out sensor. Will it allow a reverse feed. Alternatively can have the other side of the filament runout sensor not in ptfe tube so you can access it on a full 100mm retraction unload. Would be interesting to know. I guess you could have a Macro that runs Resume_Print and M117 Printing Resumed to update the screen or to clear it.
The runout sensor does allow the filament to run backwards. A 100mm retract should be no problem. I have had some issues with filament getting jammed in the hotend in that past with those quick big retracts which require disassembly of the print head to fix. So I cut the filament just above the print head and pull it out and extrude 50mm or so of the old filament as I feed the new filament in. But I think I solved the jamming problem yesterday, I just don't have the nerve to try it now. Also, you have a knack for the simple straight forward solutions. Again, I should have thought of the resume_print macro you just suggested! I'm going to make that change. Thank you for the comments, the tip and watching!
Great tutorial. I have only one isseu. When i pull the filament in the runout sensor it shows orange on the klipper page and when i take it out it is green :)) . Using a skr mini e3 v2 the filament runout pins on the board. Is there a way to switch this?
I had to go back and rewatch the video to see what you are referencing. I'm actually laughing about it now that you mention it. It's pretty darn funny! I was kind of irritated at myself when I actually did that. It was not as bad as it looked. It was super easy to untangle. Thanks for the cool comments and thank you for watching!
One big issue with the brush location is if you use it while printing a full bed you will certainly hit some parts (on a V2.4) so it should be relocated on the gantry. Is anyboby tried this?
In my search, I did not run into any others that were mounted to the gantry for the 2.4. But you have a good point. It would not be hard to design one. The macro would be just as simple, possibly even simpler.
I have found this, That my Probe is most likely to collide with the brush teeth. One solution was to Cut the Brushes shorter so they are at the height of the Bed. I am yet to do this. I'm also thinking a new mount that sets the brushes at the correct height might be a cleaner solution. At the moment i'm just conscious of how I utilize a full bed on prints.
@@jc84com I'm using Euclid, so when printing, my probe is not attached to the print head, so I don't actually have a problem here. All removable magnetic probes skirt this problem, or so I think.
Yes, I had alot of trouble with that one....I'm slowly getting better at manual focus. But I need by glasses to try and focus in those cases too! Thanks for watching!
hello, I am having some trouble. so when I installed my smart sensor and code it wouldn't allow my sonic pad to work and said I need to correct line M600.
You should have a look at your M600 macro. Something isn't quite right there. Possibly the pin assignment? Mine looks like this: github.com/Kapman1/Kapman1/blob/main/runout.cfg
My prior experience with a pi is that you can connect almost anything to it, sometimes directly and sometimes an additional circuit is needed. When I last connected a switch, you need to often resolve the switch's internal contact bouncing when flipped. You would need to write some software to filter it (I don't know if Klipper does this) and use a pull down circuit circuit for accurate readings. I was worried that it would appear to Klipper that the switch was flipping between on/off for about a 10th of a second or so I and I did not think it was worth the effort to find out what would happen. The Spider and the other controller boards have these circuits/filters built in. I also had several sockets for endstop switches not in use. In addition, I know 100% that Klipper will recognize switches on the MCU. All that to say, it was easy to do so :).
When you type resume... If you had a taller print and the scrub macro ran, so now toolhead is down low , z30 or whatever, now resuming position from runout spot. Tool head going on a straight line to potion potentially colliding with print. How can we call up the saved z postion to move to that +10 after scrub so tool moves downwards to print postion?
Never mind thought of solution right after asking. After scrub just tell z to go to z max then no matter what it will always be above print when moving back to m600 saved spot.
I'm on the road atm so I'll re-watch when I'm at my printer, but is there anything that needs to be done about the the default timeout settings? If the sensor triggers & I don't see it for an hour, will the bed cool off & releases the print or have the Z lose 1/2 or 1/4 steps?
I'm not 100% sure as I'm typically close by when I run a print. However, my timeout for my printer is set for 2 hours which may explain why I have not had any timeout issues. You can change in in your printer.cfg file. I'm pretty sure you just need to change this: [idle_timeout] timeout: 7200 # change to whatever value works for you in seconds.
The actually filament sensor should work as long as you have some space on the MCU to plug it in. The only other issue is that I believe Anycubic uses Marlin for it's firmware, so the instructions to get that working is very different from this video which is using Klipper.
@@KapmansBasementWorkshop Thanks for the reply. Yes I am running Klipper screen also. Once the sensor is tripped the message stays on the screen where it usually says “printing”. I have tried a few things and for now I just deleted the message in .cfg
I don't believe these codes will work in Marlin. But Marlin does not need code. I believe the feature simply needs to be turned on and configured. I've got a very old printer that uses Marlin. I have not used it in years. It also has a runout sensor already working.....I need to think about that one. Thanks for watching!
Thank you very much. could you please help me about this 3 questions. 1- what is the name of object that attach to microswichh for friction free? 0:44 2- do you have the stl file for that transparent object ( i mean the object that microswich inside it). 3- i cant find the answer for this question. please help me about this. i haven't build 3d printer so far and want to build it, my question is, If I make custom 50*50cm heat bed, How should I buy the length of the bars around the heat bad hit so that there is no problem while assamle the 3d printer frame? Thanks again😊
My apologies because I'm not sure what is being asked for on question 1. But I think the answer might actually be part of question 2. The transparent object was not 3d printed. It came as part of a kit from TriangleLab. Go to their website or most any other vendor that sells 3d printer parts. You should easily find it there. My printer bed is 350mm x 350mm. Much smaller than you would like. You can try the Voron configuration tool. But the Voron community does not recommend building Vorons that large. So I would try RatRig. Have a look at their website. You can order parts and use their tools to build a bigger printer. It should tell you exactly what you need. Thanks for watching!
Hi, I followed the video instructions but Klipper won’t detect activating/deactivating the filament sensor, and constantly shows a green check mark. I am using the BTT skr pro v1.2 on a RatRig. How can I fix this?
It sounds like either the sensor is not connected properly, the printer.cfg might be referring to the wrong pin or possibly a micro switch that isn't working in the filament sensor. I think the probably of a bad switch if you purchased the filament sensor is pretty low. But if you have a continuity meter, it would not be a bad idea to rule that last option out.
@@KapmansBasementWorkshop Thank you for the fast response, we did a continuity check for the switch, wiring, and board and they all are OK. We tried !PE15 as well as !PG8 for the SKR but with no avail as values for "switch_pin" Any other ideas as to what could be wrong?
I would think that as long as you have a spot to mount it and space on your MCU to connect it electrically, it should work. I'm using klipper, if you are not you will need to go into the mcu software and enable the filament switch. Any place you can plug in an additional micro-switch should work on the mcu.
Thank you for the guide. I am stuck after save and restart as Klipper tells me: Existing command 'PAUSE' not found in gcode_macro rename. Any tips would be appreciated.
it sounds like you never had "PAUSE" defined. Things to check: In your fluid.cfg file: [pause_resume] In your printer.cfg file (I'm not convinced this is necessary): [gcode_macro M0] gcode: PAUSE
That is aweosme! Have been trying to do multi color filament prints and didnt realize I had not programmed a filament swap function in. Would the this config change work with prusaslicers filament change option? Best of luck with the scrub macro as well. Ive been wanting to add a brush and command but have not been confident enough to go that route yet.
I assume it would, but I use cura, so I can't say 100%. But I don't see why not. Also, I just recently added a scrub brush. Here is it: ua-cam.com/video/ZEXYnXZA8B0/v-deo.html Thank you for watching!
@@KapmansBasementWorkshop Awesome, I'll have to work on the scrub brush once I get the filament swap portion working (just put in an order for the filament sensor as well). Apparently, prusa slicer uses the M600 macro for their pause, so I have high hopes it will work. I was curious though (and I may have just spaced or overlooked it) is there a gcode macro for "resume" for fluid and mainsail (I'm currently using mainsail) or does one need to add another macro to include a resume option on the printer display and or mainsail/fluid control display?
@@ZeonsZone Your fluid.cfg or mainsail.cfg file should already have resume defined. I don't believe I needed to make any changes, "resume" just worked. That said, I have never tried calling resume from the printer display, I just type it in and hit enter on the console from Fluidd or Mainsail in the web view. Honestly, I never use the printer display. Have a look in that crg file, you should already see resume defined. Good luck with your printer improvements!
@@KapmansBasementWorkshop Ended up giving it a go and had an issue with "BASE_PAUSE" being unknown but going to just change it to "PAUSE" on the next go around since when I typed in "PAUSE" on the web view, it started the park sequence (error caused it not to pause for the filament swap). I did forget to add the coordinates sadly so it just parked above the bed in the back right 😅. When I typed resume on the web viewer, it started printing again as well, so thats at least thats an easy way to get it printing again. Thank you very much for the tutorial, insight and assistance!
Found out that "!" infront of your pin location is important to get it to function correctly, otherwise mine would act inversely. Got it up and running and functions properly. Currious, did you ever figure out how to get the "reload filament" message to go away after hitting resume?
I was looking at this filament runout sensor but decided against it because it can't detect jams. And the only one that's commercially available is the big tree tech one badly designed. There are some DIY ones i want to try out
If you find one, report back. I saw some stl files for home built versions that provide the functionality, but don't use the poorly designed version you mentioned. Thank you for watching!
Hello, thank you for the script - it works as indended. However in my case is runs repeatedly every couple of second lifting the head 50 by 50mm up to the top of the printer. [pause_resume] is no it my printer.cfg but in fluidd.cfg instead and if I comment it then there is some error saying there is no cancel print macro. Also, the "rename_existing: PAUSE_BASE" is already included in fluidd.cfg edit: it lifts the head another 50mm after every manual move with the head I do (if there is no filament)
I'm not sure I fully understand what is happening, but leave the pause in fluidd.cfg. It needs to be there. And use "PAUSE_BASE" in your runout.cfg file, not PAUSE.
@@KapmansBasementWorkshop Print pause does work and the head moves to the desired direction, but after every custom action (filament extraction etc) the head does the park again - lifts the head by 50mm. Shoudn't this script run only once?
@@KapmansBasementWorkshop runout.cfg which I'm calling from printer.cfg. C/P: [filament_switch_sensor RunoutSensor] switch_pin: !PB14 # Pin ESTOP-Y for Spider mcu pause_on_runout: false runout_gcode: M600 # Move nozzle to a location thats easy for the user to access ##################################################################### # Filament change macro M600 ##################################################################### [gcode_macro M600] variable_park_x: 250 # try half your bed size. variable_park_y: 50 variable_z_lift: 50 variable_velocity: 60 variable_retract: 0.5 gcode: SAVE_GCODE_STATE NAME=STATE_M600 # remembers the position
PAUSE_BASE # Fluidd redifines PAUSE to move the the back corner of the printer. We don't want that. This is what Fluidd renamed basic pause to. # If using other software, probably just use pause.
# safe park coords {% set th = printer.toolhead %} {% set park_x = [params.X|default(park_x)|int, th.axis_maximum.x-2]|min %} {% set park_y = [params.Y|default(park_y)|int, th.axis_maximum.y-10]|min %} {% set park_z = [th.position.z + params.Z_LIFT|default(z_lift)|int, th.axis_maximum.z]|min %} {% set park_feedrate = params.VELOCITY|default(velocity)|int * 60 %}
# retract at 50mm/sec G91 G1 E-{retract} F3000
# park toolhead G90 G0 X{park_x} Y{park_y} Z{park_z} F{park_feedrate}
# Tell user to reload filament M117 Reload Filament
RESTORE_GCODE_STATE NAME=STATE_M600 M117 # End of gcode script # OLD: ##################################################################### # Filament sensor ##################################################################### #[filament_switch_sensor my_sensor] ##pause_on_runout: True #runout_gcode: # PAUSE # M117 Out of Filament #insert_gcode: # M117 Resuming ## RESUME #event_delay: 5.0 #pause_delay: 0.5 #switch_pin: !PB14
I have found a solution to this problem: input "SET_FILAMENT_SENSOR SENSOR=RunoutSensor ENABLE=0" to all pauses and "SET_FILAMENT_SENSOR SENSOR=RunoutSensor ENABLE=1" to all resumes and print start macros.
What in the printer.cfg tells it to use runout.cfg when the filament sensor trips? I am trying to get filament runout working on my printer (not a voron). Right now it just goes to the back right corner when filament runs out and after a short period it will turn off the nozzle and bed, once it does that it will not resume print anymore and fails. If I change the filament before it auto turns off I can get it to resume. I am trying to replace that behavior with what you have in this video. I changed the sensor runout pin to what it is on my board in the runout.cfg and edited X position and I commented out the pause_resume in the printer.cfg. Anything else need to be done? What tells it to run the runout.cfg file when the filament sensor it tripped? I am using Fluidd btw.
As I understand it, in Klipper there is no way to get around the timeout other than changing the length of time. My configuration will timeout after enough time has elapsed as well. You can change the timeout (in seconds) in the printer.cfg file section: [idle_timeout] timeout: 7200 At the top of the printer.cfg where the other includes are I have this which tells klipper it needs to look at the runout.cfg file for additional details. Nothing else is needed in the printer.cfg file for the runout sensor: [include runout.cfg] In the runout.cfg file, if you have properly set the pin and polarity, that should be it. Be sure to test it in fluid under the "tune" page. Right next to the endstop tester you should see the runout tester. And most importantly, restart klipper after making any changes to these files. You can also have a look in my github for the complete cfg files. I hope that helps. Thanks for watching!
@@KapmansBasementWorkshop Hey thank you for the very thorough reply! I have it up and going with your config and it is working, but I am not sure what the timeout is as I did not test it and leave it to see. I did just look through my printer.cfg and I do not have an idle_timeout in there at all. Where in the printer.cfg should this be added? What is the max time I can put, do you know? Thanks!
@@ShuhDonk I believe you can place it anywhere you like. I would place below the [includes]. I cannot remember the default timeout, but it's not long (15 mins?). I'm also not aware of a maximum. I would take the number of minutes (lets say 4 hours, so 240 mins) and multiply by 60, and place that in the cfg. file and I think you will be fine after restarting klipper.
@@framespersecondfps5256 Have a look here. github.com/Kapman1/Kapman1 Please use as an example only and with extreme caution. There is a high risk you can damage your 3d printer with these. I'm also adding this link to this channel.
@@KapmansBasementWorkshop I recently got a generic runout sensor and after wiring it up, it gets very hot rapidly including the wires. What can be the possible reasons?
Anybody else have an issue where you start the print then it stops and get an error message saying extruder is not hot enough, then have to manually heat up the extruder then manually press the resume button? To continue the process
If you were going to leave the code available for the people here to use I dont recommend putting it in the about section as text, try hosting it on google docs or something. UA-cam's formatting has made your code, and thus most of your video basically useless because everything that should be commented out isnt and unless someone has enough experience to know what is what they arent gonna be able to fix it.
I'm a bit late to this one. A very well produced instruction - good shots, and good clear audio. Thank you.
Thank you for the kind words!
Very clear and helpful presentation with key details to get me going. Only issue is I didn't listen carefully enough and so my machine was running with the sensor not reporting and my printer didn't tell me! lol. My runout lights were all working but my runout sensor was not because I didn't put the exclamation mark in front of the pin. All working well now for next time I run out!
I possibly could have made that point a little more clear, but I'm glad it's working for you. Thank you very much!
Thanks for the clear tutorial! I installed the same sensor last week, for some reason your code didn’t work for me but I just copied the one from Ellis and that worked fine.
However after now using up a dozen almost empty spools, I am not sure if I can recommend the TL sensor to others: While a simple install that works in some cases, more often it does not for me: most filament manufacturers fix the beginning (or end as you are printing) of the filament onto the spool in some way when they roll it up, so it does not simply unroll, but leaves a very sharp end. This bent end piece will often get stuck in the entrance of my TL filament sensor, so that it doesn’t trigger, but just skips extruder steps or grinds on the filament (this is with my LGX Lite which has large grippy gears) instead.
I am now going to try the BTT smart filament sensor next, since that one can detect actual movement as well, and can tell when the filament is stuck while it should be moving, and not just tell whether there is filament inserted in the sensor or not.
Interesting. I have not yet run into that. But now I will keep an eye out. Thank you for the warning!
@@KapmansBasementWorkshop Esun are renowned but have stop taping the ends. Be sure to check with suppliers before purchase...they will fix it quick enough 🙂
Great video, I really appreciate the detailed code walk through.
Tip: when perusing a large file use Ctrl+f or cmd+f on Mac that way you don't have to visually inspect the file
Thanks for the info and the kind words!
Not a great idea plugging in peripherals into motherboards while they are on. I should know, I've broken a few in my time.
That aside, really appreciate your channel, it's proven useful many times. Thanks.
Wow, I forgot to turn it off and did not notice! I'll post a warning in the notes. Thanks for the kind words and I'm glad the channel has proven useful. Even when it's showing something one should not be doing! Thanks for watching!
Awesome video, thank you for the instructions and for the klipper config! 🙏
Thank you for watching!
I always appreciate your videos. Made to clearly gives valuable info and details. It’s a refresher from all the content-empty youtuber.
Thank you for the very kind words and thank you for watching!
Many thanks for share this improvements for the Voron.
Thank you for watching!
Well explained! It would be nice if there was a switch that sits directly on the toolhead...
I actually considered it. But I needed to design a mount and I did not have the time. But really, on a direct drive extruder, that IS the location for it. I fully agree with you. Thank you for watching!
Thank you! Please keep making videos like this.
Thank you for watching as well!
I'm running Klipper Mainsail on a SKR V2 on my Hypercube.Runout sensor is from TH3D.It will trip with light on sensor,but not on Klipper screen,So more work to try and figure out why.
Is the klipper screen the lcd display on the printer or your view on Mainsail or Fluidd?
@@KapmansBasementWorkshop I installed a pi3b with a 5 inch screen on it.I pull up Klipper on my pc to edit etc.
Hi, did you figure this out? My sensor is showing a changing light pluggerd in and not signaling to the Klipper console either
Thanks...solid video. Isnt there the bed info available in the 'params' object ie just use params.bedsize * 0.5 (Im not sure of the actual named parameter)? If I comment out 'pause_resume' I get an error: "gcode command M600 already registered" but I cant find the def in printer.cfg and the def in macro.cfg is commented out?
My apologies, are you referring to the location of the "pause_resume" macro? I created "pause_resume" in the "printer.cfg" file. I use fluidd, so the Pause macro and the resume macro are in the "Fluidd.cfg" file. I left those "as-is". I hope that helps.
Neat! something I have been considering and have lost prints from this. Does that filament run out sensor allow filament to be fed through it backwards? I'm not a fan of removing the filament from the top of the print head where the ptfe tube enters. I'd like to set a 100mm retract to fully unload the filament from the print head. With such a retraction it would be pushed back into the filament run out sensor. Will it allow a reverse feed. Alternatively can have the other side of the filament runout sensor not in ptfe tube so you can access it on a full 100mm retraction unload. Would be interesting to know.
I guess you could have a Macro that runs Resume_Print and M117 Printing Resumed to update the screen or to clear it.
The runout sensor does allow the filament to run backwards. A 100mm retract should be no problem. I have had some issues with filament getting jammed in the hotend in that past with those quick big retracts which require disassembly of the print head to fix. So I cut the filament just above the print head and pull it out and extrude 50mm or so of the old filament as I feed the new filament in. But I think I solved the jamming problem yesterday, I just don't have the nerve to try it now.
Also, you have a knack for the simple straight forward solutions. Again, I should have thought of the resume_print macro you just suggested! I'm going to make that change. Thank you for the comments, the tip and watching!
Great tutorial. I have only one isseu. When i pull the filament in the runout sensor it shows orange on the klipper page and when i take it out it is green :)) . Using a skr mini e3 v2 the filament runout pins on the board. Is there a way to switch this?
I believe placing an explanation point "!" in front of the pin should reverse that
I want to thank that tangled spool for its sacrifice to bring us this video. I cringed when I saw it cut like that haha
I had to go back and rewatch the video to see what you are referencing. I'm actually laughing about it now that you mention it. It's pretty darn funny! I was kind of irritated at myself when I actually did that. It was not as bad as it looked. It was super easy to untangle. Thanks for the cool comments and thank you for watching!
One big issue with the brush location is if you use it while printing a full bed you will certainly hit some parts (on a V2.4) so it should be relocated on the gantry. Is anyboby tried this?
In my search, I did not run into any others that were mounted to the gantry for the 2.4. But you have a good point. It would not be hard to design one. The macro would be just as simple, possibly even simpler.
I have found this, That my Probe is most likely to collide with the brush teeth. One solution was to Cut the Brushes shorter so they are at the height of the Bed. I am yet to do this. I'm also thinking a new mount that sets the brushes at the correct height might be a cleaner solution.
At the moment i'm just conscious of how I utilize a full bed on prints.
@@jc84com I'm using Euclid, so when printing, my probe is not attached to the print head, so I don't actually have a problem here. All removable magnetic probes skirt this problem, or so I think.
great video, just wish i'd worn my glasses because a lot of the video was blurry.
Yes, I had alot of trouble with that one....I'm slowly getting better at manual focus. But I need by glasses to try and focus in those cases too! Thanks for watching!
hello, I am having some trouble. so when I installed my smart sensor and code it wouldn't allow my sonic pad to work and said I need to correct line M600.
You should have a look at your M600 macro. Something isn't quite right there. Possibly the pin assignment? Mine looks like this: github.com/Kapman1/Kapman1/blob/main/runout.cfg
Thanks for the tut!! Can I ask why you decided to wire the sensor to the spyder instead of wiring to the pi?
My prior experience with a pi is that you can connect almost anything to it, sometimes directly and sometimes an additional circuit is needed. When I last connected a switch, you need to often resolve the switch's internal contact bouncing when flipped. You would need to write some software to filter it (I don't know if Klipper does this) and use a pull down circuit circuit for accurate readings. I was worried that it would appear to Klipper that the switch was flipping between on/off for about a 10th of a second or so I and I did not think it was worth the effort to find out what would happen. The Spider and the other controller boards have these circuits/filters built in. I also had several sockets for endstop switches not in use. In addition, I know 100% that Klipper will recognize switches on the MCU. All that to say, it was easy to do so :).
@@KapmansBasementWorkshop ahhh I see !!
When you type resume...
If you had a taller print and the scrub macro ran, so now toolhead is down low , z30 or whatever, now resuming position from runout spot. Tool head going on a straight line to potion potentially colliding with print. How can we call up the saved z postion to move to that +10 after scrub so tool moves downwards to print postion?
Never mind thought of solution right after asking.
After scrub just tell z to go to z max then no matter what it will always be above print when moving back to m600 saved spot.
Thank you for posting your solution!
I'm on the road atm so I'll re-watch when I'm at my printer, but is there anything that needs to be done about the the default timeout settings?
If the sensor triggers & I don't see it for an hour, will the bed cool off & releases the print or have the Z lose 1/2 or 1/4 steps?
I'm not 100% sure as I'm typically close by when I run a print. However, my timeout for my printer is set for 2 hours which may explain why I have not had any timeout issues. You can change in in your printer.cfg file. I'm pretty sure you just need to change this:
[idle_timeout]
timeout: 7200 # change to whatever value works for you in seconds.
@@KapmansBasementWorkshop Thanks. I'm new to Mainsail Klipper and by default Mainsail is set to 10 minutes.
Thank you for your video,just what I was searching for,new to Klipper .I give it a try.I subscribed.
Thanks for the sub and thank you for watching! Glad it helps!
Thankyou up and running on an octopus board now thanks
I'm glad to hear it. Thank you for watching!
really like your videos
when it pause, does the heater stop heating ? that could be a problem to resume
It's could be. But I have the timeout in Klipper set for 4 hours. I'm usually around to take care of it by then. Thank you!
Would this work on a anycubic kobra?
The actually filament sensor should work as long as you have some space on the MCU to plug it in. The only other issue is that I believe Anycubic uses Marlin for it's firmware, so the instructions to get that working is very different from this video which is using Klipper.
Have you been able to resolve the message in the display not resetting to “printing”?
I hate to say this, but I don't remember. I ended up switching to a touchscreen and klipperscreen so I no longer had a need to do that. My apologies!
@@KapmansBasementWorkshop Thanks for the reply. Yes I am running Klipper screen also. Once the sensor is tripped the message stays on the screen where it usually says “printing”. I have tried a few things and for now I just deleted the message in .cfg
@@myredeemerlivesakatom2314 Strange, I've done this lately and not noticed. I'll check and let you know.
@@KapmansBasementWorkshop Thanks!
thanks.
can we use this codes in marlin? could you please tell us how to program Runout Sensor in marlin?
I don't believe these codes will work in Marlin. But Marlin does not need code. I believe the feature simply needs to be turned on and configured. I've got a very old printer that uses Marlin. I have not used it in years. It also has a runout sensor already working.....I need to think about that one. Thanks for watching!
Thank you very much. could you please help me about this 3 questions.
1- what is the name of object that attach to microswichh for friction free? 0:44
2- do you have the stl file for that transparent object ( i mean the object that microswich inside it).
3- i cant find the answer for this question. please help me about this. i haven't build 3d printer so far and want to build it, my question is, If I make custom 50*50cm heat bed, How should I buy the length of the bars around the heat bad hit so that there is no problem while assamle the 3d printer frame?
Thanks again😊
My apologies because I'm not sure what is being asked for on question 1. But I think the answer might actually be part of question 2. The transparent object was not 3d printed. It came as part of a kit from TriangleLab. Go to their website or most any other vendor that sells 3d printer parts. You should easily find it there.
My printer bed is 350mm x 350mm. Much smaller than you would like. You can try the Voron configuration tool. But the Voron community does not recommend building Vorons that large. So I would try RatRig. Have a look at their website. You can order parts and use their tools to build a bigger printer. It should tell you exactly what you need.
Thanks for watching!
Hi, I followed the video instructions but Klipper won’t detect activating/deactivating the filament sensor, and constantly shows a green check mark. I am using the BTT skr pro v1.2 on a RatRig. How can I fix this?
It sounds like either the sensor is not connected properly, the printer.cfg might be referring to the wrong pin or possibly a micro switch that isn't working in the filament sensor. I think the probably of a bad switch if you purchased the filament sensor is pretty low. But if you have a continuity meter, it would not be a bad idea to rule that last option out.
@@KapmansBasementWorkshop Thank you for the fast response, we did a continuity check for the switch, wiring, and board and they all are OK.
We tried !PE15 as well as !PG8 for the SKR but with no avail as values for "switch_pin"
Any other ideas as to what could be wrong?
@@creativeintern6815 Which pin are you actually using? Seems like you tried two of them. Send a photo via discord of where the switch is plugged in.
@@KapmansBasementWorkshop Where is the discord link?
would this work on SOVOL SV06?
I would think that as long as you have a spot to mount it and space on your MCU to connect it electrically, it should work. I'm using klipper, if you are not you will need to go into the mcu software and enable the filament switch. Any place you can plug in an additional micro-switch should work on the mcu.
Thanks a lot !
Thank you for the nice comment as well
Thank you for the guide. I am stuck after save and restart as Klipper tells me: Existing command 'PAUSE' not found in gcode_macro rename. Any tips would be appreciated.
it sounds like you never had "PAUSE" defined. Things to check:
In your fluid.cfg file:
[pause_resume]
In your printer.cfg file (I'm not convinced this is necessary):
[gcode_macro M0]
gcode:
PAUSE
That is aweosme! Have been trying to do multi color filament prints and didnt realize I had not programmed a filament swap function in. Would the this config change work with prusaslicers filament change option? Best of luck with the scrub macro as well. Ive been wanting to add a brush and command but have not been confident enough to go that route yet.
I assume it would, but I use cura, so I can't say 100%. But I don't see why not. Also, I just recently added a scrub brush. Here is it: ua-cam.com/video/ZEXYnXZA8B0/v-deo.html
Thank you for watching!
@@KapmansBasementWorkshop Awesome, I'll have to work on the scrub brush once I get the filament swap portion working (just put in an order for the filament sensor as well). Apparently, prusa slicer uses the M600 macro for their pause, so I have high hopes it will work. I was curious though (and I may have just spaced or overlooked it) is there a gcode macro for "resume" for fluid and mainsail (I'm currently using mainsail) or does one need to add another macro to include a resume option on the printer display and or mainsail/fluid control display?
@@ZeonsZone Your fluid.cfg or mainsail.cfg file should already have resume defined. I don't believe I needed to make any changes, "resume" just worked. That said, I have never tried calling resume from the printer display, I just type it in and hit enter on the console from Fluidd or Mainsail in the web view. Honestly, I never use the printer display. Have a look in that crg file, you should already see resume defined. Good luck with your printer improvements!
@@KapmansBasementWorkshop Ended up giving it a go and had an issue with "BASE_PAUSE" being unknown but going to just change it to "PAUSE" on the next go around since when I typed in "PAUSE" on the web view, it started the park sequence (error caused it not to pause for the filament swap). I did forget to add the coordinates sadly so it just parked above the bed in the back right 😅. When I typed resume on the web viewer, it started printing again as well, so thats at least thats an easy way to get it printing again. Thank you very much for the tutorial, insight and assistance!
Found out that "!" infront of your pin location is important to get it to function correctly, otherwise mine would act inversely. Got it up and running and functions properly. Currious, did you ever figure out how to get the "reload filament" message to go away after hitting resume?
Fantastic video - thank you sooo much
Thank you very much and thank you for watching!
I was looking at this filament runout sensor but decided against it because it can't detect jams. And the only one that's commercially available is the big tree tech one badly designed. There are some DIY ones i want to try out
If you find one, report back. I saw some stl files for home built versions that provide the functionality, but don't use the poorly designed version you mentioned. Thank you for watching!
I have never once ran out of filament, I have had a jam or 30 ruin prints. Those damn Inland spools ALWAYS tangle!
I’ve never tried Inland filament. Thank you for the warning!
MAINSAIL also uses PAUSE_BASE. not BASE_PAUSE
Thank you for that, that's good to know! Very helpful.
Hello, thank you for the script - it works as indended. However in my case is runs repeatedly every couple of second lifting the head 50 by 50mm up to the top of the printer. [pause_resume] is no it my printer.cfg but in fluidd.cfg instead and if I comment it then there is some error saying there is no cancel print macro. Also, the "rename_existing: PAUSE_BASE" is already included in fluidd.cfg
edit: it lifts the head another 50mm after every manual move with the head I do (if there is no filament)
I'm not sure I fully understand what is happening, but leave the pause in fluidd.cfg. It needs to be there. And use "PAUSE_BASE" in your runout.cfg file, not PAUSE.
@@KapmansBasementWorkshop Print pause does work and the head moves to the desired direction, but after every custom action (filament extraction etc) the head does the park again - lifts the head by 50mm. Shoudn't this script run only once?
@@NerevaR20 Yes, only one. What file do you have this in? Also, paste the text you have in that section here so I can have a look.
@@KapmansBasementWorkshop runout.cfg which I'm calling from printer.cfg. C/P:
[filament_switch_sensor RunoutSensor]
switch_pin: !PB14 # Pin ESTOP-Y for Spider mcu
pause_on_runout: false
runout_gcode: M600 # Move nozzle to a location thats easy for the user to access
#####################################################################
# Filament change macro M600
#####################################################################
[gcode_macro M600]
variable_park_x: 250 # try half your bed size.
variable_park_y: 50
variable_z_lift: 50
variable_velocity: 60
variable_retract: 0.5
gcode:
SAVE_GCODE_STATE NAME=STATE_M600 # remembers the position
PAUSE_BASE
# Fluidd redifines PAUSE to move the the back corner of the printer. We don't want that. This is what Fluidd renamed basic pause to.
# If using other software, probably just use pause.
# safe park coords
{% set th = printer.toolhead %}
{% set park_x = [params.X|default(park_x)|int, th.axis_maximum.x-2]|min %}
{% set park_y = [params.Y|default(park_y)|int, th.axis_maximum.y-10]|min %}
{% set park_z = [th.position.z + params.Z_LIFT|default(z_lift)|int, th.axis_maximum.z]|min %}
{% set park_feedrate = params.VELOCITY|default(velocity)|int * 60 %}
# retract at 50mm/sec
G91
G1 E-{retract} F3000
# park toolhead
G90
G0 X{park_x} Y{park_y} Z{park_z} F{park_feedrate}
# Tell user to reload filament
M117 Reload Filament
RESTORE_GCODE_STATE NAME=STATE_M600
M117
# End of gcode script
# OLD:
#####################################################################
# Filament sensor
#####################################################################
#[filament_switch_sensor my_sensor]
##pause_on_runout: True
#runout_gcode:
# PAUSE
# M117 Out of Filament
#insert_gcode:
# M117 Resuming
## RESUME
#event_delay: 5.0
#pause_delay: 0.5
#switch_pin: !PB14
I have found a solution to this problem: input "SET_FILAMENT_SENSOR SENSOR=RunoutSensor ENABLE=0" to all pauses and "SET_FILAMENT_SENSOR SENSOR=RunoutSensor ENABLE=1" to all resumes and print start macros.
What in the printer.cfg tells it to use runout.cfg when the filament sensor trips? I am trying to get filament runout working on my printer (not a voron). Right now it just goes to the back right corner when filament runs out and after a short period it will turn off the nozzle and bed, once it does that it will not resume print anymore and fails. If I change the filament before it auto turns off I can get it to resume. I am trying to replace that behavior with what you have in this video. I changed the sensor runout pin to what it is on my board in the runout.cfg and edited X position and I commented out the pause_resume in the printer.cfg. Anything else need to be done? What tells it to run the runout.cfg file when the filament sensor it tripped? I am using Fluidd btw.
As I understand it, in Klipper there is no way to get around the timeout other than changing the length of time. My configuration will timeout after enough time has elapsed as well. You can change the timeout (in seconds) in the printer.cfg file section:
[idle_timeout]
timeout: 7200
At the top of the printer.cfg where the other includes are I have this which tells klipper it needs to look at the runout.cfg file for additional details. Nothing else is needed in the printer.cfg file for the runout sensor:
[include runout.cfg]
In the runout.cfg file, if you have properly set the pin and polarity, that should be it. Be sure to test it in fluid under the "tune" page. Right next to the endstop tester you should see the runout tester. And most importantly, restart klipper after making any changes to these files.
You can also have a look in my github for the complete cfg files.
I hope that helps. Thanks for watching!
@@KapmansBasementWorkshop Hey thank you for the very thorough reply! I have it up and going with your config and it is working, but I am not sure what the timeout is as I did not test it and leave it to see. I did just look through my printer.cfg and I do not have an idle_timeout in there at all. Where in the printer.cfg should this be added? What is the max time I can put, do you know? Thanks!
@@ShuhDonk I believe you can place it anywhere you like. I would place below the [includes]. I cannot remember the default timeout, but it's not long (15 mins?). I'm also not aware of a maximum. I would take the number of minutes (lets say 4 hours, so 240 mins) and multiply by 60, and place that in the cfg. file and I think you will be fine after restarting klipper.
Hi. Thank you for these amazing tutorials. Can you please share all your .cfg files?
Did you have a look in the description? I pasted my config text that relates to this project. Or, are you looking for more?
@@KapmansBasementWorkshop I'm asking about all the cfg files you have
@@framespersecondfps5256 Have a look here. github.com/Kapman1/Kapman1
Please use as an example only and with extreme caution. There is a high risk you can damage your 3d printer with these.
I'm also adding this link to this channel.
@@KapmansBasementWorkshop I recently got a generic runout sensor and after wiring it up, it gets very hot rapidly including the wires. What can be the possible reasons?
@@framespersecondfps5256 Where is it installed? Also, where is it wired to on the MCU?
Anybody else have an issue where you start the print then it stops and get an error message saying extruder is not hot enough, then have to manually heat up the extruder then manually press the resume button? To continue the process
Are you using Klipper?
@@KapmansBasementWorkshop yes
If you were going to leave the code available for the people here to use I dont recommend putting it in the about section as text, try hosting it on google docs or something. UA-cam's formatting has made your code, and thus most of your video basically useless because everything that should be commented out isnt and unless someone has enough experience to know what is what they arent gonna be able to fix it.
Hmmm. Since then I switched to Github. I failed to update this description. Thanks for leaving this note. I need to fix this!
🍀 ≋p≋r≋o≋m≋o≋s≋m
Thanks for watching!