Printer Calibration


In another post you mentioned that pattern mode is not very useful for parts with curved surfaces normally printed with Anti Aliasing. Could you expand on this? I am concerned about the dimensional accuracy of a cylindrical surface so I’m trying to figure out which is the best option.


As you dig deeper (than my first foray) into Pmode you will discover it’s really powerful if you are willing to put the time into it. My earlier statement refers to an effort vs. result tradeoff. Most times the AA is accurate enough for the given effort.

What I have come to realize is that while the Video mode does create smooth curves, this is only because the image and the micro-mirrors aren’t actually aligning to the image file, forcing the firmware of the projector to ‘average’ the actual location between pixels and compensating with a greyscale adjustment that ends up blending the edges. This can be done in Pmode too, it just takes a bit more care Pattern Mode.

If your part takes up most of the build head and you’re just trying to control tolerances, it would be easier to tweak the exposure values and play with scaling compensations.

When you want to control a very fine level of detail or dimensional tolerances of really small parts by playing with sub-pixel manipulation, that’s when Pattern Mode comes into play.

As an example:
If your part is .5mm in diameter and you need to control cylindricity, then playing with the pixel greyscale values in an image editor and printing in pattern mode would be the way to go.

If your part is 30mm in diameter, then use Video Mode. The pixel/feature size relationship is greatly reduced and likely not going to be an issue.


Thank you for the detailed answer. It is very clear now. I will let you know about my findings.


@OwenSmithyman : From what I understand about pattern mode, it provides a more accurate resolution than video mode by mapping 1:1 the pixels to the micro mirrors in the DMD (unlike in video mode, where you need to filter the data). If that’s the case, why do we need a pattern mode image scale factor? Isn’t that precisely what we are trying to avoid by using pattern mode?


I am in the process of writing a manual outlining all the calibration techniques to get maximum accuracy. I have found that one can tweak many different parameters in order to get to sub-pixel accuracy. However, all these information is a little scattered, and I was doing this manual for the rest of future Ember users in my lab. I figured I would share it here too.

I still do not have a lot of data to contrast the theory I am outlining. What I am looking for is numbers or pictures based on actual prints that exemplify how each parameter or printing mode affects the final resolution. I was wondering if other users here do have some data that they are willing to share. Maybe @scott_chabineau or @OwenSmithyman can help!


Cool idea!
I don’t have photos that illustrate my calibration techniques, but I do have a couple of different things I do.

  1. Easy - Set “FirstApproachRPM” to 1.0 RPM in the Advanced Settings before slicing. When the “build head” is in the calibration position and the tray is full of resin, I loosen the lock screw, drop the head down, press on the top of the ‘handle’ with my thumb - using about the dead weight of my hand (highly scientific :wink:), holding it down for about 30 seconds. Release the pressure, wait about 5 to 10 seconds more, then lock the screw in place.
  2. Intermediate - Follow the procedure above, but modify the Advanced Settings to eliminate the first layer exposure. I dial back First Layer > Exposure Time to 0.01 sec to effectively not expose the first layer. I turn up Burn-In Layer > Exposure Time at least 1.0 sec over normal (for any given resin this value can change) and increase Burn-In Layer > Wait (Before Exposure) to 30~60 and set Burn-In Layer > Separation slice velocity to 1.0 RPM. This process may need a couple of attempts to ensure adhesion but the logic is this: The first layer is always the thickest since you can never remove all the resin from under the “build head”. By not curing the first layer, and waiting a long time, you make the first burn in layer height more accurate by allowing more room under the ‘build head’ for full resin evacuation.
  3. Advanced - Calibrate with no resin in the tray at all. This requires you to SSH into the printer. Follow the procedure here. Use the method above to turn off the first layer exposure, increase Burn-In Layer > Wait (before exposure) to at least 60. Change Frist Layer > Separation slice velocity to 0.5 RPM.
    1. SSH into the printer, Set “RHomingAngleMilliDegrees” to 0, save and exit, and refresh the CommandPipe.
    2. With no resin in the tray (or at least very little so you can keep the PDMS dry during this procedure), start the calibration routine.
    3. Once at the bottom position, loosen the nut to drop the head, make sure it’s flat against the PDMS, lock the nut, then CANCEL the print. The build head should lift straight up.
    4. SSH pack into the printer, set “RHomingAngleMilliDegrees” back to -60000, save, exit, refresh.
    5. Place a pool of resin about the size of a quarter or slightly larger on the PDMS window.
    6. Press ‘Reprint File’ on the front panel. Let it move to the calibration position but do not unlock the ‘build head’. Open the door and watch the resin squish out. Wait until the resin stops flowing.
    7. Close the door and press done.
    8. When the tray begins to rotate it may stick. As long as ‘Detect Jams’ has not been disabled, it should correct itself.
    9. Before the tray returns for the first Burn-in layer, open the door and add resin. I like to add just a little bit more, watch for any signs of adhesion issues. Once the printer has reached the Model layers, it’s usually safe to add all the resin.

Searching for accurate Z-dimension prints

That’s great, thank you for sharing! I am also including other parameters that maybe do not belong to the printer calibration category but also result in a more advanced resolution (pattern mode, gray scales, image factors, optical proximity correction, antialiasing, etc.) I am putting together a spread sheet where I show the different dimensions of a 0.5 in cube (like a parametric study). I will publish those soon and whoever is interested can make a collaborative effort and see how far we get!



I get an error when I include the PatternModeImageScaleFactor. What is the variable type that I should be using? Maybe I am just entering the wrong decimal points.


What error are you getting? PatternModeImageScaleFactor’s default is 1.0, but it’s a double, so you can have up to 15 significant digits.


I’m entering PatternModeImageScaleFactor as the result of 1/1.0076 in order to obtain gray values…You mentioned this ratio earlier in this post for resolution enhancement. That is where all the decimals are coming from.

I’m getting the error “Error 57-2. Can’t read settings text”


Hmm, assuming you’re entering 0.9924573243, that should work. And PatternModeImageScaleFactor is a printer setting, so did you put it into /var/smith/config/settings, not the printsettings file in your zip file?


There you go. I had put it in the printsettings file. My bad!




Is there a list of all the printer commands that actually CAN be used in the printersettings file? It seems there are a few that do work if you include them vs having to SSH in to change them.


Yes, this document should show everything: Ember Print and Printer Settings.pdf (131.3 KB)


Thanks for the very useful information!
However… this doesn’t actually answer the question of which of the Printer Settings listed in this chart can actually be used in the ‘printsettings’ file (without producing an error and having the expected result).


Hmm, I would think that any command listed as a Print Setting would be able to be used in the printsettings file, and any command listed under Printer Settings would not. Have you found otherwise?


Is there a reason why the overpress settings (overpress, overpress velocity, overpress return velocity, in 2.0 or higher firmware) are not shown in that PDF? According to this Instructable these definitely play a role in Z-dimension accuracy.

I have just obtained some prints where the Z-direction accuracy was not great for the first layers, and I was planning to play with these settings.


Hi Scott, could you by any chance share the solidworks model of the tray mounting plate you described here?


Just tried - file is too large. :smirk: