Sign-Up for electrotap.com
  or Login if you have already registered

A Brief History of the Hemispheres

Stephan Moore 2006-02-14 21:52:00 UTC

Article
0 Comments

1997

The Bomb

The first speakers in this line were developed as a part of Perry Cook and Dan Trueman’s N-Body project at Princeton University, which studied the emanation of sound in different directions from a variety of musical instruments. The first working models included the full-sphere “Bomb” and the “Boulder”. A slightly later version of a performance rig included “R2”, a spherical speaker built from Ikea salad bowls.

The Boulder

R2

1997-1999

Critter

After several permutations, the first generation of performance-ready spherical speakers was built. A dodecahedron (12-sided) cabinet was designed by Dr. T. Laurence Trueman and Dan Trueman, and several instruments were developed from it, including Dan Trueman’s “critter” speaker, and Curtis Bahn’s large “Bubba” speaker. These were integrated into Trueman’s Bowed Sensor-Speaker Array (BoSSA) and Bahn’s Sensor Bass R!g, respectively.

Bubba

1999

2nd Generation

The second generation of spheres featured truly spherical cabinets. These were designed and fabricated by Universal Enclosures, and solved many problems of construction. However, this design proved to be problematic in other regards, such as the difficulty of mounting speakers tightly to a curved surface.

2002

Returning to the Trueman design for inspiration, hemispherical speakers were developed which could be fastened together into a sphere or used as separates. A major project was undertaken at Rensselaer Polytechnic Institute under the guidance of Professor Curtis Bahn and graduate student Stephan Moore to build a large quantity of these speakers. In all, fifty-five third generation hemispheres were built in the first eight months of the year.

3rd Generation

2003-2005

Today’s Hemisphere

The new Hemisphere develops somewhat of a cult following, with a multitude of musicians, artists, and composers using Hemispheres in their performances and installations. Stephan Moore takes over the project of manufacturing new hemispherical speakers, and master furniture maker Ken Malz is enlisted to build the speakers. Malz and Moore make several incremental improvements to the design, including larger high-quality speaker drivers, rounded edges, and a durable powder coating finish.

2006

Electrotap begins to sell Hemispheres, bringing the revolution to the people! Electrotap has both a Frequently Asked Questions and Purchasing Information for the Hemisphere.

Op-Amps Part 2: Non-Inverting Op-Amps and Voltage Followers

Jesse Allison 2005-01-11 12:31:00 UTC

Article
0 Comments

Most sensor interfaces take a range of voltages as input, and convert them into a digital represention. One such interface is the Teabox. If you make your own sensors, or use sensors not perfectly matched to your system, you can usually improve the quality of your data by scaling the voltages into the precise range needed by your interface. In this article the focus will be on using non-nverting op-amps to scale signals for use with the Teabox, but the same principles apply to most other voltage measuring applications as well. Although inverting op-amps are very effective and easy to use, they don’t handle high impedence signals very well (It messes up the gain). If you have a high impedence output you’ll need to use a non-inverting amplifier.

Some sensors send out high impedance signals (roughly meaning that they already have a large resistance on the signal already). This can cause problems with the gain of inverting op-amp designs and severely limit the cable distance a signal can run. Also, some sensors output a signal that doesn’t take up the full range of that the interface can handle. Just one example is Sharp’s line of Infra-Red proximity sensors which send out a high-impedance signal that runs from around 0.7V to 2.8V. No where near the 0.25-4.75V range of the Teabox (or 0-5V range of many other interfaces). A little signal conditioning can improve the data by quite a bit!

There are three generic ways to use a non-inverting amplifier circuit, each of which adds to the functionality by adding a little bit of complexity. All three have the feature of buffering a high impedance input, which is needed to guarantee accurate sensor data. In this article we will concentrate on the first and simplest variety.

