Snowflake: a project by Lucky Resistor

by Pimoroni

A set of five shimmering snowflakes that talk to each other to synchronise their nineteen cool white LEDs that sparkle and fade to create beautiful wintery effects. 

The snowflakes come pre-assembled on a gorgeous, festive-looking PCB panel. Each snowflake is pre-programmed, so all you have to do is pop them out, connect them together with the cables, and plug in power to bring them to life.

Check out our tutorial on how to get started with your Snowflakes.

They are programmed with eleven patterns; Ice Sparkle, Sky With Stars, Waves, Circles, Rain, Shift, Rotation, Diagonal, Flash, Particle, and Flicker. You can change between patterns and turn the snowflakes on and off using the button the power supply board. Check out this video to see the patterns.

This project was originally designed by Lucky Resistor as an assemble-yourself kit which took a lot of time and a very steady hand to complete! We've worked with them to make the kit accessible by pre-assembling the surface mount components and pre-programming the microcontrollers.

Contents

The kit comes in a beautiful gift box with the contents wrapped in black tissue paper and an introduction sheet to get you started. Perfect as a present!

  • 5x pre-assembled and pre-programmed snowflake PCBs
  • 1x pre-assembled micro-B USB power supply PCB
  • 1x power supply acrylic cover/switch with fixings
  • 4x 20cm flat flex cables (FFC)
  • 1x 100cm flat flex cable
  • 1x introduction sheet
  • Panel dimensions: 214x153x3.15mm
  • Snowflake dimensions: 79.5x79.5x3.15mm

Note that a micro-USB power supply is not included, but you can pick one up here.

If you want to experiment with reprogramming your snowflakes, you can solder a 5-pin 0.1" vertical female SMT connector to the landing on the underside of the snowflakes. Here are a couple of options: from Toby, and from Digikey.

Features

Each snowflake has: an ARM Cortex M0+ microcontroller that runs the firmware to control patterns on the LEDs, nineteen cool white 0402 LEDs, input and output connectors (for the FFC cables), a landing for a debug/programming header, and power regulator.

The snowflakes can communicate via a single bi-directional data line. During power up they determine their order in the chain so that effects can transition between them seamlessly. The first snowflake—the “master”—decides which effects will be displayed and synchronises the other boards in the chain.

The key to the snow-like shimmering effect are the tiny 0402 LEDs (check the photo with the pencil tip to see just how small they are). The small but bright, point-like light source creates diffraction spikes in your eyes. It's the same effect you experience if you look at snow in bright sunlight.

It was important to ensure that the LEDs' brightness changes linearly, since both LEDs and your eyes are non-linear in that respect. This was solved using a custom PWM control method. It is optimised to display a wide range of brightness levels and to work well at very low brightnesses (a common weakness of PWM brightness control). 

The kit includes flat flex cables to connect the snowflakes and power supply together easily. Alternatively, if you want to minimise the visibility of the cables, you can connect them by soldering super-thin enamelled wire using the exposed pads on the back of each snowflake.

The entire project (including the firmware, schematics, bill of materials, and PCB layout) is open source under GPLv3. You can find all of the files in the GitHub repository.

Over the past few years I have designed a new decoration for my home each winter. This snowflake decoration started as one of these projects.

I asked a graphic designer friend, Francesco Mazzola (https://mdmbunny.com), to design the outline and detailing which I then converted into functional PCBs.

Initially, I produced a small number of kits which were offered to members of the Boldport Club (https://boldport.com/). Due to the low volume, these kits were expensive to produce and the customer had to hand-solder all of the components—including the ninety-five individual 0402 LEDs—ouch!

Pimoroni found out about the project and got in touch to see if they could create a more accessible version as a kit with all of the surface mount components pre-assembled. I said yes! :-)

They reached out to Microchip (https://microchip.com) to see if they could support the project to help reduce the cost. As the kit includes five ATSAMD20E16 they made up a large part of the overall cost!

I hope you enjoy this project as much as I enjoyed designing it!

- Lucky Resistor