Project tutorial
Dynamic and Interactive Fountain in a Bottle

Dynamic and Interactive Fountain in a Bottle © GPL3+

This project allows to have fun with water and light! You can control the two submerged engines with your hands!

  • 9 respects

Components and supplies

small submersible water pump DC3W
51gzz5eu9pl. sx425
Ultrasonic Sensor - HC-SR04 (Generic)
Ard nano
Arduino Nano R3
optical fiber generic
0.75 mm
09670 01
SparkFun Dual H-Bridge motor drivers L298
4415447 jg5sklyzsj
Resistor 220 ohm
plastic bottle
pvc for 2 litres
30m9984 40
Battery Holder, AA x 8
heat shrink tubing
(for creating the light set and connect the leds with the fiber

Necessary tools and machines

3D Printer (generic)
Laser cutter (generic)

Apps and online services

About this project

This is the list of the main steps to create the fountain in a bottle. The steps are described in a sequential order, but most of the steps can be done in parallel.

1. Print all the 3d templates

2. Build the two light sets

3. Create the circuit and connect the components

4. Create the submerged motor set

5. Upload the code to the Arduino

6. Final setup (Insert the submerged motor set in the bottle, Glue all sets on a board for the final layout).

7. Play with it

1. Print the 3d templates

For these 3d templates, you can find the.stl files on the Attachment section.

The first three items are enclosures to house and protect the electric devices, while the remaining are support items to sustain and make the artefact usable.

  • 2x HC-04 holders
  • L298N (upside and downside)
  • Arduino enclosure (upside and downside)
  • 2x Fiber Holders
  • fountain disk upper side
  • fountain disk down side

2. Build the two light sets

The light system is based on two led RGB and a set of optical cables.

The first step to build them, is to take the 2 RGB LEDs, solder each pin with the electric cables, cover each one with a heat shrink tubing. This allow to be more compact and avoid any short cut.

The second step, is to take the optical fibre cable, and cut it in 9-10 strings of about 10 cm each.

Then, join a heat shrink tubing together with the led as shown in the picture below.

The third step is to position the optical fibers on the holders, as shown in the pictures below.

3. Circuit and connected components

The electric circuit hosts all the 6 resistances needed for the 2 LGB LEDs and most of the connections related to the power (5v and Ground).

The connections shown of the picture, related to the prototype board, have been replicated on the circuit on the two pictures bellow.

The remaining components are connected directly to the Arduino nano.

The two submerged motors are coordinated by a L298N dual H-bridge (connections are shown on the previous circuit diagram).

The external power for the L298 is provided by the external batteries, the PWM (Pulse Width Modulation) are provided by the Arduino board and the four bridge's outputs are connected to the two submerged motors. (as shown in the picture below)

4. Create the submerged motor set

This was one of the most challenging part of the project. The submerged structure needs to keep the two motors horizontal separated at a given distance and a given angle, it needs to be stable at the bottom of the bottle, and last but not least to be waterproof.

The structure is based on two disks, (both the 3D.stl files are on the attachment section). The two disks and the submerged motors are glued together, using a hot glue. Then, a 5 mm foam is attached and glued around the two disks. with the aim to create a buffer and a cohesion with the bottle. The foam layer force the set to remain firm attached to the bottle and stable while operating.

The images below show few details of the submerged motor set.

5. Upload the code to the Arduino

The code for the Arduino is available at:

6. Final setup (Insert the submerged motor set in the bottle, Glue all sets on a board for the final layout).

To insert the submerged engine set on the bottle, you need first to cut the top of the bottle, and then create a hole on the side of the bottle for the engines cables.

Once the set is inside and the cables have been inserted, the next step is to seal the hole on the bottle and make the sealing waterproof. I used a proxy glue to seal the hole.

The two final steps are to test that system is waterproof, and glue all the elements together in a board as in the picture below.

7. Play

Then, the final step is to play and enjoy :-)


Custom parts and enclosures

HC-04 holder
L298N up_side
L298N up_side
L298N Down side
L298N Down side
Arduino Nano Upside
Arduino Nano Upside
Arduino Nano Down Side
Arduino Nano Down Side
Fiber Holder
fountain upper side
fountain below motors


Electric Schema
Electric Schema
Uploads2ftmp2f147d662a 20e1 4211 88cb ca8ec0a85a1b2ffuntain bb dtqvbn0ffk


Similar projects you might like

ATtiny85 Mini Arcade: Snake

Project tutorial by Arduino “having11” Guy

  • 20 respects

Otto DIY+ Arduino Bluetooth robot easy to 3D Print

Project tutorial by Team Otto builders

  • 219 respects

Interactive LED Name

Project tutorial by Pedro Mendez and Daniel Jablonski

  • 7 respects

3D Printed Lunar Phase Clock

Project tutorial by G4lile0

  • 56 respects

Joy Robot (Robô Da Alegria)

Project tutorial by Igor Fonseca Albuquerque

  • 34 respects

SSHS CS 7반 3조 StarPointer

Project tutorial by Team Starpointer

  • 10 respects
Add projectSign up / Login