In order to get around university internet restrictions, I origianlly set this up as 3 independent pieces which you can find here if you have similar needs. This version is reccomended as it is much simpler.
- Raspberry pi - any model should work. Zero W + GPIO header & adapters + NOOBs will be cheapest.
- Wifi dongle if the pi does not have wifi chip
- 5v Power supply - DO NOT POWER LEDs DIRECTLY FROM THE PI
- Breadboard and jumper wires (male/male and male/female)
- Level shifter (Reccomended, seems to work without it)
- WS2811 LEDs
- 3' x 4' posterboard, paint, command strips, clear tape
- String wires on posterboard and paint letters corresponding to LEDs. Use clear tape to point the LEDs to the letters.
- Note: I suggest putting the input connector on the 'z' end if you want to put the pi below the board.
- Install Raspberry Pi OS on pi
- Connect pi and ws2811 LED strip to external 5v power source in parallel (see wiring below)
- Connect LED data wire to the pi GPIO 10 (actual pin number 19, I know it's confusing)
- Open terminal
- Enable SPI:
- Enter
sudo raspi-config
- Navigate to
Interfacing Options
and hit enter - Navigate to
SPI
and hit enter - Confirm and exit
raspi-config
- Enter
git clone 'https://github.com/CalebKussmaul/Stranger-Things-Integrated.git'
- Enter
cd Stranger-Things-Integrated
- Enter
pip install -r requirements.txt
(and wait...) - Edit the
stranger.py
file and adjust character mapping to the LED indexes as necessary - Enter
python app.py
You should now be up and running. Test it by entering a message in the terminal, or over the web by going to http://[your pi's IP address]:8080/stranger/
If you want to allow messages from the external internet, you will need to use your router to port-forward incoming traffic from your external IP to the pi's internal IP.
Note: technically the data wire takes 5v data, and the pi GPIO outputs on 3.3v. You may need to use a level shifter however it seems to work fine without it.
but you can probably get away with this: