December 20, 2024
Description
I've recently launched the duneweaver.com website. Check out all of the Dune Weaver tables and add-ons there!
We are starting a new Discord channel to help with troubleshooting and feedback. I will prioritize Discord over chat and comment. Please join us here: https://discord.gg/YZ8PTezVHt. Please use the #qna-mini-dune-weaver channel if you want help with your build.
UPDATE:
2025-01-14: Huge UI update, thanks to Thokoop!
A typical marble run is powered by gravity. This one? Electricity! I recently created the full-sized Dune Weaver (42cm diameter), and I had so much fun that I set out to create a mini version from the ground up. This thing costs about $27 to make for me, inclusive of filament. The cheapest one out there is the Oasis Mini, which is 1 inch smaller and about $150! What do you get with the Mini Dune Weaver?
Warnings:
A little bit more background on how the machine works. There are two bases: the lower base houses all of the electronic components, and the upper base, sand and the marble. We have two stepper motors, one controlling the radical axis (in and out movement) and the other controlling the angular axis (rotational movement). The two motors are connected to two motor drivers that control the step and direction. The controllers are connected to an ESP32 board that is the brain of the table. The whole table is powered by a single USB cable, attached to the ESP32 board.
A polar machine like this one uses a theta rho coordinate system instead of an x y coordinate system like a typical CNC machine. A theta number tells the table what angle (2 pi for one revolution) the angular axis should move, while a rho number tells the radical axis how far it should move (1 being the perimeter and 0 being the center).
The machine does not have a limit switch like a conventional CNC machine. When it is powered on, the table will do a crash-homing action, meaning the radical axis will try to move in the arm's physical distance, guaranteeing that the ball is in the home position (the table center). The software then keeps track of all the coordinates executed to know where the ball is at all times.
Due to the hardware design choice (to keep the design a circular table and minimize non-3D printer materials), the angular axis does not move independently. That means physically, whenever the angular axis moves one revolution, the radical axis will also move some distance either in or out (depending on whether the angular axis rotates clockwise or counterclockwise). We deal with this in the software by keeping track of how many revolutions the angular axis will be moved and offset the radical axis accordingly.
The code base of this project contains C++ code to control the motor, backend Python code to send the pattern from a computer or a Raspberry Pi, and a front-end web interface to control the device. I used my existing codebase for the Dune Weaver, so I didn't have to rewrite a lot of stuff. However, in the future, I plan to improve the code by leveraging the ESP32's more capable hardware (compared to the Arduino UNO) to eliminate the need for a Raspberry Pi.
I spent about a week working on this project and it was a ton of fun for me. I hope you enjoy building it, too.
Boost MeIf you like my work, a boost would be appreciated! Want to buy me a coffee ☕️? https://www.paypal.com/paypalme/tuanchris
License:
Standard Digital File License