Jump to content
Ultimaker Community of 3D Printing Experts
Sign in to follow this  
antiklesys

Ultrasound bed levelling on UM1

Recommended Posts

The nearest measurement is 2cm and the resolution is 0.3cm.

The real question is the repeatability. You could overcome the above by mounting the sensor at say 2cm and then do something like when the measurement goes from 2.1 to 2.4 assume it is at 2.4cm and use that value,

The problem is will it repeatedly and reliably go from 2.1 to 2.4 at the same distance? There is always slop in repeated measurements. If the slop is +-0.005 cm, it would work. If the slop is 0.1 cm (1mm), probably won't work.

resolution and repeatability are usually related with repeatability being defined in the minimum resolution or half of it If that is the case for this sensor, 0.3cm or +-3 mm or even +-1.5mm isn't going to be good enough when your first layer is on the order of 0.3mm

So it is a good idea but I doubt that sensor has the resolution and repeatability required.

 

Share this post


Link to post
Share on other sites

You could do it, but not with the HC-SR04. It runs at only 40 KHz, which gives you a wavelength of about 8.5 mm. For this application you'd want a wavelength smaller than .1 mm, which puts you up in the low MHz. I'd want at least 5 MHz, and 20 or 30 would be better. My family's business includes industrial ultrasound, and we typically use 5-20 MHz for imaging fine details in steel. I've seen people go as high as 100-200 MHz (yes, this is radio-frequency audio). So it's doable. The circuit design is tricky -- think of smacking a piezoelectric crystal with several hundred volts at these frequencies. But the current requirements are low. The data acquisition is demanding -- you need an A/D converter sampling at least 2x your signal frequency; I usually prefer 10x for that.

It would be an interesting project.

Steve

 

Share this post


Link to post
Share on other sites

I'm looking in regards of IR sensors and laser sensors.

I believe an accuracy of 0.05 would be good to start with.

In order to not mess with Marlin it could be hooked up to another Arduino or a Teensy.

Any ideas on high precision sensors to use? Keeping it within a decent budget of course :D

 

Share this post


Link to post
Share on other sites

Ultrasonic is not the ideal sensoring technology here.

You can get much more precise results using inductive or optical sensors. Also, they cost much less and are easier to use :)

40 kHz is a no go for anyone who has cats or dogs around...

/edit:

Throwing a bunch of possible solutions your way:

http://ch.mouser.com/Sensors/Proximity-Sensors/_/N-7h7mq/

;)

I plan on doing some research about this myself soon. Please keep us posted if you find something useful!

/edit:

The easiest thing to do (by far) is to simply have a metal "probe" part on the printhead and a metal counterpart on the bed. Put a test voltage on the probe and measure the counterpart. The moment the probe touches the counterpart (distance = 0 -> bed levelled) you get a signal on the counterpart...

All you have to do is use some spring loaded part for the probe so that it doesn't matter if you crash the probe into the counterpart.

This isn't my idea. I've seen that on youtube. No clue where exactly...

 

Share this post


Link to post
Share on other sites

Perhaps I could hook to one of the printhead screws an industrial micro sensor which operates at 24v and glue on the printing platform some thin metal pieces.

I'm living in another city than where my 3d printer is located, i'm going to run some tests as soon as i get there.

I have seen several thread about adding some weight to the print bed. What if that weight is added in the form of servo motors which could be then used to create a self levelling printing bed?

 

Share this post


Link to post
Share on other sites

I've been thinking about this on and off.

One problem with the electrical probing or even mechanical probing with the tip is anything stuck on the tip will lead to inaccurate measurement.

Ideally, you would level the bed just before print with everything at temperature

The problem for me is that the nozzle seems to weep plastic even if it is retracted. So it will almost always be difficult to use the nozzle in the measurement.

BTW, Antiklesys , marlin has "mathematical" leveling if you can give it the distances to the nozzle at various points. It uses the measurements to adjust the platform through the Z axis to check the platform and nozzle in "virtual" level. It obviously needs good Z accuracy.

Here is an extreme demo:

 

Share this post


Link to post
Share on other sites

Hi Anon4321, that is pretty cool, but I suspect putting a motor on the print head would lead to other unpleasant side effects.

But yeah, if we find the right lightweight sensor we're good to go I suppose :)

I have an idea regarding laser levelling, but I'm not sure of the accuracy, I'll have to research a bit more on it

 

Share this post


Link to post
Share on other sites

There are some ingenious solutions for the probe.

I was thinking of simply having the probe magnetically attached or manually clipped to the head only during measurement. Then the probe can't impact the head weight during printing very much.

Someone came up with a way that through a series of moves of the build plate to the extreme Z causes the probe to lower and then a second series of x/y movements cause the probe to raise. Each position is maintained with magnets and springs.

I mean c'mon.... someone had their head in the game with this solution:

 

http://www.thingiverse.com/thing:89146

Although, if it were me, I would just have the lever on the build plate controlled by a servo so you don't need to have the extreme Z movements and there wouldn't be the risk of the mechanism causing issues at the extreme Z if you are printing something near the volume limit.

But still, that is some amazing out-of-the-box thinking and with the exception of a few pieces like the magnets and switch and springs, a 3D printable solution.

 

Share this post


Link to post
Share on other sites

