Introduction: BottleLamp

About: PLC, Arduino - Do it yourself project

This time, I would like to share how to make a decorative bottle lamp by using the waste materials.

Let's start with below videos:

  • Plastic bottle lamp version - Rainbow effect.

  • Plastic bottle lamp version- Normal effect

  • Glass bottle lamp version:

Step 1: Materials List & Tools

1. Main components are included:

  • 01 x Glass bottle with wide mouth neck. I used this bottle from BreakTalk.

  • 01 x Big size chewing gum bottle - D60mm.

  • 02 x Broken lamp reflector.
  • 02 x PVC tube end cap, one with diameter 60mm for BreakTalk glass bottle version and the other with diameter 114mm for chewing gum plastic bottle.

  • 01 x Potentiometer 5Kohm, with big knob.
  • 01 x Single Side Prototype PCB Circuit Board.
  • 16 x RGB Led, size 5mm, common anode.
  • 03 x TPIC6B595. (Optional: 03 x 74HC595 + 03 x ULN2803).
  • 04 x PNP Transistor A1013.
  • 03 x Decoupling Capacitor 0.1uF.
  • 24 x R100 and 04 x R560.
  • 03 x Ribbon cable 8P, 01 x Ribbon cable 4P, 01 x Ribbon cable 3P, 01 x Ribbon cable 2P.
  • Male header & Female header

2. Tools preparation:

Step 2: Schematic

I designed 2 versions of the lamp control circuits as shown above. The difference is in the column scanning circuit:

  • Circuit 1: 3 x 74HC595 - Common 8 bit shift register in combination with 3xULN2803.
  • Circuit 2: 3 x TPIC6B595 - Power logic 8 bit shift register.

Step 3: Circuit Soldering - Bottle Lamp Assembly


  • Measuring the diameter of the bottle neck. Soldering 8 RGB LEDs in round shape and make sure they are fit inside the bottle neck. All RGB LEDs anode pins are connected together; and the red, green, blue pins are connected to 3 separated ribbon cable header 8P.

  • To make them look like an old antique, I glued this led ring into two broken lamps reflectors, bunched together, with some dark spots that were scorched with fire. I also glued a small piece of D32 PVC pipe at the bottom of the reflector.

  • Soldering potentiometer with ribbon cable header 3P.

  • Drilling PVC tube end cap as follows:

- One big hole with diameter D32mm is drilled by hole saw machine.

- Three small holes with diameter about D5mm for 1x potentiometer, 1x female 5VDC plug, 1 x small push button.

  • Installing 5Kohm potentiometer with big rotary knob and glued BreadTalk bottle led ring at drilling holes on PVC tube end cap. Reflectors are optional, if you don't have it, you can glue bottle directly to PVC pipe cap.

  • Soldering RGB led control circuit following the schematic on STEP 2 - CIRCUIT 1 with 74HC595 + ULN2803.

  • Soldering small adapter for Arduino Nano with:

- Male header 4 pins: control 3x74HC595.

- Male header 3 pins: connecting to potentiometer.

- Male header 2 pins: connecting to push button.

  • Connecting BreadTalk bottle led ring, control circuit and Arduino Nano together. Installing 5VDC female plug and put all of them into PVC tube end cap and fix them by glue.

  • Finally, I installed push button. It's all DONE now, it looks really cool!


  • This is the second version that made from chewing gum white plastic bottle and PVC tube end cap diameter 114mm.
  • Sodering the RGB led ring with 2 layers.

  • RGB led control circuit following the schematic on STEP 2 - CIRCUIT 2 with TPIC6B595. This circuit can control 4 groups of 8 x RGB leds.

  • Drilling holes on PVC tube end cap, installed RGB led ring, 5Kohm potentiometer, push button and 5V DC female plug. Finally, I glued white plastic bottle covering the RGB led ring.

  • Finish.

Step 4: Programing

Plastic bottle version code is available at my Github:

Step 5: Finish

Thank for your watching!

Indoor Lighting Contest

Participated in the
Indoor Lighting Contest