Simple Christmas Tree Christmas Tree Ornament

When the only tool you have is a hammer, every problem looks like a nail. An LED ornament for the Christmas tree can be built in any manner of simple, easy implementations. You certainly don’t need an ARM Cortex M4 CPU running at 120MHz having a mouthful of three letter features like FPU, ETM, ETB, ECC, RWW, TCM, EIC, AES, CAN bus and much, much more. But [Martin Held] built a super simple LED Christmas tree ornament using the ATSAME51 series micro-controller, which he regularly works with and had on hand, and lots of bi-color LEDs. He already had schematic symbols and programmers for the device from other projects where he uses it more extensively, so putting it all together in time for the festive season was that much faster for him, despite the fact that the micro-controller was most likely the cheapest part of the BOM, besides the passives.

At this point it might be tempting to argue that it would have been so much simpler to use addressable LED’s, such as the WS2812B or the APA102C. You can drive them using a more basic micro-controller, and not require so many GPIO pins. But using such “smart pixel” LED’s for hand assembled prototypes can sometimes lead to unexpected results. If they are not stored in sealed tape/reel form, then storage conditions can have an adverse effect leading to dead pixels. And, they need a specific baking procedure before being soldered. Doing that for a few LEDs at home can be tricky.

So for the LED’s, he again went a bit off the beaten path, selecting to use three different color styles of bi-color LED’s with easy to hand-solder, 1206 footprints. This allows him to get a fairly random mix of colors in the completed ornament.

The LED array is pseudo-charlieplexed. One terminal of each LED goes to a GPIO pin on the micro-controller and the other terminal of all the LED’s are connected to a single complimentary pair of N-channel/P-channel MOSFETs — connected in totem-pole fashion. Depending on which MOSFET is switched on via a GPIO pin driving the gate pin high or low, the second terminal of each LED gets connected to either supply or ground. In combination with the GPIO pins being driven high/low, this allows the bi-color LED to be biased in either direction. Getting each LED to emit one color is simple enough — setting all LED GPIOs low, and MOSFET gate GPIO high will bias the LEDs in one direction. Reverse the GPIO logic, and the LEDs will be biased in the other direction. If this is done slow enough, the two colors can be differentiated easily. If the driving logic is made fast, changing states every 10us, the two separate colors merge to form a third hue. With some clever bit of code, he also adds some randomness in the GPIO output states, resulting in a more appealing twinkling effect. [Martin] does a detailed walk through in the video embedded below.

If you have the same bunch of parts lying around and wish to replicate the project, be warned that the KiCad source files will need some work to clean up errors — [Martin] was in a hurry and knew what he was doing so there are some intentional mistakes in the schematic such as using the same symbol for the N-channel and P-channel MOSFETs, and uni-directional LED symbol in place of the bi-directional one. And for programming, you will need one of these pricey pogo-pin style cables, unless you decide to edit the PCB before sending off the Gerbers.

[Martin] built just three of these bespoke ornaments, retaining one and giving away the other two to a neighbour and a co-worker. But if you would really like to build a tree ornament with addressable LEDs, then check out the Sierpinski Christmas Tree which can be cascaded to form an array of tree ornaments.

Continue reading “Simple Christmas Tree Christmas Tree Ornament”

Down The Rabbit Hole Of STM32 Clock Options

Once you venture beyond the tame, comfortable walls of the 8-bit microcontroller world it can feel like you’re stuck in the jungle with a lot of unknown and oft scary hazards jut waiting to pounce. But the truth is that your horizons have expanded exponentially with the acceptable trade-off of increased complexity. That’s a pretty nice problem to have; the limitation becomes how much can you learn.

Here’s a great chance to expand your knowledge of the STM32 by learning more about the system clock options available. We’ve been working with STM32 chips for a few years now and still managed to find some interesting tidbits — like the fact that the High Speed External clock source accepts not just square waves but sine and triangle waves as well, and an interesting ‘gotcha’ about avoiding accidental overclocking. [Shawon M. Shahryiar] even covers one of our favorite subjects: watchdog timers (of which there are two different varieties on this chip). Even if this is not your go-to 32-bit chip family, most chips have similar clock source features so this reading will help give you a foothold when reading other datasheets.

There is a clock diagram at the top of that post which is small enough to be unreadable. You can get a better look at the diagram on page 12 of this datasheet. Oh, and just to save you the hassle of commenting on it, the chip shown above is not an f103… but it just happened to be sitting on our desk when we started writing.

Arduino-Controlled Marquee Arrow Points The Way To Whatever You Like

Reader [pscmpf] really digs the scrolling light look of old marquee signs and as soon as he saw some Christmas lights with G40 bulbs, he was on his way to creating his own vintage-look marquee arrow.

We must agree that those bulbs really do look like old marquee lights or small vanity globes. [pscmpf] started by building, varnishing, and distressing the wooden box to display the lights and house the electronics. He controls the lights with an Arduino Pro and an SSR controller board. The 24 lights are divided into ten sections; each of these has its own solid-state relay circuit built around an MC3042 as the opto-coupler, with a power supply he made from a scrap transformer.

[pscmpf] shares some but not all of his code as it is pretty long. There are five patterns that each play at three different speeds in addition to a continuous ‘on’ state. In his demonstration video after the jump, he runs through all the patterns using a momentary switch. This hack proves that Arduino-controlled Christmas lights are awesome year-round.

Continue reading “Arduino-Controlled Marquee Arrow Points The Way To Whatever You Like”

Arduino Christmas Lights

Here’s a cool hack to get you in the December holiday mood! Arduino controlled Christmas lights!

It all started because [Anx2k] had some leftover LED’s from one of his other projects, so he decided to make use of them as permanently mounted Christmas lights. He’s installed them underneath his tiled roof, and run all the wires into his attic where he has an electrical box serving as the main control hub. He uses an Arduino Uno to control them, and a 460W computer power supply to provide the juice. The LED modules themselves are Adafruit RGB pixel strings. There’s actually three of the LED modules per tile — two shining up to illuminate the tile, and one shining out.

He’s set up a ton of different patterns to run, and they are pretty awesome! Check out the video after the break.

Continue reading “Arduino Christmas Lights”