SandPlotter Smart Coffee Table

Developed an interactive sand art coffee table capable of generating intricate sand patterns, algorithmic geometric curves, and custom text through a CoreXY motion system.

PROJECT TYPEFirst Year Hardware Project · University of Moratuwa
TECHNICAL CONTRIBUTIONMotion Mechanism, GRBL Setup, Automated Drawer PCB, ESP32 Bridge, UI
TECHNOLOGYArduino Uno, ESP32, C++, GRBL, CoreXY, Custom PCB, TFT Display, WebSockets
TIMELINEAugust 2024 – August 2025
PREVIEW·SandPlotter — Complete physical prototype exhibited with live CoreXY sand-drawing demonstrations
01 / OVERVIEWPHYSICAL & DIGITAL FUSION

The SandPlotter Smart Coffee Table was built as a first-year hardware engineering project at the University of Moratuwa. The goal was to build a functional piece of kinetic furniture that autonomously draws intricate geometric curves, algorithmic patterns, and custom user-input text into a fine layer of sand.

Beneath a glass tabletop, a magnetic carriage moves invisibly along an X-Y plane, pulling a steel ball bearing through the sand bed to create continuous kinetic artwork.

02 / PROBLEM & MECHANICAL CONSTRAINTSCOREXY MOTION PRINCIPLES

Traditional Cartesian gantry systems place the X-axis motor on top of the moving Y-axis carriage. In a living room furniture project, moving heavy stepper motors results in increased moving inertia, higher belt wear, and audible vibrations.

To address this, we implemented a CoreXY motion system where both NEMA 17 stepper motors remain fixed to the stationary outer frame. By utilizing a continuous GT2 timing belt routing configuration, simultaneous rotation of both motors creates precise, responsive 2D motion across the entire sand canvas.

03 / TECHNICAL CONTRIBUTION & RESPONSIBILITIESMECHANICAL ASSEMBLY, ELECTRONICS & FIRMWARE

Motion Mechanism Assembly

Designed and assembled the physical motion mechanism using NEMA 17 stepper motors, GT2 timing belts, idler pulleys, TMC2208/A4988 motor driver modules, and mechanical limit switches for homing calibration.

Automated Drawer Controller PCB

Designed and fabricated a custom PCB for the table's motorized automated drawer. Implemented single push-button toggle logic allowing users to both open and close the concealed drawer using the exact same push button.

GRBL Firmware Configuration

Flashed and configured open-source GRBL firmware on an Arduino Uno with CNC Shield V3, tuning steps-per-millimeter coordinate transformations, acceleration profiles, and axis limits.

ESP32 to Arduino Communication

Implemented serial communication between the ESP32 microcontroller and Arduino Uno to stream G-code line by line using acknowledgement-based flow control.

TFT Touch Display & Web Application

Built the user interfaces allowing users to trigger pattern draws both locally via an on-table TFT touch display and remotely via a web application over WebSockets with real-time drawing progress updates.

04 / TECHNOLOGY STACK & HARDWAREEMBEDDED SYSTEM ARCHITECTURE
SUBSYSTEMHARDWARE / TOOLTECHNICAL PURPOSE
Motion ControllerArduino Uno + CNC Shield V3Executes GRBL firmware to generate real-time step and direction pulses for stepper motors.
Motor DriversTMC2208 / A4988 Stepper DriversProvides microstepping control, silent operation, and current regulation for the dual NEMA 17 motors.
Kinematic MechanismCoreXY Gantry + GT2 BeltsKeeps both motors stationary, reducing gantry moving mass and ensuring smooth 2D vector movement.
Automated Drawer ControllerCustom Etched PCB & Push ButtonControls the table's motorized drawer with single push-button open/close toggle logic and motor drive circuitry.
Wireless & InterfaceESP32 + TFT Touch DisplayHosts the WebSocket server for the web control app and drives the on-device touchscreen.
Firmware & ProtocolGRBL & G-codeTranslates geometric vector coordinates into physical motor steps with limit switch homing.
05 / WHAT I BUILT: EMBEDDED SYSTEM DIAGRAMINTERACTIVE HARDWARE TOPOLOGY

Click each subsystem node below to inspect hardware roles, firmware configurations, and electrical connections:

SYS.HARDWARE // SANDPLOTTER SMART COFFEE TABLE EMBEDDED ARCHITECTURE
FIRST YEAR HARDWARE PROJECT · ARDUINO + ESP32 + COREXY
COREXY KINEMATICS MATRIX (DUAL-MOTOR COORDINATION):GRBL FIRMWARE TRANSFORMATION
ΔA = ΔX + ΔY (Motor A steps)|ΔB = ΔX - ΔY (Motor B steps)|Pure X-motion = Both motors rotate same direction|Pure Y-motion = Motors rotate opposite direction
COMPUTE
Arduino Uno
ATmega328P
COMMUNICATION
ESP32 &
ESP32 Wi-Fi / BLE
DRIVERS
A4988 Stepper
A4988 Microstepping Bipolar Motor Drivers
ELECTRONICS
Automated Drawer
Custom Etched PCB
MECHANICS
CoreXY Mechanical
2x NEMA 17 Stepper Motors
PHYSICS
Magnetic Carriage
Neodymium Magnet Carriage
Arduino Uno & CNC Shield V3 (GRBL)[COMPUTE]
Directly drives the A4988 motor driver modules via CNC Shield V3.
HARDWARE SPECIFICATIONS & COMPONENTSATmega328P · CNC Shield V3 Expansion Board · Limit Switch InterfacesFUNCTION & ROLE

Executes GRBL motion control firmware to translate incoming G-code commands into synchronized step and direction pulses for dual stepper motors.

TECHNICAL WORK & FIRMWARE

Configured GRBL firmware with acceleration profiles and homing cycle limits to ensure accurate coordinate mapping across the table.

SYSTEM INTEGRATION

Directly drives the A4988 motor driver modules via CNC Shield V3.

07 / CHALLENGES & KEY TAKEAWAYSHARDWARE-SOFTWARE INTEGRATION

Engineering Challenges

Balancing belt tension across both CoreXY loops was critical to prevent skewing and ensure perpendicular axes. Tuning driver current limits on the motor modules prevented motor overheating during prolonged drawings while ensuring sufficient torque to guide the magnetic carriage through the sand bed.

What I Learned

This first-year project provided foundational hands-on experience combining mechanical construction, electrical driver interfacing, firmware flashing, and micro-controller communication (ESP32 to Arduino) with modern web control over WebSockets.