Exceeding AccelStepper 4000 rotations/sec

I am wondering if a faster board will allow for faster speeds for a bipolar nema 23 stepper motor with a TB6600 motor driver. Currently the speed I am able to get is around 4000-5000 steps per sec (if I push past the 4000 the outputs tend to be sort of random from what I have gathered ). I am using an Arduino Uno that is not very fast. I have seen that there are other Arduino boards with faster processing power. Will any of these get the speed to be faster, and how do I figure out how the speed will be affected and the max speed I can get(other than experimentation because I can do that part)? I have seen Stepper motors connected to linear rails (which is the setup I am using) go extremely fast over large distances(which is what I am trying to do). I also would be open to using other micro-controllers outside of an Arduino, I do have a raspberry pi, but not sure if there is an acceleration library in python. Stepper motors do not go very fast without acceleration and I want to avoid building my own library, but I could do it. I also want the support that the Arduino has if its possible, but I am ok with whatever makes it go the fastest without switching to expensive servo motors. The methods I am using is the MoveTo and runToPosition for moving the stepper motor. Any advice would be great.

A faster processor will allow AccelStepper to work at a higher step rate. However if you are thinking of using an Arduino with a faster processor do check that the AccelStepper library is compatible with it.

The other option is to abandon the library and write your own code. I believe some Forum members have achieved high step rates on a 16MHz Arduino with code adapted from my Simple Stepper Code

...R

You can swap to an Arduino Due and your speed will be visibly faster without having to do anything, except if you have components that require 5V logic instead of the 3.3V of the Due it will be plug and play.

The TB6600 will run on 3.3V logic.

AccelStepper uses explicit calculation of step timing using floating point, which limits its speed on a lowly
8-bit microcontroller.

A faster approach is to use DDS-style frequency generation driven by regular interrupts and with integer-only
calculation - in theory you might be able to get to about 50,000 interrupts a second this way on the Uno etc,
allowing step rates upto this speed including ramping.
However its quite complex to coordinate setting up the control variables for this and avoid miscounting total
steps. I've looked into coding a library using this a couple of times, based on the AccelStepper interface, but
got bogged down. One day...

Someone might have made a library similar to AccelStepper using integer-only arithmetic, that would be
faster, if a bit less flexible with step rates.

Oh, another thing I remember - the GRBL stepper driver code would be worth looking at - a standalone version of that might be interesting.

The TB6600 products on the market are not uniform. I checked one kind of TB6600 specification with a maximum pulse input frequency of 24 KHz. This is a bottleneck. For example: the microstep setting value is 2(400 steps/R), then the fastest speed of the driver is 24000/400 * 60 = 3600 RPM (rotation per minute). I think the unit of 4000-5000 value you said should be RPM.
The pulse frequency of your TB6600 controller can be calculated by test value:
The frequency value = Speed * Microstep / 60.
Speed: motor speed, the unit is RPM;
Microstep: the unit is steps/R.
The second reason is that for Nema 23 stepper motors, the increased driving voltage of the stepper motor controller (such as 36VDC or 48VDC) can increase the maximum speed. But there is no specific value.
There is no problem with the Arduino controller. The problem is the stepper motor controller. I suggest replacing the industrial controller.
Recommended reference controller (input pulse frequency is 200 KHz)
https://www.motiongoo.com/index.php?route=product/product&path=59_95&product_id=228

longlongagoo:
The TB6600 products on the market are not uniform. I checked one kind of TB6600 specification with a maximum pulse input frequency of 24 KHz. This is a bottleneck.

Maybe, but this Thread is about AccelStepper and it can't get anywhere near 24kHz with a 16MHz Arduino.

...R

longlongagoo:
The TB6600 products on the market are not uniform. I checked one kind of TB6600 specification with a maximum pulse input frequency of 24 KHz. This is a bottleneck. For example: the microstep setting value is 2(400 steps/R), then the fastest speed of the driver is 24000/400 * 60 = 3600 RPM (rotation per minute). I think the unit of 4000-5000 value you said should be RPM.
The pulse frequency of your TB6600 controller can be calculated by test value:
The frequency value = Speed * Microstep / 60.
Speed: motor speed, the unit is RPM;
Microstep: the unit is steps/R.
The second reason is that for Nema 23 stepper motors, the increased driving voltage of the stepper motor controller (such as 36VDC or 48VDC) can increase the maximum speed. But there is no specific value.
There is no problem with the Arduino controller. The problem is the stepper motor controller. I suggest replacing the industrial controller.
Recommended reference controller (input pulse frequency is 200 KHz)
https://www.motiongoo.com/index.php?route=product/product&path=59_95&product_id=228

I have both the drivers and see no difference in the speed, the DM542 makes the motor run a little quieter but that is about it. I push a fairly large 960ozin stepper with low inductance and the Arduino Due will do 8K-10K steps with 50V power supply without any problems of stalling out from to high a step rate. If you are going over a long distance you can accelerate slowly and get a pretty high step rate but I don't know how useful the torque will be.

The Arduino is only going to get you so far until you have to use a mechanical means of increasing speed. As with the OP I use it for linear motion so your Lead/Ball screw will have to have a pretty tall pitch to get it to move the way an air cylinder would, the distance I travel is only a few inches so a 1" pitch lead screw did the trick for me but the taller the pitch the more expensive it is( I think the cost for one screw was around $50).