Friday, December 20, 2024

Arrakis 2.0 Sand Table at Great Lakes Distillery

Arrakis 2.0


You're looking at the Arrakis 2.0 sand table, designed, built, and programmed by me, Mark Rehorst (whose name appears on GLD Gin bottles). The table is normally used as a coffee table in my home. It is on temporary loan to GLD.


Arrakis 2.0 at home

The sequence of patterns currently running on the machine can go for about 12 hours. There is no real limit, and it is possible to program a sequence that will run for weeks without ever repeating a pattern. As you may notice, the sand tends to build up around the edges of the table. Once about every 50 hours of operation I push it back toward the center of the table.

In the current sequence, some patterns finish in a few minutes, others take over an hour. After each pattern finishes, there is a 60 second delay to allow you to contemplate the Sisyphean pointlessness of existence, "ooh and aah", take pictures of the pattern, or use the restroom. Then it erases and starts drawing the next one. 

Despite rumors you may have heard to the contrary, the sand is definitely not cocaine. It's actually baking soda, used because its fine grains capture pattern details, it's pure white so the LEDs light it up nicely, it doesn't get sticky when it's humid, bugs don't eat it, it's cheap, and available everywhere. There are about 2 lbs of baking soda on the table.

Almost all the electronics in the table are off-the-shelf stuff, most commonly used in making 3D printers. Many of the mechanical parts in the mechanism are 3D printed or are parts commonly used in 3D printers, such as GT2 belts and drive pulleys. Unlike similar tables you may have seen, this one uses servomotors to achieve high speeds and quiet operation.

Those of you familiar with 3D printing will understand when I say the table uses a CoreXY robotic positioning mechanism to move a magnet under the table. The magnet pulls the steel ball on top of the table through the sand leaving behind beautiful patterns and messages.

The pattern generating software, Sandify, is free, online, and saves patterns as simple gcode files. I wrote a post-processor for the pattern files that assigns two speeds to the motion, fast along the edges of the table, and usually slower for drawing the patterns to preserve details.

The process of generating patterns using Sandify starts with selecting a basic shape and applying different modifiers. As changes, are made, their effects can be seen in a preview window. When I like what I see, I tell Sandify to save the pattern. Then I run a post-processor on the pattern file that assigns two speeds to the motion. Finally, I upload the pattern to the table via WiFi and it's ready to run. Patterns can be strung together in sequences using a macro file. It takes me anywhere from a few minutes to a few hours to generate patterns that I feel are worth keeping.

You may notice that the ball is "smart" in that it always takes the shortest path around the table when it is traveling along the edges of the table. That behavior was added to the pattern generator after I wrote a post processor to delete excess edge motion from the pattern files. The authors of Sandify liked the demo video I sent them so much they added that function into Sandify. They have yet to add dual speed operation, so I continue to use my post-processor for that

In case you're curious about the mechanism, here's a video tour of it:





The table has other uses. It's great for entertaining cats, especially when the ball is traveling at high speeds:




I have also used it to paint pictures by having the ball roll paint on a canvas board:






History


Shortly after I finished designing and building a CoreXY 3D printer (UMMD) at the Milwaukee Makerspace, I got the idea to build my first sand table, "The Spice Must Flow", for the 2018 Milwaukee MakerFaire using the same type CoreXY mechanism and 3D printer controller board. That table was larger,  louder, and slower because the mechanism was driven by stepper motors. 

After the MakerFaire I continued to work on the table, with goals of making it run faster and quieter, so that I could have it in my living room. Many of the parts in the mechanism, including motor mounts, the magnet carriage, and pulley blocks were designed by me and 3D printed on UMMD. 

At first I worked on speeding the table up, and managed to get it to work up to 500 mm/sec. That wasn't fast enough, and it was pretty noisy because it used stepper motors, so I switched to servo motors that are capable of running much faster and quieter. With the servomotors the table can run up to 2000 mm/sec.

Once the speed and motor noise issues were solved, I started working on other noises that the table made, hunting them down and eliminating or reducing them one by one. The result is in front of you:  Arrakis 2.0.


Do you want to build one yourself?


If you have kids building a table like this would be a great way to introduce them to mechanical and electrical engineering and programming. My blog contains enough information about the table that if you are skilled mechanically, and know a little about electronics and programming, you can use it to build your own table. I am always happy to answer questions and make suggestions, including sources of inexpensive parts to use.

As built, there's about $400 worth of electronics in the table, including the servomotors, but there are much cheaper ways to go. The easiest way to cut costs is to use stepper motors if you don't mind the table speed being limited to about 100 mm/sec, and you can use an inexpensive Arduino based 3D printer controller. Many people build sand tables by modifying glass top tables from Ikea.

If you would like to build a sand table, or other things, but don't have work space or tools, stop by and tour the Milwaukee Makerspace in Bay View or St. Francis. We have all the space, tools, and expertise you'll ever need for almost any project you can think of.


