Jump to content
Ultimaker Community of 3D Printing Experts
ward1e

Ultimaker 3 style autoleveling on an Ultimaker 2

Recommended Posts

After reading about how auto levelling works on the UM3 here:

https://ultimaker.com/en/community/23463-inside-the-ultimaker-3-day-6-active-leveling

As UM3 autoleveling works by basically by measuring the capacitance between the build plate and the nozzle tip I wanted to see if the same mechanism could be used on the UM2.

Before I waste any time going further and attempting to measure the capacitance between the build-plate and the nozzle I wanted to know if the ultimaker community had already tried anything like this on the ultimaker 2.

Share this post


Link to post
Share on other sites

I have attempted to measure the capacitance between the build plate and the print nozzle using a capacitance meter I had on hand. I wasn't able to observe any significant difference in capacitance when the build plate was touching the nozzle however the capacitance meter I was using can only measure down to individual nanofarads.

After doing some more research into capacitive touch sensors it appears that the change in capacitance could actually be in the picofarad range.

See:

https://www.allaboutcircuits.com/technical-articles/circuits-and-techniques-for-implementing-capacitive-touch-sensing/

In order to test this I have ordered a more precise capacitance meter that can measure individual picofarads. If this is able to detect a significant difference my next step will be to see if a capacitive touch sensor ic such as the AT42QT1070 (it comes with a nice breakout board here https://www.adafruit.com/product/1362)

can detect the 2 surfaces touching.

If anybody knows which capacitive sensor ic is being used for detecting when the nozzle is touching the build plate on the ultimaker 3 that would be really helpful? (I don't have access to an ultimaker 3 to inspect the PCB.

Share this post


Link to post
Share on other sites

Thanks for the suggestion and part number it seems 3gbire can provide one with shipping in the UK for £19.91 so I'm going to order one to take a look.

This is probably a stupid question but how did you find the part number? Is there a schematic of all the parts available somewhere online? It would also be useful to know the protocol used by the board. I checked GitHub but can only find the Ultimaker2 repo.

Share this post


Link to post
Share on other sites

Don't order the capacitive sensor board! It is nothing more than a copper plane that forms one of the planes that form the capacitor that we measure in the active leveling probes. The other plane is the aluminium heater plate.

The board that you need is the bigger board that is integrated in the UM3 print head. It also connects the print cores, the fans etc. On that board, the capacitive sensorchip is located. I'm not sure which partnumber that is. If you want I can look it up for you.

In your opening post you write "measuring the capacitance between the build plate and the nozzle tip". So that is incorrect, the nozzle tip is not part of the measured capacitance.

We've spent well over a manyear to get this right. I'm sure it can be done on an UM2 if you add some electronics, but don't underestimate the software that is involved. And in the UM3, a lot of the processing is done on the Linux computer, which the UM2 does not have...

Share this post


Link to post
Share on other sites

@labern I have no idea what was built into Marlin before we worked on the UM3, that is before my time. But I've been around during most of the development of this function. And if it was already built into Marlin, we wouldn't have spent so much time :)

Anyway, Active leveling is spread across both embedded boards, so part of the function is implemented on the Olimex board.

Share this post


Link to post
Share on other sites

"Don't order the capacitive sensor board! It is nothing more than a copper plane that forms one of the planes that form the capacitor that we measure in the active leveling probes. The other plane is the aluminium heater plate."

Many thanks for the reply tomnagel, I was actually going to order the part tomorrow so I will hold off based on your comment. It would be super useful to know which capacitive sensor chip is involved if you can give me the manufacturer and part number? I just wanted to get the electronics sorted out for now as a starting point to see if this would be a viable way of retrofitting autolevelling to the ultimaker 2.

Based on what you said I just to check I understand correctly how this works:

You have 2 plates, one of which is the aluminium heater plate, the other is the other is a copper plate that is part of a PCB that integrated into the print head (the part I almost ordered). The actual process of measuring the distance between the nozzle and the aluminium heater plate works by moving the nozzle closer to the glass print bed which will cause the capcitance to gradually increase, when the nozzle collides with the glass in the print bed the trend in capacitance will change, as the print head can't physically move through the glass. This trend change is how we know the nozzle is in contact with the glass and is how the auto leveling sensor works.

Share this post


Link to post
Share on other sites

Here are the links to the data sheets for anybody interested:

FDC1004DSCT - I2C - 0.5 pico farad precision capacitive sensor http://www.ti.com/lit/ds/symlink/fdc1004.pdf

LP2985A-33DBV - http://www.ti.com/product/LP2985 - 5V to 3.3V linear regulator

PUSB3FR4 - https://assets.nexperia.com/documents/data-sheet/PUSB3FR4.pdf - ESD protection

In theory we should be able to measure the capacitance between the aluminium fan mount plate on the ultimaker 2+ (the bottom of the fan plate lies parallel to the print bed) and the print bed to make this work. We would then need to use the i2c bus on the Arduino Mega 2560 to read from the i2c capacitive sensor. Then we need to implement an autoleveling strategy in Marlin.

I'm still waiting for my pico farad precision capacitive sensor multimeter to arrive to check this approach could work.

Share this post


Link to post
Share on other sites

@labern I have no idea what was built into Marlin before we worked on the UM3, that is before my time. But I've been around during most of the development of this function. And if it was already built into Marlin, we wouldn't have spent so much time :)

Anyway, Active leveling is spread across both embedded boards, so part of the function is implemented on the Olimex board.

I was referring to this This one. Which could be possible for someone to implement for UM2?

Share this post


Link to post
Share on other sites

You want the capacitive plate as close to the glass as possible to get more accuracy.  The aluminum plate on the UM2 in my opinion is much too far.  I'm going to just wildly guess that the accuracy is proportional to the square of the distance so 2X farther away will be 4X less accurate (it's probably linear not square).  Also the larger the plate the better.

Edited by Guest

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

×

Important Information

Terms of Use Privacy Policy