It also open the door to new bedlevel detection , stringing detection ,fire dectection , bed losing off the printed object , With some ML/AI It shall really become the future off 3D printing
@@ariafpv Likely a nozzle cam would help with that. It'd be neat to see if this works with a nozzle cam, maybe a servo could change the angle of the camera if needed too.
As an senior engineer I would like to complement you on your work and your presentation of your findings and I want encourage your to dream big you have a bright future ahead of you. Please don’t play small the world needs people to shine bright..
with this system as a one Klick Kalibration you could also calibrating flow or first layer calibration if you'd print small 15x15 rectangle (after picking the pressure advace) you could scann and select the one with the smoothest surface the question is if you'd calibrate flow or nozzle hight with this. bur really great work !!
Really nice work. Pressure (linear) advance is one of the hardest things to get just right, and there's lots of room for improvement. For example, it might not be a linear relationship between speed and pressure, and it could also benefit from some lookahead. We'll keep doing our part to make it better, and research like yours is going to be really helpful to that project.
Awesome work man! I knew it was only a matter of time before someone from the community gave us bambu tech without the bambu! Thank you for doing all the hard work. Looking forward to more!
The one thing stopping from getting another Bambu x1C instead of a voron 350mm kit is this! Mike awesome job! Can’t wait to see this adopted by the community!!
I had a X1C and its PA system doesn't truly work. Users managed to break into its MQTT output to find out it was not working at all but setting the default 0.02 which is set within START_GCODE. And not least, X1C lidar system was released as a flow calibration which is doesn't do, and PA which it doesn't truly work. Any filament will print "just fine" with PA 0.02. I had the lidar disabled in my printer to save time and preventing its print from taking space, I got a LDO Trident 300mm and miss absolutely nothing, totally different beast.
@@hakunamatata324 This did not age well. The updates after this post show Lidar works really well with both manual and auto calibrations. And with the AMS up to 4 filaments at a time flow dynamics and flow rate on a per filament basis. And since your post is from around May 2023 there have been several improvements to the X1C since then. Object exclusion, maker world(newbie friendly printing without needing a slicer), a more robust Lan only mode with camera and all from free updates and no physical mods needed.
First of all, great work! This is actually a perfect case for statistical modeling. I’m not sure if it’s possible to do without any form of commercial initiative, but all users should just share their readings from this setup for mutual effect. As you say, it will be a lot of variations in filament and general setup of each printer, so all this data should be aggregated and then modeled, then returned to each print. Again, great idea.
I don’t know how I’m just seeing this! I’m studying at BYU right now, this gave me hope for when I get to my capstone project being able to do something related to 3D printing. You’re awesome!
0:18 what is pressure advance? 3:24 what if we could do this automatically? 5:13 how the computer vision analysis works 11:32 system in action 12:10 demo of printer printing test patterns 18:24 conclusion
Woow. That’s a huge step forward for many DIY machines like VORONS. I’m curious to get such a useful tool in the near future. Thanks for all that effort.
This is a very genius idea to takle this problem. I first thought, you measure the pressure in the nozzle to have a constant pressure over the whole print.
Год назад
I was working on the same system but you have awesomely created that approach differently brilliant work!!
Mike this is absolutely outstanding work. I'm going to fit this system to all of my printers as soon as I can make time to modify them. I'm on a quest to build the ultimate tool head and this is going to bring it to the next level. Very good stuff! I wonder if you could get better results using different build plates by printing basically a raft that has been ironed and then print the lines to be scanned on top of that. A bit excessive and might defeat the purpose a bit, but it could be interesting for people using exotic print surfaces not conducive to laser clarity.
That's actually a pretty cool idea! I can definitely see that helping for textured translucent build plates, and I would bet it would be really helpful for uncoated glass as well. I'll have to look into it once I get the base feature set a bit more user friendly.
I see soooooo much future with this technique, more then just pressure advance. Maybe even do frequency calibration like this! Close the loop from input to printed part!
Great to see an Open Source approach to this! Bambu uses the same idea (line laser plus camera) for calibrating extrusion. It would probably be little effort to add extrusion width calibration to this too. And it should be a reasonably simple job to implement this for Marlin (which calls it "Linear Advance" but it's pretty much the same idea) too, maybe as an OctoPrint plugin? I expect this will become the standard way to calibrate printers, and I imagine there might also be cheap nozzle-cams suitable for this coming from China soon.
First off all , thank you for the perfect way to go from a idee to a working product and also sharing it with 3D print world . Second you also open the door to new bedlevel detection , stringing detection ,fire dectection , bed losing off the printed object , With some ML/AI It shall really become the future off 3D printing
This same hardware could be used to detect (and maybe even repair) first layer adhesion problems. Sometimes if I have a problem with the first layer, I just pause the print, paste on PVA glue, and smooth it out with a hot tool. It occurs to me that this process could be automated by running an ironing pass over any broken lines.
Woah. I thought I'd have to figure this all out myself. Even had a line laser in my Amazon cart and already bought a nozzle cam. You just saved me a TON of time and effort. Woohoo!!!
I got a Voron and a Bambu X1 .... thanks to you, i may be able to upgrade my Voron with this! At first i really didnt care too much about the lidar sensor of Bambu and the calibration .... But now i know what it means to have it automated. Thanks for your Video and Work! i hope this will be easy to import and use for all users in the future! Thanks ! Great!
Excellent work! Very interesting approach and a great breakdown of the challenges you've experienced and solutions you've developed. This solves a major headache in the 3D printing community, and you are going to make a lot of people very happy with your work.
I'm wondering whether PA cannot be tuned in a totally different way. As explained, PA is to compensate the delay between filament moving on the input side and pressure causing plastic to move out at the nozzle end. Would it not make more sense to just measure this delay by ex. measuring the output pressure using a load-cell and timing how long a change at the input takes to affect the measurement on the load cell? If the load cell measures upward pressure on the printhead (as the Mk4 seems to support), then the PA value could even be measured and corrected throughout the print.
Interesting thought. There can be trouble getting an optical system to work with natural plastics which have high sub surface scattering and high transparency plastics auch as PET/PCTG.
Outstanding work! I can't wait to see the potential for this when you work out the Klipper integration! I predict your work will be widely lauded and adopted.
Great work! I assume you tried doing the same thing but by just taking a photograph of the test pattern and running it through a similar process. If you did try that, why did it not work? It seems (on the surface) that it would be a much faster process, than having to scan each line with the laser and camera setup. You might have to deal with some parallax and/or tilted plane issues with the camera, but I believe there are algorithms that already do that. Just curious.
That's much more dependent on lighting conditions, bed, and filament colour, whereas shining a (comparatively) high powered beam of light onto both the bed and filament is much easier to detect. You could probably get pretty close with a well controlled setup and a high resolution camera, but there would be more processing involved and you'd almost certainly end up with noisier data.
Effective. And so much potential with so many obvious easy QoL improvements that anyone can make to the code today (even before actually having the equipment for testing). For instance, iterative/quick collapse by measuring after each calibration line (or 1 - 3 lines) and adjusting based on too much/little pressure. By making smart adjustments after each line we can quickly make coarse changes to the correct values and then finer changes once closer to the range. We can probably turn this into a binary search, the middle will likely be dynamicly defined with (eg. no less than 3 lines mandatory with a middle value, too high, and too low within printer precision threshold or a single line with a score threshold would be necessary. Precision threshold is more dynamic but would require increasing the testing range in order to get measurably too high/low values to verify we found the center). May or may not be able to do this in one pass as well (not sure if we can scan while printing or if the acceleration will have to much of an affect on the camera between fps and rolling shutter).
3 Thoughts: 1. This might lead to the realization of pre-emptive pressure advance, it's obvious that PA on it's own still isn't enough, it needs to have a pre-emptive kick one way or the other to have a truly clean line during acceleration changes. The timing of that kick it already gives, obviously isn't in the right place, a missing time component that will likely vary with each meltzone and pressure chamber size. Maybe one day we'll get that deviation to true 0. 2. Automated stringing and retraction calibrations? 3. As the laser is triangulating depth, you could then use this to figure out the build-plate depth, the laser line itself would need to be tuned to very square, or software corrections for uneven skew and lense distortion.
This is a great video! I have a suggestion though, why not have it analyze the stl before printing and use an algorithm to determine where and when to slow down and pressure. Another idea is to use the camera to look at the line being printed and make adjustments to the next pass.
One possible method for eliminating ambient room light affecting results would be to use a infrared line laser and a infrared filter over the camera. This would also have the benefit of simplifying the software post-processing required to get suitable images for analysis. Great work and presentation!
Damn. Every time i think my Voron is finally completely decked out with anything i could wish for, somebody comes along with an even more genius idea i MUST HAVE NAO! 😁
Really interesting. As you say as a Proof of Concept its works perfectly and is of huge benefit to the 3d printer community! Being able to scan all lines in one pass / a couple of passes averaged out would of course be a significant benefit. Also, how would different colour lasers affect the system? Would lasers in a band less affected by visible light and appropriate camera lens filter help? Would putting a red filter on the camera in the current setup help? Soooo much research opportunities to look at making this even better!!
I think this could work with the laser mounted to the gantry separate from the nozzle. It may only make a few grams but it could be a wide angle beam and that could be added to the data. Also a beam from both sides could tram the bed accurately. This is amazing and i hope for bigger things in your life.
Hi Mike, this is a great an awesome work. Just a comment, maybe it is easier and faster to just print one long straight line instead of multiple ones and then scan it backwards, that way you don't have to stop the toolhead
Nice work indeed. Excellent work making filament extrusion calibration more deterministic through automation. Maybe this will work to inspire other similar means to automatically calibrate other printer mechanisms and properties. I wish there was a more deterministic calibration method like this for belt tensioning.
I am nearly a year late to this, but this really needs to be part of the tool changer mod of the 2.4 with this being on a dedicated head. Imagine loading 5 different filaments and this automatically calibrating all 5 filaments!
It would be pretty sick if you could make the nozzle cam work in it's normal position pointed at the nozzle. Then it would also be an easier upgrade for people with existing nozzle cams.
I wonder if this could be combined with an ABL probe like the Beacon to give it an all-in-one setup to keep print heads lighter. This is amazing to say the least!
looks pretty amazing. maybe your next project could a little mod with the same hardware components :-) what about same system for realtime "filament width" scanning? they are some projects about that out in the wild and its well implemented in klipper to compensate flow in realtime, for the always perfect amount of plastic with low cost/low quality/variable diameter filaments. maybe we can find a much smaller line laser. to scan only the filament, we need only a small line, with lower energy laser.
Amazing work! This is pretty close to the concept of barcode scanners. In theory you can have the decoder recognize the width deviation at the start and stop of the fast moment. it would only need to take 1 image of the full bar set. It would eliminate the needs for scanning lots of frames. Too bad developing such a scanner isn't trivial 😔 With that said it might be possible to hack one of the bar code PCBAs which have a sensor optics and lighting integrated into 1 module
Is it possible that a prediction system could be developed, so only one line (perhaps with more speed pulses) would be required? Maybe a single thorough calibration would be required, and then the printer could do more with less data for other filaments and temperatures? That way, it could replace the priming line with this, and then auto calibrate advance before each print.
This is pretty phenomenal! Many, many kudos for your work. I do have a question for you though: are you planning on integrating a macro of some kind that will allow the system to recognize the two or three best lines in the 'broad' test and then perform further tests with smaller and smaller increments to narrow down to the absolute best value? Like you said, what you have is close, but not perfect. Having the system go from your large spread of 0.00 to 0.06, see that the best lines are between 0.024 and 0.042 and then automatically perform a second test between, say 0.022 and 0.044 in 0.002 increments instead of 0.006 increments, and then possibly a third with 0.001 increments would get you to the absolute best possible PA. Just a thought, and I'm greatly looking forward to seeing how this project advances in the coming months.
I own a bambu lab X1C and I had a bit of a guess on how it worked (I was sort of correct) but didn’t know how to implement it into a single package onto my vorons, but now I can! Maybe I’ll even use an IR laser to make it invisible!