Stepper driver change for no-noise bot

X- and Y-axis should usually run at 0.8V. I had to increase my Vref of the Z-axis to 1.0V to get it run smoothly. It depends on how well your mechanics are set. But I would not use these drivers on Vref over 1V for a long time.

2 Likes

Hello, I just assembled my FB Genesis 1.4 and also found the motors quite loud. I am therefore thinking about replacing the drivers with the TMC2208 ones as many have done.
When I try and source them there are two different versions available: the DIY mode and the UART mode. Which ones should I use? Any help would be appreciated.

@Ascend, can you maybe shed some light on this subject?

@Sundew
Sorry for the late reply. If I remember correctly, the farmduino that was shipped in V1.4 does not provide UART communication for stepper drivers. So I’d recommend the DIY ones.

@Ascend, thanks for the reply, I have ordered the DIY version and will wait until the AliExpress mail arrives…

Hi all, I received the TMC2208 drivers and with the dipswitches on FB1.4 set to 4 microsteps, it is a matter of replacing the chips and inverting the motors and everything works great.
Whát a difference!!!

3 Likes

I need some help with the new drivers too :frowning:

I’ve installed the new drivers on my 1.4 board and seems to have the same issue as @jschneck in this post: Stepper driver change for no-noise bot. His solution is lowering the voltage which I have no idea how to do so.

Above the drivers on the bord is the red box with switch, I haven’t changed them yet so I guess (not sure) they are all three set to low (switches are on the opposite side of the text “ON”). This seems to influence the microsteps per step (I also don’t understand when to use how many microsteps). @eide also has a 1.4 (makes me happy) and went for 2 microsteps per step. How to choose the best microsteps then?

I used the post of @eide (Stepper driver change for no-noise bot) to position the drivers, after 15 min studying the old and new driver, I decided the blue side of the new driver goes down on the board. Anyone can confirm or correct this?

As you can see, I’m missing some basic information as this is not my specialty (I’m a software engineer (former) and chemistry teacher (current)). All I want is quiet farmbot :slight_smile:

Thanks in advance!

1 Like

You can lower the voltage to your steppers in the current version of the Web App which should work with v1.4. Go to Farm Designer>Settings>Motors>Motor Current it’s a very handy setting. Otherwise there are posts in the forum on how to do this to the motor driver on the board it requires a very small screwdriver.

Sorry I haven’t used your drivers so can’t help you on that one.

There are some driver manufacturers that are not coloring the same header pin bars which makes it hard to say that, so I would rather check the printed pin name, like GND and DIR. Maybe you can also find those pin labels on the Farmduino to make sure it fits.

