Christmas tree: 2019

The tree control app in it’s current form. The default GUI elements in App Creator are a bit plane, but otherwise quite serviceable.

The tree control app in it’s current form. The default GUI elements in App Creator are a bit plane, but otherwise quite serviceable.

This year's Christmas's project involved adding a Bluetooth peripheral and Android app to my tree control box. It was a lot of fun getting back into the rhythm of these projects after several years of traveling holidays, although some of my sophomore era enclosure work might have been better forgotten.

I am really pleased to say that, cringe factor aside, I was largely able to just pick up the hardware and run with it. The RJ11 expansion port was perfect for adding the Bluetooth module, and all of the relays still function. I did swap out the power supply for a 5v unit, which reduce the linear regulator’s operating temperature a bit.

The Bluetooth module is an HC-05 configured to run in slave mode, which acts as a serial pass-through to the UNO. The app was created using MIT app inventor. I found that process to be much easier than I expected, and will certainly use the the website for future builds.

Project Materials:

App [click me]

Arduino [click me]

new operating modes:

(new) Static:

In static mode the user can designate which strips are on or off using the app. This is particularly useful when not all the strips are in use, or as a way to turn the entire tree on or off. It is also a fun feature to play with in real time.

Particular strips can also be designated as “overridden” in which case the strip obeys it's static on or off status even when the system is in other operating modes. (Great for when some strips are decorating things other than the tree)

(Old) Hemiola:

This is largely the same pattern, and code, that ran on the 2016 tree. It has been slightly tweaked to be non-blocking and to respect override requests. The pattern involves two moving dark patches (off relays), one of which switches every other count, and one of which switches every third count.

Ideas for future Jake:

  • Morris code pattern?

  • Timed shutdown/startup?

  • Auto-disconnect?