Big speedup of my portable MPCNC!

I have done a few upgrades to my MPCNC:

  • Teensy 4.1 instead of Arduino Mega as the controller.
  • grblHAL instead of Marlin for firmware.
  • IOsender instead of Repetier Host as the PC controller app.
  • 40V instead of 24V to the steppers
  • TB6600 stepper drivers instead of DRV8825s.
  • A DPS5015 buck converter controls and monitors V, A, and W.

These have significantly sped up the movement. In the video below, you can watch it go at 200mm/sec. I can now move the heavy 1.5kW water-cooled spindle in Z over 40mm/sec, which is very handy for doing Vcarving and terrain carving.
Calibration Pattern Drawing video:
https://youtu.be/SJ8Mcgfx2aY

Yes the wiring is a ratā€™s nest; I will tie it up nicer when it is finalised. I need to replace some cables with shielded wire first.

Here is the video of my portable MPCNC design: https://youtu.be/ztcMPmEYCmw
and here is the ongoing slide show of the build: https://photos.app.goo.gl/y33gZrdvMpYLSGuq5

12 Likes

Nice ellipse!!

1 Like

Hell yeah, these are the speeds that I like to see!
Now if only you could mill at those same speeds.

1 Like

I like the TB6600 cooling tower approach. Makes a lot of sense!

1 Like

that thing is really bookin it!

Hey whered you get that pen that fits in your router collet?

Iā€™ve been musing on your speed improvements trying to figure out what parts of it are necessary and/or have the most impact. So here are some (probably unanswerable) questions:

Would you have received the same performance improvements if youā€™d used DRV8825 drivers rather than the TB6600 drivers? Iā€™m just a hobbyist when it comes to electronics, but looking at the datasheets of these two drivers, I donā€™t see anything special about the TB6600 when looking at things like pulse frequency. DRV8825 drivers are rated to 45V, so couldnā€™t someone just mount DRV8825 in an external enclosure and feed them with 40V? Or is there something special about the TB6600 that Iā€™m not seeing?

Any idea how much of your speed improvements are due to using grblHal rather than Marlin? I donā€™t know if grblHal is better tuned for speed than Marlin.

Any idea of how much of the horsepower of the teensy 4.1 you are utilizing? For example, you would expect a similar speed improvement if you were using a ARM 32-bit Cortex-M4 (like is used in the SKR Pro), or do you think you are utilizing the extra ā€œstrengthā€ of Cortex-M7 processor?

On my old printer setup I ran drv8825 with 19v on ramps by simply flipping the Vm pins on the drivers and connecting the supply to them. You can do 40V that way too; no need to break them out to an externa enclosure.

Regarding ā€˜why the extra speedā€™ā€¦ theyā€™re both stepper setups using the same motors, but they have 1) different driver ics, and 2) different volts, and perhaps (wasnā€™t mentioned but equally important) 3) more current? Also microstepping wasnā€™t mentioned. I suspect you can push more power through the external drivers, but would the drv at 40v be good enough already?

One thing I can add to this is the steppers still canā€™t get too hot if they are mounted to pla parts. I know the drv can push enough current to warp pla with my 12v systemā€¦ and that it would go much faster if it had 40v. This really just needs an experiment to proveā€¦ my bet is on the drv being good enough @40v.

