Third party cookies may be stored when visiting this site. Please see the cookie information.

PenguinTutor YouTube Channel

Snowman Wearable Christmas badge - Snow Pi

Programming a wearable Christmas badge with Wireless USB controller support and built-in game

Snowman LED sequence

Each year I join the Round Table with their Christmas santa run. Santa goes around the local area bringing Christmas cheer to local children and raising money for local charities. To make this happen needs volunteers that walk around dressed as snowmen and snowwomen.

Round Table Santa Claus

To add a bit of extra festivity I decided to add a bit of light, powered by a Raspberry Pi and a modified SnowPi. You can see some of what it does below.

Mounting the SnowPi

The SnowPi is designed to sit on top of a Raspberry Pi, but I wanted it go be alongside the Raspberry Pi so that it could be used on a Raspberry Pi Zero similar to a badge. I therefore swaped the 90 degree female connector with a straight one.

With the Raspberry Pi attached it's a bit big for a badge. I created a pocket to mount the Raspberry Pi and SnowPi into. For the Santa run the pocket will be pinned to a snowman costume, but it's shown here on a black coat. The Raspberry Pi is mounted in a Pimoroni Pibow Zero case, although you may not need a case if you mount it carefully.

A USB to microUSB OTG Converter Shim is used for the USB dongle for the Wireless USB controller. I used a USB power bank to power the Raspberry Pi. I also left the mini-HDMI to HDMI connector plugged in as that meant that each side of the Raspberry Pi Zero was about level.

Wireless USB Controller

The code is controlled using a Wireless USB controller bought from The PiHut. QJoyPad is used to convert the controller actions to keyboard presses for use with Pygame Zero. This is explained in my blog Using a gamepad or joystick on a Raspberry Pi with Pygame Zero and QJoyPad.

Soldering the SnowPi

The SnowPi is a discontinued item, but remaining stocks are currently being sold by ThePiHut. It is a PCB with 9 LEDs and a resistor array. The pads for the solder are very small, so it is quite difficult to solder. The white LEDs also appear to be poorly made, I normally used the flat part of the LED to determine which is the postive and negative side of the LED, but that is the oppisite way around on these LEDs. This meant I had to remove and resolder some of the LEDs, not only that but the ones I replaced only had some of the LEDs that worked. So I had to resolder some of the LEDs twice.

The code

The documentation for the Snow Pi is missing, so I needed to work out the pin positions by applying a power supply to each of the pins. I then used GPIO Zero to turn the relevant pins on and off.

The user interface code is written in Python Pygame Zero. Pygame Zero does not directly support controllers at the moment, so I had to use QJoyPad to convert the controller signals into keyboard commands.

Download the source code

SnowPi RGB

During 2020 there is was another successful Kickstarter project for the SnowPi RGB. This is a new version of the Snowman. There is no soldering required and it now has colour NeoPixels instead of single colour LEDs. The video below is a quick review:

See the following link for more details Interactive reaction game for the Raspberry Pi using a games joypad and SnowPi RGB.

Future projects

I'm always working on new projects
To find out about the updates please:
Subscribe to the PenguinTutor YouTube Channel
Follow @penguintutor on Twitter

Previous Raspberry Pi Outdoor display and NeoPixels
Raspberry Pi Outdoor display and NeoPixels
Next SnowPi RGB Python Game
SnowPi RGB Python Game