Odd Movement using Compiled DualMetalTAZ Firmware


I downloaded the TAZ 5 Dual v2 firmware and changed the offsets for my second extruder. It compiles (although with some warnings about pins.h being re-initialized or something (don’t recall the exact message).

After switching to the second hotend (T1) and issuing a move or extrude (example G1 E10 F200, or G1 X50 F3600) it moves the Y axis about the exact amount of the Y offset.

I’ve played around in the process_commands() function at the code_seen(‘T’) block and got it to act a little different, but not how it works with the stock Dual V2 firmware. I’ve tried and older version and increased the extruder variable and other stuff and got the same results. Maybe I need an older version of Arduino IDE? Not sure what to do, but I don’t want to keep having to insert M218 gcode for each of my print.


Also, the beep/click isn’t there when I click the encoder wheel. Kind of odd.

Found the issue!

When specifying a negative value for the offset, it moves the Y axis on the first move after tool change. (T1). I made them absolute values and it doesn’t do the odd movement, but the second head prints almost 100mm off now… :frowning: Surely someone else has inputted negative offsets and seen this before. I have even tried including only a single trailing zero after the decimal and no change. (e.g. -49.0)

#define EXTRUDER_OFFSET_X {0.0, -0.675} // (in mm) for each extruder, offset of the hotend on the X axis
#define EXTRUDER_OFFSET_Y {0.0, -49.805}  // (in mm) for each extruder, offset of the hotend on the Y axis

Just curious why you’re updating firmware with your offsets? The nozzle offset is usually set in your slicer software…

Putting them into the slicer seems like a work-around, the firmware should always have a way to adjust or set the offsets. The issue is that I use Simplify3D and it keeps inserting M218 X-52 in my startup script which is not my offset. I got sick of having to remember and change it each print. No matter what I tried I couldn’t get my values to stick.

Today I downloaded https://code.alephobjects.com/diffusion/MARLIN/ (v1.1.5) and compiled it for both my single and dual toolheads and it works great! When S3D connects to the printer, it seems to get the hardcoded offsets and configures them correctly in S3D, because now each time it has my custom X/Y values that I put into firmware and not the X-52 value from before.

Well… I can’t think of a reason not to hard-code into firmware. Just saying that most people use the slicer for offset. If you’ve got it work, that’s great.

M218 works in the start script, but I believe you need both X and Y as well as extruder T1. I haven’t had good success specifying the offset from the G-Code tab in S3D, and put it into the Start Script.

I suppose if you switch dual extruders often, the slicer gcode would be more fitting. I’ve gone through the Dual Extruder V2 and currently using the V3 and haven’t changed toolheads once each is on the machine.