"Sandtrails" - a polar sand table

Hi all,
This forum is a treasure trove of beautiful sand tables. Great work, I wish I could see all of them in real life!

There are many XY tables, but very few polar ones. The one I saw last fall by Bruce Shapiro was polar. And that’s what I fell in love with. So I looked at Sisyphus’ tables and learned what I could from the pics and videos. I’m sharing my results in the hope that it will bring someone else as much joy in building as it has me. And I’m sure you could all help me greatly in improving my very-much-work-in-progress :smiley:

The code is on github and I’ve started a documentation page.

Anyone interested in joining in?

Kind regards,


This is an awesome project, Roman. Thank you for sharing.

I like the use of the ikea table. What diameter did it end up being?

It looks like you’re also using a raspberry pi for all the brains, and you’re using nema 11 motors.

What is with the two sensors for homing theta? I can’t figure out why there are two. :slight_smile:

I am looking forward to checking out the code too. Great job, and thank you for sharing.

Thanks Jeff!
I saw I’m not the first with an Ikea table. I love @2mas ‘s result too. Perhaps my next build :smiley:
The table has 54cm outer diameter (21"). The useful diameter for the patterns will be 340mm (approx. 13’’), once I optimize the design.

Regarding the homing sensors: I really wanted to use something relying on magnetics rather than taking an optic or tactile sensor. The problem is, I would not currently be able to differentiate if a hall sensor was triggered by the “rho” homing magnet or the “theta” homing magnet. If I have two sensors for theta that need to be triggered simultaneously, I can tell them apart.

This is one place where you all you might have better + simpler ideas :slightly_smiling_face:

You’ll notice I’m not a software-specialist. So any input when you’re looking at the code is greatly appreciated :+1:t4:

The “underside”:

Parts for building to tables:

More impressions under github.io/sandtrails/gallery

1 Like

Hey, if it is moving from thetarho files, your software is doing just fine.

I can imagine homing with only one, but I am not saying it is simpler. You could do have one homing magnet on theta and one on the rho, but offset by 10 degrees in theta.

You could home theta in the direction that would catch the theta switch first. You would always have to move more than 10 degrees. If you triggered one in the first 10 degrees, you may need to check the previous 10 degrees too. If you ever triggered two, then you know rho is also homed. The first one is always theta home. Then you would have to move 10 degrees from that, and home rho.

Definitely not simpler than just installing three. Your solution is good, and doesn’t look as goofy when the machine is homing :).

1 Like

Great project. Thanks for sharing. I especially enjoy seeing how it is implemented.

You laser cut all the pieces? Any reason they couldn’t be cut with an MPCNC or Lowrider?

I would guess you’d need a tiny (d<2mm?) bit to cut the teeth on the theta? axis, but other than that?

1 Like

Thanks for the homing idea Jeff. That’s a valid alternative. I think less parts is always better… so a bit more “goofing around” during homing is quite alright with me :smiley: :+1:t4:
I’ll think about this for the next generation.

Thanks for the feedback @Paradox_Pete!
There is no reason not to cut them on a MPCNC. It is just that I have access to a laser machine and sadly no experience with MPCNC. Happy to learn though!

Even with the laser, the teeth on the spur gear and the rack are pushing the limit in terms of precision. Here’s a closeup:
Teeth closeup

You can tell the tooth profile is all wrong. The width of the laser is so wide that the teeth come out all “pointy”. I was thinking of how to remedy this… perhaps by accounting for the laser beam thickness when designing the part. Any ideas? How would you do this on a MPCNC?

:clap: :clap: Awsome work!
Really nice finish and thanks for taking time to share and post the very nice writeup and documentation on github to share knowledge.

Any specific reason for choosing to use a cogwheel on the outer ring vs a belt? Just curious.

1 Like

Thank you @2mas!
I’m glad you ask about the cogwheel :slight_smile:
I really meant to use a timing belt. But at the time, I could not for the life of me find the general pulley specifications. (I must have been looking for the wrong keywords.) I found the involute gear spec and and a feature script for OnShape that draws spur gears, so I started with that.

