Jump to content

HOTEND_OFFSET


roald

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

      • Introducing Universal Cura Projects in the UltiMaker Cura 5.7 beta
        Strap in for the first Cura release of 2024! This 5.7 beta release brings new material profiles as well as cloud printing for Method series printers, and introduces a powerful new way of sharing print settings using printer-agnostic project files! Also, if you want to download the cute dinosaur card holder featured below, it was specially designed for this release and can be found on Thingiverse! 
          • Like
        • 10 replies
      • S-Line Firmware 8.3.0 was released Nov. 20th on the "Latest" firmware branch.
        (Sorry, was out of office when this released)

        This update is for...
        All UltiMaker S series  
        New features
         
        Temperature status. During print preparation, the temperatures of the print cores and build plate will be shown on the display. This gives a better indication of the progress and remaining wait time. Save log files in paused state. It is now possible to save the printer's log files to USB if the currently active print job is paused. Previously, the Dump logs to USB option was only enabled if the printer was in idle state. Confirm print removal via Digital Factory. If the printer is connected to the Digital Factory, it is now possible to confirm the removal of a previous print job via the Digital Factory interface. This is useful in situations where the build plate is clear, but the operator forgot to select Confirm removal on the printer’s display. Visit this page for more information about this feature.
          • Like
        • 0 replies
    ×
    ×
    • Create New...