X-Track is a prototype wireless device which connects you to the music, by providing entertainment with its bright beat-synched LEDs and tracking your moves so that you can later learn how much you enjoyed the night, and which parts were especially moving you.

Remote wireless visualizations fully synced to the beat:
* Supporting dynamic control of song playback.
** You can adjust tempo and the visual will always be on the correct beat, and you can even scratch !!
* DJ software automatically analyses song bpm (beats per minute), aligns the beats with the song, and send the high-resolution beat phase messages to external control application.
* The external application on PC broadcasts beat time information to all gadgets in the scene.

Live crowd tracking:
*  By making use of the additional sensors (accelerometer), each gadget sends crowd information back to the main PC for logging and any other purposes.

Small form-factor:
* The gadget prototype comes in a small package (11x9x3cm). Great for hand-held interaction or wearing around your neck. Future makes can come in smaller form factors to have a less constraint on your fun.

Support for multiple remote gadgets:
* You can have a a high number of synced displays in a single room, and you can gather sensor data from all (the number of devices is limited by the bandwidth of radio communication. Each device sends sensor readings back to the main computer. The practical limit for efficient data acquisition is not yet studied.)

This instructable was made as part of the final project requirement in the CS graduate course "Tangible Interactive Computing" at the University of Maryland, College Park taught by Professor Jon Froehlich. The course focused on exploring the materiality of interactive computing and, in the words of Hiroshii Ishii, sought to "seamlessly couple the dual worlds of bits and atoms." Please see http://cmsc838f-f12.wikispaces.com/ for more details.

Step 1: Hardware & Wiring Info

Note: All images appear in order of description below.

Arduino FIO
* http://arduino.cc/en/Main/ArduinoBoardFio
* https://www.sparkfun.com/products/10116 ($25)
Microcontroller: ATmega328P
Clock Speed: 8 MHz
Operating Voltage: 3.3V
Input Voltage: 3.35 -12 V
* Includes an Xbee socket already (saves $10)
* Polymer Lithium Ion Batteries from sparkfun provide 3.3V, no step-up component (3.7 to 5V) needed (saves $6)
*  Includes battery charger using USB port (saves 10-15$)
    You'll need a 3.v to 5.v stepper for the display (costs 5$)
    No direct programming interface available. You need to use FTDI cables/breakout boards.
    The longest dimension is slightly bigger than the LED matrix


LED Matrix - Serial Interface - Red/Green/Blue (The Visuals)

* https://www.sparkfun.com/products/760 ($59.95)
* Communicates through SPI serial input protocol
* Runs on 5V (if you don't raise up the voltage from 3.3 to 5V, you get very pale colors, and an unstable refresh rate)
* Current: 120mA (typical) 275mA (max)
* Dimension: 2.38x2.38"x0.78''
Wiring: (Using SPI Interface)
  * VCC(5V)<->5V
  * GND<->GND
  * MOSI<->PIN11
  * CS<->PIN10
  * SCLK<->PIN13


Triple Axis Accelerometer Breakout - ADXL335

* https://www.sparkfun.com/products/9269
* "Low noise and power consumption (320uA)"
* Sensing range: +/-3g.
* Power in between 1.8-3.6V
* Bandwidth: 50Hz
* 5V/GND : as usual
* X<->Analog Pin 0, Y<->Analog Pin 1, Z<->Analog Pin 2


XBee 1mW Trace Antenna Series 1 (x2) (Wireless Communication)

* https://www.sparkfun.com/products/11215
* Point-to-point (PTP) & point-to-multipoint (PTM) radio running the [[http://en.wikipedia.org/wiki/IEEE_802.15.4|IEEE 802.15.4]] protocol
* This is a simple, cheaper XBee module with enough range, easy to control (than Series 2), allows point-to-point and broadcast communication.
* I chose trace antenna since the amount of space used was a basic concern, and trace antenna is sufficient.
* The radio receiver should work inside the plastic box. "The radios do not have any issue radiating through plastic cases or housings, and so the antennas can be completely enclosed in those types of situations." Info
* Just place it in the XBee socket of FIO!


Vibration Motor

* https://www.sparkfun.com/products/8449
* Vibrates on the beat, or controlled manually in real-time!
* 2-3.6V operating range.
* Current: 75mA (note that fio provides a max of 40mA per pin)
* In the current prototype, it sticks inside the case.


FTDI Basic Breakout - 3.3V

* https://www.sparkfun.com/products/9873 ($14.95)
* For programming the micro-controller using USB connection
* Works on 3.3V
* "Uses SMD 6-pin header on the bottom"
* "This board will auto reset any Arduino board that has the reset pin brought out to a 6-pin connector"
* "This board has TX and RX LEDs that allow you to actually see serial traffic on the LEDs to verify if the board is working"
* Additional USB cable required (A<->mini B) .
* Only necessary when updating the program on FIO, not part of the remote system. Currently using 6-pin male headers.


XBee Explorer Dongle

* https://www.sparkfun.com/products/9819 ($24.95)
* Allows you to plug-in XBee hardware to your computer. The computer will see the device through a COM channel.
* Use X-CTU software to configure your XBee. More details are presented in further steps


Polymer Lithium Ion Battery - 2000mAh

* https://www.sparkfun.com/products/8483 ($16.95)
* Very slim, light weight
* 3.7V at 2000mAh
* Battery includes built-in protection against over voltage, over current, and minimum voltage.
Note: Expected power consumption of proposed design:
* 270mA (max) LED Matrix
* 50mA XBee unit
* 30mA (max) arduino
* Total: 350mA (worst case), 2000mAh should be enough for about 6hrs of unplugged operation!


Project Case

* https://www.sparkfun.com/products/8601 ($9.95)
* Size: 3.95x3.16 (inch) internal (about 10cmx8cm) / slightly larger on external
* Height: 0.75'' internal, 1'' external


AKAI LPD8 Pad MIDI Controller  [[ Optional ]]

*  http://www.akaipro.com/lpd8
* It is used both to control DJ software AND the X-Trak PC Control Program. You can use any MIDI mapping and customization for your own setup.
The controls are mapped to Preset 4, which by default send MIDI messages on Channel 4.
Button Index Layout:
5 6 7 8
1 2 3 4
Program Change messages: 1-8 => Select the corresponding display type.
Pad messages:
1 => Vibration on beat (toggle on/off)
5 => Force-Vibration (momentary on/off)


Other hardware requirements

Wires, soldering material, mini breadboard (https://www.sparkfun.com/products/7916)

About This Instructable


80 favorites


More by adil-y: X-Track - Wireless music visualization and tracker
Tags: arduino
Add instructable to: