I am a big fan of the Stranger Things series and I can’t wait for the next season. If you haven’t watched this show, in Season 1, two characters use Christmas lights to communicate in different dimensions, with letters written under the lights.
I made a copy a year ago, but with the upcoming release of season 4, it’s time to make a bigger and better version. These lights can be hung on your wall, allowing friends, family and even strangers to communicate with you.
What do you need for this project
- Raspberry Pi 4 or Raspberry Pi 3
- USB power adapter for Raspberry Pi
- 8 GB (or larger) microSD card with Raspberry Pi OS.View our list The best microSD card For the Raspberry Pi.
- Two strands of 12v WS2811 LED (One thread will work, but two threads look more suitable for letter spacing)
- A 12 volt power supply (Any standard 12v power supply can work)
- Jumper cable
- Wire stripper
- Solder or wire nut
- A black and white printer and paper
- Press pin
How to use Raspberry Pi to make Stranger Things Christmas lights
Before you start, make sure you have set up Raspberry Pi OS.If you have not done this before, please refer to our article on how to do it Setting up the Raspberry Pi First time or how to do it Headless Raspberry Pi installation (There is no keyboard and screen).
1. Install git, Which will allow us to clone the code from github.com
sudo apt-get update && sudo apt-get install -y git
2. Clone repository And drop to the created directory.
git clone https://github.com/rydercalmdown/stranger_things_lights.git cd stranger_things_lights
3. Run the install command Install all necessary base and python components.
4. Connect two WS2811 strands together Use the connector that comes with it. You can use 1 strand, but I find that 2 strands are more suitable for letter spacing.
5. Connect GPIO pin 18 In pi Data pin to WS2811 share.
6. Wiring 12v WS2811 chain To the positive side of the 12 volt power supply. I use wire nuts to connect mine together.
7. Ground wire WS2811 chain To the negative terminal of the 12 volt power supply, There is also a jumper with a female header.
8. Connect this jumper to the ground pin On the Raspberry Pi.
9. Nail the WS2811 cable to the wall Use pushpins (or other methods you like).
10. Print out every letter in the alphabet From the text editor to the size you want.
11. Cut out and attach the letters Under LED light your choice.
12. Back to the Raspberry Pi, Open the worker/app.py file Use the text editor of your choice.
# in the stranger_things_lights directory nano worker/app.py
13. Edit the mapping dictionary to match your pins with lettersPins are zero indexed, so the first pin on your chain will be 0 and the last pin will be 99 (if you only have 1 chain, it will be 49). If there is the letter “A” under the last LED, please specify it as 99 (49 for only 1 string of LEDs).
14. Start the server component. It will start running on port 5000 in the background. To be safe, I originally designed the server to run separately because I allow public messages from the Internet, but if you use it yourself, you can run it simultaneously on the pi.
15. Start your work component Receive messages from the server.
16. Plug in 12v power supplyThis is separate from the USB power supply of the Raspberry Pi.
17. IP address to access your Pi And port from anywhere on the network. In my network, I put it in the browser:
18. Submit a message to the serverAfter the flashing light is displayed briefly to attract your attention, you should see it appear on the light letter by letter soon.
You can choose to expose this service to the Internet so that friends and family can send messages. Keep in mind that there are inherent risks in opening a port on a router or firewall at any time-so it is recommended that you only do this temporarily.
Depending on your router or modem-router combination, you may be able to choose port forwarding. If this is the case, you can forward port 80 on the router to the IP address and port 8000 of the Raspberry Pi. This means that any browser that enters your home IP address (such as http://10.0.0.0/) will be forwarded to the server running on your Pi, where they can submit messages.
For more advanced users, you can also consider setting up a cloud-based reverse proxy with TLS termination, but to share with friends and family, the above should be enough.