Nice solution, but imho waaaaaay overengineered.

Using a microswitch gives you the advantage that you can probe a glass, PEI, Kapton or whatever surface, instead of needing an electrically conductive counterpart on the bed corners.

You don't have to reach the corners of the bed with the probe but can take any space close to the corners that are easy to reach.

Big plus for the microswitch...

Using small magnets you can easily make something that you can clip-on for levelling, and take away for printing.

Doing that manually is easy and quick so I don't think it's even necessary to automate that.

 

Share this post


Link to post
Share on other sites

I have a similar setup as a tool setter on a CNC machine, with a microswitch, so why not?

Or a touch probe like on a Datron CNC machine, that swivels down. Is there an extra IO on a UM2 Board?

Only problem is.. I'm a mechanical man, wouldn't have the slightest idea how to implement it in the firmware

 

Share this post


Link to post
Share on other sites

I'm not sure about the UM2 but the UM1 board has two outputs for R/C type servos which you can control through gcode.

In fact, the mathematical leveling I mentioned before can automate the lowering of the probe through the servo outputs. I believe for sensing it actually uses the Z stop input. So if you had a microswitch mounted manually, you just put in in series (what if NO, I guess parallel) with the upper Z switch (I believe).

I would suspect that the UM2 also has the same servo outputs.

Here is the more traditional way: http://www.thingiverse.com/thing:225584 There are some pics on connecting to the UM1 board. However, I believe that there are explicit connections in the middle of the board for servos. Maybe marlin uses a different servo number.

Marlin has all this built-in. However, you might have to configure marlin for the specific setup. See the instructions for the gcode required to initiate the mathematically leveling process.

 

Share this post


Link to post
Share on other sites

I think I just found the simplest way to level the bed:

Use an alu bed and have it connected to one of the Arduino's digital IO, while GND is connected to the printhead.

As soon as the nozzle hits the bed that could be coded to light up a LED light.

It would work just as a simple switch and nothing more than a LED and two wires is needed (and ALU bed of course...or alternatively 4 aluminium tinfoil pieces could be glued to the bed and have a wire connected to them, but then we would need to take in account the alu foil height).

This should be an extremely simple implementation and we could perhaps even integrate a function in Marlin to detect the bed height before the start of a print in order for the firmware to auto throw-in the Z compensation as in the video shown before.

I'm up to testing this out myself granted someone helps me tweak the firmware for this mod :D

 

Share this post


Link to post
Share on other sites

I think I just found the simplest way to level the bed:

Use an alu bed and have it connected to one of the Arduino's digital IO, while GND is connected to the printhead.

As soon as the nozzle hits the bed that could be coded to light up a LED light.

It would work just as a simple switch and nothing more than a LED and two wires is needed (and ALU bed of course...or alternatively 4 aluminium tinfoil pieces could be glued to the bed and have a wire connected to them, but then we would need to take in account the alu foil height).

This should be an extremely simple implementation and we could perhaps even integrate a function in Marlin to detect the bed height before the start of a print in order for the firmware to auto throw-in the Z compensation as in the video shown before.

I'm up to testing this out myself granted someone helps me tweak the firmware for this mod :D

 

I tried this in early UM2 development. But the connection between the nozzle and the alu bed is not that great. I automated it, and sometimes it won't make a connection at all and press down on the bed hard.

 

Share this post


Link to post
Share on other sites

Oh Daid, you anticipated me :) I created a post in the Marlin firmware section to discuss this further.

I understand the issue you describe, I don't have an UM2 so I can only guess, but could the cause be the nozzle or bed being dirty with the printing material and not making a stable connection?

Would touch sensitive sensors placed on the bed be a solution for this?

They can easily be made at home with tinfoil and the nozzle would just have to press on them (so no need of electrical connection between nozzle and bed).

 

Share this post


Link to post
Share on other sites

It's always a question of whether you want to automate it or just make it easier for manual handling.

I'm working on a similar idea. I will keep it all manual, but my goal is to have an accurate, simple to use and simple to reproduce way to visualize when you hit the right spot.

So in the end: You turn the thumbscrew until an LED lights up. The actual levelling procedure is still the same, but instead of having to use some paper sheet or good eye measure, you can just watch an LED and turn the screw until it lights up.

For me, that's a good enough solution for a simple problem.

With my super-high-ultra-premium Z-stage I'm planning, I don't think I'll have to re-level the platform that often anyways.

(capacitive) Touch sensor could be a viable solution. But it's definetly not low-tech enough so that people can easily reproduce it.

Imho it should be something simple like "connect some wires here and there, put an LED there and you're good to go".

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Our picks

    • How to 3D print with reinforced engineering materials
      Ultimaker is hosting a webinar where we explain how you can achieve and maintain a high print success rate using these new reinforced engineering materials. Learn from Ultimaker's Product Manager of Materials and top chemical engineer Bart van As how you can take your 3D printing to that next level.
      • 2 replies
    • "Back To The Future" using Generative Design & Investment Casting
      Designing for light-weight parts is becoming more important, and I’m a firm believer in the need to produce lighter weight, less over-engineered parts for the future. This is for sustainability reasons because we need to be using less raw materials and, in things like transportation, it impacts the energy usage of the product during it’s service life.
        • Like
      • 12 replies
×

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!