Jump to content
Ultimaker Community of 3D Printing Experts

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?

 

  • 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
  • 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?

     

  • 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.

     

  • 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?

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

    Or do you have a tip/website/book to learn a little but more about this?

     

    The whole Marlin configuration makes extensive use of the C preprocessor

     

    gcc documentation for #ifdef:

    https://gcc.gnu.org/onlinedocs/cpp/Ifdef.html#Ifdef

  • 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
     

  • 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
    • Our picks

      • Ultimaker Transformation Summit

        On April 20 - April 23 we will host the Ultimaker Transformation Summit. Come talk to us via Live chat and get inspired by any of our relevant presentations!
        • 5 replies
      • New here? Register your Ultimaker for free 3D printer onboarding course
        Hi,
         
        Often getting started is the most difficult part of any process. A good start sets you up for success and saves you time and energy that could be spent elsewhere. That is why we have a onboarding course ready for
        Ultimaker S5 Pro Bundle, Ultimaker S5, Ultimaker S3 Ultimaker 2+ Connect.   
        They're ready for you on the Ultimaker Academy platform. All you need to do to gain access is to register your product to gain free access. 
        Ready? Register your product here in just 60 seconds.
          • Like
        • 0 replies
    ×
    ×
    • Create New...