raspberry pi

Has anyone front ended their sand table with a raspberry pi? I have a Pi connected to my controller and I am getting ready to write the code, but didn’t want to re-invent the wheel if it has already been done.

1 Like

I am glad you stopped by then. You should try my v1pi image. It has CNC.js and Octoprint installed. CNC.js works with grbl, and they both work with Marlin (although Octoprint is a little better).

Another option is ESP3D, which is a GUI ran on an ESP32 (or ESP8266) and connects to a controller via UART. It’s not as refined as the others, but it is also pretty slick.

If you do want to write your own UI, to simplify the interface from one of these larger items, you can connect to either the CNC.js or Octoprint services through an API and give yourself a big step forward.

Lastly, I have it on my eventual road map to make Sandify work directly from a pi to an attached controller. If you are capable of that kind of system, man, I would really appreciate the help!

Wow it is great to see that you replied! Where do I find your v1PI image?


Here it is:

The GitHub project has looks to documentation and an issue tracker if you have trouble.

I found it! I have it all set up. I skimmed through the directions where is the default “Watch” directory and what file type is it looking for. The watch directory is on the PI - right?


There isn’t a watch directory, really. There is a folder that octoprint uses to store it’s gcode files. It’s something like ~/.octoprint/uploads/. Then you’d still need to open the browser to octoprint and select the file and print. You can also upload through the browser.

It sounds like you’re hoping for more of a playlist capability. That would be pretty slick.

Do you know Linux and do you write software? I’m not sure how technical to get out of the gate :slight_smile:

I know linux very well and I know programming pretty good. I still need to get the mechanism mounted in the table, then I will start looking into the software. it would be cool to have a web app that shows you thumbnails of the stored gcode files and you can just click to print, from your phone.




That would be pretty slick. The v1pi has node.js and npm installed on it. That’s probably the simplest. I’ve also had good luck using Python and flask to serve a simple web page.

Got it mounted and added lights! I need to write an a interface for the lights, right now I just have it playing strandtest.py :slight_smile:


Awesome. I really need some lights myself.

Warning! Dog butt!

That looks great. Any chance you’d want to share the table construction? I can use all the inspiration I can get.

That is our 20+ year old living room coffee table! That is what you were asking about - right?


Yes, but there’s more to it than that, right? How did you get all that in there?

I made this version https://www.thingiverse.com/thing:2920584

the footprint with the frame I made is 22in x 22in

I can throw together a build doc if you are interested.


I hadn’t seen that design before. I like it. I still don’t like that it attaches to the bottom of the table. I want the table to be a sort of lid I can take off. But I like how boxy the parts are. Extra plastic, but it looks very utilitarian. Almost like the belts carved their way through the stock :).

I am really trying to get my head around the edges of the table. I need a lip to hold the glass, and I think I need a little ramp to push the sand back towards the middle, and I need to somehow get the LEDs in there. I’m just not sure how you did it.

You don’t have to explain it all to me though, I can figure something out. I was just asking if it was easy.

I routed a notch the width of the LED strip around mine, then glued the strip in place making sure the corner bends matched my ball diameter. I’m doing nothing to deal with ‘sand’ building up at the edges because the ball cleans that out as it moves around the periphery. The end tables I bought had a glass insert in the top, so I didn’t have to deal with routing it out myself.

Since this was Rev 1.0 I would probably do the frame a little differently. I knew I needed a wide enough area to mount the motors, but because of the way I did it, it is sunk in about 2 inches. The benefit there is that I just stuck the led strip at the top of the frame, so unless you get down low to look at it , you don’t see the leds.


Oh, I see. There’s a sort of shallow bin for the sand, with the ZXY attached to the bottom, then there’s a wider bin above that, and the LEDs are on two sides (good idea!). Then that’s all sunk down from the table top. The top just has an opening the size of the pattern.

Thanks for those pics, those are helpful.

I have created a rough web interface for the LED control from the PI. If anyone is interested .

Awesome! Where is it?