The voltage follower is an extremely simple circuit that simply outputs a low impedance voltage that is identical to the input. This would be fairly useless, except that it changes high impedance inputs to low impedance, and makes the signal stronger. Used in conjunction with an inverting op amp, it can be a simple way to condition your signals.

Voltage Follower

The voltage follower does just that, it follows the voltage that is sent in. Having the ability to buffer a high impedance signal can make this a useful little circuit. You can use this to give more power to a long sensor cable run, lower impedance, and protect circuitry from being overloaded.

The basic premise is this: hook up power and ground to your single-sided op amp (making sure to bypass (connect) the two with a 0.1µF capacitor to smooth out power fluctuations), run a signal into the positive input, and feed the output back into the negative input. Basically an op amp outputs whatever it can to make the positive and negative inputs cancel each other out. Because you fed the output directly back to the negative (inverting) input, it sends out the exact same thing that came in.

Voltage Follower Schematic

This schematic shows an op-amp (the AD8515 from Analog Devices) wired up as a Voltage Follower. The Sensor is essentially a potentiometer with the outer leads connected to power and ground and the inner tap running into the positive input of the op-amp. You could easily substitute a voltage divider or many other sensors here. The op-amp’s output from pin 1 is connected directly back into the negative input to set it to voltage follower mode, as well as heading out to the Teabox through the center pin on J1 (either a cable or a three pin header). Notice that pins 5 and 2 of the op-amp (somewhat disembodied at the far left of the circuit) are connected to power and ground and are bypassed with the 0.1µF Cap. This is very important as it smooths out fluctuations in the power supply.