It turned out to work surprisingly well, and of course is super simple to assemble. I would like to try a belted version though. What would you recommend?
I expect a belt will run more quietly? You can currently hear the table cogging even though I’m microstepping nema’s 200 steps by 32…

Dang @ratnaweera, if you aren’t a software specialist what are you? Did you put together the python in your github or did you cobble it together from elsewhere because I’m impressed. I would have loved to figure out how to do a polar table but the software is always what I couldn’t figure out because I couldn’t even find a decent starting place that I could understand.

Regardless, awesome project! And I think you’re underselling your software abilities a touch (no offense to the Jeff’s out there who are killing it too, this is just coming from a chemical guy).


Thanks for the praise @Heath_H! I am a mechatronics engineer, so I have done a bit of tinkering with software. While our code performs the right function, I do think the overall architecture could be improved. Plus it is not yet fully documented. I wanted to give Jeff a heads-up :slight_smile:

I grappled with the “maths” behind the polar table for a while too. If theta and rho were independant, it would be very straightforward. But there is a twist that Rob Dobson formulated nicely in his blog under “Quirks” (which served as one of my starting points).

I wanted to write this up neatly anyway at some point. If you say you’ll build your own polar table @Heath_H (whether it is similar to Sandtrails or not), I’ll have a good reason to do so :+1:

@ratnaweera: You most definitely deserve the praise! While it may not be as clean/simple as @jeffeb3 might have written it you appear to have a working model! Isn’t that the goal?

I definitely will in the future build out a polar sand table, but don’t hold your breath or wait on me. I’ve had MPCNC parts in a bin in the basement long enough that Ryan has announced a new design in the meantime! I guess there will be lots more printing in my future again here.

Anyway, you have given me a framework to work off of for sure, which will be awesome to start on when I get around to it. I really want to use a cnc to get something like the sisyphus plywood rings in a bowl shape, I think that would be awesome with a polar table!

Now, need to work on finding some round glass…

1 Like

Yeah, Heath. You should definitely consider using the pi as a controller for your build. It might be much easier to build on that than Marlin.

“Timing belts and Pulleys” is probably a good place to start with regards to search terms.

I haven’t tried cutting anything like gear teeth, so I don’t really know. 8^) I think I would have tried a belt and pulley arrangement.

I think you have much higher resolution on the rotary axis than is required. With 32 microsteps their is roughly 1/18* resolution at the stepper. I’m not sure what the gear ratio is, but it looks pretty large.

Python on Pi is a really quick way to get something moving. Especially to non-specialists :smiley: :+1:t4:

Heath, I love the bowls Sisyphus has for their tables! You’ll do this from plywood? I’ll have to look into this and possibly build an MPCNC too :see_no_evil:

You’re right @Paradox_Pete, the resolution on the rotary stage is ridiculous (600:28 on the gears). I was only microstepping to get it to be quiet-ish

@ratnaweera The bowls are awesome right? If I were to do it on the MPCNC it would have to be basically a rough-in of angles and whatnot, then a lot of belt sanding afterward to get it fairly even and then likely lots of tuning with orbital and hand sanding to get it close. It should look fine if it is close due to it’s curved/sculptural nature.

Again… I need to build my MPCNC, so I’m a ways out on all of this… :smile:

Sounds like a plan @Heath_H. My friend Stephan who is also contributing to the code is currently building a table based on “Sandtrails”. But he does not want to use the Ikea table. One of your bowls would be awesome :smiley:

You can buy gt2 in specific lengths of loop. Since it can rotate forever, you’d want a belt loop, not just a belt. You might also be able to get away with an o ring or other rubber band thing. But your teeth seem to be working fine to me. I have two 3D printers and a cnc. So for me, I might make a big circle on the cnc and make some teeth to attach with the 3D printer. Unless I could make it small enough to print in one piece.

What is the bowl thing you are both talking about?