A large, fast sand table by Mark Rehorst

In 2018 I built a corexy sand table that approximately 1m x 2m with drawable area of 715 x 1600 mm. It uses 45 mm square t-slot picked up at a local scrap yard for the frame, and as the Y axis guide rails. The X axis is a 16 mm square aluminum tube on which the magnet carriage rides. The magnet is a 1" cube neodymium N52 magnet. The sand box has a 1/2" plywood bottom (yeah, I know, too thick…).
The table started out cable driven, then went to belts and finally stacked belts. Bearing blocks, pulley blocks, and the magnet carriage are all 3D printed.

It started with NEMA-17 steppers, then went to NEMA-23 steppers, and as of two days ago, NEMA-17 servomotors. The new motors are 75W integrated motors with 1000 line encoders. iHSV42-40-07-24 parts ordered from China for about $90 each. I operate the servos at 1000 steps/rev, which translates to 31.25 steps/mm. Each motor has its own fanless 24V power supply, one rated for 150W and the other, which also powers the controller and LED lighting is rated for 200W.

Lighting is a strip of red LEDs along one long side of the table and blue LEDs along the opposite side, both set very low to maximize shadows in the grooves of the drawings. The table started with a Smoothieboard controller that was eventually replaced by a Duet WiFi board with TMC drivers that were running at 256:1 ustepping when there were steppers in the table.

I have worked hard to minimize noise from the motors and mechanism and really reduced it a lot, though there is still some work to do. The servomotors, running at reasonable speeds (500 mm/sec) and accelerations (2000 mm/sec^2), are quieter than the steppers. The steppers were always running at the edge of their performance limits in terms of speed and acceleration. The servomotors are a HUGE improvement in that regard.

Right after I installed the servos and got them working I mounted a blue LED in the magnet carriage and did some light painting:

After playing with that for a little while I put the sandbox back on the table and tried running some patterns, and then started pushing up the speed and acceleration to test the limits of the servomotors. Video here: https://vimeo.com/423704831

Nope, that’s not sped up video. That’s real time, 20,000 mm/sec^2 acceleration, 200 mm/sec jerk speed, and 1500 mm/sec drawing speed which it is hitting on every segment it is drawing. I have some tweaks to do in the controller firmware, then I will try pushing it even harder to see where it breaks. I expect the magnet to lose the ball before the motors give out.

I am amazed that the magnet is able to keep the ball under control at the speeds and accelerations seen in the video.


That is just amazing, Mark. What kind of surface do you have under the sand?

I’m pretty sure my ball would get lost faster than that, but I draw at around 30mm/s, so I wouldn’t know.

Just incredible. Thanks for sharing.

1 Like

Thanks! The bottom of the table is 1/2" plywood. The magnet sits on a spring that keeps it lightly pressed against the wood. I haven’t decided on the material to use yet, but in the next and hopefully final version, the bottom will be no more than 1/4" thick. I will leave an air space between the magnet and the bottom of the table to eliminate the sound of the magnet sliding against the bottom.

Here’s an erase pattern running at 2000 mm/sec: https://vimeo.com/423864811

Awesome work. I wonder if there are special magnet arrangements that would have better performance than a simple dipole. Maybe something similar in spirit to a Halbach array but with just one high-strength pole.

Wow, that’s awesome.

I just used a big-ass magnet. 1" cube N52 neodymium. I wasn’t sure how strong a magnet I would need so I just got the most powerful, reasonably sized/priced magnet I could find and hoped it would be enough. It was! IRIC I paid $15 for the magnet. It is holding onto the ball through 1/2" of plywood on the bottom of the table.

1 Like

Wondering how the software developers might incorporate the “splash” of the sand as a design element.

I feel like this is “breaking the speed of sound”. We need totally different software for “super-SANDic” motion.

Crazy! Making some stop motion clips would take no time at that speed.

You mentioned hearing the magnet running along the bottom of the wood. Are you hearing the ball on the wood at all?

Yes, I’m sure the ball grinding through the sand is part of the noise, but that probably can’t be eliminated unless you evacuate the whole sandbox.

I was thinking the sand throwing might be greatly reduced if the sand were damp.

Dang, I think with my magnet I was losing the ball at about 150mm/sec… I’m going to have to find a bigger magnet now. Do the NEMA 17 servos have the same mount as the NEMA 17 steppers?

Yes- the same mount. NEMA-17 is a standard, even in China. I used 75W motors- there is also a 50W version that’s a little shorter and probably more than strong enough. The price difference is about $5, so I went with the bigger motors.

