Do you want to see a really cool video — one in which something works first time? Well in that case it's “Happy Dance” time because I'll show you one in just a moment, but first let me set the scene…
Note: If you're planning on attending ESC Boston, which will take place May 6-7, 2015, then I'll be happy to chat about my BADASS Display in excruciating detail to anyone who doesn't manage to get out of the way fast enough (LOL).
First of all, do you recall my recent article on the IoT4EE (Internet of Things for Everyone and Everything)? This featured something called the Simblee, which encompasses a whole bunch of “stuff,” including the Simblee Cloud, the Simblee Ecosystem, and Simblee Modules.
Well, as I discussed in that column, the thought of using Bluetooth Low Energy (BLE) Simblee Modules in conjunction with Simblee apps running on my iPad to control my various hobby projects is very exciting. The first such project that sprang to mind was my Bodacious Acoustic Diagnostic Astoundingly Superior Spectromatic (BADASS) Display (Click Here to see details about all of my on-going projects, including the BADASS Display).
This prompted me to leap into action to finish the display, which — now I come to think about it — was instigated during my trip to ESC Silicon Valley almost a year ago as I pen these words. The image below shows the little scamp standing in the drive outside our house just after I'd finished mounting all of the brass washers and Fresnel lenses on the main display panel (the reason it's in the drive is that I was working in the garage at the time).
The small control panel at the bottom was originally intended to provide a simple menu system that will allow me to select between various lighting effects. The red button will cause us to enter the menu system; the four black buttons will allow us to navigate through the system; and the green button will lock in the current selection and return us to the main display. I'm still going to implement this, of course (there's no point having a bunch of buttons if you can't make something interesting happen when you press them), but I'm also going to use a Simblee BLE Module and a Simblee app to allow me to replicate this functionality on my iPad, thereby allowing me to control the little beauty from the comfort of my armchair.
In the case of the main display panel, we have an array of 16 rows and 16 columns, which equals 256 elements. (This didn't seem like a particularly large number when I started — I had contemplated using a lot more — but having to do everything 256 times almost brought me to my knees.) Each of these elements is powered by a tri-colored pixel presented in the form of NeoPixel Strips from Adafruit.
So, as I say, this past weekend I leapt into action to get this little scamp up and running. The image below shows the inside of the cabinet just after I'd completed the wiring. Actually, I took a whole bunch of photos and videos documenting this part of the construction process, but the memory card in my camera messed up and I lost them all (sad face).
The vertical columns are formed from 16 NeoPixel Strips, each containing 16 NeoPixels. Attaching these made me realize that my hot glue gun really is one of my best friends. In the bottom left-hand corner of the cabinet we see a 5V power supply that can deliver up to 24A. Each NeoPixel can consume up to 60mA (20mA each for the red, green, and blue sub-pixels), so when all 256 of the little rascals are full on, we can be burning ~15.5A. This explains my “Power Bus” — the chunky 10 gauge red and green wires running left-to-right along the bottom of the cabinet with tap points for the individual strips as illustrated below.
A slightly more detailed view of the insides of the cabinet is shown below. My Arduino Mega is on the bottom, with a Uno-sized prototyping board sitting on the top. On the one hand I'm quite proud of my wiring harness; on the other hand I know that the folks who create such harnesses professionally will be rolling around on the floor laughing hysterically at my pathetic attempt (feel free to post a comment telling me this is not so).
In fact, the Uno-sized prototyping board is just acting as a place-holder for the purposes of creating the wiring harness. My chum Duane Benson is currently in the process of taking the original breadboard prototype of my audio spectrum analyzer and creating a custom Arduino Shield. This will be open source, of course, plus Duane will be offering them for sale to anyone who wants one.
The image below shows the current state of this design as it arrived in my email just a few minutes ago at the time of this writing. The red indicated traces on top of the board; the blue indicates copper (traces and ground plane) on the bottom of the board. We decided to use the large ground plane to provide as much shielding as possible from noise.
Duane even managed to squeeze in a small prototyping area on the left-hand side of the shield. I've just performed a LVS (layout versus schematic) check by eyeballing everything, so as soon as Duane has performed a final DRC (design rules check), he will be sending this little ragamuffin of to the board shop. I can’t wait!
One final point of interest before we look at the video is that my Arduino Mega has been modified to run off the same 5V power supply as the NeoPixels, because I prefer to have just one power supply and to not have to consider potential power sequencing issues (click here for details as to how to perform these modifications).
Now, as I said earlier, I took a bunch of videos of the display sitting on the kitchen table when I first powered it up, just after I'd finished creating the wiring harness, but my silly camera lost them. Thus, this video was actually taken yesterday evening in our spare bedroom (where I'm storing it out of the way when I'm not working on it), but it's a true recreation of the way things went down.
Normally, when I power one of my projects up for the first time, if I'm lucky… nothing happens (if I'm unlucky, there may be sparks and smoke and strange sounds). In this case, I expected things to mostly work, but I also fully anticipated a few glitches along the way, like one or more columns of NeoPixels failing to light up or individual pixels not working as well as expected.
In the event, everything worked first time. As we see in the above video, all I've done thus far is to run a really simple test that lights each pixel in turn and switches between different colors. Now the fun stuff starts on the programming side. Watch this space for future updates…
Join over 2,000 technical professionals and embedded systems hardware, software, and firmware developers at ESC Boston May 6-7, 2015, and learn about the latest techniques and tips for reducing time, cost, and complexity in the development process.
Passes for the ESC Boston 2015 Technical Conference are available at the conference's official site, with discounted advance pricing until May 1, 2015. Make sure to follow updates about ESC Boston's talks, programs, and announcements via the Destination ESC blog on Embedded.com and social media accounts Twitter, Facebook, LinkedIn, and Google+.
The Embedded Systems Conference, EE Times, and Embedded.com are owned by UBM Canon.