Jump to content

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 Cura 5.9 stable released!
        Here comes Cura 5.9 and in this stable release we have lots of material and printer profiles for UltiMaker printers, including the newly released Sketch Sprint. Additionally, scarf seams have been introduced alongside even more print settings and improvements.  Check out the rest of this article to find out the details on all of that and more
          • Like
        • 5 replies
      • Introducing the UltiMaker Factor 4
        We are happy to announce the next evolution in the UltiMaker 3D printer lineup: the UltiMaker Factor 4 industrial-grade 3D printer, designed to take manufacturing to new levels of efficiency and reliability. Factor 4 is an end-to-end 3D printing solution for light industrial applications
          • Heart
          • Thanks
          • Like
        • 7 replies
    ×
    ×
    • Create New...