I put together as much info on the motors as I could find here: https://drmrehorst.blogspot.com/2020/04/ihsv-servomotor-information.html

and a Fusion360 model is here: https://a360.co/2XSC0EP

I have not done any tweaking of any of the motor driver parameters- it’s just running with factory settings, so you may not need to get a USB to serial converter.

If you get a magnet like mine, be sure and put it in the table in the right orientation- with poles facing up and down. If you put it sideways it won’t work very well. You can tell which sides are the pole faces by sticking the ball to it. On the pole faces the ball will sit in the center of the face, and on the sides it will want to sit at the edges of the face.

I reshot the 2000 mm/sec erase video: https://vimeo.com/424381250

In my table, running at 2000 mm/sec is driving the motors at 3750 rpm. That exceeds their maximum speed spec (3k) which is a function of back EMF. I get occasional messages from the controller about over voltage condition - so running at that speed is playing with fire. I’ll be limiting the maximum speed to 1500 mm/sec to prevent problems. I used 16 tooth drive pulleys because I wanted to maximize the force available to drive the mechanism and didn’t know how the servos would behave. If I used larger pulleys on the motors it could easily run much faster, but at 1500 mm/sec it already throws the sand around too much to be useful. If you were going to use it for a plotter or light painting, etc., you could make it go a lot faster by using larger drive pulleys.

1 Like

I wrote a blog post on adding the servos to the sand table here.

1 Like

This build is crazy! Super super cool @mrehorst, kudos!
It looses a bit of the “Zen” aspect of the build, but there are plenty of people who think the “traditional” sand table is way too little action.

1 Like

Thanks! I originally built the table for the 2018 Milwaukee Maker Faire and I wanted it to go fast because it was a live event and faster is more entertaining. The original design was pretty noisy but at a Maker Faire “no one can hear you scream”. Right now it’s pretty noisy at the ridiculous speeds and accelerations I’ve been testing, but at my “normal” speed and accel, it’s acceptably quiet. In the final design I’d like to be able to put a speed control knob on the side of the table. I’ll have to think about how to do that.

I’ve got one more redesign planned- the noisiest thing now is shifting of the X axis between the Y axis frame/guide rails when the magnet carriage reverses direction in X. I’m going to try spring loading the bearings on the ends of the X axis to stop that. That change will increase friction but the servos should be able to push the magnet around anyway.


I’ve started playing with the driver parameters and feel like I’m flying blind as the motor manual is almost useless. The software that talks to the motors is a little more verbose than the manual, but you can’t see any parameter descriptions until you actually connect to a motor, so I have captured the page for every parameter from the software and put it into a zip file here. The individual files are named for the specific parameter so you can easily find what you’re looking for. It still doesn’t provide any tuning procedures but it’s better than the manual.

Oh yeah, the motors require RS-232 voltage levels, not TTL so you can’t use a USB to serial converter- you must use a USB to RS-232 cable. Any adapter that says it uses a PL2303 chipset should work.

The parameter tweaking I’m doing is in preparation for installing the motors in my 3D printer to see how they behave compared to steppers.

1 Like

Awesome documentation, @mrehorst!
I’ve only been using stepper motors so far. Really cool blog post about when why and how to switch to servo motors! If I need those for a next project, I’ll make sure to come back to your writeup. :+1:

I did some work on the table over the weekend. It was making a clunking noise every time the X axis movement reversed direction because there was about a 2mm gap between the ends of the X axis and the Y axis frame rails. Every time the X direction reversed, the whole axis would shift and make a clunk when it banged into the Y axis rail. I added a spring loaded bearing to one of the pulley blocks that eliminates the gap. No more clunking noises.

As usual, when I fix one major source of noise, the next loudest one becomes apparent. In this case it’s the magnet rattling against the bottom of the table. The magnet sits in a rectangular tube with a light spring pushing it gently against the bottom of the table. That allows it to follow the surface of the table even if it sags near the center. The magnet fits loosely in the rectangular tube so that it can move up and down freely, but that’s the problem. It also allows the magnet to wobble each time direction changes. That creates a rattling noise as the magnet bounces against the bottom of the table. It wasn’t really a problem when acceleration was low when the table had steppers, but running at high speed and acceleration with the servos made it obvious.

That problem will be eliminated in the next, and hopefully final, version of the table.

In the meantime, here’s a new real-time video, speed 1000 mm/sec and acceleration 10,000 mm/sec^2:


Maybe just some really loud music? :sunglasses: That looks great.

Death Metal high speed sand table with black sand and red lights? :metal: :tongue: :japanese_goblin:

1 Like