Adventures with silent stepper drivers (and 4th axis and other Nomad electronics fun)

Love the thoroughness here. Since this discussion started I have been paying more attention to the various noises and in fact have been capturing noise samples as part of experimenting with TiCN coating end mills on aluminum (data to be processed) and was somewhat surprised the amount the steppers contribute to the overall noise profile. Note I don’t have the same low noise requirements @Moded1952 but fascinated…

I guess the next step is testing the difference in torque delivery between the different drivers?

Me? Nooooo. I was just a tester for USB disconnects…

2 Likes

Only if you seriously upgraded the steppers. Those drivers take up to 80v and can feed 7A. They’re not worried about noise.

Not a bad idea. Any ideas about how to test the torque?

I have a luggage scale which uses a hook, maybe I could attach it horizontally and see how far the bed can pull it before stalling?

I think there’s a little more to them than high power, though I’m not sure what. I noticed that the noise out of the Gecko driver was more consistent and sterile than the Nomad drivers, which have a lot of “character” (like a creaky house has “character”).

I also have Gecko’s much cheaper G251X, maybe I should test it too…

Problem with anti backlash lead screw nuts is that there is backlash once the spring is overcome. Ball screws on the other hand…

Couple more updates. First, the less interesting one: I tested a Leadshine EM542S driver: Video, PDF

I’d say it’s a tad better than the Gecko driver but not nearly as good as the Trinamic. For some reason it gets crazy loud at 800mm/min, like stock driver loud. It performs quite well at low speeds though.

The more interesting one: I made a kind of “breakout board” for the Nomad. It has two purposes:

  1. Act as a molex -> screw terminal bridge for the stepper motors, so that they can be easily connected to arbitrary drivers (like Leadshine or Gecko). Same for the McGillicutty.
  2. Act as a carrier board for Polulu-style stepper drivers, in my case the Trinamic TMC2209 drivers.

Here’s a picture:

My next step is to measure torque but I’m almost certain at this point that the Trinamic drivers will end up the overall winners due to their crazy quietness. The only reason I can see myself not using them is if they don’t actually produce enough force that the endmill can cut.

Really not sure how to measure the torque though. A luggage scale is the best idea I have right now.

4 Likes

That is a serious like. Swappable Polulu driver boards. What are you using for a controller?

Edit - never mind - I see you are using Arduino Uno GRBL/ Arduino Due g2core TinyG

I imagine the quick and dirty would be something like a luggage scale and a dial indicator to see at what point you start losing steps.

No, I’m not using those, I’ve just tested them. I’m using Eding-CNC. I had a long look at all the options available and it stood out as the best for me.

Other options I considered:

  • GRBL: Too primitive. Doesn’t seem likely to become less primitive, as it’s limited by the ATmega it runs on.
  • TinyG: Seems to be mostly abandoned in favour of g2core.
  • g2core: Seems like beta-quality software at the moment. Maybe worth another look when they finally release the board they’ve been working on for the past few years.
  • Mach3/4: Windows-only, expensive, uses the PC as the controller?
  • PlanetCNC: Expensive.
  • LinuxCNC: Didn’t look bad but looks like a whole lot more screwing around to get it to work. Uses the PC as a controller.

Eding-CNC is very affordable (219€ for a CPUA3 + software license) and has a ton of features I consider fairly high-end (particularly its macros). It’s also very well documented.

Specifically, I went with the CNC720, which is overkill but I bought it with an eventual upgrade to a larger machine or addition of a 4th axis in mind.

EDIT: I missed stock in the list. I don’t like Carbide Motion because of its lack of documentation and hackability. It’s not treated as a CNC controller in its own right but as a closed, integrated component of a Nomad or Shapeoko. In particular, as you might have guessed from this thread, I want to replace the stepper drivers.

5 Likes

For anyone who’s interested, the new controller is now 100% up and running. Everything works. Stepper driver, spindles, homing switches, the whole shebang.

One thing I love about this new controller is that it works over ethernet. No need to fiddle with short USB cables anymore.

I decided to forgo the torque tests. Some of the drivers I ordered had short return policies so I didn’t have enough time. Plus, I’m fairly confident that unlike noise, torque will remain pretty consistent independent of the drivers used, so long as they output similar voltage/current.

I do need to tune the current though. I think 1.8A RMS/2.4A peak is too much.

Anyhow, it works. I think the next step is PCB V2. I think I want a PCB with some kind of microcontroller onboard that I can connect to the Polulu configuration pins for easy configuration (e.g. changing microsteps, config over SPI/UART for Trinamic drivers).

I have two ideas in mind on that note:

  • I could basically add an Arduino to the board and in that case I’d basically have a new GRBL board. This makes SPI/UART more difficult though because the ATmega328P doesn’t have reconfigurable pins like the ESP32. Software UART/SPI would work but I prefer to use hardware.
  • I could add an Espressif IC chip like an ESP8266 or ESP32 and make the board configurable over WiFi. In this case I could also add some handy sensors to remotely monitor various things (e.g. driver temperature, maybe voltage or curent too).

I’m curious, is anyone else interested in doing this or is everyone basically content with the Carbide Motion controller? I think my obsession with quietness could be a bit odd.

6 Likes

Excellent work.

One question, did you use the model of Trinamic with the dynamic torque and missed step detection from motor back-EMF? If so, have you tried using the missed step detection?