One final note is that the 5V and Ground indicators are not necessarily from a second power source. Most likely this entire circuit will get its power from Pin 1 on J1 (the cable or header), and ground from Pin 3, which means you can ignore the 5V/Gnd connections. If you do need to power the device externally (for instance if you are using a few sensors that need a lot of power (like the Sharp IR sensors), you must be careful to have a very clean power supply. The way sensor analog to digital convertors work is that they compare the sensor input to a reference voltage. If the power supply is fluctuating, it can’t compare accurately and you will end up with noisy data. We have a Power Injector and Powered Expander that can be used to add 500mA of power to an interface, although you can make one on your own using a wall wart and a decent voltage regulator: something like the LT1763 from Linear Technology.

Equipment & Supplies Required

  • Op Amp
  • 1 to 5% resistors of an appropriate value
  • Perfboard
  • Solder
  • Soldering Iron
  • A little Patience

Instead of describing this all again please reference Part 1 of the op-amp articles: Scaling Sensor Data for a thorough discussion.

Alternatively you could do this with a surfacemount part and a surfboard for a reasonably small alternative.

Once you get the circuit built, you will have a low-impedance output with plenty of power to send the signal down longer cable runs. I’ve had good luck with runs up to 50ft and have gone 100ft and more in some instances.

Scaling?

Now that you have your impedance buffer, you may want to be able to scale the data. One of the simplest ways of doing this is to pair the Voltage Follower described above with an Inverting Op-Amp Scaler described in Part 1 Scaling Sensor Data. Simply buffer the data first, then scale it. You can even purchase a dual op-amp (like the AD8606 among many) and do both the buffering and scale/shifting with the same part. If you are wondering why you can’t just use the Inverting Op-Amp Scaler to buffer as well, you can as long as the sensor output is low impedance. A high impedance input from the sensor will mess up the gain, hence the need for the Voltage Follower beforehand.

These two simple circuits can handle most of your signal conditioning needs. However you can set up the Non-inverting Op-Amp to scale and shift as well with a few choice resistors. When I get a chance I’ll write up Part 3 which will describe how this can be done.

Enjoy the extended range and expression of your sensors!

Op-Amps Part 1: Scaling Sensor Voltages

Jesse Allison 2004-11-01 21:01:00 UTC

Article
0 Comments

Most sensor interfaces take a range of voltages as input and convert them into a digital represention. One such interface is Electrotap’s Teabox. If you make your own sensors, or use sensors not perfectly matched to your system, you can usually improve the quality of your data by scaling your voltages into the precise range needed by your interface. In this article the focus will be on using Inverting op-amps to scale signals for use with the Teabox, but the same principles apply to most other voltage measuring applications as well. Although Inverting Op-amps are very effective and easy to use, they don’t handle high impedence signals very well (It messes up the gain). If you have a high impedence output you’ll need to use a non-inverting amplifier.

Signal Conditioning

The sensor inputs for the ADC (Analog to Digital Convertor) inside of the Teabox are looking for voltages between 0.25 and 4.75V. This means that if your sensors are only sending 0.0 to 1.0 V, you loose a lot of bandwidth.

Usable Voltage = Voltage High within range – Voltage Low within range

1.0V – 0.25V = 0.75V

Total Voltage Range = Voltage High – Voltage Low

4.5V = 4.75V – 0.25V

Percent of Range being used (Resolution) = Usable Voltage / Total Voltage Range

16.7% = 0.75V / 4.5V

Voltage per bit = Total Voltage Range / # of divisions (Teabox is 12-bit, so 4096 divisions)

0.001098633V = 4.5V / 4096

Number of divisions used = Usable Voltage / Voltage per Bit

682.7 = 0.75V / 0.001098633V

 

Therefore your sensor is only using 16.7% of the resolution available to you (or 682 steps). For some uses, this is adequate, but we didn’t go to all the trouble to put 12 bit convertors for you to only get 8 or 9 bit resolution.

To fix this problem, you need to be able to scale your data to the appropriate voltage range, and then shift it into the right range. In the example above you would scale the data from 0.0 -1.0V to 0.0 – 4.5V and then shift it to 0.25 – 4.75V.

This is a fairly straightforward procedure using a general purpose op amp, some resistors, and a little bit of soldering.

Equipment & Supplies Required

  1. Op Amp
  2. 1 to 5% resistors of an appropriate value
  3. Perfboard
  4. Solder
  5. Soldering Iron
  6. A little Patience

All of this stuff (sans patience) can be purchased at most electronics supply stores. I personally do most of my shopping online because it is much easier to get all of the parts you need at once. Some great places to start are: All Electronics, Digi-Key, Radio Shack, Newark, Texas Instruments, Analog Devices, etc. – see the our resources page for more options.

Choosing the Op-Amp

The first thing that must be done is to choose an appropriate op amp. Good ones can be found from Burr Brown & Texas Instruments, Maxim, and Analog Devices. Electrotap uses the Analog Devices AD8515 for most of our on-sensor signal conditioning, however it only comes in a surface mount package which may be a little too difficult to handle without the proper equipment (but with patience it is possible!). Much easier is usually a Dual Inline Package (PDIP or CDip – plastic or ceramic). These have (usually 8) pins which are spaced at 0.1 inch intervals. They can be plugged into breadboards or soldered into perfboard. I would suggest only using the breadboards for testing and not for anything even semi-permanant; too much can go wrong with them, especially shorts.

As far as the specs are concerned, you need to find one that has very low noise. This will show up in the data sheet (which you can get from the company’s website e.g. http://www.ti.com/ or http://www.analog.com/) as: Low Noise (3nV/ Square root(Hz)), High CMRR (100+dB).

Because the Teabox only provides 5V and ground for the op amp to operate, it must be able to run on those voltages. e.g. single sided. Again this can be found in the data sheet under the Power Supply/Supply Voltage minimum and maximum. It must be able to operate from 0 to 5V. Another restriction is that the output must be able to swing from rail to rail, or at least 0.25V to 4.75V. It will be under Output, and will often show up as Vss + 0.25 and Vdd – 0.25. (e.g. 0.0 + 0.25V , 5 – 0.25V) If it is any lower than this, keep looking for a better op amp.

Here are some suggested op amps, but they are not the only ones you could use by a long shot.

  1. AD8515 (only in a surface mount package)
  2. AD8605 / AD8606 / AD8608 (only in surface mount packages)
  3. OPA 340 (we have not tested this with this part)
  4. OPA 350 (available in both surface mount and DIP packages)
  5. Maxim also has a few parts that you could use, however, we do not recommend them.

If you want to use a surface mount part, you can order a SurfBoard through Digikey upon which to solder it. Many of them allow you to attach all of the surface mount resistors right on the tiny board. For a lot of different prototyping, they work very well. If you decide to use AD8515 then you should use a 33205 SurfBoard or if you choose an SOIC part such as an AD8608 you could use something like the 9162 SurfBoard.

Here’s the schematic we’ll be using. If you are building a circuit like this it is common practice to put a capacitor between power and ground, as close to the chip as possible. For this circuit a 0.1 uF ceramic capacitor should work well. It does not appear on the schematic below, but you should definitely add the cap for the best performance.

Find the Scaling Factor

Alright, now that we have an op amp that will do what we need it to do, we have to set it to do the right thing. The first setting we need to figure out is how much to scale the input by, our gain. In our example above, We need to scale the range of 1.0V (0.0 to 1.0 V) to 4.5V (0.25 – 4.75V). To get the scaling factor just divide the Going to Voltage by the Coming From Voltage ( 4.5 / 1.0 = 4.5). e.g. we need to multiply our input by 4.5 to get it to the correct range.

|Gain| = Output Range / (Vin.max – Vin.min)

The actual circuit equation for the op amp circuit we are going to use is:

Vout = (Voff – Vin) * (Rg / Rin) + Voff

where Voff = (Rbot / (Rtop + Rbot)) * Vref

This looks a little intimidating at first, but once we break it down it becomes easier to digest.

First of all, Vin is your sensor input, so if your sensor sends out between 0.0 and 1.0V, that is what comes in Vin. Notice that Vin is subtracted from Voff before it is scaled, and then Voff is added again at the end? This is because we are using the op amp in an inverting configuration (it inverts the data coming in e.g. 0.0 = 1.0 and 1.0 = 0.0). Why do we do this? Because it is much easier to set up and will not affect how we use the data in the end.

Next, Voff is the voltage that we send into the positive input on the op amp. It is the value that sets the point around which Vin is inverted. Vref is our power voltage of 5V, and ( Rbot / Rbot + Rtop ) is a resistor divider network to scale Vref down to the appropriate voltage.

Finally, ( Rg / Rin ) sets the scaling factor (gain) that we just figured out above. It is set by the difference in the gain resistor ( Rg ) and the input resistor ( Rin ). So, our Scaling Factor of 4.5 could be any pair of resistors where Rg was 4.5 times larger than Rin. (such as Rg = 4.5k Ohms and Rin = 1k Ohm, or Rg = 369k Ohm and Rin = 82k Ohm )

How do we choose the pair of resistors? I’m glad you asked. There are two factors that determine this. The first is that there are a number of standard values that will be easy (and inexpensive) to use. These are numbers like 1, 1.2, 2.2, 3.3, 4.7, and 8.2 . There are a large number of others, but the deciding factor is whether or not you either have the part, or can get it cheap. (Another thing to factor in is that resistors are not perfect and will be classified on how close they are to the specified value. e.g within 10%, 5%, 1%, 0.5% . I prefer 1% resistors, but 5% are by far the easiest to get a hold of, and are generally adequate) So first you need to find a decent combination of resistors that will set the scaling factor appropriately. This is a hit or miss proposition. Try plugging some numbers into these equations to see what you can use.

Here are 3 versions of the equation:


4.5 * Rg / Rin
Rin = 4.5 * Rg
Rg = Rin / 4.5

  1. Try with Rg = 1.0: 4.5 * 1.0 = 4.5 therefore Rg = 1.0 and Rin = 4.5
  2. Now with Rg = 10: 4.5 * 10 = 45 therefore Rg =10 and Rin = 45 (notice that if you multyply both values by the same number (10) it turns out the same.)
  3. Rg = 12: 4.5 * 12 = 54 therefore Rg = 12 and Rin = 54
  4. Rg = 82: 4.5 * 82 = 369 therefore Rg = 82 and Rin = 369
  5. Rg = 22: 4.5 * 22 = 99 so Rin = 99

Let’s take a look at these numbers. the first set and second set are virtually identical. If you multiply both Rg and Rin by the same number the equation is the same. Therefore we could easily use 1.0 and 4.5, 2.0 and 9.0, 10 and 45, 100 and 450, etc. Unfortunately even though 1.0 is a standard value, 4.5 will be hard to come by, so this pair is out. The next set of numbers is the same way. 12 is standard, but 54 is not.

The last set shows some promise. 22 is a standard value and 99 is very close to 100, which is a standard value. Close enough in fact that this will work. It is within 1% of our target; our resistor of 1% – 5% error is that close anyway.

So now to step 2, we must figure out how large the values should be. We could have 22 & 100 Ohms, 220 & 1k Ohms, 2.2k & 10k Ohms, or even 22k and 100k Ohms, or higher. The difference between these values is how much current will run through them. There is a trade off to limiting the current or not. If you limit the current severely (with higher resistor values), the box uses less power, and there is only so much power that the box can provide. However higher resistor values can add noise to the signal (which 12 bit converters can detect).

A good rule of thumb is to keep the resistor values between 10k and 100k Ohms. Much less than that and you start drawing significant amounts of current, and much over that and you add a bit of noise.

So let’s settle on 22k and 100k Ohm resistors for our Scaling Factor.

Setting the Reference Voltage

So now our equation can be simplified to. . .

Vout = (Voff – Vin) * ( |Gain| ) + Voff
Vout = (Voff – Vin) * ( 4.5 ) + Voff

This is much easier to deal with. Now we just need to know what our offset needs to be. So, if we rearrange the equation above to solve for Voff we get.

Voff = Vin.max * ( |Gain| / ( |Gain| + 1 )
    or Voff = Vin.max * ( 4.5 / ( 4.5 + 1 )

Now we need to plug in our values:

Voff = 1.0 * ( 4.5 / 5.5)
  Voff = 0.818182 V

So our voltage divider on the positive inpute must equal 0.818182 V.

Now that we’ve found the optimum output voltage for our voltage divider network, we still have to find the value of the resistors that make it up. Here’s the equation:

0.818182 = ( Rbot / Rtop + Rbot ) * Vref

So, plug in an easy (standard) value for R1 and solve for R2 (or vise versa)

0.818182 = (10k / 10k + Rtop) * 5v
  8181.82 + 0.818182 * Rtop = 50000
0.818182 * Rtop = 41818.18
Rtop = 51111  (or approximately 51 k Ohms)

So now Rtop = 51k Ohms and Rbot = 10k Ohms. These values are reasonable for power usage purposes. If you are worried that they are too high, adding too much noise to the circuit, you could solve the equation for Rtop = 10k this gives a value of Rbot = 1.95k Ohms.

Simplified "Plug In The Values" Version

Vout = (Voff - Vin) * (Rg / Rin) + Voff
where Voff = (Rbot / (Rtop + Rbot)) * Vref
  1. Find the Gain:

    • |Gain| = Output Range / (Vin.max – Vin.min)
  1. Plug the gain in, pick a value for Rg and find Rin (try 10k first):

    • Gain = Rg / Rin
  2. Plug the gain and the max Voltage input in and find the offset value:

    • Voff = Vin.max * ( |Gain| / ( |Gain| + 1 ))
  3. Plug the offset and Vref (usually 5v) in, pick a value for Rtop (try 10k) and find Rbot:

    • Voff = Rbot / (Rtop + Rbot) * Vref
  4. Build the circuit!
    Enjoy the extended range and expression of your sensors!