How To Build The Xmas Lights From Stranger Things with Raspberry Pi

Xmas Lights From Stranger Things with Raspberry Pi
(Image credit: Tom's Hardware)

I’m a big fan of the Stranger Things series and I can’t wait for the next season. If you haven’t seen the show, in season 1 two characters communicate across different dimensions using Christmas lights with letters written underneath them. 

I built a replica of this a year ago, but with the upcoming release of season 4, it’s time to build a bigger and better version. These lights can be hung up on your wall, and can let friends, family, and even strangers communicate with you.

Latest Videos FromTom's Hardware
Ryder Damen
Freelance Writer

Ryder Damer is a Freelance Writer for Tom's Hardware US covering Raspberry Pi projects and tutorials.

  • AllSheKnows
    I haven't been into PCs as much over the last few years, but I came back here to spec out a new PC build I plan to buy. Looking around at the site at articles like this, I can see that this site has lost focus. I guess YouTube is the only place to go for PC enthusiasts anymore. This braindead junk definitely shouldn't be on a site with the reputation of Tom's.
    Reply
  • pixelpusher220
    AllSheKnows said:
    I haven't been into PCs as much over the last few years, but I came back here to spec out a new PC build I plan to buy. Looking around at the site at articles like this, I can see that this site has lost focus. I guess YouTube is the only place to go for PC enthusiasts anymore. This braindead junk definitely shouldn't be on a site with the reputation of Tom's.

    Given that multiple MOBO reviews can't even accurately count numbers of ports...you may be on to something
    Reply
  • mcf0u812
    Everything seem pretty straight forward but I run into issue's with the make run-server and make run-worker.

    After make run-server I get this:
    make: docker-compose: Command not found
    make: *** Error 127

    and after make run-worker I got this:
    Can't open /dev/mem: Permission denied

    So I ran worker with sudo and the lights blinked for a few seconds and then this message repeatedly pops up. I'm guessing it's because the server command isn't working.

    ERROR:root:Invalid URL 'web/next?key=': No schema supplied. Perhaps you meant http://web/next?key=?
    Any suggestions?
    Reply
  • mcf0u812
    Installed docker-compose and got closer. But now I think I'm really stuck.

    Step 4/7 : RUN pip install -r requirements.txt
    ---> Running in 2831c096731d
    Fatal Python error: _Py_InitializeMainInterpreter: can't initialize time
    PermissionError: Operation not permitted

    Current thread 0xb6fa4390 (most recent call first):
    ERROR: Service 'web' failed to build: The command '/bin/sh -c pip install -r requirements.txt' returned a non-zero code: 132
    make: *** Error 1
    Reply
  • ribeiroorafael
    Can I add some dummy bulbs C9 into addressable? To make the set more beauty
    Reply
  • ClarD
    ClarD said:
    The project is designed to install in a Docker container.
    Is there a page that describes how to install Docker?
    And the appropriate image and use it?

    It doesn't need to be in a container. It just needs Docker-Compose.

    https://docs.docker.com/engine/install/debian/
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose
    dpkg list docker*

    The Docker page leaves off docker-compose from the install.
    Reply
  • ClarD
    mcf0u812 said:
    So I ran worker with sudo and the lights blinked for a few seconds and then this message repeatedly pops up. I'm guessing it's because the server command isn't working.

    ERROR:root:Invalid URL 'web/next?key=': No schema supplied. Perhaps you meant http://web/next?key=?
    Any suggestions?

    The code is trying to retrieve an environment variable, SERVER_HOST, which doesn't exist. And it needs a schema.
    I added SERVER_HOST to my environment, and modified app.py to
    return 'http://' + host + '/next?key=' + key

    cd ~/stranger/stranger_things_lights/
    source .venv/bin/activate
    export SERVER_HOST=$HOSTNAME
    sudo -E env PATH="$PATH" make install-pi
    sudo -E env PATH="$PATH" make run-server

    Now it gets past that, flashes the initialization of the lights, but still loops on an error connecting to the server.

    fetching http://raspberypi4/next?key=ERROR:root:HTTPConnectionPool(host='raspberypi4', port=80): Max retries exceeded with url: /next?key= (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fb04c2a50>: Failed to establish a new connection: Connection refused'))

    It should be something other than port 80. I think port 5000, but I have played around with that without success.
    Reply