# Pulse Room

## Overview

https://youtu.be/2nkrAPfqf20

Technology connects us to the outer world, but have we lost touch with our inner selves? Let's attempt&nbsp;to remedy this modern condition by controlling room lighting & sound with the beating of your&nbsp;own heart. &nbsp;Hey - it's worth a shot. &nbsp;

This project uses a Pulse Sensor Amped, Feather M0, MusicMaker FeatherWing, RGB LED strips, and power MOSFETs to turn any room into a thumping, flashing pulse room. &nbsp;For a more refined version of this idea in a gallery setting, see Sean Montgomery's excellent [Emergence installation.](http://produceconsumerobot.com/emergence/)

## What you'll need
Basics:

- [Soldering Iron](https://www.adafruit.com/product/2163)&nbsp;& [solder](https://www.adafruit.com/product/1886)
- [Hook-up&nbsp;Wire](https://www.adafruit.com/product/1311) (for Perma-Proto)
- [Stranded wire](https://www.adafruit.com/product/805?q=stranded&)&nbsp;or [coaxial&nbsp;cable](https://www.adafruit.com/product/2059)&nbsp;(for connecting LED drivers to Feather)
- [Wire Strippers](https://www.adafruit.com/product/527)
- [Small flathead screwdriver](https://www.adafruit.com/product/424) for terminal blocks
- [Flush Diagonal Cutters](https://www.adafruit.com/product/152)
- [RGB LED Weatherproof flexi-strip 30 LED/m](https://www.adafruit.com/product/285)&nbsp;

- Amplified speakers with a 3.5mm connection (living room stereo is fine)

Feather Parts:

- [Pulse Sensor Amped](https://www.adafruit.com/product/1093)
- [Feather M0 Basic Proto](https://www.adafruit.com/product/2772)
- [MusicMaker FeatherWing](https://www.adafruit.com/product/3357)
- [Feather Female Header Kit](https://www.adafruit.com/product/2886)
- [Feather Stacking Headers](https://www.adafruit.com/product/2830)
- [MicroSD Memory Card](https://www.adafruit.com/product/102)
- [Breadboard-friendly SPDT Slide Switch](https://www.adafruit.com/product/805)
- [Micro USB power supply](https://www.adafruit.com/product/1995) or [LiPo Battery w JST connector](https://www.adafruit.com/category/574)

LED Driver Parts:

- [N-Channel Power MOSFET (IRLB8721)](https://www.adafruit.com/product/355)
- [5-Pin 0.1" Pitch Terminal Block](https://www.adafruit.com/product/2139)
- [6-Pin 0.1" Pitch Terminal Block](https://www.adafruit.com/product/2135)
- [Breadboard-friendly 2.1mm DC Barrel Jack](https://www.adafruit.com/product/373)
- [Perma-Proto Quarter-sized Breadboard PCB](https://www.adafruit.com/product/1608)
- [12V Power Supply w 2.1mm plug](12V%20Power%20Supply)
- 10K Resistor

# Pulse Room

## Software

![](https://cdn-learn.adafruit.com/assets/assets/000/041/356/medium800/led_strips_COLLIN'S-LAB-PULSE-ROOM16-crop.jpg?1493449123)

The code for this project is based off the [Pulse Sensor Amped's Arduino](https://github.com/WorldFamousElectronics/PulseSensor_Amped_Arduino)&nbsp;sketch. &nbsp;Modifications have been made to include audio file&nbsp;playback, timer interrupts on the Feather M0, and serial output has been removed to keep things simple.

First,&nbsp;install the latest version of the Arduino IDE, if you haven't already:

[Download Arduino IDE](http://www.arduino.cc/en/Main/Software)
# Install Adafruit SAMD Boards
![](https://cdn-learn.adafruit.com/assets/assets/000/041/412/medium800/led_strips_adafruit_SAMD_Boards.jpg?1493666284)

You'll need to install **two SAMD board libraries** - one from **Adafruit** & one from **Arduino**.&nbsp;

Open the Arduino IDE and go to&nbsp; **Tools-\>Board-\>Boards Manager**... and use the search box to find **SAMD**. Select **Adafruit SAMD Boards,** &nbsp;click the **Install** button and **wait for the process to complete**.

Once the process is complete, select **Arduino SAMD Boards (32-bits ARM Cortex M0+)**,&nbsp;click the **Install** button and **wait for the process to complete**.

# Install Libraries
![](https://cdn-learn.adafruit.com/assets/assets/000/041/414/medium800/led_strips_vs1053_library.jpg?1493667101)

You'll need a couple of Arduino libraries to get things working. &nbsp;The first one can be installed via the Arduino IDE's library manager. Go to the&nbsp; **Sketch-\>Include Library-\>**** Manage Libraries... &nbsp; **Search for "VS1053" and install the** Adafruit VS1053 Library.**

![](https://cdn-learn.adafruit.com/assets/assets/000/068/868/medium800/led_strips_zerotimer-library.jpg?1546921372)

Next, you'll need to install an **older version** of the **Adafruit ZeroTimer library** - specifically version **1.0.1**.

Danger: 

In the **Arduino Library Manager** search for&nbsp; **Adafruit ZeroTimer** , select it from the results and choose **Version 1.0.1** from the **Select Version** pulldown menu and click **Install**.

![](https://cdn-learn.adafruit.com/assets/assets/000/041/416/medium800/led_strips_timerzero_library.gif?1493667764)

You'll also need the **Adafruit\_ASFCore** library, which is available here:

[Adafruit_ASFcore library](https://github.com/adafruit/Adafruit_ASFcore/archive/master.zip)
Unzip the downloaded archive, and rename the resulting folder to " **Adafruit\_ASFcore**" (just remove the "-master" string). &nbsp;Once the folder is renamed, move it to your Arduino library folder ( **Documents/Arduino/libraries** ) and restart the Arduino IDE.

# Download project code & upload to Feather

Grab the [Pulse\_Room](https://github.com/adafruit/Pulse_Room) project code from GitHub:

[Download Pulse Room code](https://github.com/adafruit/Pulse_Room/archive/master.zip)
Unzip the downloaded archive and rename the resulting folder to **Pulse\_Room**. Inside the folder,&nbsp;you'll find&nbsp;the **Pulse\_Room.ino** file - open it in the **Arduino IDE**.

![](https://cdn-learn.adafruit.com/assets/assets/000/041/419/medium800/led_strips_pulse_ino_file.gif?1493671213)

![](https://cdn-learn.adafruit.com/assets/assets/000/041/422/medium800/led_strips_pulse_ino_arduino2.gif?1493671554)

Connect your **Feather M0** board via USB. &nbsp;Go to **Tools-\>Board** and select **Adafruit Feather M0 (Native USB Port)** from the list. &nbsp;Then go to **Tools-\>Port** and select the port for your Feather M0. Click the **Upload** button and wait for the process to complete.

# Sound File

Now that the Feather is programmed, we can put our sound file on an **SD Card** for playback. &nbsp;You could use your own sound file, or the one I used named **beat1.mp3** , which is&nbsp;included in the **Pulse\_Room** zip file downloaded in the previous step. More info on compatible file formats can be found in the [MusicMaker FeatherWing guide](../../../../adafruit-music-maker-featherwing/pinouts?view=all#installing-software).

![](https://cdn-learn.adafruit.com/assets/assets/000/041/423/medium800/led_strips_beat_file.gif?1493671749)

![](https://cdn-learn.adafruit.com/assets/assets/000/041/501/medium800/led_strips_sd-card3.jpg?1493800384)

Copy the file to the root level of your&nbsp; **Micro SD card**. &nbsp;Note that your SD card should be formatted for&nbsp; **FAT16** &nbsp;or **FAT32** and have a capacity greater than 64MB.

# Pulse Room

## Feather Connections

![](https://cdn-learn.adafruit.com/assets/assets/000/041/359/medium800/led_strips_COLLIN'S-LAB-PULSE-ROOM25-crop.jpg?1493449554)

# About those headers …

In order to have access to the Feather M0's prototyping area, I decided to mount the MusicMaker Wing underneath the Feather. &nbsp;I also wanted to easily connect & disconnect the Pulse Sensor - so this means we'll need female headers on both the M0 & MusicMaker Wing.

Once complete, your boards should look something like this …

![](https://cdn-learn.adafruit.com/assets/assets/000/041/428/medium800/led_strips_feather-headers.jpg?1493702127)

# Mount components on Feather M0

We'll be adding two&nbsp;components to the Feather M0's prototyping area:

- **SPDT slide switch** &nbsp;for muting sound & light output until we have a steady pulse
- **5-pin terminal block** for easy connections to the LED driver boards

Here's a schematic showing all the connections we'll make to the Feather (including the **Pulse Sensor Amped** ).

![](https://cdn-learn.adafruit.com/assets/assets/000/041/361/medium800/led_strips_pulse-room-schematic-01-crop.jpg?1493449690)

![](https://cdn-learn.adafruit.com/assets/assets/000/041/472/medium800/led_strips_feather-component-soldering-crop.jpg?1493745402)

Solder the bottom 3 pins of the terminal block to **GND** and solder the top 2 pins together (we'll connect these to **pin 11** ).

For reference - below is&nbsp;a shot of the&nbsp;feather after soldering is complete. &nbsp;Note the use of the GND bus conveniently located in the Feather's prototyping area:

![](https://cdn-learn.adafruit.com/assets/assets/000/041/499/medium800/led_strips_feather-soldered-back.jpg?1493800134)

# Connect&nbsp;it all
# Pulse Room

## LED Driver

The **LED driver board** will take the 3.3V&nbsp;PWM signal from the Feather M0 and use it to control 12V power&nbsp;needed for the LED strips. &nbsp;One board connected to a 12V 1A power supply is capable of pulsing&nbsp;the red channel of two 5-meter LED strips without the need for a heatsink.

The board itself is quite simple. &nbsp;Check out the schematic below:

![](https://cdn-learn.adafruit.com/assets/assets/000/041/362/medium800/led_strips_pulse-room-schematic-02-crop.jpg?1493449708)

We put down a 1 Megaohm resistor for the pulldown resistor but later found 10Kohm works better!

# Component layout
![](https://cdn-learn.adafruit.com/assets/assets/000/041/465/medium800/led_strips_driver-board-parts-labelled.jpg?1493711204)

![](https://cdn-learn.adafruit.com/assets/assets/000/041/495/medium800/led_strips_driver-solder-1.jpg?1493799477)

# Solder wire jumpers

Solder the necessary connections between components using solid core hookup/jumper&nbsp;wire. Check the image below to reference what connections need to be made:

![](https://cdn-learn.adafruit.com/assets/assets/000/041/470/medium800/led_strips_driver-board-parts-connections.jpg?1493717280)

The finished board should look something like this:

# Label the terminal block
Since we're only using the red channel of the LED strips, each 12V LED Driver board will be able to power 2 x 5-meter strips. Build additional boards as needed …

![](https://cdn-learn.adafruit.com/assets/assets/000/041/494/medium800/led_strips_driver-board-buddies.jpg?1493799048)

# Pulse Room

## Wiring

# A whole lotta wire …

Determine where you'd like to place the **Feather** + **Pulse Sensor** in your&nbsp;room and then decide where you to place the **LED driver boards** + **LED strips**. &nbsp;I placed the Feather near the middle of the room on a coffee table and the driver boards on opposite walls – so&nbsp;I needed a lot of wire to connect the Feather to each driver (~20ft to allow for routing around furniture/etc).

![](https://cdn-learn.adafruit.com/assets/assets/000/041/492/medium800/led_strips_wire-mess.jpg?1493798806)

Each board needs 2 connections - **one for PWM** signal, and **one for ground**. &nbsp;2-conductor cable, such as a thin coaxial type, would be ideal for&nbsp;this situation.&nbsp;I had 26AWG stranded wire on hand, so that's what's used in this guide.

Figure out the length you'll need, then cut two matching lengths of different&nbsp;colored wire (I used black for ground & yellow for PWM)

Optionally, to keep the wires from getting too unruly, you can twist the pairs together and bind them at regular intervals with tape or heat shrink tubing …

![](https://cdn-learn.adafruit.com/assets/assets/000/041/458/medium800/led_strips_wire-roll-2-crop.jpg?1493709934)

# Extend the LED Strip&nbsp;Wires

The wires coming off the LED strips aren't very long, so you'll likely need to&nbsp;solder extensions to them. &nbsp;Since we're only using the red channel, we only need to extend the red & black wires.&nbsp;

The tail&nbsp;end of the LED strip also has wire leads for chaining strips (an option I did not explore). To avoid shorts, wrap the red and black wires on that end with a couple layers of electrical tape …

![](https://cdn-learn.adafruit.com/assets/assets/000/041/467/medium800/led_strips_strip-tail-wires-crop.jpg?1493714465)

# Pulse Room

## Installation & Usage

# Mount LED strips & drivers
These LEDs are quite bright and looking at them directly can be a rough on the eyes. &nbsp;

&nbsp;

To minimize harshness, mount the LEDs around molding, behind furniture, or facing upward above eye level - this will create a pleasantly&nbsp;diffused and ambient effect.

![led_strips_molding1.jpg](https://cdn-learn.adafruit.com/assets/assets/000/041/447/medium640/led_strips_molding1.jpg?1493706266)

![led_strips_molding2.jpg](https://cdn-learn.adafruit.com/assets/assets/000/041/448/medium640/led_strips_molding2.jpg?1493706284)

# Final Connections
# Use it.
Once you have a steady pulse shown on the Feather's LED,&nbsp;go ahead and flick the switch on the Feather and witness your pulse displayed at room scale …

![](https://cdn-learn.adafruit.com/assets/assets/000/041/449/medium800thumb/led_strips_pulse_room-animated.jpg?1493707197)

Now sit and ask yourself, "Why did I do this?" and suddenly remember –&nbsp;art serves no practical purpose. &nbsp;It's just cool.


## Featured Products

### RGB LED weatherproof flexi-strip - 30 LED/m - 5m

[RGB LED weatherproof flexi-strip - 30 LED/m - 5m](https://www.adafruit.com/product/285)
These LED strips are fun and glowy. There are **30** RGB LEDs per meter, and you can control the entire strip at once with any microcontroller and three transistors. The way they are wired, you will need a 9-12VDC power supply and then ground the R/G/B pins to turn on the three colors. Use...

In Stock
[Buy Now](https://www.adafruit.com/product/285)
[Related Guides to the Product](https://learn.adafruit.com/products/285/guides)
### Adafruit Feather M0 Basic Proto - ATSAMD21 Cortex M0

[Adafruit Feather M0 Basic Proto - ATSAMD21 Cortex M0](https://www.adafruit.com/product/2772)
Feather is the new development board from Adafruit, and like its namesake it is thin, light, and lets you fly! We designed Feather to be a new standard for portable microcontroller cores.

This is the&nbsp; **Feather M0 Basic Proto** ,&nbsp;it has a bunch of prototyping space...

In Stock
[Buy Now](https://www.adafruit.com/product/2772)
[Related Guides to the Product](https://learn.adafruit.com/products/2772/guides)
### Adafruit Music Maker FeatherWing - MP3 OGG WAV MIDI Synth Player

[Adafruit Music Maker FeatherWing - MP3 OGG WAV MIDI Synth Player](https://www.adafruit.com/product/3357)
Bend all audio files to your will with the **Adafruit Music Maker FeatherWing**! It's a fun-size version of our [Music Maker&nbsp;shield for Arduino](https://www.adafruit.com/product/1790)!&nbsp;This powerful wing features the VS1053, an encoding/decoding (codec)...

Out of Stock
[Buy Now](https://www.adafruit.com/product/3357)
[Related Guides to the Product](https://learn.adafruit.com/products/3357/guides)
### Pulse Sensor Amped

[Pulse Sensor Amped](https://www.adafruit.com/product/1093)
Pulse Sensor Amped is a greatly improved version of the original Pulse Sensor, a plug-and-play heart-rate sensor for Arduino and Arduino compatibles. It can be used by students, artists, athletes, makers, and game & mobile developers who want to easily incorporate live heart-rate data into...

Out of Stock
[Buy Now](https://www.adafruit.com/product/1093)
[Related Guides to the Product](https://learn.adafruit.com/products/1093/guides)
### Header Kit for Feather - 12-pin and 16-pin Female Header Set

[Header Kit for Feather - 12-pin and 16-pin Female Header Set](https://www.adafruit.com/product/2886)
These two&nbsp; **Female&nbsp;Headers** &nbsp;alone are, well, lonely. But pair them with any of our&nbsp;[Feather](https://www.adafruit.com/categories/777)&nbsp;boards and you're in business!

What do they do? They get soldered on either side of the Feather...

Out of Stock
[Buy Now](https://www.adafruit.com/product/2886)
[Related Guides to the Product](https://learn.adafruit.com/products/2886/guides)
### Stacking Headers for Feather - 12-pin and 16-pin female headers

[Stacking Headers for Feather - 12-pin and 16-pin female headers](https://www.adafruit.com/product/2830)
These two **Female Stacking Headers** alone are, well, lonely. But pair them with any of our [Feather](https://www.adafruit.com/categories/777) boards and you're in business!

What do they do? They stack. Put the headers through your Feather and then you can...

Out of Stock
[Buy Now](https://www.adafruit.com/product/2830)
[Related Guides to the Product](https://learn.adafruit.com/products/2830/guides)
### N-channel power MOSFET

[N-channel power MOSFET](https://www.adafruit.com/product/355)
When you need to switch a lot of power, N-channel MOSFETs are best for the job. These FETs can switch over 60A and 30V and are TO-220 packages so they fit nicely into any breadboard or perfboard. Heat sinking is easy with TO-220's, but because of the very low Rds(on) of down to 0.009 ohms...

In Stock
[Buy Now](https://www.adafruit.com/product/355)
[Related Guides to the Product](https://learn.adafruit.com/products/355/guides)
### Breadboard-friendly SPDT Slide Switch

[Breadboard-friendly SPDT Slide Switch](https://www.adafruit.com/product/805)
These nice switches are perfect for use with breadboard and perfboard projects. They have 0.1" spacing and snap in nicely into a solderless breadboard. They're easy to switch no matter what size fingers you have, but not so easy that they'll get flipped by accident. Work great as...

In Stock
[Buy Now](https://www.adafruit.com/product/805)
[Related Guides to the Product](https://learn.adafruit.com/products/805/guides)

## Related Guides

- [Overwatch Prop Gun: Lucio's Blaster Pt. 3](https://learn.adafruit.com/overwatch-prop-gun-lucios-blaster-pt-3.md)
- [Mindfulness Clock OF DOOM](https://learn.adafruit.com/mindfulness-clock-of-doom.md)
- [LED Acrylic Sign](https://learn.adafruit.com/led-acrylic-sign.md)
- [Guardian Robot with LEDs](https://learn.adafruit.com/guardian-robot-with-leds.md)
- [Storage humidity and temperature monitor](https://learn.adafruit.com/storage-humidity-and-temperature-monitor.md)
- [Make it Move with Crickit](https://learn.adafruit.com/make-it-move-with-crickit.md)
- [Wireless BLE MIDI Robot Xylophone](https://learn.adafruit.com/wireless-ble-midi-robot-xylophone.md)
- [MicroPython Basics: How to Load MicroPython on a Board](https://learn.adafruit.com/micropython-basics-how-to-load-micropython-on-a-board.md)
- [NeoPixel 60 Ring Wall Clock](https://learn.adafruit.com/neopixel-60-ring-clock.md)
- [CircuitPython Hardware: MPR121 Capacitive Touch Breakout](https://learn.adafruit.com/circuitpython-hardware-mpr121-capacitive-touch-breakout.md)
- [CircuitPython MIDI to CV Skull](https://learn.adafruit.com/circuitpython-midi-to-cv-skull.md)
- [Arcade Fightstick](https://learn.adafruit.com/arcade-fightstick.md)
- [Mini Commodore PET with Charlieplexed LED Matrix](https://learn.adafruit.com/mini-commodore-pet-with-charlieplexed-led-matrix.md)
- [Using MPL3115A2 with CircuitPython](https://learn.adafruit.com/using-mpl3115a2-with-circuitpython.md)
- [Ninja Timer: Giant 7-Segment Display](https://learn.adafruit.com/ninja-timer-giant-7-segment-display.md)
