Tuesday, November 25, 2025

Arrakis 3.0 - A New Sand Table Design

Arrakis 2.0 seems to have found a new, permanent, home, leaving me without a coffee table. You know what that means!

Behold!

Arrakis 3.0

Architecture

Arrakis 2.0 had a 5-layer construction. From top to bottom, it stacked like this:

  1. glass
  2. oak frame
  3. white LED frame
  4. sandbox
  5. mechanism frame

Arrakis 3.0 eliminated the wood frames around the glass and sandbox for a neater, more "modern" look. The corexy mechanism that moves the magnet has its own frame that drops into a support frame. The LED frame is now painted on the underside of the glass table top.

  1. glass with painted LED frame
  2. sandbox
  3. mechanism frame
  4. support frame

CAD render of the Arrakis 3.0 stack-up.


I'll go into some detail about the construction following the above stack-up drawing from top to bottom starting with ...

The Glass


When moving Arrakis 2.0 to its new home, I managed to break the top glass. I had to order a custom piece of tempered glass to replace it and it cost me $330 and took about 2 weeks to get it. I did some research into glass table tops and found that 24 x 48" is a common size for coffee tables and is readily available from many sources for relatively low cost- you can get one from amazon for about $100 delivered in a couple days.

Transporting Arrakis 2.0 was a lot of work. It was too wide to fit through doorways, so had to be turned sideways, necessitating removal of the sand and disassembly of all five layers, followed by multiple trips to my car (it's quite a long way from my condo to the garage), then reassembling the the whole thing inside my car. When I arrived at my destination, the whole process of disassembling and reassembling the table had to be done again. And then twice again to get it back home.

Limiting the size to 24 x 48" means the table can fit through doorways without turning it sideways. That makes transport much easier. All I have to do is take off the glass, and remove the sand. I'll take the glass to the car and wrap it in a blanket, then take the rest of the table to the car.

The smaller size is a better fit in my living room, too.

Arrakis 2.0 has a separate LED cover frame that fits inside the sandbox. I decided that for Arrakis 3.0 I'd try something a little different. I painted a LED cover on the underside of the glass using 1-shot oil based sign paint. I used two coats of paint. It is very heavily pigmented and blocks the light from the LED strips completely. Time will tell if the paint holds up to handling and transport.

The paint border is masked off using clear packing tape and the blue masking tape just extends that inward a bit to prevent oopsies. Inside corners of the masking tape were rounded by using a small jar lid as a cutting template.

I think I should have made the border maybe 5-10 mm wider as the LEDs are visible when sitting on the couch.


The Sandbox 


The Arrakis 2.0 sandbox had a glass bottom framed by 4040 t-slot aluminum with heavy wood side panels bolted on. Every time I transported it I was afraid it would get broken. In Arrakis 3.0, the sandbox is now a light weight 2040 v-slot frame around a nearly indestructible 3/16" G10 epoxy/fiberglass bottom plate. There are no wood sides, and the glass top just sits on top of the box. The mechanism is hidden from view by light weight side panels that fit into the slots in the t-slot support frame. The space between the glass and the sand has been reduced from 75 mm in Arrakis 2.0 to just 28 mm in Arrakis 3.0.


Sandbox with greenish G10 fiberglass bottom sitting on the frame. The G10 will be covered with white, fake-leather vinyl cloth. Black plastic end caps cover the exposed aluminum at the ends of the long side pieces. You can see a couple of them on the table near the screwdriver. 


The sandbox rests on the support frame with pins at the corners to keep it in place. If I need to increase the air gap between the magnet and the bottom of the sandbox I can add spacers at the corners of the frame where the sandbox sits on the corner posts. If I want to decrease the air gap I can add spacers under the magnet to lift it a little closer to the bottom of the sandbox. If I need to access the mechanism or electronics, I take off the glass, disconnect the LEDs, and lift the sandbox off. 





Corner of the sandbox sitting on the support frame (end cap is off). You can see the threaded pin that locates the sandbox on the frame sticking up the blue support frame.


I had to decide how thick the G10 sandbox bottom needed to be to ensure it wouldn't sag too much. I did some research and found a formula for estimating the amount a plate supported at its edges will sag. It's a classic mechanical engineering problem- we have a rectangular plate of limited rigidity supported only by its edges. This website gives some insight into the calculation required. The website uses a formula from a book- I found it here, with the important materials being in chapter 11.



This calculation has some limitations- the main one being that it is a good estimate up to a deflection value that's about 1/2 the thickness of the material. It also assumes the plate is perfectly flat to start with. 

Density of G10 is 0.065-0.067 lbs/in^3 (sorry for the units- most of the available info uses imperial units, so that's what I used, converting the final deflection value to metric). Actual dimensions of the edges of the sandbox are (b x a) 22.25" x 46.25". a/b = 46.25/22/25=2.08. Young's modulus (E) for G10 is 2.2-2.7e06 lbs/in^2, so I used 2.4e06 in my calculations. 

I wrote a spreadsheet that I can just plug the thickness into and it spits out the deflection at the center.

Here is the result for 1/8" G10:

density0.065lb/in^3
long dimensiona46.25inches
short dimensionb22.25inches
area1029.06in^2
volume128.63in^3
weight8.36lbs
from tablealpha0.111
load per unit areaq0.008125lbs/in^2
short dimension of plateb22.25in
young's modulusE2.40E+06lbs/in^2
thicknesst0.125in
max deflection at center-4.72E-02inches
-1.20E+00mm


Are here is the result for 3/16" G10


density0.065lb/in^3
long dimensiona46.25inches
short dimensionb22.25inches
area1029.06in^2
volume193.46in^3
weight12.58lbs
from tablealpha0.111
load per unit areaq0.01222lbs/in^2
short dimension of plateb22.25in
young's modulusE2.40E+06lbs/in^2
thicknesst0.188in
max deflection at center-2.08E-02inches
-5.29E-01mm

I assumed the actual sag will probably be a little worse than these numbers -the 2040 v-slot is going to sag a bit, the X axis rail will flex, and the magnet will pull on the ball-  so I went with the 3/16" material. I designed the table with a 3mm air gap between the magnet and the sandbox bottom surface, so some sag is tolerable. The magnet is easily strong enough to control the ball, even with the air gap.

One disadvantage of using fiberglass board is that it's a PITA to cut. I used an a cut off wheel on a grinder to cut it to size. Cutting fiberglass produces all sorts of nasty glass and epoxy dust that you really don't want to breathe or get on your skin or in your eyes, so I used a lot of PPE and hosed the board down after cutting it.

The G10 is covered with white, fake leather cloth (chosen because it comes rolled up, not folded and wrinkled), glued on using spray adhesive. I sprayed adhesive on the G10 first, set it aside, then rolled out the cloth, sprayed it, then set the G10 down on it so there would be no wrinkles. The white cloth hides the greenish color of the G10 when the ball rolls over the same spot repeatedly, and quiets the sound of the ball rolling. The G10 fits into the lower slots in the 2040 frame.

LED strips of the same type that were used in Arrakis 2.0 are fitted into the upper slots in the 2040 sandbox frame. I drilled a couple holes in the G10 to pass the LED cables to the underside of the sandbox where Wago lever nuts are used to splice the cables into a single 4 conductor cable with an Amp connector. The Wagos allow me to play with the connections so I can set the desired colors on the LED strips.


Underside of the sandbox showing the fake leather cloth wrapped under the pale green G10 board and the Wago lever nuts that are used to combine the cables from the two LED strips on the top side of the sandbox.


The LED strips cables run to the center of the short side of the sandbox and go through holes drilled in the G10 sandbox bottom. The cables are held in place with a few printed TPU clips that insert into the slot in the sandbox frame. 

Detail of sandbox corner. You can see the fake leather cloth that covers the G10 board fitted into the lower slot, the LED strip fitted into the upper slot, and the brown EPDM weather strip that helps to protect the sandbox from spilled drinks.

EPDM rubber weather stripping stuck to the top of the sandbox helps keep the sand in and spilled drinks out. It also protects the painted LED frame on the underside of the glass from getting scratched by the aluminum sandbox frame.

Arrakis 2.0 had a drawing size of 590 x 980 mm. Arrakis 3.0 is 465 x 1005 mm. I spent hundreds of hours generating interesting patterns for Arrakis 2.0 but I can't use them on Arrakis 3.0 because of the difference in sizes. I am going to write a Perl program to scale the Arrakis 2.0 drawings to fit Arrakis 3.0.


The Mechanism Frame

The mechanism is built on its own subframe made from black 2040 v-slot aluminum extrusions. It is designed to just drop into the support frame.


Here's the mechanism frame with the X axis installed. This frame drops into the support frame. Motors and pulleys will still have to be mounted to complete the mechanism. Note the blue printed plastic Y=0 flag. I later discovered that that plastic is transparent to IR light so it wouldn't trip the optical endstop. I reprinted it in black PETG and it worked fine.


This is one of the four identical corners of the mechanism frame. The overhanging part fits on a printed TPU spacer that assures the mechanism sits within the support frame in the proper place. It allows the mechanism frame to be lifted out of the support frame for service.


The mechanism is a stacked belt corexy type, with pulleys at all four corners of the frame and at the ends of the X axis on the Y axis carriages. Each pulley is made from two stacked F625 bearings and 3D printed concave flanges. The pulleys were printed in two parts, and solvent welded at assembly. I tried concave pulleys at the suggestion of a man in Switzerland (thanks Vincent!) who makes really nice tables. It looks like only the belt's edges contact the pulleys. Time will tell if the convex surfaces lead to excessive pulley or belt wear.

Arrakis 2.0 had motors mounted in the corners of the frame with twists in the belts along the Y axis. In Arrakis 3.0, the motors are mounted at one short end of the mechanism frame with additional pulleys at the corners, so I put twists in the belt between the motors and the pulleys. The twists in the belt ensure that the belt teeth touch only the drive pulleys. That helps keep the noise level down, especially when running table at high speeds. I'll know in a few months if it causes excessive wear on the belt.


One of the motors with the belt twisted. The motor mount is designed so the belt doesn't touch it. Note- the screw and spacer on the post are not used in the final design.

The Y axis, parallel to the long dimension of the frame, uses wheeled carriages that run the length of the frame. I started by buying some ready-made wheeled carriages, but found some problems with the way they were assembled. They didn't use any washers, so the screws galled the plate, and were so short they barely engaged the nylon inserts in the nylock nuts they used. Do 30mm screws and a few washers really cost that much more than using 25 mm screws? I replaced the screws and added washers where needed, but ultimately decided that the holes in the carriages weren't positioned where I needed them to be, so I made my own carriage plates out of 1/8" aluminum plate.

The belt tension is causing the Y axis wheeled carriages to try to tilt inward. This may lead to the wheels wearing out quickly. We'll have to wait and see if it becomes a problem.


CAD render of one of the wheeled carriages. They are identical except this one has the 3D printed Y=0 flag mounted on it. The slot is where the X axis linear guide rail attaches.



One of the two wheeled carriages that ride on the 2040 V-slot frame, carrying the X axis linear guide rail. There is only one screw holding the X axis guide rail on the carriage, and the carriage is slotted to allow it to slide in case the rails aren't perfectly parallel. The plastic spacer under the pulleys holds the end of the guide rail to restrict its movement


The homing sensors are optical type with LM393 comparators on 3D printed mounts. There is a printed flag that attaches to one of the Y axis carriages. The Y axis homing parts (the flag and sensor) fit below the X axis homing flag on the magnet carriage.


Y=0 flag in its sensor. The X=0 flag on the magnet carriage passes over with plenty of clearance. The magnet carriage also clears the Y=0 flag.

CAD render of the magnet carriage. The lower part has the flag for the X=0 sensor. I printed it extra long then trimmed it to size after it was mounted in the mechanism.




The magnet carriage with the magnet in place. The belt clamps and magnet holder are two printed parts. The X=0 flag was printed extra long, then trimmed after moving the X axis to the Y=0 position. The upper part holds the magnet with a zip tie for extra security. The belt entry points are spaced to match the diameter of the pulleys on the ends of the X axis ensuring that the belts stay parallel to the X axis rail regardless of the magnet carriage position along the guide rail. I can close the air gap between the magnet and the sandbox bottom by inserting spacers (pennies) under the magnet.


Underside of the lower belt clamp. The ends of the belt fold over and fit tightly into the slots. The upper belt clamps are done the same way.


Mounting the magnet on the linear guide so close to the bearing block and guide rail may prove to be a maintenance issue. The magnet will attract ferrous metallic particles from the environment to the rail which might then interfere with smooth motion of the carriage and cause excessive wear. I'll have to check and clean it periodically.


X=0 flag (part of the magnet carriage) in its sensor. Like Arrakis 2.0, the Y axis is homed first, then the X axis. This configuration allows both sensors to be mounted on the mechanism frame without having to run any wires to the magnet carriage. I had to move the connector pins on the opto sensor to the underside of its PCB to prevent the X=0 flag from banging into the connector.


I needed a way to keep the wires neat, especially the long wires to the endstops, so I braided them and routed them through printed TPU clips that insert into the slots in the v-slot mechanism frame. The same clips also fit nicely into the slots in the 2020 t-slot support frame.


One of several 3D printed TPU wire clips the fit into the v-slots in the frame. I know it doesn't look like a very good print- I printed these on UMMD with a 1 mm nozzle and this is about the smallest thing that printer can print with that big nozzle.


CAD render of the cable clips. The center hole is 7mm in diameter. Printed with TPU, it can expand to accommodate larger wire bundles. This clip fits both the 2040 v-slot and the 2020 t-slot extrusions.


The X=0 sensor and the cable clips holding the wires that run from the endstops back to the controller board. The clips are inserted into the lower slots of the mechanism frame and allow the wheeled carriages that run the length of the frame to pass over without interference.

The fully assembled mechanism frame with electronics weighs about 8 kg (17.8 lbs).


Electronics


All the electronics, except the motors, endstops, and LED strips, fit on an aluminum plate screwed to the bottom of the mechanism frame. I mounted the controller board at the edge of the metal plate so I can remove and reinstall the uSD card that stores the patterns by reaching under the table. I also added toggle switches for main power and LED power.

Main power is provided by a Mean Well LRS-350-24 switching supply. The main controller is a Duet3D Duet2 WiFi board with an expansion board to provide easy connection for step, direction, and enable signals for the servomotors. Power for the motors is routed through two ReDump protection circuits. The LED power supply is a 24V to 12V buck converter good for 10A at 12V. I used the same type LED strips and controller used in Arrakis 2.0, but I removed the power and LED output cables from the controller and replaced them with my own twisted pair for 12V power input and a 4 wire cable and proper Amp connector to connect to the LEDs (the connectors on the LED strips and the LED controller were the most - and only- unreliable parts in Arrakis 2.0).

The LED controller output wires go to Wago lever nuts mounted on the electronics plate. I added LED strips to the underside of the mechanism frame with a power switch in case I don't want the floor around the table to be lit. The floor lighting strips are connected to the controller so that the colors are the same. In Arrakis 2.0, the LED connection to the controller was always "iffy" because of the awful, cheesy connectors used on the LED strips. In Arrakis 3.0 I used some 20 gauge 4-conductor cable and proper Amp connectors to connect the LED strips to their controller. I drilled a couple holes in the G10 sandbox bottom to let the cables get to the underside where 4 Wago lever nuts are used to make the connections.


Electronics mounted on 1/8" aluminum plate screwed to the bottom of the mechanism frame. The X axis passes over with plenty of clearance.


Here's the wiring diagram from Arrakis 2.0. The only real difference is that there are two more LED strips to light the floor, and no foot switch - I used a toggle switch for power in Arrakis 3.0.


The Support Frame

is made using blue anodized 2020 t-slot aluminum, with the pieces screwed directly together with M6 screws. It's thin, light, and the finish looks very nice. The frame is designed so the sandbox will sit on top of it, held in place by threaded pins that screw into the support frame. The mechanism frame, with all the electronics, drops in, fully assembled. 

I designed the table to have a 3mm gap between the magnet and the bottom of the sandbox, but the gap can be adjusted. If I put spacers (pennies fit well) under the magnet, it lifts the magnet closer to the bottom of the sandbox.


The support frame made from blue anodized 2020 t-slot aluminum extrusions. The vertical members at the middle of each side keep the horizontal members from rotating. The printed orange parts at the inside corners are used to position the removeable mechanism frame that rests on them. Furniture pins will be screwed into the tops of the posts.


One of four 3D printed TPU mechanism frame locators that fit on the support frame. 


Arrakis 2.0 had heavy, 3/4" thick, unfinished pine boards bolted to the sides of the 45 mm t-slot sandbox bottom frame to conceal the mechanism. That added a lot of weight and didn't really look very nice. The side and end panels of Arrakis 3.0 are made of 1/8" mirrored blue acrylic, cut to fit into the slots in the main frame. I added small pieces of silicone edge protectors to fill the space in the v-slots so the panels wouldn't rattle, and trimmed the edges with a razor knife so they wouldn't show (much).


Side panels installed. I used silicone edging at the ends of each panel with a couple small pieces along the bottom edges to center the panels in the slots and prevent rattling. There's about 5 mm clearance between the belts, pulleys, and the panels.


Corner pin screwed into the support frame. There's one at each corner of the table. The pins fit into holes in the corners of the sandbox frame to position the sandbox accurately on the support frame and prevent it from sliding off. You can also see the silicone edging that centers and holds the acrylic side panels in the slots of the support frame.

That's about it! Leave comments/questions below. If I make any changes or find reliability issues I'll update this post. I'll write another post on the program to scale the patterns when it is finished and working.




No comments:

Post a Comment

Leave comments or a questions here and I'll try to post a response as soon as I can.