That is right, if all are off you will have microstepping of 8 (See the table in Eide’s post #23. If you set the switch labelled as MS1 to ON, the microstepping will be set to 2 which is much better for X- and Y-axis. But I’d recommend to set the Z-axis to a microstepping of 2 aswell. Higher microstepping will make the axis positioning more precise, but will reduce the torque and speed as tradeoff.

Check the video in post #23 again, there you can see how the voltage is measured. The voltage is adjusted by that little screw on the driver. Turning the screw clockwise usually increases the voltage.
Make sure the voltage is not over 1V, its usually between 0.8 and 1V, depending on your mechanical setup.

Absolutely no shame on that, we all started more or less at this point :slight_smile:

Afaik, Farmduino 1.4 does not yet support UART communication to the drivers. So this probably won’t work. The setting for motor current will most likely only affect v1.5 Farmduino devices because they have the TMC driver soldered directly on the board (including UART).

2 Likes

Thanks. I managed to change the voltage to ~ 0.88 V DC or something close. Switched MS1 to ON for all drivers.

Issue is when moving nothing happens. I hear 3 weak ticks and the app says movement fails. How can I debug what’s wrong?

Has anyone tried Microstepping with the Farmduino 1.5?

The Farmduino uses TMC2130 which can support up to 256 microsteps and also support StealthChop which should allow a very quiet operation without the need to use a high microstep stetting. As I understand the drivers are controlled via UART which sends STEP and DIR signals similar to the socketed drivers in the 1.4 board.

However in my tests the microstep setting did not affect the microstepping mode configured via uart. It
seems to stay at full step mode. Setting microstepping to 2 instead of 1 just makes the axis move half the speed.

I mostly miss a button to activate StealthChop. This mode is perfect for quiet operation and the motors do not loose too much torque. Most FarmBot 1.5 and up should have enough room to increase the motor current while activating StealthChop which should move them almost silently with the same torque as before.

Addition: In the file tmc2130.cpp in the firmware code there is in lines 199 to 203 a code block for activating the silent mode. The four lines are commented out. Why is this? Is it possible to activate it?

@pinae We get this question from time to time. Here’s an overview of what is going on with StealthChop / microstepping:

  • The hardware does support StealthChop
  • The software will eventually support StealthChop, but currently does not.
  • At one point, we had StealthChop enabled, but we had to disable it because it was causing other problems with the system.
  • The firmware is its own codebase, but it should not be considered an independent component. Although you could absolutely re-compile your own custom version of the firmware, you would also need to build your own version of FBOS. The reasons are highly specific to FBOS.
  • We encourage users to not change microstepping settings and do not provide official support for the feature. The feature is available behind the “ADVANCED SETTINGS” flag, but under the expectation that it is not an officially supported feature (just for DIYers that have advanced knowledge)

The short answer is simply “We don’t support StealthChop, but eventually we will”.

4 Likes

@roryaronson/@RickCarlino - With over 3’800 views and 52 replies, I would suggest that this thread demonstrates the need of the community for a quieter FB. It would be great if this is something that could be prioritized in the overall development roadmap.

9 Likes

I absolutely wanted to have a silent FarmBot so I ordered a Farmduino 1.4 and some TMC2208. Farmduino 1.5 and 1.4 are mostly a drop-in-replacement: The screw holes match exactly and the motor, encoder, USB and UTM cables fit without any change. The cables for the valve, the vacuum pump and the led are rotated by 180° which is no problem for the first two. For the led strip I had to reverse the polarity. The power cable for the Farmduino 1.4 uses a yellow connector while the Farmduino 1.5 uses a red one. The are made not to fit. However I could loosen the crimped contacts with a small flathead screwdriver and change the connector.

The SilentStep mode is fantastic! The FarmBot moves very quietly which is a huge improvement. I had to adjust microstepping and steps per mm but all axes are moving now if I deactivate the encoders. The z axis also moves with activated encoders but for x and y the stall detection stops my axes. I do not know why this is happening because the encoder scaling matches perfectly.

During movements I see weird encoder values in the web app. Sometimes for a small part of a second a negative value is visible. However when the movement stops it always settles on the correct values. That means the counting of encoder steps works as expected. I don’t know why the webapp displays those weird values briefly in between.

Here are my current settings:

Any ideas why the Farmduino Firmware detects stalls even with a perfectly matching encoder scaling?

1 Like

Hey @pinae,
good work replacing the Farmduino in favor of quiet TMC steppers.

There is usually no need to adjust the microstepping directly. All you need to do is to increase the microstepping value. The fields STEPS PER MM and ENCODER SCALING are adjusted automatically according to the microsteps count.

So with microstepping of 2 (halfstep), you would have to change STEPS PER MM to 2,5 and ENCODER SCALING to 2778.

The TMC2208 are configured MS1: on, MS2: off, MS3: off which sets them to 2 microsteps. Full Step Mode like with the Farmduino 1.5 is not possible. This leads to a situation where 5 Steps per mm are correct for X and Y and the matching encoder scaling is 5556.
I measured the moved distances (with encoders off) and the steps per mm are accurate. After the movement the scaled position measured with the encoders and the expected position match exactly. I can see these values in the movement tab.

My guess is that something funny happens during the movement. Maybe there are miscalculated distances which trigger the stall detection which get re calculated after the movement is finished so I see the correct value in the web interface. I hoped that somebody already had a similar problem or could come up with a plausible theory why the stall detection falsely triggers.

I also need a silent FarmBot because my neighbor are just a few meters away and are not ok with the current situation.
The workaround mentionned above doesn’t work with FarmBot V1.5
If anyone have another idea, I’m willing to pay hundreads of dollars in order to fix this (buy new motors or whatever).

I want to purchase a FarmBot control board V1.4 but it’s not available on the webshop…
Is anybody willing to exchange my V1.5 with a V1.4 ?

2 Likes

Like @ClosedCircuit, @pinae, @Transistor and others mentioned, I also think that the activation of StealthChop for the TMC 2130 on Farmduino 1.5 should be prioritized.

As mentioned in another thread I moved to a new location. The FarmBot is now placed behind a six party apartment house besides our backyard patio. Me and everyone in the apartment house would prefer to have StealthChop active.

3 Likes

@RickCarlino Is it possible that connectivity issues of the encoder cables lead to wrong encoder readings during movements while still reaching the correct amount of steps after the movement?

Would it be possible to test that? For example by connecting a notebook with USB to the Farmduino and sending G0 commands?