I got these 55mm long metal pen refills for my LiveScribe Echo smart pen from Amazon. They are pretty much like any other metal ball-point pen refills you can get in the stationery store. They are 2.2mm diam, so I must have used the 2mm collet. You may have to cut a pen refill shorter with a dremel or hacksaw if you canā€™t get these short ones. (kinda messy with ink leaking :wink:

Kev homed in on some key points. The most important ones for speedup being:

  1. Teensy has a much higher clock rate. It is nowhere near its compute limit. This allows faster pulse commands to the stepper drivers. Absolutely crucial. It has tons of memory and compute power left over for other things. I am a huge fan of the grblHAL Teensy4.1 Breakout board now.

  2. Microstepping for Z. I spent a lot of time optimizing the speed varying microsteps and voltage. For Z, I am using 4X. (recall, I am using a 2mm pitch, one-start leadscrew). So I ended up at 40V, 1.5A setting (measured 0.55A moving heavy spindle up fast). It can move Z up to 43mm/sec, with pulses going about 15kHz. The Z stepper motor gets about 48C, but I put a water-cooled heatsink on it because I had cooling water tubes right there for the spindle anyway.

  3. X & Y microsteps and acceleration. Using 40V, 1.5A, 16x microsteps (100 steps/mm), chosen to give 10 micron step resolution ā€“ No sense using higher resolution than you would ever use. 1000mm/sec/sec acceleration. I measured up to 33kHz pulses before it skipped. It can move the massive 1.5kW water-cooled spindle at over 200mm/sec. (max I was brave enough to try: 234mm/sec). Using more voltage allows faster pulsing, because each step gets up to its max current quicker. They say if your stepper motors are not pretty hot, you are not pushing them hard enough. I made all my parts from carbon-fiber ABS, so no worries about motor mounts melting.

Yes, DRV8825 could probably be sped up a lot (I had already been using 24V when it was a Marlin machine), but it was a pleasure to experiment with the TB6600 drivers because to change currents and microstepping you just need to flip dip switches. For the DRV8825s, you have to keep disassembling and changing jumpers hidden under the boards, and tweaking those terrible trim pots. Also, my stepper motors often made weird noises when resting with DRV8825, depending on where in the microstep cycle they came to rest.

TB6600 were pretty cheap and I am sure some slightly better drivers would have more nice features and go even faster. But wow!

I am not sure how much of the speed is thanks to grbl vs. Marlin. I would guess very little; maybe grbl is better in look-ahead or acceleration planning? Marlin is a fork of grbl anyway. But I do love the IOsender and grbl much better because all the parameters are in the sender app, none of this altering the firmware and recompiling thing. It is all handled in the background with grbl $ commands I never see. Also, my Teensy has the Ethernet option, which has proven to be more reliable than USB for sending Gcode.

I welcome anyoneā€™s comments, corrections, or improvements!

1 Like

Duet3 board has a powerful 32bit CPU and 6 integrated silent and smart 4A per winding stepper drivers. Max voltage is 32V RRF (its firmware) is also 100% config based so no recompiling needed.

It still costs over $200 but cheaper clones are starting to appear.

2 Likes

That does indeed look like a powerful board. However, I did not see subtractive machining mentioned anywhere on their website. I think it is just for 3D printers. The grblHAL Teensy breakout by Phil Bennett was designed with CNC machining in mind, e.g., it has a 10V output to control spindle speed, and outputs for flood and vacuum control, among many other features. Only $28 + $33 for a 5-pack of TB6600 from Aliexpress, what a bargain.

I use a Duet Wifi on my Primo.

Duetā€™s RepRap Firmware does have a ā€œCNC modeā€ which is actually really slick. It supports workspace coordinate systems so you can have the soft stops enabled and limit travel to the reachable areas, and the web control also has a CNC mode.

1 Like

Ah, I totally forgot about that. Swinging heavy routers is much different than even a direct drive mm printerā€¦ really the 4 lead T8 that commonly carries over is just not appropriate.

It also seems that motor temperature is the design driver with pla mounts. It may turn out possible for drvs to do this, but likely not without a similar water block setup (or bigger motor). Actually, at that point I would also be worried about overtemping the drv boards even with a fan.

1 Like

Looking at the numbers here, I came pretty close with SKR Pro and el-cheapo TMC 2209 drivers using a 24V system. The only caveat here being that itā€™s with rotozip and not a 1.5-2x heavier VFD spindle.

With 8bit board, the board froze whenever you tried to push past 50mm/s on x/y. My conclusion at the time was that 8bit boards are the limiting factor on raw movement speed so I binned my RAMPS :stuck_out_tongue:

With MPCNC speeds didnā€™t matter until I wanted to do 3D carving. Thatā€™s where the super-slow defaults on Z really hurt performance. For anything else, heck, the machine is not designed to actually cut at these speeds anyway.

For LR2 I had to lower the limits to 150mm/s because I was losing steps at 200mm/s. With a full sheet machine, travel speeds do make a difference especially with sensorless homing and a starting sequence that moves the gantry a few times back and forth in both directions to make sure that it doesnā€™t bind or catch on something mid cycle.

So yeah, I guess the bottom line is that I got all of the speed improvements I was looking for just by upgrading to a 32bit board with 24V power supply. The use of PETG instead of PLA in strategic places also allows motors to run fairly hot (1.5A out of the rated 1.8A) without worrying about motor mounts melting :smiley:

Like with everything in life, more speed would certainly be merrier, but given the amount of $ that went into this, thereā€™s hardly any reason to not be as happy as a clam about these numbers.

4 Likes

I just setup a very similar config with 1-lead screw and 1.5kW h2o spindle, and realized that a 1-lead may be too much step frequency for stepsticks. According to my calcs, youā€™re getting a whopping 128kHz step frequency out of those tb6600ā€™s! I had to limit my z to 7.5mm/sec to keep the drv8825ā€™s happy at <~25kHz step rate.

Now Iā€™m thinking of upgrading my drivers to tb6600 as well. My XY is already doing 125mm/sec, with 127 acceleration, which is pretty much fast enough for me, but z needs help and it seems best not leave xy out of the upgrade. I canā€™t imagine needing faster than what I have for actual cutting, but this is not much extra cost/labor for a huge improvement in rapid moves. It will result in more electronics spilling out of my fancy wood controller box thoughā€¦ another thing I need is a new enclosure to tidy up everything.

The key with Z and a 1-start 2mm pitch leadscrew is to use only 4x microstepping. Here are the Z settings I am using now with the TB6600 Z-axis driver:
400 steps/mm (actually, 400.802, calibrated with a micrometer)
40V
1.5A
5us pulses
500mm/sec^2 accel.
2500 mm/min max (42mm/sec). I kept increasing until it skipped steps moving up, and that was at about 2800 mm/min, across 50mm travel.
I wrote in my notebook that I measured about 13-15kHz pulses with the oscilloscope, at 2600 mm/min.

You should be able to get close this Z rate with DRV8825 if you use 4 microsteps on Z and 24V supply, since that is what I did before the big upgrade to TB6600 drivers and 40V (and a Teensy controller with grbl).

Just for completeness, I will mention my latest X and Y settings:
100 steps/mm
16x microsteps
40,000 mm/min max rate (Yes, that is correct. It can move across my 600mm X work area in less than 1 sec for rapidsā€¦Keep your fingers clear!)
1000 mm/sec^2 accel.
40V
1.5A
5us pulses

1 Like

Ah, that makes a lot of sense to me, especially since the resolution in z is 4x going from 4 start to 1 start. So those extra steps arenā€™t even needed and just cut my max speed to 1/4 what they could be. I had no spare 2209ā€™s for my printer, so I went ahead and ordered a set of 5 to try out on my z. Those are supposed to be a little faster I thinkā€¦ and a super easy upgrade hardware wise.

It looks like Trinamic 2209s have a lot of nice features, and can go up to 29V. I suggest getting as close to that as you can, and be sure to put a fan on them.

1 Like