Monthly Archive for January, 2012

Built Some Speakers (Courtesy of Bose!)

Last Friday, Jordan and I took the one-day speaker-building workshop offered during IAP by some Bose Engineers. We each built a set of some surprisingly good speakers!

(side point: for those unfamiliar with IAP, it’s MIT’s way of saying “do whatever the hell you want for a month and maybe even learn something if you want.” I’m TAing an introductory electronics class that focuses on building cool stuff like little EKGs that kids can take home)

Anyways, I thought I’d spend at least a day this month actually learning something. This class spent a few hours going over the theory of how speakers work and then we built some simple speaker “cabinets” to house the transducers that Bose uses in their 201-series desktop speakers. The cabinet? Well, it’s a piece of PVC pipe. 😛

(yes, I installed one of them upside down and yes it’s annoying me)

Looks pretty weird, right? Well, the sound’s surprisingly good! I didn’t expect it to be nearly that good for the materials we’re using. Basically, we installed the woofer and the tweeter onto the PVC and then ran wires to the back. Then, using a resistor and a cap, we created a damped first-order high-pass filter to prevent the tweeter from being driven by low frequencies. Finally, we threw some fluff into the PVC to dampen some resonances. Here’s a shot of the extremely advanced crossover and the fluff.

It wasn’t very technically difficult to build these speakers. Anybody could really do it so long as they had a drill and some PVC; you don’t need much more than that. I was hoping that we’d actually build the speaker cones, but those were all pre-built (they had a pre-assembled one to show how they work).

These cones can be driven with up to 100W or so (though the Bose site claims that the speakers that they’re usually in can be driven to 120). I’ve got a second set of outputs on my stereo amplifier, so I might try to hook them up to those outputs. They also gave us a simple 15W amplifier kit based on the TPA3122D2 chip from TI.

When Jordan and I were testing them out, we managed to find a really strong resonant frequency of the PVC pipe. When a certain note hits, the pipe resonates and makes a really gross sound, louder than everything else. Good cabinet design is really crucial to making things sound good. Except for that frequency, we didn’t find any other glaringly bad parts of the speakers’ sound.

All this made me wish all the more that MIT had an acoustics class. Bose himself used to teach MIT’s acoustics class, but nowadays, there’s nothing. I’ve always had a sort of fascination with sound, but never really got motivated to build acoustics-related projects. Maybe I’ll work on modifying these speakers to sound better and see where things go from there.

Mutt: A faster way to mark messages as read

I was looking for a macro for Mutt to mark all the messages in a mailbox as read and came across this post which suggested:

[cce]macro index M “T.*\n;WN” “Mark all messages as read”[/cce]

However, this is slow because it performs a tag matching against the Regex pattern “.*”, which is computationally intensive. Another post recommended using ~A instead of .*, but this still has to tag everything in your mailbox and that kind of sucks big-time. So, I came up with this instead:

[cce]macro index <esc>m “T~N<enter>;WNT~O<enter>;WO\CT~T<enter>” “mark all messages read”[/cce]

It first selects all messages marked “New” and untags them. Then, it selects all messages marked “Old” but unread and untags them as well. Finally, it gets rid of all the tag markings by doing T ~A.

Seems to be working pretty snappily.

ACRIS Board Rework: Fixing Faulty Communication

A while back, I identified a major issue with ACRIS’s communication network. The MAX485 chips that I use can switch between transmitting data and receiving data. To switch modes, you simply pull two pins either high or low. I tied these pins directly to the ATMEGA so that I could allow the LED controllers to talk to each other in future firmware revisions.

However, when the ATMEGA first starts up, the state of this pin is unknown, so a blip in the logic power can cause multiple devices to want to transmit data. As a result, the entire communication network just sort of stops. 🙁

But, by adding a simple pull-down resistor to those transmission-enable pins, it will make the default state of the MAX485 to receive data.

The rework on my lights was pretty difficult because everything was pretty tightly packed. But, I was able to remove the main body in order to get at the MAX485 chip.

Afterward, soldering a 10K pulldown resistor was not hard.

Re-assembling was a pain in the neck, though. I kept losing the plastic spacers and doodads.

I Can Multimeter Things Again!

Okay, so I have a ton of multimeters — I think around 5. I’m not really sure why; I think almost all of them I’ve gotten for free except for my favorite one, a Sinometer VA18B, which has a ton of functions and can also send data via USB.

But, I left a battery in it and the terminals got so corroded that they were destroyed. 🙁 So I thought I could quickly solder a new connector to the board.

Rule #1 of electronics: DO. NOT. TAKE. SHORTCUTS.

I didn’t want to take the board out of the housing as shown above, so I thought I could just desolder the existing wires and feed the new ones in. I ended up lifting the pads, making those spots that I was supposed to solder completely useless. Furthermore, I accidentally had my iron temperature set too high, so I was melting a lot of the insulation (the high temperature also caused the pads to lift).

So, I fixed the problem by basically tacking the wires onto the sides of components that were electrically close to the original holes. Mechanically, this is a very bad idea; the connections are very brittle. Take a look at this mess:

And to top it off, the replacement 9V connector I had was too big for the plastic slot, so the battery cover didn’t fit on very well at all. Ugh.

So, morals of the story:

  1. Don’t leave dead batteries in your devices.
  2. If you’re going to do rework on a board, keep the iron temperature as low as possible.
  3. Take the time to undo the extra few screws to have better access to the board. Otherwise, it’ll take you more time in the end and you’ll end up with a worse result.
  4. On the plus side, my multimeter does in fact work again, so I’m happy about that. 🙂 🙂 🙂