Do you want me to build one for you?


I can do that, but it's not going to be cheap. That said, I'd love to talk to you about it and maybe we can come to some agreement. 


Links to more info:


Milwaukee Makerspace

Duet3D (3D printer controller boards)

The Spice Must Flow sand table- my first

Arrakis sand table

Arrakis 2.0 sand table

UMMD 3D Printer

Sandify sand table pattern generator


Saturday, December 14, 2024

A New 3D Printed Lamp

Several years ago I made a 3D printed lamp for my son using guts from a WIFI controlled RGB LED bulb. The lamp had a large 3D printed fractal vase. He recently reported that the electronics had failed and asked if I'd make him another lamp. Sure!

I designed a new vase using a 3rd order Julia set with swept parameters. About 600 fractal images were generated using ChaosPro. The images were imported into ImageJ where they were stacked and converted to a solid and exported as an STL file. I sliced it using Cura's vase mode (did they ever fix vase mode in Prusa Slicer?) and printed it on UMMD. The top and bottom of the vase are the exact same tri-lobe shape, but rotated 60 degrees. At the middle layer the outline of the vase is almost a perfect circle. The vase has a very interesting surface texture that results from the limited resolution of the math used to generate the fractal shapes.

The new vase is 638 mm tall, printed in about 13 hours using 930 g of Keene Village Plastic's Edge Glow Glass PETG filament with 1 mm walls, and 0.25 mm layer thickness.

The Edge Glow Glass filament is a transparent filament with some "bluing" added to make it look like glass under normal lighting conditions. But if you light it with blue light, the material fluoresces a very cool looking pale blue color.


This is what it looks like in daylight. The bluish color that makes it look like glass comes from some dye that's added to the filament. 

In the original lamp, I took apart a normal shaped LED bulb so I could put the LEDs as close to the bottom of the vase as possible. That required making a very odd shaped heat sink to mount the LEDs on. Since I made that first lamp for my son, LED bulbs have become cheaper, much more widely available, and in many different configurations. For the new lamp, I used a WIFI controlled GX-53 RGBW LED bulb and didn't need to take it apart as it is pretty flat and sits very close to the bottom of the vase. I just bought a socket for the bulb and installed it. 

The only way to get "white" light from the old lamp was to turn on all the R,G, and B LEDs and the color temperature that resulted wasn't very nice. You could tweak it a little by adjusting the relative brightness of the LED colors, but it never produced a pleasing white light. The new bulb is an RGBW type that includes warm and cool white LEDs and the control app allows you to set the color temperature anywhere between a warm yellowish light to a cool bluish white. 

I like to set the bulb to a purple color. That turns on red and blue LEDs. The blue light makes the vase fluoresce the beautiful pale blue color and the red light shines through and looks pink through the glowing blue vase. It's a very nice effect that's not fully captured by the camera. The blue light also makes nearby fluorescent objects glow nicely, too.


The new lamp, set to purple light, making its own vase glow blue and the one next to it glow green. There are no glass pebbles in the bottom of the vase in this photo.

Wiring couldn't be simpler. I drilled a hole in the side of the vase near the bottom, fed in an 18 gauge line cord, split the end of the cord and tied it in a knot so it couldn't pull out of the lamp, stripped the ends of the wires, and soldered them to the wires from the lamp socket, then used shrink tubing to cover the solder joints. Finally, I put some hot-melt glue on the bottom of the lamp socket and mounted it in the bottom of the vase. Done!

The vase is large, tall, and relatively light weight so it can be moved or knocked over pretty easily. I added a few lbs of glass pebbles to the bottom of the vase to help keep it stable. I haven't decided if I'm going to epoxy them in or just leave them loose.


Surface texture results from the low resolution math that generates the fractal shapes that get stacked to make the vase. The print came out with a very shiny surface- like glass.



A look into the lamp- the wiring is as simple as can be. The GX-53 socket is hot-melt glued to the bottom of the vase. Wires are soldered and covered with shrink tubing. There's an on/off switch on the power cord, but it's mostly used to put the light bulb into pairing mode. Once paired, you can program schedules and control colors, brightness, and on/off with the phone app.

The nice thing about this lamp, unlike the original, is that if the bulb ever fails the dead one can be easily replaced - assuming they are still available. GX-53 bulbs are commonly used for under-cabinet lighting, so I think they'll be around for a while.

I added some rubber "feet" to the bottom of the vase to make it less likely to slide if bumped. These feet are some soft silicone material that is sticky on one side but not the other. The stickiness comes from the plastic, not an adhesive, and they don't leave any residue if you peel them off. They also don't seem to damage the finish on furniture. If they get dirty and "unsticky", just wash them off and they're sticky again.


Rubber feet on the bottom of the lamp.