Jump to content
Ultimaker Community of 3D Printing Experts
z-axis-3d

UM2 extreme noise/vibration from stepper

Recommended Posts

I have this problem on my Ultimaker 2 (March 2014 and still going strong- apart from this!).

A very loud and deep vibration from the Y stepper.

 

  • When I move the assembly around by hand there is no detectable noise.
  • When I removed the belt completely and screwed the motor back into place the noise was almost completely gone (no load)
  • When holding the stepper in my hand and creating a little resistance I could feel the vibration
  • When I swapped the X&Y steppers at the board the noise moved from the Y to the X
  • I reduced the X&Y steppers current from 1300 to 1200 with no detectable difference.

 

WARNING: you need sound to appreciate this video, but it is not pleasant sound; may hurt your ears/speakers!!

 

This is actually happening on the Y stepper, but I swapped the X & Y cables over so I could do a very quick test using "home head"- but switching off before the motor reached home.

The result was as you see in the video, the noise moved from the Y to the X axis. So my conclusion is that there is an issue with the controller rather than the stepper or anything mechanical.

Is there anything I can do about this short of replacing the main-board? I am thinking that maybe there is some current limiting circuit that has failed

Any advice would be welcome!

Thanks in advance,

Greg

Share this post


Link to post
Share on other sites

 

Now that you mention it, my UM2 does the exact same thing. It wasn't like this in the past hmm...

 

Is it only on one of the motors for you?

 

Yes, well one direction, I think when it moves either x or y, it vibrates so hard that my whole machine moves. It hasn't significantly affected my print accuracy though, but I did notice with my UM2 I have to print at much higher than original temperatures to get the filament to not under extrude (probably a separate issue and have not bothered to diagnose it since I've been using the UM3 a lot more).

Share this post


Link to post
Share on other sites

I got a quote for a new original board from the recommended supplier in the UK and it was £330 with delivery and VAT. A little rich for my blood just at the moment, but I am wondering if I could modify the firmware to use the spare E2 controller instead. I'm sure that must be doable and would be a great solution to getting my old faithful running again at little cost. I think I will post a new post on that so that the heading might attract people who are more likely to be able to answer.

Share this post


Link to post
Share on other sites

Wow lost all my answer..

Long story short

Check how brown is your stepper. Rebuild marlin, edit pins.h table and swap extruder 1/2. That should work indeed

Install heatsink for chip 2

300 for an atmega with old steppers isn’t worth. Get for that price 3 china board. Some sellers even made a stepper option (to install silent chips for example)

http://s.aliexpress.com/ZRvArMnM but doing this will need extra cooling

I have not tested this one but I do have 2 china um2 boards that used for a year and a half without issues, except that sometimes they install the molex plastic in reverse. Just check ever positive/negative before turning it on and should be fine. Also test before leaving feedback on aliexpress so you can ask for refund/replacement if the board fails.

@tinkergnome maybe your firmware allows to swap 1/2 ? Maybe I remember wrong

Share this post


Link to post
Share on other sites

Check how brown is your stepper. Rebuild  marlin, edit pins.h table and swap extruder 1/2. That should work indeed

Install heatsink for chip 2

http://s.aliexpress.com/ZRvArMnM but doing this will need extra cooling

Wow thanks for this answer. Very useful indeed. Having a particular board that you have used make me feel a little more confident about that.

When you say swap Extruders 1 & 2. It is actually Y stepper that I need to swap with E2. Is that what you meant? Is there any difference in these controllers (like current ratings)

