Shelly Home Assistant-compatible relay

Posted on Thu 19 September 2024 in Making • Tagged with electronics, xmas

Using a Shelly 1 Mini Gen 3 as an MQTT-controllable relay

For my Christmas lights, I've been using homemade MQTT-controllable relays. I've been wiring up an ESP2866, a relay, and a AC-DC converter. While this works, it's a bit of a rat's nest of wiring. So I decided to try …


Continue reading

Pi Zero Birdcam

Posted on Sat 15 June 2024 in Making • Tagged with python, raspberry pi

Nestbox camera with a Pi Zero W and PiCamera2

In an early post on this blog, I detailed my steps for creating a nestbox streaming camera. I've updated my setup so I thought a new post on the topic would be in order.

A Raspberry Pi Zero W and its …


Continue reading

Weather display on an LED matrix

Posted on Wed 24 April 2024 in Making • Tagged with electronics, circuitpython, python

Using CircuitPython on a HUB75 LED matrix

I bought a couple of surplus LED matrix panels a while back, and I finally got around to playing with them. My panels are 16x32 HUB75-compatible panels. I planned to "stack" them to create an effective 32x32 matrix. Adafruit makes a neat little …


Continue reading

How to find outdated Python requirements

Posted on Sun 07 April 2024 in Python • Tagged with python

Finding outdated Python packages

A quick Python technique this time. You can get a list of outdated Python packages installed on your system with a simple command:

pip list --outdated

That will list all the packages, including their dependencies. That's nice, but sometimes it makes it hard to know what …


Continue reading

Pixels part 3: FastLED

Posted on Tue 30 January 2024 in Making • Tagged with leds, electronics

In the first post in this series, I introduced RGB pixels, discussed the various types, and compared analog and true RGB pixels. In the second part, I covered wiring and shared my tips for reliably connecting to your microcontroller. In this third part, I will discuss the FastLED library, one …


Continue reading

Pixels part 2: the hardware

Posted on Thu 07 December 2023 in Making • Tagged with leds, electronics

In the first post in this series, I introduced RGB pixels. I discussed the various types and compared analog and true RGB pixels. I also covered power requirements. In this post, I'll cover wiring and share my tips for reliably connecting to your microcontroller. I also include a basic sketch …


Continue reading

An intro to RGB pixel LEDs

Posted on Mon 27 November 2023 in Making • Tagged with arduino, leds

RGB LEDs, sometimes called pixels, are lots of fun. Who doesn't like blinky lights?! They're not hard to use, though there's enough complexity to make these LEDs seem a bit daunting. In this post, I'll go through the basics to get you started on your blinky fun.

Traditional LEDs display …


Continue reading

This code is crap

Posted on Thu 31 August 2023 in Software Engineering • Tagged with engineering

Throughout my career, I've frequently heard developers lament that "this code is crap!" (well, they usually say ). It's usually some mid or senior level engineer looking at the existing codebase whining about how "bad" the old code is. To those situations, I say there's never a valid time to say …


Continue reading

Dad Jokes As a Service

Posted on Mon 24 July 2023 in Python • Tagged with python

Everyone loves a good dad joke

... now, if only there were some good dad jokes!

The ICanHazDadJoke site claims to maintain the internet's largest collection of dad jokes. GitHub user CrossNox has made a nice wrapper around their API. Together, this lets you retrieve a random dad joke programmatically.

Why …


Continue reading

Getting a Boolean from any value in Python

Posted on Fri 14 July 2023 in Python • Tagged with python

Getting a Boolean value from any data type

Recently, I was building a webhook that needed to accept and operate on varied data from outside sources. Included in that data were values meant to be Booleans. However, some callers were sending values like "Yes" or "no" or even "-1". I …


Continue reading