TAZ 6 X Offset Issue

Hi, I have a basically stock Taz 6, except for the Titan Aero extruder. I recently started using the Drunken Octopus firmware and I’m running- Marlin_Oliveoil_TAZ6_Angelfish_Aerostruder_2.0.0.1. When I switched over to the Drunken Octopus it actually fixed a lot of issues I was having with the Titan aero and the Taz 6. Anyways, this issue I’m having now isn’t new and It’s honestly been there since I bought the machine new back in 2018. It just never caused me enough problems to figure out the right way to correct it. It’s a little hard to explain but it’s like my X axis offset is off? Say I print a rectangle that is 280mm long and centered on the build plate in the slicer, when it actually prints, on the right side, about the last 10mm will print off of the build plate. On the left side the rectangle will be shifted 10mm towards the middle of the plate. If that makes sense? So the printed object is offset to the right of the build plate. It’s like my Y axis needs to be moved 10mm to the right or the tool head 10mm to the left. I did some research on this and I read to try and use the M206 command to change the X axis offset. When I send the M206 command it comes back as invalid? Is it possible that NO_WORKSPACE_OFFSETS is enabled in the firmware? My knowledge of editing firmware or the configuration.h is very limited. Or is there another way that I should fix this?

I appreciate any help and let me know if I need to clarify anything on this.

The define you mention is indeed present in Configuration_adv.h:

/**
 * Enable this option for a leaner build of Marlin that removes all
 * workspace offsets, simplifying coordinate transformations, leveling, etc.
 *
 *  - M206 and M428 are disabled.
 *  - G92 will revert to its behavior from Marlin 1.0.
 */
#define NO_WORKSPACE_OFFSETS // <-- changed

Compiling the source yourself is extremely easy, just follow these directions.

Build the config files, then edit {project root>}/config/examples/AlephObjects/custom/Oliveoil_TAZ6/Angefish_Aerostruder/Configuration_adv.h then compile the version you need which will be in {project_root}/build

Kind of a weird bug, were you able to figure it out?

I appreciate the response. I haven’t had a ton of time to work on it recently so I haven’t made much headway. I did figure out that it’s also offset in the Y axis and not just the X. But, I’ve done some reading and was going to try and fix it with an offset using G92 in the starting script. If the firmware will accept it. I would rather use M206 as a more permanent fix if I can learn to edit the Configuration_adv.h and compile the source. I was reading through the guide that you mentioned and it says… Simply follow [this guide] to set up WSL and get yourself an Ubuntu shell, then proceed with the steps for Linux. Where it says [this guide] it isn’t a link and I think it maybe should be? Would you happen to know which guide its referring to?
It is a weird issue and one that has been there since I bought the machine new. I just wonder if the bed is physically not centered? But if I reposition the bed I believe it’ll miss some of the washers during the leveling procedure.

If you have Windows 10 ver 2004 and up it’s pretty straightforward, just follow one of the guides like this: How to install Windows Subsystem for Linux (WSL) on Windows 10 | Windows Central

Thanks for the help and the link to the guide. I’m going to give this a try and see how it goes. I may end up having a couple of questions.

Thanks again

I’ve been working on compiling from source and then editing the configuration_adv.h. I’ve run into a couple of issues. I’ve got everything compiled and then I edited the configuration_adv.h to comment out the no_workspace_offsets. When I go to compile in Arduino, I keep getting this error. Arduino: 1.8.16 (Windows 10), Board: “RAMBo”

C:\Users\ktmde\Documents\marlin\Marlin\src\HAL\AVR\u8g_com_HAL_AVR_sw_spi.cpp:65:10: fatal error: U8glib-HAL.h: No such file or directory

#include <U8glib-HAL.h>

      ^~~~~~~~~~~~~~

compilation terminated.

exit status 1

Error compiling for board RAMBo.

My second question is, when I edit the config file I couldn’t find it in {project root>}/config/examples/AlephObjects/custom/Oliveoil_TAZ6/Angefish_Aerostruder/Configuration_adv.h. I did find it in C:\Users\ktmde\Documents\marlin\config\examples\AlephObjects\accessory\Oliveoil_TAZ6\Angelfish_Aerostruder. I then edited the configirution_adv.h and copied it and the configuration file to C:\Users\ktmde\Documents\marlin\Marlin. Is that right?

I was also a little confused by this line in the guide… In order to use the Arduino IDE, you will need download and extract the zip file from the [GitHub repo]. I couldn’t find the zip file in the GitHub repo so I just downloaded Arduino from their main site. Is that also ok?

I appreciate your help.

I did not use the Arduino IDE, don’t even have it installed inside the Linux subsystem and things work fine. Is yours installed on the windows machine itself perchance? It wouldn’t work in that case, they’re completely different environments. I believe DO compiles with build-firmware.sh using regular GCC, try that first.

