Arduino-Powered Desktop Waterfall
by Circuit Ghost in Living > Decorating
320 Views, 3 Favorites, 0 Comments
Arduino-Powered Desktop Waterfall
Have you ever had an old desktop waterfall sitting in storage, collecting dust because it felt plain or outdated? That was the starting point for this project. Driven by my ongoing learning journey in engineering and design, I set out to take inspiration from the form of a classic tabletop water feature and bring the original layout to life as a modern centerpiece that pairs natural elements with digital art. Using Autodesk Fusion 360 throughout the entire project, I was able to precision model the frame and custom components to seamlessly integrate every piece of hardware.
The overall design centers around a clean, self-contained body that keeps the water plumbing and electronic wiring neat and organized within the frame. Positioned directly inside the basin beneath the waterline is an Arduino controlled display screen flanked by underwater lighting. The screen runs dynamic animations such as digital fish swimming beneath the cascading water while the submerged lights illuminate the basin and highlight the moving water flow.
Whether you want to experiment with underwater display enclosures, build a custom tabletop water feature, or blend microcontrollers into everyday space decor, this guide outlines the structural designs, wiring schematics, and assembly steps to bring it to life.
Key Features
- Submerged Animation Display: Built-in display screen playing underwater pixel/sprite animations directly below the water surface.
- Underwater Lighting: Integrated waterproof lights that illuminate the basin floor and accentuate the water motion.
- Arduino Integration: Microcontroller system managing animation cycles and lighting effects.
- Sealed Self-Contained: Designed with water-isolation techniques to keep electronics safe from active water flow.
Supplies
1. Electronics Hardware
- Microcontroller: Arduino Mega × 1
- Display Screen: 1.28" Round TFT LCD Display Module (240×240 RGB resolution) × 1
- Water Pump: Submersible 5–12V DC Water Pump (300 L/H capacity) × 1
- Mist Maker: Ultrasonic Mist Maker Fogger / Atomizer (113KHz, 380ml/h, 20mm disc) × 1
- Lighting: RGB LEDs × 2
- Mist Spotlight: 1W High-Power LED with 100Ω Resistor(Warm White, 3000K–6300K) × 1
- Resistors: 220Ω Resistors × 6 (for LED current limiting)
- Power Supply: 12V 3A DC Power Adapter × 1
- Voltage Regulation: LM2596 DC-DC Buck Converter Module × 1
- Wiring: Electrical hookup wires and jumper wires
- Power Control: Main Power Switch (SPST Toggle / Rocker Switch) × 1
2. Structural Construction Materials
- Casting Structure: Cement and Sand (for forming the main waterfall body)
- Paints: Acrylic Paint (Black, White, Yellow)
- Waterproofing Fabrication:
- 2mm Acrylic Sheet (for the waterproof display screen viewport)
- Epoxy Glue (for high-strength watertight bonding)
- Silicone Glue (for flexible waterproofing seals around wire conduits)
- 3D Printing Material: PLA Filament (for printing molds, screen bezels, and internal component housings)
3. Tools
- 3D Printer
- Power Drill
- Handsaw
- Hot Glue Gun
- Soldering Iron Solder
Sculpting and Sealing the Main Body
This step covers building the square double-wall mold using 3mm KT board, casting a solid 10mm-thick cement basin structure, 3D printing the main rock body, and coating it in cement paste for a natural stone texture.
1. Cutting Assembling the KT Board Mold:
- Cut Mold Panels (3mm KT Board):
- Base Plate: 1x 180mm × 180mm
- Outer Walls: 4x 180mm wide × 70mm high
- Inner Core Walls: 4x 160mm wide × 70mm high
- Build the Outer Box: Glue the four 180mm × 70mm outer wall panels around the 180mm × 180mm base plate using hot glue or tape along all outer seams to form a top-open box.
2. Mixing Casting the Base and Walls:
- Mortar Mixture Ratio: Mix fine sand, cement, and water in a 2:1 ratio (2 parts sand to 1 part cement). Add water gradually until you reach a pourable, smooth consistency.
- Cast the 10mm Base: Pour an even 10mm thick layer of cement mixture into the bottom of the outer box. Tap the sides to release air bubbles and let it cure until set.
- Install Inner Core Cast Walls: Glue the four 160mm × 70mm inner wall panels together on top of the cured 10mm cement base, creating a uniform 10mm gap between the inner and outer KT board walls.
- Fill Perimeter Gaps: Pour the cement mixture into the 10mm gap around all four sides. Pack gently with a thin stick to eliminate air pockets, then allow the entire basin structure to cure fully before peeling off the KT board panels.
3. 3D Printing Coating the Main Body:
- 3D Printing: Print the main waterfall body 3D model using PLA or PETG. Ensure slicer supports are enabled.
- High-Cement Surface Coating: Mix a thick brushable paste with a higher cement proportion using a 2:1 cement-to-sand ratio (2 parts cement to 1 part fine sand) with minimal water.
- Texturing: Brush a layer of this cement paste over the 3D-printed rock body to cover layer lines and create a rugged, natural stone surface finish.
4. Joining the Main Body Reservoir:
- Bracing: Join the cement-coated 3D rock body to the cast cement reservoir using supportive iron brackets or treated wooden blocks.
- Sealing: Apply waterproof silicone or epoxy around all bracket joins and pass-through seams to guarantee a rigid, leak-proof assembly.
Downloads
Crafting the Bamboo Fence and Water Channel
This step covers 3D printing all bamboo elements—including the perimeter fence, decorative bamboo sticks glued to the body, and the functional central water channel—and mounting them securely using epoxy.
3D Printing Infill Settings:
- Decorative Bamboo Sticks Fence: Print the fence sections and decorative bamboo sticks using standard 15%–20% infill. These pieces serve as rustic accents for the main body and reservoir edges.
- Central Bamboo Water Channel: Set the central bamboo spout/channel to a higher infill percentage (50%+ or 100% solid walls). This ensures maximum strength, prevents water from seeping through layer lines, and guarantees complete waterproofing.
Painting Finishing for Realism:
- Base Coat (Yellow): Coat all 3D-printed bamboo parts in a warm bamboo-yellow acrylic base to establish a natural bamboo shade.
- Depths Nodes (Black): Use thinned black acrylic paint with a fine brush to darken the segment rings, recessed crevices, and inner grooves to add natural depth and shadow.
- Edge Highlights (White): Lightly dry-brush white paint over the raised edges and outer ridges to create a sun-bleached, lifelike sheen.
Assembly Mounting:
- Decorative Accents: Mix a small batch of 2-part waterproof epoxy and apply it to the back of the decorative bamboo sticks, gluing them firmly onto the main waterfall body.
- Perimeter Fence: Epoxy the printed fence sections directly along the basin perimeter edges for a rigid, permanent bond.
- Water Channel Alignment: Use epoxy to permanently mount the high-infill central bamboo channel directly beneath the water discharge path, sealing all seams to ensure water glides smoothly down into the basin without leaking.
Installing the Arch (or Optional Bridge)
To frame the lower basin, we install an architectural arch across the water feature. While a traditional bridge can be used, this curved arch structure provides maximum clearance, leaving an unobstructed view of the submerged digital display below.
Components Materials Needed
- 3D Printed Arch: Display_View_Arch.stl
- 3D Printed Bridge (Optional Alternative): Bridge.stl
- Adhesive: Epoxy glue or silicone glue
- Finishing Paints: Acrylic paint (Black, White, Yellow)
Assembly Steps
- Selecting the Arch or the Bridge:
- Two design options were created for this span: a bridge and a curved arch. While both fit the aesthetic, the arch was selected because its higher clearance provides a completely unobstructed view of the submerged display.
- Embracing the Exposed Infill Aesthetic:
- During the 3D printing of the arch, a print failure left the internal infill pattern exposed. However, this exposed geometric structure actually gave the piece a striking, organic texture that resembles rustic lattice or woven timber. Rather than re-printing, keeping this unique pattern creates a distinct, handcrafted look that adds character to the build.
- Painting Weathering:
- Dry-brush the exposed internal grid and outer rim of the arch using a mix of black, white, and yellow acrylic paint.
- Layer the paint lightly over the raised infill lines to highlight the internal texture and visually tie the piece in with the surrounding stone body.
- Mounting to the Main Body:
- Position the arch feet onto the designated ledges along the main body rim, confirming that it cleanly frames the screen below.
- Apply a dab of epoxy glue or silicone glue to the base of each foot.
- Set the arch firmly into place and allow the adhesive to cure completely.
Installing the Submerged Screen
Housing the 1.28" Round TFT display underwater requires a reliable, watertight barrier that protects the sensitive electronics while maintaining crystal-clear visibility through the water. In this step, we will cut a custom protective acrylic window, solder and insulate the display connections, and secure the screen from underneath the basin floor using hot glue.
Hardware Materials Needed
- Display: 1.28" Round TFT LCD Module (240x240, GC9A01 driver)
- Window Material: 2mm thick clear Acrylic Sheet
- 3D Printed Cover: Display_Top_Cover.stl (Printed in PLA)
- Wiring: 7-conductor micro hookup ribbon cable
- Sealing Insulation: Hot glue gun glue sticks, clear silicone glue, shrinking tube
- Tools: Acrylic cutter / utility knife, ruler, soldering iron
Assembly Steps
- Cutting Mounting the Acrylic Window:
- Measure and score a 45mm × 45mm square from the 2mm thick clear acrylic sheet using an acrylic cutter or utility knife, then snap it cleanly along the score line.
- Apply a continuous bead of silicone glue around the top recess on the base floor and press the 45mm × 45mm acrylic sheet firmly onto the base to form a watertight seal.
- Wiring, Soldering Insulation:
- Carefully solder 7 micro hookup wires to the 7 display header pins (VCC, GND, SCL, SDA, RES, DC, CS).
- Slide shrinking tube over each of the 7 soldered pin joints and apply heat to insulate and reinforce the connections against short circuits.
- Apply a layer of silicone glue over the soldered joints and wire entrances to thoroughly waterproof the electrical connections.
- Mounting the Screen Cover:
- Print Display_Top_Cover.stl in PLA.
- Attach the 3D-printed top cover to the back of the display screen using hot glue to lock the module in place inside its cover.
- Align the screen assembly face-up directly underneath the glued 45mm × 45mm acrylic window from the underside of the base.
- Secure the entire assembly to the underside of the base using hot glue to seal and hold the screen firmly against the acrylic lens.
Downloads
Submerged Basin Lighting
Integrating underwater lighting brings the lower basin to life, illuminating the water clarity, accentuating the moving current, and highlighting the surrounding stone texture. In this step, we will wire two RGB LEDs in parallel using a custom 3D printed mount and seal them for complete submersion.
Hardware Materials Needed
- RGB LEDs: 5mm RGB LEDs × 2
- Current-Limiting Resistors: 220Ω Resistors × 3 (one each for the R, G, and B lines)
- Mounting: 3D printed LED mount holder (PLA)
- Wiring: 4-core micro hookup wire / stranded wire
- Waterproofing Insulation: Clear silicone glue, shrinking tube
- Control Pins (Arduino Mega): PWM Pins 2 (Red), 3 (Green), and 4 (Blue)
Assembly Steps
- Preparing the LED Mount:
- Print the LED mount holder using PLA filament.
- Test fit both RGB LEDs into the mounting sockets to ensure a snug, flush fit.
- Parallel Wiring Resistor Assembly:
- Individual Channel Resistors: Solder a 220Ω resistor directly inline with the Red, Green, and Blue leads of LED #1 (3 resistors) AND LED #2 (3 resistors) before joining them together.
- Parallel Join: Join the remaining ends of the matching resistors together (Red-resistor to Red-resistor, Green-resistor to Green-resistor, Blue-resistor to Blue-resistor) and connect the Common leads together.
- Extension Lead Connection: Attach the main 4-core extension lead to the joined outputs to route back to the electronics bay.
- Pin assignment mapping for the Arduino Mega:
- Red Line: Arduino PWM Pin 2
- Green Line: Arduino PWM Pin 3
- Blue Line: Arduino PWM Pin 4
- Common Line: Ground (or 5V for Common Anode)
- Slide shrinking tube over every exposed solder joint and apply heat to insulate each connection.
- Waterproofing Basin Installation:
- Press both RGB LEDs securely into the 3D printed holder.
- Coat the rear wire junctions and the base of the LED sockets with silicone glue to form a completely submersible barrier.
- Seat the completed LED mount assembly into its designated recess on the basin floor.
- Pull the wiring through the internal body channel and secure the holder in place with a drop of silicone glue.
Downloads
Integrating the Ultrasonic Mist Maker
To add a captivating atmospheric effect, an ultrasonic mist maker kit is mounted directly beneath the upper rock structure. Using a porous wicking rod assembly, the atomizer draws water continuously up to the membrane, producing a dense fog that cascades naturally down the waterfall face without needing the atomizer disk submerged.
Hardware Materials Needed
- Mist Maker Kit: 113KHz Ultrasonic Mist Maker Transducer Disk with Driver Board, Plastic Housing Frame, and Porous Wicking Rod
- Power Supply: 12V DC Direct Power Supply
- Adhesive: Hot glue gun or Epoxy glue
- Wiring Insulation: Hookup wire, shrinking tube
- Tools: Drill with small drill bit (sized to mist outlet aperture)
Assembly Steps
- Drilling the Mist Outlet:
- Mark the chosen position on the upper body rock structure directly above where you want mist to spill over the cascade.
- Drill a small, clean hole through the body structure to create a clear mist exit port.
- Assembling the Mist Module:
- Insert the porous wicking rod into its plastic holder frame.
- Seat the ceramic atomizer disk into the top of the plastic housing so its lower membrane rests firmly against the top end of the wicking rod.
- Ensure the top vibrating surface of the membrane faces upward toward the drilled opening.
- Under-Body Mounting Attachment:
- Align the assembled mist module directly underneath the drilled hole from the inside of the body.
- Verify from the top view that the center vibrating membrane of the disk is completely clear and unblocked by the hole edges.
- Apply hot glue generously around the plastic housing rim to lock the entire assembly firmly in place against the underside of the body structure.
- Wiring Direct Power Connection:
- Connect the mist maker driver board input leads directly to your 12V system power line.
- Slide shrinking tube over the wire connections and apply heat to insulate the joints against humidity.
- Route the wicking rod's lower end down into the water reservoir so it absorbs water and stays saturated during operation.
Plumbing the Waterfall and Calibrating Water Flow
A smooth, serene water cascade relies on a steady flow from the pump to the bamboo outlet. In this step, we will route the water feed directly to the central bamboo tube, connect the pump to an adjustable DC-DC step-down buck converter for manual flow control, and seal the plumbing using epoxy resin.
Hardware Materials Needed
- Pump: Submersible 12V DC Mini Water Pump
- Flow Control: LM2596S DC-to-DC Adjustable Step-Down Buck Converter Module
- Plumbing: Flexible silicone tubing (matched to pump outlet nozzle)
- Adhesive: Two-part Waterproof Epoxy Resin
- Power Supply: 12V DC Main System Power Supply
- Insulation: Shrinking tube
- Tools: Small flathead screwdriver (for buck converter potentiometer adjustment), wire strippers, soldering iron
Assembly Steps
- Plumbing Route Bamboo Alignment:
- Place the submersible mini pump flat at the bottom of the lower water reservoir chamber.
- Attach the flexible silicone tubing securely onto the pump's outlet nozzle.
- Route the tubing through the internal vertical channel up to the middle bamboo segment.
- Insert the tube tip directly into the rear opening of the central bamboo segment.
- Apply a generous coating of mixed two-part epoxy around the tube-to-bamboo joint to create a permanent, watertight anchor. Allow the epoxy to cure completely.
- Power Wiring via LM2596S Buck Converter:
- Solder the main 12V DC positive (+) and ground (-) power lines to the IN+ and IN- terminals of the LM2596S buck module.
- Solder the positive (+) wire of the submersible pump to OUT+ and the negative (-) wire to OUT- on the module.
- Slide shrinking tube over all solder points on the module pins and apply heat to insulate against moisture.
- Water Level Setup Flow Calibration:
- Fill the lower reservoir until the pump body is completely submerged.
- Power on the 12V main supply.
- Use a small flathead screwdriver to turn the brass potentiometer screw on the LM2596S module to adjust the output voltage (stepping it down from 12V to your desired level, typically between 5V and 9V).
- Fine-tune the voltage until the pump produces a tranquil, continuous stream through the middle bamboo without splashing water onto the submerged screen or surrounding body.
Circuit Diagram and Code Setup
With the physical structure built, it is time to complete the electrical wiring and program the microcontroller. In this step, you will connect the GC9A01 round display and RGB accent LEDs according to the circuit diagram, install the necessary libraries, and flash your choice of dual-function sketch (which handles screen graphics and LED lighting simultaneously)
Hardware Software Requirements
- Microcontroller: Arduino Mega 2500
- Display: 1.28-inch GC9A01 Round TFT Display
- Lighting: Common Anode RGB LED (with 220Ω current-limiting resistors)
- Driver Library: DIYables_TFT_Round
- Software Environment: Arduino IDE
- Code Files: Main.ino (3 Goldfish) or Animation_2.ino (Underwater Ocean)
Part 1: Circuit Diagram Pin Mapping
GC9A01 TFT DISPLAY PINOUT
- VCC ---> Arduino Mega 5V (System Power)
- GND ---> Arduino Mega GND (Common Ground)
- SCL / SCK ---> Arduino Mega Pin 52 (Hardware SPI Clock)
- SDA / MOSI ---> Arduino Mega Pin 51 (Hardware SPI Data)
- RES / RST ---> Arduino Mega Pin 8 (Display Reset)
- DC ---> Arduino Mega Pin 9 (Data / Command Control)
- CS ---> Arduino Mega Pin 10 (SPI Chip Select)
COMMON ANODE RGB ACCENT LED PINOUT
- Common Anode (Longest Pin) ---> Arduino Mega 5V
- Red Lead ---> 220 Ohm Resistor ---> Arduino Mega Pin 2 (PWM)
- Green Lead ---> 220 Ohm Resistor ---> Arduino Mega Pin 3 (PWM)
- Blue Lead ---> 220 Ohm Resistor ---> Arduino Mega Pin 4 (PWM)
Part 2: Code Setup Upload
1. Setting Up the Library IDE Environment
- Open the Arduino IDE on your computer and connect the Arduino Mega via USB.
- Go to Tools > Board and select Arduino Mega or Mega 2500, then select your COM port under Tools > Port.
- Open the Library Manager, search for DIYables_TFT_Round, and click Install.
2. Selecting Preparing Your Sketch
Open your chosen sketch file:
- Main: Features 3 goldfish swimming around on the screen for a calm, realistic aquatic look.
- Animation_2: Features an underwater sea animation for a dynamic, motion-filled visual effect.
3. Customizing RGB LED Patterns
Modify the PWM output values on pins 2, 3, and 4 in your code to set your preferred lighting mood (e.g., gentle blue pulses, warm golden glow, or smooth color cycling).
4. Uploading Verification
- Click Verify (checkmark icon) to compile the code and ensure there are no missing dependencies.
- Click Upload (arrow icon) to flash the sketch onto the Arduino Mega.
- Check the screen through the acrylic window to verify the graphics center properly on the 240x240 round display.
- Power on the 12V supply to ensure the pump, mist maker, and screen run simultaneously without voltage drops or screen flickering.
Adding Landscaping, Trees and Final Details
With the electronics and water systems fully operational, this final assembly step focuses on adding plastic trees, natural ground textures, and custom paint accents to bring your desktop waterfall to life.
Landscaping Hardware Materials:
- Plastic Trees: Waterproof foliage for building depth around the rock structure.
- Preserved Artificial Moss: Fills gaps and hides raw edges around the display base.
- 1W High-Power LED (Warm White 3000-6300K): Backlights the fog layer to make the mist stand out.
- Aquatic Plant: Hides the 1W LED housing while letting light shine through the mist.
Assembly Concealment:
- Base Trees: Glue moss into crevices and stake plastic trees into the upper rockwork.
- Spotlight Setup: Mount the 1W warm white LED near the mist outlet and cover it with the aquatic plant for a hidden light source.
- Wiring: Run all LED and display leads behind the rockwork out of line-of-sight.
Customize As You Wish:
- Plastic Trees: Trim or arrange trees to fit your preferred scale and layout.
- Touch-Up Painting: Add dry-brushed acrylic highlights or mossy washes to the rock faces for depth.
Final Check:
- Wipe down acrylic panels and run a 30-minute test to verify water flow, mist illumination, and dry electronics.
Final Testing, Water Fill and Operation
With assembly complete, this step covers filling the reservoir, powering up the components, tuning the mist and lighting effects, and completing your desktop waterfall!
Water Fill Preparation:
- Water Selection: Fill the reservoir with distilled or reverse-osmosis water to prevent mineral buildup on the mist maker disc and display glass.
- Water Level: Ensure the water completely covers the pump intake and sits at the correct submersion depth for the ultrasonic mist maker.
Power-On Sequence:
- Main Power: Connect the 12V primary power supply to activate the pump, mist generator, and step-down converters.
- Control Board: Verify the Arduino Mega powers up, initializing the GC9A01 display, RGB accent lighting, and the 1W warm white mist spotlight.
System Tuning Final Checks:
- Flow Rate: Adjust the inline pump valve so water glides smoothly down the channel without splashing the acrylic frame or electronics.
- Mist Illumination: Position the aquatic plant cover over the 1W spotlight to maximize fog visibility across the waterfall base.
- Leak Inspection: Check all seam joins, cable pass-throughs, and structural bases for slow leaks or condensation drips during a 15-minute test run.
Congratulations Thanks!
You have successfully built a professional-grade, rustic desktop waterfall featuring dynamic TFT screen animations, custom mist backlighting, and integrated RGB mood lighting!
Thank you for reading through this guide! If you enjoyed this project or built one yourself, please drop a comment, share your photos, and favorite this Instructable. Happy making!