This is a small (1.9" dia) board with 5 WS2812 RGB LEDs, an STM32F030F4 MCU,
3.3V regulator, IR receiver, CdS cell, three trimmer pots, SWD header and some
I/O pins brought out to testpoints and a SIP header. It's designed to mount
inside a piece of 1.5" PVC plumbing coupling to act as a light-up base for a
small rock crystal sphere. A 2.1mm ID barrel power connector allows it to be
powered from commonly available 5VDC wall warts. The trimmer pots allow selection
of light show algorithms, speed and brightness. The IR receiver can interface
with commonly available remote controls and the CdS cell allows it to adapt to
ambient light conditions.
I've had this rock sphere rolling around on my desk for years and decided to do
something dramatic for it. Coming up with some interesting light algorithms and
learning how IR messaging works seemed like a side benefit.
The STM32 family of parts are supported by a variety of commercial IDEs, all
of which are available in low-cost or limited free versions from the
I prefer to use open-source tools so I've set up a development environment
based on the GNU C compiler for ARM, available for free from the Launchpad
project. For downloading to the target I use OpenOCD and the ST-Link V2 SWD
interface that's available on most all of the inexpensive STM32 Discovery boards.
To accelerate development I also use the STM32 Standard Peripheral Library as
a starting point for my code and then optimize out the heavyweight functions
as required. Links to all of these are here:
ARM-supported GCC (somewhat newer than the CS version above).
OpenOCD: JTAG/SWD interface for
programming a debugging.