Audio Sensor Development Part 4: Taming the Transient Tiger

It’s been a long time since Part 3 of this design series, but most of that is because we solved the main problems with the design and moved into production. In this article, I’ll go over the changes and release the OSHW design files for the newest version of the Shades Audio Sensor.

The first major problem with the sensor was, at no surprise to any analog designer, power supply noise. The RGB Shades posed a perfect recipe for analog difficulty:

  • A low voltage power supply delivered through several feet of thin cable
  • 68 RGB (or 204 individual) LEDs on the same supply, controlled via PWM
  • An electret microphone with millivolt-level output
  • A single-supply op-amp with about 30x gain
  • A mixed analog/digital chip with another 12x gain
  • Positive feedback (explained more below)

The positive feedback issue was pretty difficult. Any supply noise from the LEDs would leak into the microphone supply circuit, which would then be amplified greatly along with the actual audio signal. This audio signal was processed and used to drive the LEDs. Since most audio-reactive patterns show more/brighter LEDs when there is higher audio input signal, this could cause a feedback loop that drove the input to the top of the range and kept it there.

 Read more»

Submitted by Garrett on Wed, 01/18/2017 - 18:57.

Using the Shades Audio Sensor without RGB Shades

While the Shades Audio Sensor was designed to work with the RGB Shades, it's really just a breakout board for the MSGEQ7 spectrum analyzer chip. It also has a microphone, pre-amplifier, and gain switch to select high and low sensitivity modes. We've gone through a number of revisions of the hardware, mostly fine-tuning the power supply filtering to make the Shades Audio Sensor reject most of the power supply noise caused by LED applications.

Here's a video showing how to connect the Shades Audio Sensor to an Arduino UNO. We're using a ShiftBrite Shield, but any proto shield or a simple breadboarded circuit would work. As a demo of the finished project, we've connected it to an old ShiftBrite project (Rusty VU) from 2008.

Example code: Rusty VU MSGEQ7

Submitted by Garrett on Sat, 10/22/2016 - 19:11.

ELbow Sequencer Development

We just launched the ELbow Sequencer V2 Kit as a beta product on the macetech store!

It's a self-solder kit that makes it easy to control six channels of EL wire. Essentially, it switches power from an external EL wire inverter to six output connectors. On-board buttons allow programming custom sequences with no need to hook it up to a computer; sequences can be created and edited at any time. The sequences are saved in EEPROM, and so is the current pattern selection and the run speed...turn it off and on, it'll be running the same pattern at the same speed. Since EL wire requires high voltage / high frequency power, it creates several challenges that require special handling in our design.

Here's a demo of the ELbow in action, as well as showing how to edit custom sequences. Note that this uses the older ELbow V1 as shown at Maker Faire Bay Area 2016, but operation is the same.

 Read more»

Submitted by Garrett on Mon, 06/27/2016 - 19:00.

Audio Sensor Development Part 3: Theory Meets Reality

This article continues the development of an audio sensor device for the RGB Shades and LED Matrix Shades, starting with microphone calculations in Part 1.

We’re developing an add-on board to make the RGB Shades and LED Matrix Shades dance to music! Biggest news of this article is that you can try this out for yourself…we had a lot of extra prototype PCBs and hand-assembled a big batch. While the design needs some tweaking, by popular demand we put a bunch of the prototype version in the store. If you try it out, we’d love to hear your feedback!

In Part 2, the prototype device was constructed and tested. The initial tests were done without LEDs attached, and with high-level sound input at the microphone datasheet’s test frequency. This showed that the results agreed quite well with the design predictions, but that only gives an idea of how it will perform in the real application.

With the RGB Shades fully assembled and displaying some sound reactive patterns, there were some initial disappointments. The most noticeable problem was that the sound reactive patterns would sometimes react to themselves…patterns with a lot of bright LEDs would appear to feed back and generate even more input to the analog circuit. This would swamp out any incoming audio and reduce the usability of the system.

 Read more»

Submitted by Garrett on Mon, 01/18/2016 - 01:20.

Audio Sensor Development Part 2: EDA, PCB, SPL, PSRR

This article continues the development of an audio sensor device for RGB Shades and LED Matrix Shades, starting with microphone calculations in Part 1.

With the preliminary calculations out of the way, it’s time for the fun part: making a real thing and testing it!

Design goals:
* Fits both RGB Shades and LED Matrix Shades
* Small, yet able to be hand-built for prototyping

Here’s the schematic for the prototype device. It’s about as simple as possible, loading the electret mic element with the recommended 2.2K resistor as well as using one for the input to the preamp circuit. The amplifier is a small rail-to-rail single-supply op-amp with a split rail to reference the input to the midpoint of the supply. The MSGEQ7 circuit follows the datasheet guidelines for setting the internal oscillator frequency with external resistor and capacitor. The output pins are carefully chosen to be compatible with both the RGB Shades and LED Matrix Shades, which unfortunately have different pinouts on the expansion connectors. A solder jumper is necessary to divert the analog output to the correct pin.

