Taz 6 Y stepper motor not working- shaft "shakes" instead of rotating

Hello community!

My TAZ 6 Y-Axis “bed positioning” stepper motor motor stopped functioning correctly last week.

When given commands to operate, the motor shaft shakes back and forth instead of rotating.

A few tests (below) seem to point towards a control system error, but my knowledge is exhausted at this point. Without community help, the next step here appears to be sourcing/buying/installing/flashing a new RAMBO board and hoping this restores funtionality.

I’m very much hoping it’s something simpler (?), but not skilled enough to make any further “home hacker” guesses at this point! If any of you know anything here I would love to hear your feedback. =)

Here is what had been tested so far:

  1. drive belt removed & “Y axis” move command resulted in the same motor behavior (shaft shaking instead of rotating) (e.g. suggest problem not related to external mechanical resistance)

  2. motor replaced with spare - same “shaking” issue came back (e.g. shaft on new motor jiggles back and forth instead of rotating)

  3. firmware flashed this this week & no change (still shakey instead of spinney)

  4. Electrical components ok:
    3.1) 3x fuses on Rambo board checked, all intact/functional)
    3.2) all 4x wires leads to motor confirmed conductive/functional

  5. input/output check = “uh-oh” →
    wire harnesses from malfunctioning Y-Axis bed motor plugged into functional X-Axis horizontal tool head positioned stepper motor. The Y-motor input caused the x axis motor to get shaky… (Note reconnecting the x motor back to his original leads caused the x-motor to function normally again).

Basically, every test so far is pointing at the shaking malfunction being something related to input/output signal errors on the y axis motor control loop (that the firmware flash doesn’t care about).

Any ideas? (Looking at ordering another rambo at this point in the interim) :man_facepalming:

That sounds most likely to be a failed y stepper driver. I had the same problem and went through the same debugging steps.

If you aren’t doing dual extrusion and can compile your own firmware then you can move the y axis to E1 and get back up and running like that. This is commit I made a couple of years ago and it may even still apply cleanly:

Cheers,
Chris

1 Like

That sounds AWESOME! Switching output ports is absolutely brilliant, that’s a great idea. Has that been pretty functional/reliable for you so far!? Quick query for yourself however - as a relative newcomer to the coding side of things, I have never attempted to compile my own firmware - do you have any handy information/qucklinks that can help a total beginner like me understand how to work with the right interfaces to update the rambo? Gawd that sounds hopeless! Haha thank you for extending us a branch mate :raised_hands:t3:

I managed to locate the Arduino IDE software here (https://all3dp.com/2/marlin-firmware-how-to-get-started/) as well as the links to the Marlin 1.1.x download area (Download | Marlin Firmware) and also stumbled across what appears to be the latest TAZ 6 Marlin files here (Index of /Software/Marlin/1.1.9.34 → "Taz6 Single extruder “.config” file)

I started to get a bit lost here - some of this is a guide, but some of it is questions too -

Guidance for less experienced users:

  1. Open the marlin 1.1.x download * using the arduino IDE software (e.g. File->Open->marlin-1.1.x->marlin ->marlin.ino) (Note: the Taz6 marlin config file corresponds to the “Config.h” tab on the lulzbot web page).

  2. Browse through tabs in the IDE software and look for a “Pins_Rambo.h” tab (this will contain the correct code lines to modify).

Questions:
*0) Do you know where the right “Pins_Rambo.h” file lives that I should be editing? I feel like editing the file included in the official marlin download is completely silly (e.g. “lets edit something in alpha centauri and hope global warming fixes itself afterwards”)

  1. Differences were observed between downloaded 1.1.9.1 marlin default code and the edited code linked in above thread:
    It looks like you have constructed an “If/Else” loop into line 89-104 and swapped many of the pin definitions around - I don’t understand and was interested in why this was done and how it works if you have a second!

  2. If I copy and paste the edited code into the applicable lines of the “Pins_Rambo.h” file open in the arduino IDE software, what would be the next step to get it out of the IDE software and loaded onto the rambo board sitting in my broken TAZ printer? :rofl: Would I expect to see anything different when I turn the printer on for the first time after this? (stumbling along here, thank you for your patience! :blush:)

Here is the code side by side comparison for ease of reference →
Downloaded code from marlin 1.1.x, lines 81-95:
#define Y_STEP_PIN 36
#define Y_DIR_PIN 49
#define Y_ENABLE_PIN 28

#define Z_STEP_PIN 35
#define Z_DIR_PIN 47
#define Z_ENABLE_PIN 27

#define E0_STEP_PIN 34
#define E0_DIR_PIN 43
#define E0_ENABLE_PIN 26

#define E1_STEP_PIN 33
#define E1_DIR_PIN 42
#define E1_ENABLE_PIN 25

Edited Code to support the output channel swap in above linked thread, line 81-104:
//Deleted lines 81-83(#define Y_STEP_PIN 36) (#define Y_DIR_PIN 49) (#define Y_ENABLE_PIN 28)
#define E1_STEP_PIN 36
#define E1_DIR_PIN 49
#define E1_ENABLE_PIN 28

#define Z_STEP_PIN 35
#define Z_DIR_PIN 47
#define Z_ENABLE_PIN 27

//“IF” statement addedm line 89? (e.g. not present in default /downloaded code)
#if defined(LULZBOT_SWAP_EXTRUDERS)
#define E0_STEP_PIN 33
#define E0_DIR_PIN 42
#define E0_ENABLE_PIN 25

//Deleted lines (94-96) (#define E1_STEP_PIN 34) (#define E1_DIR_PIN 43) (#define E1_ENABLE_PIN 26)
#define Y_STEP_PIN 34
#define Y_DIR_PIN 43
#define Y_ENABLE_PIN 26

//Added else statement
#else
#define E0_STEP_PIN 34
#define E0_DIR_PIN 43
#define E0_ENABLE_PIN 26

//Deleted lines 102-104 (#define E1_STEP_PIN 33) (#define E1_DIR_PIN 42) (#define E1_ENABLE_PIN 25)
#define Y_STEP_PIN 33
#define Y_DIR_PIN 42
#define Y_ENABLE_PIN 25
#endif

This workaround worked great for me for about a year and then my E0 driver failed. When that happened I moved to a Duet board instead of buying another rambo.

The lulzbot firmware is fairly heavily modified by them. I’m not sure where you even get the source code since the change of ownership but it must exist somewhere and there is the Drunken Octopus firmware which is being maintained by an ex-employee of the company. You should be able to find that with a quick web search.

I compiled the firmware I was last using for you but, obviously, I can’t test it or even know for sure that it will flash. If you want to take a chance on it, you can download it from:

http://download.crpalmer.org/downloads/taz6-firmware/

We have moved most if not all of the old source code/ files you could find on the older software repo to LulzBot 3D · GitLab . If you need to track something specific down that you can’t find feel free to ping me.

1 Like

Hey doc! Query - when you moved to the duet board - did that come with software that interfaced directly with the Taz hardware without modifications? E.g. could you still flash it from cura? Or did you have to develop custom software or use custom slicers?? Was the wiring pretty straight forward or was it something that has a bit of literature? Do you have any links or information that I could follow if I tried to do the same? Rambo boards are uber scarce in Oz - I think lulzbot pulled out of this market, and it’s also 2x the price of a duet now on top of the international scarcity factor