====== Interfaces ====== Sensors typically need to be interfaced to the computer in one way or another. It is possible to buy sensor interfaces, and it also possible to build them yourself. This page gives an overview of both. ===== Tutorials ===== * [[tutorials:Basic sensor interfacing techniques]] * [[tutorials:Building a USB sensor interface]] * [[http://www.create.ucsb.edu/~dano/CUI/|Building a PIC USB sensor interface]] - external link * [[tutorials:Choosing an AVR microcontroller for data acquisition]] ===== Commercially available sensor interfaces ===== Commercially available sensor interfaces intended for musical and artistic purposes generally use either MIDI or [[http://www.opensoundcontrol.org|Open Sound Control (OSC)]] to communicate with a computer (see table below). Popular MIDI devices (e.g. I-CubeX, MIDItron, Eo-body) have the advantage of being able to connect directly to any MIDI-compatible equipment. However, many interfaces need to be connected to a computer, at least temporarily, in order to configure them. Thus, if a MIDI interface is not part of the user's setup, it will need to be be added, boosting both the total price and potential problems of such a setup. The shortcomings of MIDI in terms of resolution and speed, make OSC based sensor interfaces (e.g. Ethersense, Toaster, gluion) more attractive. Such devices typically allow for higher resolution and sampling rates, and long-distance communication over standard high-speed ethernet connections. There are even devices that use digital audio for communication (e.g. Teabox), but this requires the computer to be equipped with a digital audio input. Finally, a number of newer devices use serial ports for communication (via USB or Bluetooth), or straight USB/HID. While they still can easily be used for musical and artistic purposes given that the data can be re-routed to MIDI or OSC communication protocols, serial port and USB/HID communications are often used for physical computing applications. ===== Table of sensor interfaces ===== Comparison of a number of popular sensor interfaces for musical and artistic purposes, ordered by their selling price. //Please note that prices and specifications are taken from the manufacturer’s websites or provided by manufacturers **without independent verification**, and have been generalized for the sake of comparison.// //About the input sampling rate: while often the internal clock speed of A/D converters is expressed in **MHz**, the effective data acquisition rate is more commonly expressed in **ksps** (i.e. kilo samples per second). A/D conversion often requires a few clock cycles (depending on the wanted resolution), so that an A/D clock of 1 MHz doesn't mean that that interface is able to acquire data every 1/1,000,000 seconds. Though, many manufacturers express a supposedly real acquisition rate in Hz. Somewhat confusing!// ^Product ^Manufacturer ^Price ^Inputs (A/D) ^Outputs (A/D) ^Sampling (//Data acquisition//) rate ^Analog inputs resolution ^Physical Computing (standalone) ^Connection / Protocol ^Notes ^ |HID gamepad | |> €10 |4/12 |0/0 |100 Hz |8 bit ||USB / HID | |HID joystick | |> €10 |4/12 |0/6 |100 Hz |7-12 bit ||USB / HID | |[[http://www.arduino.cc/|Arduino]] |[[http://www.arduino.cc|Arduino]] |€27 |11(shared I/O)/6 |11(shared I/O)/3 |15 ksps @ 10 bit |10 bit |C apps. |USB, serial | |[[http://www.arduino.cc/en/Main/ArduinoBoardMini|Arduino Mini]] |[[http://www.arduino.cc|Arduino]] |€30 + 18 (for USB adapter) |11(shared I/O)/6 |11(shared I/O)/6 |15 ksps @ 10 bit |10 bit |C apps. |USB | |[[http://www.pjrc.com/teensy/|Teensy]] |[[http://www.pjrc.com/|PJRC]] |$18 |12 |7 | |10 bit ||USB, serial | |[[http://www.chip45.com/index.pl?page=Crumb128|Crumb128]] |[[http://www.chip45.com/index.pl?page=Crumb128〈=en&tax=0&dest=2|Chip45]] |€35 | ||100 Hz |||USB, serial | |[[http://www.ladyada.net/make/midisense|MIDIsense]] |[[http://www.ladyada.net/|LadyAda]] |€38 |6 |- |Max 1280Hz (32x oversample) 40Hz output per channel |10 bit ||MIDI | |[[http://www.u-hid.com/|U-HID]] |[[http://www.ultimarc.com/|Ultimarc]] |$35 |~50/8, 8/8 |~50/0 |? |12 bit ||USB, HID | |[[http://wiring.org.co/ioboard/|Wiring i/o board]] |[[http://www.wiring.org.co|Wiring]] |€47 |40/8 |40/6 |15 ksps @ 10 bit |10 bit |Wiring (Processing IDE) |USB, serial | |[[http://www.create.ucsb.edu/~dano/CUI/|CREATE USB Interface (CUI)]] |[[http://www.create.ucsb.edu/~dano/|Dan Overholt]] |€50 |17(shared I/O)/13 |17(shared I/O)/2 |100 ksps @ 12 bit |12 bit ||USB, OSC, MIDI, Bluetooth / HID | |[[http://www.create.ucsb.edu/~dano/CUI/#AppA|CUIduino dual-processor]] |[[http://www.create.ucsb.edu/~dano/|Dan Overholt]] |€50 + ? |17(shared I/O)/13 |17(shared I/O)/2 |? |12 bit ||USB, OSC, MIDI, Bluetooth / HID | |[[http://www.zenprobe.com/manmidi|MAnMIDI]] |[[http://www.zenprobe.com/manmidi|Zenprobe]] |€50 |11 |- |100-1000Hz |7 bit ||MIDI | |[[http://infusionsystems.com/catalog/product_info.php/products_id/91|microDig]] |[[http://www.icubex.com|I-CubeX]] |€50 |8 |4 [[http://en.wikipedia.org/wiki/I2c|I2C]] ports |1.5 ksps max (1 ch. @ 7 bit)|7/10 bit |C++ API |MIDI | |[[http://gainer.cc/|GAINER]] |[[http://sourceforge.net/projects/gainer/|The GAINER development team]] |€55 |0~8/0~16 |0~16/0~8 |220 Hz |8 bit ||USB, serial | |[[http://www.phidgets.com/index.php?module=pncommerce&func=itemview&IID=85|Phidgets Interface Kit 8/8/8]] |[[http://www.phidgets.com|Phidgets]] |€70 |8/8 |8/0 |100 Hz |10 bit ||USB | |[[http://infusionsystems.com/catalog/product_info.php/products_id/204|USB-microDig]] |[[http://www.icubex.com|I-CubeX]] |€75 |8 |8 + 4 [[http://en.wikipedia.org/wiki/I2c|I2C]] ports |5.7 ksps max (1 ch. @ 7 bit) |7/10 bit |C++ API |Serial over USB, MIDI via software | |[[http://www.doepfer.de/home_e.htm|Pocket Electronics]] |[[http://www.doepfer.de/home_e.htm|Doepfer]] |€80 |16 ||- |7 bit ||MIDI | |[[http://www.arduino.cc/en/Main/ArduinoBoardBluetooth|Arduino BT]] |[[http://www.arduino.cc|Arduino]] |€95 |11(shared I/O)/6 |11(shared I/O)/6 |15 ksps @ 10 bit |10 bit |C apps. |Bluetooth | |[[http://eroktronix.com/|MidiTron]] |[[http://eroktronix.com/|Eroktronix]] |€95 |10 analog, 20 digital |20 analog or digital |> MIDI rate (~1 ms/value) |7/10 bit ||MIDI |20 i/o terminals configurable in any combination of analog/digital/input/output |[[http://www.makingthings.com/products/KIT-MAKE-CTRL/|Make Controller]] |[[http://www.makingthings.com/|Making Things]] |€95 |8 |8/4 |384 ksps @ 10 bit |10 bit |C, RTOS |USB, Ethernet (can be used simultaneously) / OSC | |[[http://infusionsystems.com/catalog/product_info.php/products_id/110|StarterPack (with microDig interface)]] |[[http://www.icubex.com|I-CubeX]] |€75 |8 |4 [[http://en.wikipedia.org/wiki/I2c|I2C]] ports |1.5 ksps max (1 ch. @ 7 bit)|7/10 bit |C++ API |MIDI |includes [[http://infusionsystems.com/catalog/product_info.php/cPath/25/products_id/136|ReachClose]], [[http://infusionsystems.com/catalog/product_info.php/cPath/25/products_id/135|Touch]] and [[http://infusionsystems.com/catalog/product_info.php/cPath/25/products_id/134|Turn]] sensors |[[http://www.create.ucsb.edu/~dano/USB/|STEIM USB Controller]] |[[http://www.steim.org/steim/|STEIM]] |€100 |8 analog / 19 digital | - | ? | ? || USB |[[http://www.create.ucsb.edu/~dano/USB/devices.html|still under development!]] | |[[http://multio.mamalala.de|MultIO]] |[[http://mamalala.de|mamalala]] |€90-200 |88 |64 |100Hz |8/10/12 bit ||USB / HID | |[[http://www.makingthings.com/resources/faq/about-makingthings/what-happened-to-teleo|Teleo]] |[[http://www.makingthings.com/|Making Things]] |€130 |4 |- |- |10 bit ||USB |Discontinued |[[http://icubex.com/catalog/product_info.php/cPath/21/products_id/98|Wi-microDig]] |[[http://www.icubex.com|I-CubeX]] |€190 |8 |4 [[http://en.wikipedia.org/wiki/I2c|I2C]] ports | 5.7 ksps max (1 ch. @ 7 bit) |7/10 bit |C++ API |Serial over Bluetooth, MIDI via software| |[[http://www.eowave.com|Eobody2]] |[[http://www.eowave.com|eowave]] |€199 |8 || 1000Hz |12 bit ||USB -MIDI | |[[http://icubex.com/catalog/product_info.php/cPath/21/products_id/28|Digitizer]] |[[http://www.icubex.com|I-CubeX]] |€210 |32 |8 | 244 sps max (1 ch. @ 7 bit) |7/12 bit |C++ API |MIDI | |[[http://www.bluemelon.org/index.php/Products/BM7505_BluePD_programmable_Pure_Data_router|BluePD]] |[[http://www.bluemelon.org|Bluemelon]] |€225 |||||Embedded Pure Data |Ethernet, OSC, wireless | |[[http://www.bluemelon.org/index.php/Products/BM7601_BlueSense_starter_kit?bmelon_wiki_wiki__session=7827c287cdf0637e8986eaaf65671dd8|Bluesense Starter Kit]] |[[http://www.bluemelon.org|Bluemelon]] |€250 |12/6 |16/0 |1000 Hz |10 bit ||USB, wireless, Ethernet | |[[http://eroktronix.com/|MidiTron Wireless]] |[[http://eroktronix.com/|Eroktronix]] |€315 |10 analog, 20 digital | |max 7 ms wireless xmit + MIDI or USB rate |7/10 bit ||MIDI & USB |small transmit unit + receive unit, 20 i/o terminals configurable in any combination of analog/digital inputs |[[http://www.electrotap.com/teabox/|Teabox]] |[[http://www.electrotap.com|Electrotap]] |€350 |8 || 4000 Hz |12 bit ||SPDIF | |[[http://www.eowave.com|Eobody]] |[[http://www.eowave.com|eowave]] |€480 |16 || - |10 bit ||MIDI |discontinued |[[http://www.glui.de/?jump=gluion|gluion]] |[[http://www.glui.de|glui]] |€466-797 |16-64/2-68 |0-66/0 | 1000 Hz (4000 Hz internal) |12/16 bit ||Ethernet / OSC | |[[http://forumnet.ircam.fr/374.html?&L=1|Wise Box]] |[[http://www.ircam.fr|IRCAM]] |€950 |16 || 200 Hz |16 bit ||??? / OSC |Out of stock! |[[http://www.la-kitchen.fr/kitchenlab/toaster-en.html|Toaster]] |[[http://www.la-kitchen.fr|La Kitchen]] |€1200 |16 || 200 Hz |16 bit ||Ethernet (UDP) / OSC, MIDI, FUDI |La Kitchen is now out of business! | |[[http://www.la-kitchen.fr/kitchenlab/kroonde-en.html|Kroonde]] |[[http://www.la-kitchen.fr|La Kitchen]] |€1200 |16 || 200 Hz |10 bit ||Wireless (UDP via radio) / OSC, MIDI, FUDI |La Kitchen is now out of business! |