Jump to content
Ultimaker Community of 3D Printing Experts
  • Sign Up
roald

HOTEND_OFFSET

Recommended Posts

Posted · HOTEND_OFFSET

Question: how to setup an hotend offset between primary and second hotend?

 

I use: upgraded ultimaker original with utlimaker 2 V2.1.1 motherboard. E3d Chimera dual extruder, heatbed, reprap smart controller and Custom firmware from https//github.com/Ultimaker/UM2.1-Firmware

 

Already try: give in the g-code commands "M218 T1 X20 Y0" and reply it with M500 command in simplify3d machine tab. This works for me until i switch the ultimaker off and on.

 

Also try to change the firmware in configuration.h

Change:

#define extruder 2

#define temp_sensor_1 20

 

Add:

#define HOTEND_OFFSET_X { 0.0, 20.00 } // (mm) relative X-offset for each nozzle
//#define HOTEND_OFFSET_Y { 0.0, 5.00 }  // (mm) relative Y-offset for each nozzle
//#define HOTEND_OFFSET_Z { 0.0, 0.00 }  // (mm) relative Z-

 

This doesn't anything do i miss something?

 

Share this post


Link to post
Share on other sites
Posted (edited) · HOTEND_OFFSET

you can also set the nozzle offset in Cura (and presumably simplify3d as well) that is generally what was done for the early dual hotend setups, not very pretty, I know.
the M218 should also work though. switching back and forth with the stock implementation every layer however  is not recommended.
it rounds floats every-time you switch AFAIK. We replaced it for the UM3 because we did use that offset for the Z but the buildplate was slowly creeping up or down when we did switches in places to test the switching bay.

Edited by robinmdh

Share this post


Link to post
Share on other sites
Posted · HOTEND_OFFSET
10 hours ago, roald said:

Add:

#define HOTEND_OFFSET_X { 0.0, 20.00 } // (mm) relative X-offset for each nozzle
//#define HOTEND_OFFSET_Y { 0.0, 5.00 }  // (mm) relative Y-offset for each nozzle
//#define HOTEND_OFFSET_Z { 0.0, 0.00 }  // (mm) relative Z-

 

This doesn't anything do i miss something?

 

HOTEND_OFFSET_Y has to be defined as well, it's used here (mind the #ifdef clause):

https://github.com/Ultimaker/UM2.1-Firmware/blob/UM2.1_JarJar/Marlin/Marlin_main.cpp#L172

 

The offset is not stored in EEPROM AFAIK and there's no z-offset in this Marlin version.

But you have to fine-tune (calibrate) the values in the start-script anyway (with M218), or do you plan to customize the firmware after every nozzle change?

 

Share this post


Link to post
Share on other sites
Posted · HOTEND_OFFSET
6 hours ago, robinmdh said:

the M218 should also work though. switching back and forth with the stock implementation every layer however  is not recommended.
it rounds floats every-time you switch AFAIK

 

oh.. i remember... 🙂

As a rule of thumb: use only offset values that are a multiple of the step size.

 

Share this post


Link to post
Share on other sites
Posted · HOTEND_OFFSET
On 7/29/2020 at 5:43 PM, tinkergnome said:

 

HOTEND_OFFSET_Y has to be defined as well, it's used here (mind the #ifdef clause):

https://github.com/Ultimaker/UM2.1-Firmware/blob/UM2.1_JarJar/Marlin/Marlin_main.cpp#L172

 

The offset is not stored in EEPROM AFAIK and there's no z-offset in this Marlin version.

But you have to fine-tune (calibrate) the values in the start-script anyway (with M218), or do you plan to customize the firmware after every nozzle change?

 

Oke i define the y-axis as well when im back home.

But i dont get you about the nozzle change, in my mind there be no different in distance from center to center when i change the nozzle size. And cant you explain a little bit more about the ifdef clause? Or do you have a tip/website/book to learn a little but more about this?

Share this post


Link to post
Share on other sites
Posted · HOTEND_OFFSET

Its working by enable this both lines Thanks for the help

 

// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
// For the other hotends it is their distance from the extruder 0 hotend.
#define EXTRUDER_OFFSET_X {0.0, 19.70} // (in mm) for each extruder, offset of the hotend on the X axis
#define EXTRUDER_OFFSET_Y {0.0, 0.00}  // (in mm) for each extruder, offset of the hotend on the Y axis
 

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

×
×
  • Create New...