Downtown Interactive Tree Installation with Piezo Pickup

  • A few weeks ago I spoke with Tanya from KCBIA about doing some sort of interactive tree project for this year. She mentioned that she had seen an impressive tree, in another city, that would react to music. I thought that was a good project to start with. I did not know anything about the said tree and the details of how it was visualized, but I thought I could do something cool that would fit that general description. Here is the tree that they assigned me:



    At first I wanted to do something that was technically challenging; I was looking into ways to do spectrum visualization, but that seemed to make things overly complicated. To me the goal of the project was to acknowledge playing music with some mesmerizing animations. So I ended up designing something much simpler that would react based on the sound amplitude. Here are the list of main components in this project:

    • 40 meters (8 x 5m) of the individually addressable LED strips: ws2812b
    • Arduino uno
    • Piezo pickup
    • Some 22ga wires as well as some recycled power cord wires
    • A computer power supply
    • One potentiometer and one LED indicator
    • Eight 1000 to 2000 microfarad dielectric capacitor that I salvaged from our recycling circuit board box

    I started with a picture of the tree and had a little brainstorming session with @hdsheena about where the lights could go. This is what we came up with:

    Downtown CBC BMO Tree.png


    I had to estimate the amount of wire I needed to make for each string. I cut off the plug at the end of each string and used the wires I had to make a quick connect extension for them. The strips had an extra wire for power and ground and I used that to attach a capacitor to each strip.


    On the other side I used the common power supply connectors (4pin molex). Wiring was pretty straight forward; all 8 strings where wired in parallel, sharing power and signal. I soldered everything to make sure connections do not break during installation.



    I followed this tutorial to get started and used the Adafruit neopixel library. I started with writing a simple code that would animate a variable light segment from begining to the end of the strip. Then I added the analog input code to constantly read the value from the piezo pickup. I also added a bit of random sprinkling and colour changing when input value is high. I think the best feature of the animation is the change in the speed. While idle the light segments move slowly, but as it receives analog input, it starts to speed up. The full source code that is running on the tree right now is on github.

    Well that was all the easy part, the really difficult part of the project was installing the control box and the lights on the tree. Luckily I had help!


    I met up with Brian Purves and his team from the city arboriculture department Thursday morning to do the install. Up until then, I had no idea how this project could possibly be installed. To me the tree looked very difficult to climb. Those guys are amazing! they are really really good at what they do. They were extremely careful not to break or damage the strips. They also made sure all of them face down and there where no twists in them.


    All lights and wiring were attached to branches using zapstraps. They even added some electrical tape to protect them from elements. They understood the project really well and had really great suggestions about where the lights would work more effectively. I am really thankful of all their hard work.


    Here is a snapshot of the tree in its idle state. The little light sections keep moving up slowly:

    If you play any instruments, please feel free to take it downtown (on the corner of 2nd street and Victoria) and plug into the tree. I have never done something like this before; I would love to hear your feedback and suggestions here. Thanks!


  • Time for some thread necromancy:

    On my way back to the space last night, the tree was lit up and looking good. So I shot some video:

    Some sections of neopixels look like they are not working any more, but overall it is standing up to the weather surprisingly well.

  • Member

    @pierre “this video is private”

  • @Chainmaildave Oops. That should fix it.

  • Thanks @pierre ! I have to go and check on it now and see how it works when you plug it in. Thanks for this! :smile:

Log in to reply