You don’t need to move any files around, Marcio’s script handles everything. /accessory/ is not the right place, if you’re missing the config directory, then the first step you need to do is generate the script-modified config files, which is what build-configs.sh does.

I’m sorry for not having much knowledge on any of this. I’ve been following the building from source guide. I got WSL working and ran the commands listed in the guide and it took several hours to finish. The next section is where i’m pretty confused and I think I messed up. I did download Arduino separetly in the Windows environment and was running it from there. So that could be the problem. I am really confused by this part in the guide…

In order to use the Arduino IDE, you will need download and extract the zip file from the [GitHub repo].

The, go into the unpacked folder and replace the “Configuration.h” and “Configuration_adv.h” files in the “Marlin” subdirectory with one of the example configuration files from “config/examples/AlephObjects”. Drunken Octopus will only include the configuration files for the standard printers and toolheads.

Open the “Marlin.ino” file from the “Marlin” subdirectory in the Arduino IDE.

Choose “Preferences” from the “File” menu and add “https://raw.githubusercontent.com/ultimachine/ArduinoAddons/master/package_ultimachine_index.json” to the “Additional Boards Manager URLs”.

In the “Boards Manager”: - For TAZ Pro: Search for “Archim” and install “Archim by UltiMachine” - For all others: Search for “RAMBo” and install “RepRap Arduino-compatible Mother Board (RAMBo) by UltiMachine”

Choose the board corresponding to your printer from the “Board” submenu menu of the “Tools” menu. For a TAZ Pro, select “Archim”; for all others, select “RAMBo”

To compile and upload the firmware to your printer, select “Upload” from the “Sketch” menu.

Am I supposed to do all of that from the Linux terminal? If so, I’m not sure how to download and extract the zip file from the GitHub repo? And how I would run Arduino from the terminal?

Don’t use Arduino, just ignore anywhere it’s mentioned. Reread what I said above - build the config files, modify the config files in /config/, compile using the script also mentioned above, then upload the .bin file (it’ll be in /build) using Lulzbot Cura (Preferences → Printers).

That makes more sense. An issue I’m having is when I go to {project root>}/config/examples/AlephObjects/custom/Oliveoil_TAZ6/
Angelfish_Aerostruder isn’t listed. I only have E3D_Hemera and Lutefisk_M175.
I only find it if I go to the “accessory” directory. \marlin\config\examples\AlephObjects\accessory\Oliveoil_TAZ6\Angelfish_Aerostruder

C:\Users\ktmde\Documents\marlin\Marlin\src\HAL\AVR\u8g_com_HAL_AVR_sw_spi.cpp:65:10: fatal error: U8glib-HAL.h: No such file or directory

#include <U8glib-HAL.h>

You need to copy the libraries from ArduinoAddons/arduino-1.8.5/libraries in the DO source to someplace where your Arduino IDE can find them. This is handled automatically by the WSL build scripts, but it needs to be done manually if you are building with the Arduino IDE.

I updated the guide here. Compiling From Source · drunken-octopus/drunken-octopus-marlin Wiki · GitHub

Thank you Marcio for explaining all of this and taking the time to update the guide. Where I am still a little confused, if you download WSL and run the listed commands in the guide, are all of the steps with Arduino in the guide not needed? Or do you still need to do everything in the Arduino IDE section of the guide? If you don’t need to do the Arduino steps, does that mean it’s basically showing two different ways of doing the same thing? One with WSL and one with Arduino?

Thanks again for your help.

@ktmderf: Yes, two different ways of doing it. Using the Arduino IDE, or using WSL.

I was finally able to figure this out and I can now use the M206 command. Thank you to both of you guys for your help and patience. I’ll post an update on if using M206 fixes my offset issue in both the X and Y axis.

I do have one more thing to add. Using workplace offsets is not the proper way to offset the printer’s coordinate system, as it will affect only the workpiece, not wiping or probing, which could be affected by a coordinate shift. Generally if you have a toolhead issue, you want to change the axis limits in the firmware. Those are the [X/Y/Z]_[MAX/MIN]_POS values. There is even a technique to accomplish the same thing without recompiling the firmware. The trick is to modify the start GCODE to adjust the axis coordinates immediately after homing, i.e by placing a G92`immediately after the G28. This allows you to nudge the coordinate system of the printer quite effectively.

Thank you for your reply and all the info on this topic. So if I understand it right M206 only takes affect after wiping and probing? What I don’t understand though, when my printer does the wipe procedure, it seems like it isn’t offset. The nozzle doesn’t hit the sides or the end of the wiper mount. When it does the probing procedure it doesn’t miss the washers. The nozzle does hit all four washers in different spots though. Which seems a little strange. Especially the back left one or the 4th one probed. The nozzle hits that one on the screw head and the other washers it doesn’t. If I use G92, would it possibly make the nozzle miss the wiper pad and hit the mount?

Thank you again for all the help and info on this. I’ve learned a lot.