Heatsinks are already ordered because all of the stepper controller chips (and surrounding board look a little brown. I also have an a spare board from my other UM2 which had an intermittent fault (freezing) and was replaced under warranty. Who knows maybe installing heatsinks & extra cooling on that one would make it useable again.

Also I possibly could have turned my current down a lot because I typically run my printer relatively slowly.

Share this post


Link to post
Share on other sites

While your in there you might install a little squirrel cage fan to blow air into the grill side of the main board enclosure.  I did this 3 years ago and still going strong.

Thanks! Yes I did in fact do that mod on both of my printers, but on this one the fan had failed. Sorting that out as well as part of this refurb.

Share this post


Link to post
Share on other sites

Check how brown is your stepper. Rebuild  marlin, edit pins.h table and swap extruder 1/2. That should work indeed

Install heatsink for chip 2

http://s.aliexpress.com/ZRvArMnM but doing this will need extra cooling

Wow thanks for this answer. Very useful indeed. Having a particular board that you have used make me feel a little more confident about that.

When you say swap Extruders 1 & 2. It is actually Y stepper that I need to swap with E2. Is that what you meant? Is there any difference in these controllers (like current ratings)

Heatsinks are already ordered because all of the stepper controller chips (and surrounding board look a little brown. I also have an a spare board from my other UM2 which had an intermittent fault (freezing) and was replaced under warranty. Who knows maybe installing heatsinks & extra cooling on that one would make it useable again.

Also I possibly could have turned my current down a lot because I typically run my printer relatively slowly.

Swaping Y for E2 Should work right away just changing the Pins.h

Yhe only that is more tricky is the Z because it has a physical switch for the 1/8 - 1/16 microstepping. About current they work more or less all at 1200, never had an issue at 1200-1250 but some lower the Extruder at 1000-1100 to avoid heating issues in summer (I prefer to just install a reliable heatsink). UM3 fixed this heat issue by flipping the Board and adding a elastic-adhesive-sticky Foam that sits behind the steppers and makes contact with the aluminium dibond, working as a heatsink for the board steppers. Adding fans won't hurt, but will add noise ofc.

Share this post


Link to post
Share on other sites

Swaping Y for E2 Should work right away just changing the Pins.h

Thanks for this

So I haven't built Marlin before so just trying to judge the level of effort / knowledge required here. So before I make any changes I want to see that I can build marlin; and right now I don't know what I don't know :)

  • I am running Windows.
  • I am in fact using Tinker, so I downloaded the source from:
    https://github.com/TinkerGnome/Ultimaker2Marlin
  • In the readme it says "Install the arduino software IDE/toolset v23 (Some configurations also work with 1.x.x)"I installed the latest Arduino IDE 1.8.5
  • I copied sanguino from the Marlin dir to C:\Program Files (x86)\Arduino\hardware
    -I am not sure that is required in my case but I figured rather safe than sorry- I read it on the Marlin readme.
  • I click verify / compile

lots of stuff compiles, then it exits on this error:

------------------------------------------------
C:\Users\gregh\AppData\Local\Temp\cckUzsAr.ltrans26.ltrans.o: In function `eeprom_read_float':
C:\Users\gregh\AppData\Local\Temp\arduino_build_862144\sketch/UltiLCD2_hi_lib.cpp:29: multiple definition of `eeprom_read_float'
c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr6\libatmega2560.a(eerd_dword.o):(.text.avr-libc+0x0): first defined here
c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.9.2/../../../../avr/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions
collect2.exe: error: ld returned 1 exit status
exit status 1
Error compiling for board Arduino/Genuino Mega or Mega 2560
------------------------------------------------

I have a feeling I need to do a lot of configuration before building, but thought I'd ask before embarking on some long journey. Maybe there is something more fundamental I am getting wrong. If the answer is "suck it up you're got to do some more reading to do" then I can accept that, but right now I need to know how far the destination is and whether I am heading in the right direction :)

Thanks,

Greg

Share this post


Link to post
Share on other sites

Swaping Y for E2 Should work right away just changing the Pins.h

Thanks for this

So I haven't built Marlin before so just trying to judge the level of effort / knowledge required here. So before I make any changes I want to see that I can build marlin; and right now I don't know what I don't know :)

  • I am running Windows.
  • I am in fact using Tinker, so I downloaded the source from:
    https://github.com/TinkerGnome/Ultimaker2Marlin
  • In the readme it says "Install the arduino software IDE/toolset v23 (Some configurations also work with 1.x.x)"I installed the latest Arduino IDE 1.8.5
  • I copied sanguino from the Marlin dir to C:\Program Files (x86)\Arduino\hardware
    -I am not sure that is required in my case but I figured rather safe than sorry- I read it on the Marlin readme.
  • I click verify / compile

lots of stuff compiles, then it exits on this error:

------------------------------------------------
C:\Users\gregh\AppData\Local\Temp\cckUzsAr.ltrans26.ltrans.o: In function `eeprom_read_float':
C:\Users\gregh\AppData\Local\Temp\arduino_build_862144\sketch/UltiLCD2_hi_lib.cpp:29: multiple definition of `eeprom_read_float'
c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr6\libatmega2560.a(eerd_dword.o):(.text.avr-libc+0x0): first defined here
c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.9.2/../../../../avr/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions
collect2.exe: error: ld returned 1 exit status
exit status 1
Error compiling for board Arduino/Genuino Mega or Mega 2560
------------------------------------------------

I have a feeling I need to do a lot of configuration before building, but thought I'd ask before embarking on some long journey. Maybe there is something more fundamental I am getting wrong. If the answer is "suck it up you're got to do some more reading to do" then I can accept that, but right now I need to know how far the destination is and whether I am heading in the right direction :)

Thanks,

Greg

Looks good. I would ask @amedee or @tinkergnome for the last details. Without Amedee help I would had much troubles to build BCN3D Sigma firmware when doing some easy moding for my new printer.

The part that I never understood right is that some marlins need an old arduino, others a specific one and etcetc. So maybe is just a matter of using the correct arduino version for it.

Share this post


Link to post
Share on other sites

The part that I never understood right is that some marlins need an old arduino, others a specific one and etcetc. So maybe is just a matter of using the correct arduino version for it.

It is tight to the libraries you are linking with. The old Marlin of the old UMO needs the old Arduino ;)

I haven't compiled an UM2 firmware recently, but I believe the core hasn't changed much, so I guess you should try with Arduino 1.0.6 -- That's what I am using for the UMO.

  • Like 1

Share this post


Link to post
Share on other sites

I have a feeling I need to do a lot of configuration before building, but thought I'd ask before embarking on some long journey. Maybe there is something more fundamental I am getting wrong. If the answer is "suck it up you're got to do some more reading to do" then I can accept that, but right now I need to know how far the destination is and whether I am heading in the right direction :)

The crucial point is: you need the Arduino compiler (obviously), but don't use the Arduino IDE. In short: you should use Git Bash, mingw32-make and the build script instead. @gr5 published his notes a while ago, you can use it as a starting point.

Share this post


Link to post
Share on other sites

The crucial point is: you need the Arduino compiler (obviously), but don't use the Arduino IDE. In short: you should use Git Bash, mingw32-make and the build script instead. @gr5 published his notes a while ago, you can use it as a starting point.

Awesome, thanks I hadn't seen that and it looks perfect. Working through that next and will report back

Cheers,

Greg

Share this post


Link to post
Share on other sites

The crucial point is: you need the Arduino compiler (obviously), but don't use the Arduino IDE. @gr5 published his notes

Thanks again, just to report back, I added a reply on the above thread, it is probably the more relevant place to put stuff about building Marlin for anyone else looking for that later. But in a nutshell I am still getting the "multiple definition of eeprom_read_float" error when building using that method -however I have not tried going to an older version of the Arduino compiler yet.

Thanks,

Greg

Share this post


Link to post
Share on other sites

...I am still getting the "multiple definition of eeprom_read_float" error when building using that method -however I have not tried going to an older version of the Arduino compiler yet.

"eeprom_read_float" was not defined in earlier compiler versions, so it may actually help to use an older compiler.

On the other hand: i used version 1.8.1 last time, the difference should not be that big... and the used "weak" pragma is intended as a hint to the linker how to handle this.

For newer compiler versions it should be safe to remove the definitions of both functions from UltiLCD2_hi_lib.cpp ("eeprom_read_float" and "eeprom_write_float").

Share this post


Link to post
Share on other sites

...I am still getting the "multiple definition of eeprom_read_float" error when building using that method -however I have not tried going to an older version of the Arduino compiler yet.

"eeprom_read_float" was not defined in earlier compiler versions, so it may actually help to use an older compiler.

On the other hand: i used version 1.8.1 last time, the difference should not be that big... and the used "weak" pragma is intended as a hint to the linker how to handle this.

For newer compiler versions it should be safe to remove the definitions of both functions from UltiLCD2_hi_lib.cpp ("eeprom_read_float" and "eeprom_write_float").

Thanks I will try this. FYI in the meantime I used older compiler(s) and got a different error, but had to stop before I had explored all avenues to resolving that- looks like amybe a path or board definition thing.

mingw32-make: *** No rule to make target '_Ultimaker2/wiring.o', needed by '_Ultimaker2/Marlin.elf'.  Stop.
 RM    _Ultimaker2Dual/*
 RMDIR _Ultimaker2Dual/
mingw32-make: *** No rule to make target '_Ultimaker2Dual/wiring.o', needed by '_Ultimaker2Dual/Marlin.elf'.  Stop.

Thanks,

Greg

Share this post


Link to post
Share on other sites

mingw32-make: *** No rule to make target '_Ultimaker2/wiring.o', needed by '_Ultimaker2/Marlin.elf'.  Stop.

now the compiler is probably too old... :) (which version have you tried?)

There was a need to change some paths in the Makefile for 1.6.5 and later. This should be the corresponding commit:

https://github.com/TinkerGnome/Ultimaker2Marlin/commit/31b016ff886bb509cf5515042ca225ab08180903#diff-04c206a8bd7b5cedd4c30700d062b19a

Share this post


Link to post
Share on other sites

Thanks again,

I don't think I was running the right version from GitHub; so between the marlin code version and the arduino version I was running into different issues. Editing UltiLCD2_hi_lib.cpp as you suggested above did work, but in the meantime I took a step back and

-got the latest version of geek_mode branch (17.10.1)

-changed a couple of paths:

--makefile : ARDUINO_INSTALL_DIR ?= /c/Arduino

--package.sh : ARDUINO_PATH=C:/Arduino

and now with Arduino 1.8.5 restored to that location (and all the previous configuration as per @gr5 's post I got a successful build of the hex files .

Sorry I obviously went off the track somewhere along the line.

Now I can hopefully attempt to change the pins.h file and rebuild -I still need to figure out the actual pin values. Very cool. thanks @tinkergnome!

Share this post


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

×

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!