Introduction: Aquarium Diorama With Ledstrip

Please find links:

Why this project

Before the Fish Feeder project I build a diorama for my aquarium. My diorama is a scenery outside and behind the aquarium. Benefits of this type diorama are:
- No space inside the aquarium is used
- It is easy to change the scenery
- No algae will grow on the surface
- It will not interact with the water

Cons are:
- You need to maintain a algae-free glass to see the diorama

Step 1: Components

The main components are:
- Frame
- Ledstrip
- a nice picture
- Raspberry Pi

The frame has an angled rear wall. A picture will be be attached to the rear wall. The led strip will shine on this picture. The result is an aquarium with an interesting feeling of depth.

In this project all the components are build on the fly. For now I am satisfied with the result, but of course you are free to adjust to your own needs.

Building key points:
- To disperse the heat of the led, glue the led strip to an aluminum frame. The aluminum frame is made of a screen door. Check if this frame fits in the laminate flooring groove. See chapter “Building a frame” and “Building led strip”
- Use a ledstrip with all colors in a single SMD, see “Building a led strip”

Step 2: Building a Frame

The frame has an angled rear wall. All of the frame is made from scrap wood.
- Big wooden tent pegs 2x
- Side panels 2x
- Laminate flooring
- Wood glue
- Saw
- Paint

Measure the height of your aquarium to determine the height of the side panels of the frame. I had to make some cut-outs to provide room for the aquarium-cover and ledstrip.

Measure the width of your aquarium, subtract the thickness of the side panels, and you have the right length of rear laminate panels.

Use the pegs to angle the rear laminate panels. Glue the pegs to the side panels. Clamp carefully and wait a day to be sure that the glue is fully dry. The laminate is often foreseen with a “plastic” layer on which wood will not attach. Partially grind off these layers the give the glue some decent grip on the laminate. Wait another day for the glue to dry.

Laminate has a tongue and groove. Position the groove to the upside to accommodate the ledstrip, see next step!

Step 3: Building a Ledstrip

Be sure to use SMD5050 and not a SMD3528 ledstrip. The SMD3528 has separate red, blue and green leds. These three colors are clearly visible on your diorama. A SMD 5050 ledstrip has all colors incorporated in a single SMD and has a nice single colour.

- The main component is a ledstrip (in my case 1m) which is dimmable , with remote connector and has a self-adhesive layer
- 44 button remote controller
- power supply
- Grey pvc pipe
- Aluminum screen door

Before starting in building the ledstrip verify if the ledstrip is fully functional.

Use a small dremel grinder to grind a U-profile out of the aluminum door frame. In my case one side was ~20mm, topside ~20mm, other side ~10mm. The 20mm side is to cover the ledstrip to avoid direct sight of the bright leds. The 20mm top is to glue the ledstrip. The 10mm side slides into the groove of the laminate. In my case I ordered a 1m ledstrip which was too long. You can decide to shorten the ledstrip (when ordering the ledstrip verify if this is possible). The extra length can be housed inside the pvc-tube which can be mounted on the side of the frame.

The attached pictures show the first test run with the power supply connected and manually controlled with the remote control. Check if the result is according your liking.

Step 4: Picture

I used Gimp to compose a picture, every other program is fine. Gimp is a free and open source program, it’s a bit difficult to learn, there a tutorials available, can handle large files, layers and has plenty of tools available. Be aware of the size of your picture, about 500MB. There are many other possibilities like a painting, sketch or whatever you like.

If you use a picture:

Please verify the licenses before you use these photo’s.

The width of the aquarium is 80cm, the heigth of the aquarium is 45cm. My aquarium has an internal filter, so the internal width is 70cm. For the picture the closest size is 75x50cm on photo-quality paper. I like this quality because it is a bit sturdy and not so fragile.

The size of the picture in your computer is 75x45, use 300dpi for a nice quality.
- The width of your picture is 750mm / 25,4mm/inch * 300dpi = 8858pixels
- The height of your picture is 450mm / 25,4mm/inch *300dpi = 5315pixels.

To attach the picture to the frame use double sided tape.

Because you can slide the frame sideways you have access to your picture so it’s very easy to adjust the picture. Be aware of the ledstrip and other cables that there is no interference.

Step 5: Schematics (connecting to Raspberry Pi)

The ledstrip receives commands from an infrared remote controller. The raspberry pi can be used to send infrared commands. The hardware and software is after an example on this site, see links:

Note: In this schematic the resistor R2 is replaced by a red led. Because of the red led on the breadboard you can see that commands are sent. A single infrared led is used to send the infrared signals. Also you can see the IR-led with a camera.

- Raspberry Pi
- Red led
- IR led emitter 940nm 5mm
- Transistor 2N2222 / BC547 / or equal
- Resistor 220Ohm
- Extension cord e.g. 3.5mm phone plug
- Bread board
- Jumper wires

Build the schematic on the breadboard and use the jumper wires to connect the schematic to the Raspberry Pi. The IR led is connected to the extension cord. This way your Raspberry Pi can be put in a place away from your aquarium (water).

For electrical safety always use a water drip loop!

To avoid interference in the receiver by other remote controllers the receiver is also housed inside the PVC-pipe on the side of the frame.

Step 6: Lirc

Now your Raspberry Pi is ready to send the IR signal by switching ON/OFF GPIO17. But how does it know HOW to send?

Setting up Lirc

“ LIRC is a package that allows you to decode and send infra-red signals of many (but not all) commonly used remote controls.”, see link

Install Lirc on your Raspberry Pi

sudo apt-get install lirc

Add the following lines to /etc/modules

lirc_rpi gpio_in_pin=18 gpio_out_pin=17

Add the following lines to /etc/lirc/hardware.conf

# /etc/lirc/hardware.conf
# Arguments which will be used when launching lircd


# Don't start lircmd even if there seems to be a good config file

# Don't start irexec, even if a good config file seems to exist.

# Try to load appropriate kernel modules

# Run "lircd --driver=help" for a list of supported drivers.

# usually /dev/lirc0 is the correct setting for systems using udev

# Default configuration files for your hardware if any

Reboot your Raspberry PI


Now your Raspberry Pi is ready to send the IR signal by switching ON/OFF GPIO17. But how does it know WHAT to send?

There are 3 possibilities:

Put your configuration file in the folder /etc/lirc

Reboot your Raspberry Pi and you are ready to go.

Step 7: Program & Result


In my case I wanted to simulate a sunrise with the ledstrip before the TL-lights were turned on and a sundown before lights were turned off. The timer power switch for the TL-lights is manually programmed and is not controlled by the Raspberry Pi.

The sunrise is programmed 2 minutes before the TL-lights are turned on, also the sundown is programmed 2 minutes after the TL-lights are turned off.

On day 1 to 10 of the month a blue color is turned on to simulate the light of the moon (moonrise and moondown). This feature can be left out.

To run this program:
- Copy the file to the home folder and put it i the desktop folder /home/pi/desktop
- Open a terminal
- pi@raspberrypi ~ $ python3 /home/pi/desktop/


Thoughts for a better design

- Add a LDR sensor to sense if the TL lights are turned on/off
- Use a remote powerswitch

Circuits Contest 2016

Participated in the
Circuits Contest 2016