Loading

MakerBot Print is our newest print-prepration software, which supports native CAD files and STL assemblies,
allows you to interact with all your printers via the Cloud, and many other exciting new features.

Download Now

Report as inappropriate

Hi Mike
I have the same pb :

MarlinKimbra code does not work on my printer (pb in MK_Main.ccp line 11243)

Here are the log of destination[Z_AXIS] during extruder changes when i send T1 and T0

09:08:47.944 : Echo:Origine XY Premier
09:08:47.944 : No move on toolchange
09:08:47.944 : z_diff: -0.80
09:08:47.944 : z_raise: 0.30
09:08:47.944 : z_back: 1.10
09:08:47.944 : destination[Z_AXIS] before raise: 100.00
09:08:47.944 : current_position[Z_AXIS] before raise: 100.00
09:08:48.116 : destination[Z_AXIS] after raise: 100.30
09:08:48.116 : current_position[Z_AXIS] after raise: 100.00
09:08:49.925 : destination[Z_AXIS] before back: 100.30
09:08:49.925 : current_position[Z_AXIS] before back: 100.00
09:08:50.628 : destination[Z_AXIS] after back: 98.90
09:08:50.644 : current_position[Z_AXIS] after back: 100.00
09:08:50.644 : Echo:Active Driver: 0
09:08:50.644 : Echo:Active Extruder: 1
09:13:42.907 : Echo:Origine XY Premier
09:13:42.907 : No move on toolchange
09:13:42.907 : z_diff: 0.80
09:13:42.907 : z_raise: 1.10
09:13:42.907 : z_back: 0.30
09:13:42.907 : destination[Z_AXIS] before raise: 100.00
09:13:42.907 : current_position[Z_AXIS] before raise: 100.00
09:13:43.470 : destination[Z_AXIS] after raise: 101.10
09:13:43.470 : current_position[Z_AXIS] after raise: 100.00
09:13:45.289 : destination[Z_AXIS] before back: 101.10
09:13:45.289 : current_position[Z_AXIS] before back: 100.00
09:13:46.007 : destination[Z_AXIS] after back: 99.70
09:13:46.023 : current_position[Z_AXIS] after back: 100.00

Original Code

    #if HAS(DONDOLO)
      // <0 if the new nozzle is higher, >0 if lower. A bigger raise when lower.
      float z_diff = hotend_offset[Z_AXIS][active_extruder] - hotend_offset[Z_AXIS][tmp_extruder],
            z_raise = 0.3 + (z_diff > 0.0 ? z_diff : 0.0),
            z_back  = 0.3 - (z_diff < 0.0 ? z_diff : 0.0);

      // Always raise by some amount (destination copied from current_position earlier)
      destination[Z_AXIS] += z_raise;
      planner.buffer_line_kinematic(destination, planner.max_feedrate_mm_s[Z_AXIS], active_extruder, active_driver);
      stepper.synchronize();

      move_extruder_servo(tmp_extruder);
      HAL::delayMilliseconds(500);

      // Move back down
      destination[Z_AXIS] = current_position[Z_AXIS] - z_back;
      planner.buffer_line_kinematic(destination, planner.max_feedrate_mm_s[Z_AXIS], active_extruder, active_driver);
      stepper.synchronize();
    #endif

I change it to :

  // Move back down
  destination[Z_AXIS] = destination[Z_AXIS] - z_back;

It's ok with this change, it works when i send T0 or T1( when i don't hit the Z End Stop, for the firsts layers it's not good with my offset of 0.8 because i hit the end stop ... but it's an other problem)

But ... i don't not why (i suppose something like relative or absolute Z moving) ...when i try to print the extruder 1 is not at the right height

I try to find and other solution ... but if you find something ... please share it !