Dual Nozzle X and Y offset calibration on Flashforge Dreamer

When using a dual extrusion printer it is important to calibrate the distance between the nozzles in X and Y direction. A properly calibrated printer will produce parts without a visible shift between sections printed with the left and the right extruder. In this article I wil discuss the use of a calibration program to find the offset between the nozzles on the Flashforge Dreamer.

It can be quite difficult to measure the offset between sections printed with each extruder on actual parts. Therefore several 3D printers manufacturers use a calibration routine similar to that used in inkjet printers with 2 or more cartridges. A 2D pattern is printed on which the user can determine the correct offset in X and Y direction by looking for the best aligned marks.

I found a calibration routine on the Sailfish firmware website that seemed like a nice straight forward method for calibration.

Sailfish calibration program(http://www.sailfishfirmware.com/doc/tuning-dual-extruder-calibration.html) Unfortunately this program does not run on the Flashforge Dreamer due to an incompatible G code format.

Since I did like the idea behind this procedure, I replaced the G and M codes to make the program compatible with the Dreamer and made some changes to the pattern, like extending the center line in the pattern (target line) and I added a small square to prime  the nozzles before the start of the print.

Flashforge Dreamer XY calibration program
Flashforge Dreamer XY calibration program

Update 15-04-2018: updated program to Rev2, which now includes z-hop (lifting nozzle) between each line to minimize risk of nozzles scraping lines off the platform.

The calibration Gcode file for the Dreamer can be downloaded using the link below:

FF Dreamer nozzle alignment rev2

Click the link and copy the text into a text file with the file extension “G” instead of “TXT”. The Gcode file can be transferred to the printer using an SD card or by using the Flashprint software.

The calibration procedure works as follows: a line pattern is printed with both extruders. The pattern contains horizontal and vertical lines, of which only the line in the middle of the pattern is perfectly aligned between the two extruders in the Gcode. The other lines in the pattern are increasingly misaligned the further they are away from the center line, with 0.1mm increments. This means the first line next to the center line has a 0.1mm offset between left and right extruder, the second line a 0.2mm offset and so on. See screenshot below  (click to enlarge).

Dual Nozzle calibration program, Flashprint top view
Dual Nozzle calibration program, Flashprint top view


My specific printer has an X offset of 34.2mm and a Y offset of 0.0mm. The offset can be found under Tools -> “On Board Preferences” in Flashprint.

Flashprint On board Preferences
Flashprint On board Preferences

When you change this offset and confirm by pressing OK, the new offset is uploaded to the printer and becomes effective immediately. Note that the offsets are limited to one decimal.

When the calibration program is printed, look for the set of marks that are best aligned. In the example below the printer is properly calibrated (center marks show best alignment):

X and Y correctly calibrated
X and Y correctly calibrated

It may be difficult to check alignment when simply looking at the print. Taking a picture and reviewing it on the PC makes it much easier to assess the pattern.

Now let’s take a look at a test print when the X and Y offsets between the nozzles are intentionally misaligned. X is gives an additional offset of +0.2mm and Y +0.4mm. (In this specific example the X offset becomes 34.4 and Y becomes 0.4mm in the onboard preferences menu)

The results for this test are shown below:

X0.2mm Y0.4mm offset
X0.2mm Y0.4mm offset

As can be seen in the enlarged detail views, the misalignment in the software settings carries over to the printed pattern. This means the calibration procedure  works as intended.

Below is a video of the entire procedure in action:

If you have any questions about this procedure let me know in the comments.



26 Replies to “Dual Nozzle X and Y offset calibration on Flashforge Dreamer”

    1. Hi Phil, very nice solution. I have been playing around with these type of vision modules as well and they are indeed a great tool for someting like this. Even thought I don’t endorse any commercial products and I have no idea if it indeed works, I have to say it is a pretty cool solution for calibration.

  1. Does it work with flashprint 5?

    For me it does not load well. No errors, but it just loads the red square and nothing else.

    Flashforge Dreamer latest firmware and flashprint 5 here.

    1. Hi, sorry I am not sure. I still have this printer but have not calibrated it for years. Mostly using another printer nowadays. I am leaving the Flashforge articles on the site for others to reference but I am not sure if it is still applicable with newer firmware or software.

    2. I have the exact same issue. Were you able to solve it? I did not see any solutions in the remaining comments. – thanks

      1. I am not sure if Thomaz found a solution, but a quick workaround could be to just copy the file onto the SD card with the windows file explorer. This way you are bypassing the newer Flashprint completely.

  2. Hi Robin
    I should have read all the comments first. I now see it does not work with the Creator Pro. I will keep hunting for a solution!

    Thanks and have a great Christmas

  3. Hi Robin,

    This is all potentially incredibly useful!
    But – I have a Creator Pro and it appears to be out by about 0.8mm on the y axis. Will it work with that? I noticed in the G Code you had specific beginning and ending code that was Dreamer specific…
    (I am a layman – not a techy, but I can follow instructions!)

    Thanks Steuart

  4. Thank you very much! Super informative and simple, calibrated my Dreamer in a couple of iterations.

    One note though: it’d be good thing to disable stepper motors in the end of print. (I’m new to this so don’t know how yet)

    1. Hi Andrey,

      Thanks! Nice to see the routine worked for you. The program has an M18 code at the end, which disables the steppers, so it should already work as you suggested. Have fun printing!


    2. Were you able to simply change the file extension to “.g” and use this? I opened this file up in TextEdit, saved and changed the extension to “.g”. I get a message on the printer “Print file content error!”. Any help is appreciated.

      1. Edit: just tried it myself with the file from the website and it completed the entire program with no issues. Please make sure you did not add any characters to the file unintentionally.

        Did you transfer the file to the Dreamer using flashprint or did you manually copy the file into an SD card? For me it works when using Flashprint.
        I also run older firmware on de Dreamer tot enable higher nozzle temperatures, which could be another difference from your situation.

        1. I used FP and have the latest firmware installed (v2.14 20191123). I have recreated the file making sure not to add any new characters and still no luck.

          1. Hi, I have created a random G-code file with the latest flashprint and saved it as a .g file to compare the various G-code commands used, mainly in the beginning and end of the program. The only different M-code used is M118 in the file generated by flashprint, however, I do not think this will cause the error you descibed. However, the newer firmware you run on your printer might trigger an error on some part of the code that the older firmware would just accept. I am sorry I don’t have a quick answer to this since I cannot reproduce your error.

  5. Do you by chance have this type of file for the FF Creator Pro? I can’t seem to figure out how to do this in Flashprint and Rep-G is of no use to me.

    Thank you for the informative video and any help you can offer.



    1. Hi Eric, the FF creator pro does not use the G code file format. I do not have experience with the format it uses, so I would not be able to help here, sorry. Robin

        1. It varies by printer type, but all later models seem to be G-code. It seems they have moved on to a more industry standard file format. The older Flashforge Creator Pro uses the binary x3g file format. The newer Flashforge models like the Creator 3, inventor models, Guider models and Dreamer (actually not that new anymore) all use G-code. For completeness, the G-code printers can also read the binary”.gx” format, which allows the printer to show a preview of the file on the printer itself.

    2. Hi Eric

      Did you ever solve the problem on the creator pro? My 2 nozzles are out by about 0.8mm on the y axis.



  6. The calibration procedure is excellent,thank you. Please let me know what Flashforge Dreamer do you have, I’ve seen that the bed is not heated and has the two adjustment screws in the front and the third in the back. The other simmilar 3D printer I’ve seen have heated bed with one adjusting screw in the front and two in the back. Thankyou.

    1. Hi Doru,
      I have an older version of the Flashforge Dreamer (the older versions can also be identified by the opaque door). My version does have a heated bed and as far as I know all Dreamers do. The Dremel Idea Builder, which is basically a Dreamer with single extruder, does not have a heated bed.
      Good observation on the leveling screws. Flashforge apparently also changed the position of these screws on the newer versions. The leveling works fine on my older Dreamer, so I am not sure why this was changed.

Leave a Reply

Your email address will not be published. Required fields are marked *