We’re using Cadsoft Eagle to design this device.

 Read more»

Submitted by Garrett on Thu, 12/10/2015 - 17:44.

Audio Sensor Development Part 1: Microphone Math

Making LEDs blink and change colors is lots of fun, and pre-programmed sequences can look amazing. But wouldn’t LEDs be even more fun if they could react to their environment? The colors and patterns suddenly mean something. Depending on the sensors used, LEDs could react to temperature, movement, position, sound, and more.

We’ve been experimenting with music-reactive projects for quite a while, starting with the Shifty VU Shield in 2009. The Shifty VU Shield accepted a stereo audio input and allowed an Arduino to display sound-reactive patterns on a chain of ShiftBrite LEDs or OctoBrites.

In 2011, Garrett made a one-off project for a friend: The LED Viking Mohawk. This project was based on an Arduino Pro Mini and MSGEQ7 chip, and didn’t require a line-in audio connection; it used a microphone to analyze nearby sound and display reactive patterns.  Read more»

Submitted by Garrett on Thu, 12/10/2015 - 17:03.

Super-sized Musixel Wall

At the World Maker Faire in New York City this year, we were able to show off the RGB Shades in the Maker Shed for the first time ever! It was a lot of fun, and we were positioned right next to our friends at Spikenzie Labs. They brought some new products, including the Musixel (an audio sensor that controls a strip of addressable LEDs).

Here's a quick demo video of what the Musixel kit can do:

It's a small PCB with an audio input jack, an 8-pin PIC microcontroller, an MSGEQ7 seven-band spectrum analyzer chip, and various passive components. The PIC reads analog values corresponding to several frequency bands from the audio jack, and outputs WS2811-compatible commands. Spikenzie Labs includes a strip of 16 WS2812 LEDs, but it will work with up to 64 WS2812 LEDs arranged in an 8x8 matrix.

 Read more»

Submitted by Garrett on Sun, 11/08/2015 - 20:17.

RGB Shades Jack-o'-Lantern

Here's a quick demo of how to create a new pattern for the RGB Shades. We'll add some jack-o'-lantern triangle eyes, and make them flicker orange just like the real thing (well, sort of).

First off, here's the final result. It's pretty hard to capture the effect on camera, especially since orange colors seem to max out the sensor so that it always appears bright. But watch the reflection in the table and you'll get the idea:

We're using codebender to edit and upload a custom sketch to the RGB Shades. Once you get the browser plugin installed, it's a really easy way to get started without a lot of downloading and setup. Plus, all the required libraries are pre-installed and kept up-to-date. In this case, we're using the excellent FastLED library, which controls the WS2812/APA104/Neopixel style LEDs easily and has many helper functions for managing pixels.

(A Codebender sketch used to be located here. Sorry, that service was shut down!)

Clicking that should display a sketch editing window much like the one below (if you're logged in on codebender):

You can clone the project to your own account by pressing the Clone button. Then, change the name to make the project more descriptive by clicking the name of the project and editing the text there.

 Read more»

Submitted by Garrett on Mon, 10/26/2015 - 23:56.

Of course we 3D print, too!

If you've attended a Maker Faire or Mini Maker Faire in the past few years, you've probably strolled past a table where someone seems to be tending to a jumble of wires and metal rods, and there's a whiff of molten plastic in the air. You might have stopped and watched as a plastic object appeared (slowly) and you might have been amazed (slowly) at the possibilities. You may have suspected this, but yes...we haven't been left behind, macetech has been 3D printing right along with the rest of the cool kids!

My first 3D printer was built in 2011, after reading up about RepRap and finding an older cartesian assembly robot on eBay, made by Sony. It was huge and heavy, and I drove deep into the Santa Cruz mountains to pick it up from a barn crammed with an analog and relay computer collection. I purchased an extruder from MakerGear, and practically duct-taped it to the robot in order for it to print better mounting parts. The original control board was stuffed with FPGA's and a 486 processor, but I had to remove that and hack the stepper drivers to receive pulses from an Arduino Mega. It's been useful over the past few years, allowing us to create various brackets, adapters, holders, prototypes, and even parts of the LED Shades. Here it is today:

 Read more»

Submitted by Garrett on Sat, 04/05/2014 - 22:54.

WS2811 LED Pixel Hat

I made this for New Year's Eve. It has 114 RGB pixels and an MSGEQ7 chip to analyze audio. The pixels are all turned down to 51 max brightness (out of 255). I used an Arduino to control the pixels in one continuous chain, and a USB battery pack for power.

Submitted by Garrett on Sun, 01/06/2013 - 13:44.