4 Likes

I believe those features are what Trinamic calls CoolStep and StallGuard respectively. I haven’t tried them yet because they require some configuration that I haven’t got around to yet.

The drivers that make it into my machine will certainly have both features fully configured. That’s one of the reasons I chose them.

My controller actually has a drive alarm input, so my hope is to connect the Trinamic drivers up in such a way that if a step is lost, it can be signalled to the controller which can immediately pause the job for manual intervention.

5 Likes

Minor update: I think I should change my name to “slayer of CNC controllers” or something along those lines.

I managed to design and fabricate a functional carrier board for the CNC 720:

Unfortunately however, while I was debugging, I was unplugging and re-plugging the stepper drivers quite a few times with low visibility (this was all inside the small controller enclosure of the Nomad).

I ended up connecting the stepper driver offset by a pin, like this:

Unfortunately, on a Polulu-style driver, that means that the +24V and +5V pins from the board were connected to the two GND pins of the driver. Those GND pins are bridged on the stepper driver board, which means that I ended up connecting +24V and +5V.

All 3 stepper drivers exploded in a puff of smoke and unfortunately, though the controller didn’t explode and doesn’t show many signs of physical damage, it became completely unresponsive and no longer powers on.

I’m hoping I can get it repaired, otherwise this will have been a very expensive lesson in making sure I connect things properly.

Out of curiosity, does anyone know of 2.54mm pitch connectors that only connect in the correct orientation?

3 Likes

Ouch :frowning:
Is there one pin that is unused on those modules ? If so you could cut it flush on the module side, and put a drop of glue in the corresponding spot on the female connector, so that the module can only be plugged in the right direction and with no shift.
Poor man’s poka yoke.

8 Likes

Ok, now its your turn to explain! :smiley:

2 Likes

Ah, sorry, business lingo, it’s the Japanese term for making something mistake-proof

And by that I mean, in the early 2000’s, when Six Sigma and other Japanese business stuff was all the rage, you got extra boss points for using as many of those buzzwords in a meeting as you could.
"Sure, I will assign a Green Belt to launch a Kaizen on how to streamline that process and make it poka yoke", which sounded smarter than “I’ll fix this broken design”.

7 Likes

That’s a good idea. The two GND pins are bridged, so I could remove one of them. That would also solve the problem of inserting the driver backwards.

2 Likes

That takes care of orientation (as long as the single GND pin can take the current) but I’d also 3D print a guide that fits around the sockets to make sure the driver board can’t go in with a pin offset.

Also have to ask - whats the ESP-esqe module on the carrier board for?

2 Likes

Also have to ask - whats the ESP-esqe module on the carrier board for?

Not just ESP-esque, it’s an ESP32-S2-WROOM.

It’s hooked up to all the configuration pins of all the drivers so that I can reconfigure them at will in software and most importantly, so I can interact with the drivers over SPI and/or UART. These drivers have a ton of configuration options available through their serial interfaces. There’s also a bunch of useful status information, like how much current is currently going through the motors and how close the motors are to stalling.

I’d really like to record those stats so I can watch them while the machine is operating and see whether particular cuts are particularly hard on the motors or anything like that.

I’m also curious whether the driver can tell the controller that it lost a step and have the controller compensate.

If I’d thought it through a bit more, the steppers also have error output pins that I could have used to send a message to the controller to pause the job. For fun, I could have the ESP32 receive the same signal and send me a notification on my phone.

2 Likes

Thanks for sharing all this! My Nomad setup is also sensitive to stepper noise. In particular the z-axis tool touch-off is significantly louder than your stock video rapids.
Any chance the Uno+TMC2209s can be paired with the stock power supply and carbide motion controller? It would be great to upgrade to Trinamic drivers with minimal hardware changes.

It should be totally doable to make a PCB that that sits atop an Arduino Uno and has connectors for the stock power supply, stepper drivers and the McGillicutty board. That’s totally feasible. The reason I didn’t use the stock power supply was just that I couldn’t find the damned connector (despite it being common enough).

You could even put an ESP32 on the board like I did on mine so that you can properly tune/monitor/control the stepper drivers. Hell, you could use it to send G-Code over WiFi if you were adventurous.

As for reuse, the Carbide Motion controller board is totally out of the question. The drivers are soldered to the board and have a completely different pinout.

Reusing the Carbide Motion controller software might work but I’m not sure. I think the Carbide Motion board has a different USB vendor/product ID to the Arduino Uno and I think Carbide Motion might check that. I’m not sure though.

And minor update since I’m here anyway: EdingCNC was really helpful and is selling me a new controller at a fraction of the retail price, since I already paid for the software license on the original controller and the original controller is very much dead.

In the meantime, I hooked up the ESP32 to the stepper drivers and logic level shifters on breakout boards so I could get the software communication working properly. Communication is now fully operational. I can get status updates from the drivers at ~1kHz if I need to. If I had a faster MCU I could go even faster I think.

However I’ve shifted from TMC2209 to TMC5160. The TMC2209’s weird pulldown-UART interface was beyond me while the TMC5160’s bog-standard SPI worked without a problem. The TMC5160 should also run much cooler than the TMC2209.

Just need to wait for the new CNC720 to arrive and I can hook everything up again and start tuning the steppers.

3 Likes