BreadBro Wave Quick Start Guide

Introduction

BreadBro Wave is an Arduino-Compatible Development Board, based on the popular Arduino Uno R3 Design. It can do anything that any other Arduino Uno Clone can. Wave also includes circuitry to enable audio-responsive, LED art projects. Simply connect Wave to a WS2812B RGB LED Strip and to an Audio input, and you're ready to build the music-responsive light show of your dreams.

First Time Setup: Drivers, Software, and Libraries

Before using Wave, you'll need to download and install a few pieces of software. First, you'll need to download and install drivers for your computer and operating system. You can do that here:

After you've installed the FTDI drivers, you'll need to download and install the Arduino software. Arduino is a software package that allows you to program Arduino-compatible hardware like BreadBro Wave. You can download the Arduino software here:

Once you've downloaded the FTDI drivers and Arduino software, you're ready to connect Wave to your computer. Using a USB Mini B cable, connect Wave to your computer. 

After you connect Wave to USB, the Red LED marked "PWR" should turn on, and the red LED marked "LED" should flash several times. You'll also probably hear your computer make a noise acknowledging the new hardware.

Next, open the Arduino software, and select the "Tools > Ports" option in the menu bar. You should see an option like "COM3" or "COM10". Select the COM Port that is connected to Wave. If there are multiple COM ports and you're not sure, disconnect Wave and see which option disappears. That's Wave. 

You're now ready to upload code to your Wave! In the Arduino software, select "File > Examples > Basic > Blink" in the menu bar. A new window will open with some Arduino code in it. If you've never programmed with Arduino before, don't worry - we'll get to that soon. Upload the code by pressing the upload button in the Arduino IDE. After the upload completes, you should see the Red LED labelled "LED" begin to flash once per second. 

Congratulations! Your Wave is now installed, tested, and ready for use as an Arduino. Next, you'll learn how to use Wave to control RGB LED strips.

WS2812B RGB LED Strip Support

Wave is equipped with several components that make it possible to directly connect a WS2812B RGB LED strip to the development board. Other LED architectures are not supported as of version 1.0 of Wave. WS2812B LEDs, also known as "NeoPixels" by Adafruit, are powerful, bright RGB LEDs. WS2812B LEDs are individually adressable - meaning that individual LEDs on the same strip can be controlled individually, rather than as a strip.

Wave includes a Female JST-SM Connector, inline resistor, and electrolytic capacitor, providing the perfect output for a strip of WS2812B LEDs. Most WS2812B LEDs include a male JST SM connector at their input end. 

To use Wave with the WS2812B LED Strip, you'll need to download the Adafruit NeoPixel Library. Wave also supports the FastLED library, but our example code uses the Adafruit library. Download the Library Here:

To install the Library, extract the contents of the .zip file into your /Documents/Arduino/Libraries folder, and rename the extracted folder to Adafruit_NeoPixel. If you decide to try out your LEDs using the library's examples, remember to change the default LED pin from 6 to 7.

Download the .ino file and open it using the Arduino software. Connect a WS2812B strip to Wave, and connect Wave to your computer using the USB Mini B Cable. Upload the program to Wave. If you've installed the Library and connected the WS2812B Strip correctly, you should see an amazing light show!

Next, you'll learn how to make the LED strip display react to music!

Audio Input and Spectrum Analysis using the MSGEQ7 IC

Wave is an Arduino Uno Clone that has several modifications that make it very useful for music-responsive LED art projects. Wave has two 3.5mm TRS headphone jacks. One acts as an input, and one acts as an output of that input, functioning as a Y-splitter. The Left and Right signals from the Headphone Jacks can be selected using a solder jumper. These signals are then transmitted to the MSGEQ7 Spectrum Analyzer IC. The MSGEQ7 converts an input audio signal into a series of seven analog values. These analog values can be easily read Arduino code, then used in any way the programmer wishes.

Using the MSGEQ7 onboard Wave requires two digital pins and one analog pin. Of course, because the MSGEQ7 is already installed on Wave, these pins are fixed:

The MSGEQ7 does not take a reading of an audio spectrum all the time. When you want to take a reading from the MSGEQ7, your Arduino code will use the RESET pin to start a reading, and the STROBE pin to indicate when to output an analog value to the OUTPUT pin. Then, your code will take an analog reading of the MSGEQ7's output, and convert that into an integer value, from 0 to 1023. You can then use those integer values to control any Arduino project you can imagine.

In Arduino code, it's pretty straightforward to read from MSGEQ7:

digitalWrite(MSGEQ7_RESET, HIGH);
digitalWrite(MSGEQ7_RESET, LOW);
  
for (int b = 0; b < 7; b++) {
    digitalWrite(MSGEQ7_STROBE, LOW);
    delayMicroseconds(30); // to allow the output to settle
    audioData[b] = analogRead(MSGEQ7_ANALOG_IN);
    digitalWrite(MSGEQ7_STROBE, HIGH);
}

The code above takes a single reading from the MSGEQ7 and stores the output into an array. Each item in the array is an integer that corresponds to the amplitude of a particular frequency range in the sample. For example, audioData[0] contains an integer value from 0-1023 corresponding to the amplitude of the lowest frequencies in the sample - the bass. These values can be used to control anything an Arduino can be used to control.

Connecting Audio

Wave includes two 3.5mm TRS headphone jacks so that you don't need to use a y-splitter. For example, you can use an Aux cable to connect your computer to Wave, and then connect your speakers to Wave. This would allow you to synchronize your LEDs to the sound output of your computer, and still hear the audio from your speakers, without needing a y-splitter. Either jack can be used as input or output.

To select which channel of Audio to sample from, you can open and close the solder jumper. The center pad is the output, and the top and bottom pads are the left- and right- input. Solder the top pad to the middle pad, or the bottom pad to the middle pad, to select an audio channel.

Once you connect an Audio source to either of the headphone jacks, the audio signal will be connected to the MSGEQ7. You're now ready to start creating music-responsive projects!

Music Response

Your Wave is set up and working as an Arduino, you've got your WS2812B strips working, and you've learned how the MSGEQ7 works. It's time to create your first music-responsive project!

Choose your audio source. It can be anything that outputs using a 3.5mm headphone cable. Choose your speakers or headphones. Using an Audio Aux cable, connect Wave to the Audio Source, and connect your speakers or headphones to the other headphone jack on Wave.

Next, connect your WS2812B strip to Wave using the JST-SM Connector, and connect Wave to your computer using the USB Mini B Cable.

Download the Music Response Demo Sketch, open it in the Arduino software, and upload it to Wave.

Once the upload is complete, you can test Wave's audio response capability by touching the audio connector. When you touch the audio connector, you should see the LED strip light up brightly. Connect your audio source, and start playing - you should see the LED strip respond to the music!

Power Considerations

The onboard DC power jack is designed to accept 7-12V DC, which is then reduced to 5V by the onboard regulator. The 5V DC power supplies included with Wave Kits are designed to plug into the DC jack attached to the WS2812B strip. 

WS2812B LEDs can draw a lot of power. In order to protect the power supply, the Wave demo sketch has set the brightness of the LEDs to about 40%. We recommend that beginners keep the brightness level low until you've learned how much power your project will consume.

Wave Kits include a 5V 2A power supply. This is an adequate power supply to run audio displays on up to 10m of strip, provided you are using the default brightness level. To run a 10 m strip at full brightness set to white, you will need a larger power supply.