I forget exactly how, but one day browsing the internet I came across the kickstarter for the sisyphus table, and was blown away. This is the first time I had seen something so captivating that I immediately wanted one. Checking their page, I was disheartened by the prices of the full wooden coffee tables, but I still considered it. I decided to try and see if anyone had built a DIY version of this table that I could perhaps take on myself before dropping thousands of dollars.
Eventually I stumbled upon a UK Engineer named Rob Dobson’s personal blog page. He had created a smaller version of with a similar mechanism. This looked promising. I saw he re-designed his whole bot and the mechanism to a new SCARA type robot. He had the 3D model and all the stl files ready for 3D printing, so I decided to start my journey of creating my own table from these plans.
As a side note – during my research I learned about all the CoreXY tables that have been doing similar things for years. I stumbled across the very nifty Sandify tool as well, which generates pattern gcode. I entertained the idea of a CoreXY table, but I had my mind set on a round coffee table after seeing the beautiful sisyphus tables, so the XY machines just wouldn’t fit my needs.
Rob’s blog gives a good idea of how to go about assembling everything, so I will just go over my differences here.
I don’t have a laser cutter – so I decided to 3D print everything out, not just the 3D printed parts.
I think the easiest think to do here is link my build album, because it shows the progress of the build. I wanted to build an actual piece of furniture for this table, to sit in our sitting room, so it had to look nice.
First working protoype of the robot
Table Design.. on the fly!
LED circuit design
Initial App development (Still under development….)
Close to final table design
3D printed LED holders
Veneer Glue-up.. ugh
Neoprene only – no sand
First Run! Spreading out the sand
Building a round table is hard! I used 2.5mm underlayment plywood cut into strips to build the round structure around my table frame. Using ratchet straps, I was able to clamp the wood good enough to make a decent structure. I then decided to glue maple veneer on the outside of the table for finishing. This was a nightmare. Trying to use ratchet straps on the veneer just created a whole new set of problems with bubbling because the veneer is so thin. It’s not really noticeable, but in my final table, there are noticeable bubbles in the veneer. Oh well.
I tried many different types of material for the “sand”. After researching for a while I couldn’t find any specific link to anything that I could actually buy. Some people recommended shuffleboard wax.. Some people said baking powder.. I tried them all. I finally settled on the hamster bathing sand. This is the finest sand I could find, while still able to maintain the peaks needed for nice shadows
With some coaxing, I was able to get Rob to add support for .thr files (Theta Rho), which are the native files for the sisyphus table, so now we can take advantage of the sisyphus pattern designer’s hard work and use these patterns on this custom table. There are still some kinks with thr support, but the majority of the files work correctly and look great! The sisyphus subreddit is a great place to find custom files.
Here is my table drawing the hosta pattern from that subreddit
Micro SD Card Support
Rob and I worked hard on this, and in the end the only thing we could get to actually work was the Adalogger feather wing with SD Card in it. We tried external card readers (My PCB is wired for one), but couldn’t get anything to work reliably. Even with the feather wing, I had serious problems getting it to recognize a micro sd card. I had to try about 5 before I could finally get a 1GB micro SD card to be recognized. I used the official SD card formatter app in windows and various filesystems before this was successful. I think working SD card support is vital for having an interesting table. Without it you can only store a few smaller thr files, however you can fit many parametric patterns.
While Rob’s PCB does work – I found it very confusing at first. It is designed for more than one application, so I figured I would create a single purpose PCB for the sole reason of powering a sand table. The project can be found at Easy EDA, and the PCBs can be ordered through JLCPCB. My version 1.5 has everything needed for a functioning sand table and allows either RGB (Signal/+/-) LED control or White LED dimming control (- PWM). I have only used (And the firmware only supports) White dimming LEDs. The board also has a socket for a light sensor, which at some point will auto dim the LEDs. I wasn’t happy with my implementation of the dimming algorithm, so auto dimming is currently not supported in the firmware either.
Here is my custom PCB outfitted with everything but the drivers and processor. I’ve also included vias for probing and debugging if necessary.
Schematic (minus the external card reader)
Everything you need to purchase to populate the PCB
- Female and Male pin headers
- 2 x 1uF capacitors
- 2 x 100uF capacitors
- 5 x 3 pin JST-XH 2.54mm sockets (And matching plugs and crimping tool for the wires)
- 10 Ohm Resistor
- Switching 5V voltage converter
- FQP30N06L Mosfet (For dimming Whtie LEDs)
- 2 x TMC2100 Silent Step Stick Drivers
- Adafruit HUZZAH32 – ESP32 Feather Board
- Adalogger Feather Wing
Improving the Robot
After running my completely 3D printed robot for over a year, I could tell that it was getting really sloppy. Homing wasn’t consistent, and patterns weren’t ending where they should. Graciously, Rob had sent me some laser cut acrylic top and bottom plates a while back, so I got the making a second robot that would hold tighter tolerances. These were the major improvements I thought I needed.
While the tensioning system Rob devised does work, I wasn’t happy with the tension I was getting on any of my belts. I don’t think the motors were secured strong enough to put enough tension on the drive belts. I believe this was due to my 3D printed plates, and the plastic just deforming over time. I devised a system of 3D printed tubes to help me ensure the new plates would be perfectly parallel to each other. These are secured with nylock nuts, so they aren’t going to be loosening up
The long arm belt was just floppy after a year of running. I think this is due to trying to tension a belt that wasn’t the correct size. After some trial and error I decided to print arms the exact length I needed in order to put the perfect amount of tension on a new belt of 488mm. I found that for my 3ft table and a bit less of drawing area, I needed new arm lengths of 184.5mm exactly to give me the perfect tension on the 488mm belt. I printed the bottom arm of near solid PLA, and the top arm of PETG to give me flex.
Magnetic End Stops
I believe my sloppy homing was due to the inconsistency of the magnets and hall effect sensors when dealing with different amounts of friction due to how much sand the ball is dragging around during homing. I decided to migrate to optical end stops, and designed and printed out a new concentric gear lock and elbow gear lock that allowed me to mount optical end stop sensors to track the rotational movement.
Best shot I could get of the concentric sensor
New Sand Bed Surface
I originally started with a plywood sand surface, with the bottom coated with urethane and polished as smooth as I could get it. After I saw how uneven this surface was, I migrated to a piece of hardboard, with the smooth end down. I think this still provided too much friction and contributed to some of the inconsistencies.
I finally ponied up the money for a 3ft by 3ft piece of acrylic to cut a new table bed out of. This stuff isn’t cheap. I used 3/16″ acrylic, and there seems to be little sag to it. The magnets I use hold strong through it. Now I’m just waiting for a few more tests before covering it. PSA – drilling holes in acrylic cracks it a lot easier than I expected… Although milling it to shape with a double fluted spiral bit went much easier than expected with a hand router.
Initially, I used a piece of felt to decrease the friction between the magnet and wood sand base. I think this worked OK, but it needed to be better. I started now by polishing the acrylic’s underside with Optimum Hyper Polish and finished it up with some Optimum Spray Wax. Just by feel alone I could tell the surface was much smoother than stock acrylic. It felt slick to the touch
I also purchased some mouse skates to put on the magnet. I am hoping this further decreases the friction of the magnet on the acrylic bed
I had to cut these down to size so there was no lip around the skate, but I think this is working out well. Make sure there is no dirt on the skate.. otherwise it will start scratching the underside of the bed… Ask me how I know!
New Sand Bed Underlayment
The underlayment is necessary for dampening the sound the ball makes while riding over the sand. Otherwise it sounds like sand crunching all the time, which isn’t pleasant.
In my original build, I used some neoprene as sand underlayment. While this worked great, I noticed the sand seemed to be disappearing! To my surprise, neoprene is quite porous and can trap a TON of sand in the fabric itself. This provided a much harder surface full of sand to drag the ball around on. After looking at quite a few different types of fabric, I settled on buying some velvet. The soft side has a bit of pile to it, so this should dampen the sand sound pretty well.
New velvet underlayment spray glued to the acrylic bed.
Spreading the sand out with the new velvet. Pretty quiet!
Only time will tell how these new improvements hold up. We shall see!
(Incomplete) List of purchases for this project:
|1||Custom Sand Table PCB||$7|