ericfaller.com Pithy Quote Goes Here

30Oct/06

Monome Apps

Here's a video (below) of a few of the more interesting monome apps I've made so far (see this post for an explanation of what a monome is).

  • "Grid" game: I haven't thought of a better name, but this game is sort of like Othello or Go. Players play as "light" or "dark" and try to capture the opponent's territory by toggling his/her pieces and then capturing any surrounded squares. It's interesting to play at first, but after playing several people without finishing a game, we determined that it's probably not actually winnable as long as both players always make intelligent moves. But, interestingly enough, a "greedy" AI that plays against itself will often end up winning (and losing), as long as it doesn't get stuck in an infinite loop.
  • "Raindrop": this is a raindrop ripple simulator. You can create ripples by pushing buttons - the more you push, the bigger the ripples. It's pretty cool.
  • Pong: the classic. The resolution (8x8) is a little low, but it actually works pretty well since the computer simulates the board at higher resolution. The main problem I see with Pong is that each player has only 2 inputs (up and down), so it's not using the full power of the 64 buttons, which it seems like good monome apps should.

Here's the YouTube video:

18Oct/06

Monome 40h

I recently got a Monome 40h, which you might recognize from Engadget or Maker Faire. It's a USB grid of 64 backlit buttons (40h, 64, get it? ..is it sad that I do?).

The best part is that it doesn't come with any software in the box, no CD or even a slip of paper with a download URL on it. You have to write your own software from scratch to use it. How awesome is that? It pops up as a USB serial port when you plug it in and it uses a dead-simple 2-byte protocol so it's pretty easy.

So what does it do? It doesn't do anything ... in particular. It does whatever you make it do. It seems that most of the apps people have written so far deal with using it as a sort of MIDI sequencer (see this video for an example).

I have a ton of ideas for cool little games for it, but I'm not yet sure how well they'll work. The main problem I see is that there are only 2 states for the LEDs: on or off. So even a simple 8x8 game like checkers wouldn't work, since you need at least 3 states (5 with kings). "Blinking" could be used as a third state for those kind of games, but I think it would get kind of distracting.

I'm going to start off by making an Othello/Go-type game and a Pong game and go from there.

If I played WoW it could be useful as a gigantic macro pad or something like that, but I don't (fortunately?).

Monome 40h

7Oct/06

Magic LED Box

On Sunday I was bored, so I built a box with some LEDs and mirrors inside of it:

Box Pic 1

It has blinking LEDs on the ceiling and a couple of convex mirrors on the bottom which reflect the LEDs and make it look like there are more than there really are.

Since it's dark inside the box, the blinking LEDs distract you from noticing the water nozzle in the middle hooked up to a squeeze-ball behind the box. When I activate the squeeze-ball it squirts you in the face:

Box Pic 2

I brought it to work and had moderate success showing it to co-workers. Many were initially suspicious of the weird-looking box, but I was eventually able to prank everybody that came by (except one guy who recently had an eye operation that I decided not to squirt).

It turned into a sort of a social experiment in how to get people to stick their faces into a box. I had some interesting observations:

  • People were much more suspicious if I said "hey, come look into my magic box" "what's in it?" "oh, you'll see.."
  • Instead, if I waited until they walked by and asked about the box they were much more gullible, especially if I said something like "oh, do you want to see the LED light show too? ok, let me turn it on..."
  • Everybody was expecting to get an electric shock when they looked in (probably because of the circuits and LEDs on the top). Nobody guessed that it would squirt water
  • It's probably a good idea to ask people if they wear contacts before squirting them in the face with water (of course that would ruin the surprise in this case..)

Here's a video clip with some highlights. I got a bunch of other people too but forgot to turn on the webcam in time:

9Aug/06

Squeezebox

Today's question: What's the best way to stream MP3s from my computer upstairs to my stereo downstairs? (my life seems to be beset with these sorts of problems)

Here are the network music player requirements that I was forced to work with:

  1. It needs to connect wirelessly to my 802.11g network
  2. It must support WPA-PSK encryption
  3. It should have S/PDIF digital audio outputs
  4. It should be super-easy to use once set up (minimal work required to turn the music on and off)

The first thing I tried out was an Airport Express with Airtunes from Apple. It aced the first 3 requirements, and I figured that nothing else would score better on #4. Unfortunately I was wrong on the last one.

The problem with Airtunes is that it just pretends to be a set of "remote speakers" and requires a computer to be running iTunes all the time to play the music. I ended up with two options:

  1. Leave the computer upstairs on all the time playing music (easier now that I have a Mac Mini Media Center). This worked, but in order to switch songs or playlists I had to run upstairs and switch them on the computer, which was annoying.
  2. Run iTunes on a laptop downstairs and play the music from there. This worked if I was already using the laptop, but if I was just eating breakfast I would have to go over to the laptop, wake it up, type in my password, find iTunes and hit play. Then when I was leaving I had to walk back over, stop iTunes and sleep the laptop. Far too complicated.

The only other network music player I could find that fulfilled the first 3 requirements was a Squeezebox (and only the very newest model supports WPA). It works by streaming the MP3 files from a network server and playing them directly. It also has a remote that can be used to browse the music collection on its big LCD and (most importantly) the ability to start & stop playback with one button push. It also runs its own web server so you can manage which music is playing from any computer on the network (including a cell phone).

It was pretty much exactly what I needed. Here's a picture of it in action:

Squeezebox

And here's the back:

Back of Squeezebox

It has a headphone port, analogue RCA stereo jacks, optical and coax S/PDIF jacks, and an ethernet port (for wireless network bridging, also very handy).

So far it works great. Setting it up was the only difficult part. Typing in the 256-bit WPA key with the remote was very painful, especially since it kept crashing with a helpful "malloc failed" error message and rebooting, forcing me to start over. But, now that I have that all sorted out I haven't had any problems with it.

Filed under: Electronics, General Comments
5Aug/06

GTI iPod adapter install

Unfortunately the 2006 GTI does not come with an integrated iPod adapter (unlike the '07 model, grr). But, VW does make an adapter that connects the iPod to the stereo system and pretends to be an external CD changer. It's not the best solution, but at least it powers the iPod and I can control it and switch tracks from the steering wheel.

I was already pissed that I would have to pay $150 for the dumb little cable, and I refused to pay the dealer another $150 to install it, so I got one off eBay and did it myself. Unfortunately the instructions were in German and assumed that I already knew how to take apart the dashboard to get to the radio, with VW-specific tools that I didn't have.

So if anybody else is trying to do the same thing, here are pictures of how I did it:

Top vent

First pry off the top dash vent with an "ausdruckwerkzeug" (whatever that is - I used a credit card)

Front vents

Remove the front vents and the screws holding the radio in

Radio

Pull the radio out and disconnect the wires in the back

Audio wires

Move the audio wires from the satellite radio connector to your iPod adapter cable

Ground wire

Splice the ground wire to the iPod adapter cable

Glove box

Stick the other end of the cable in through the glove box

CD-EXT

When it's all done, the iPod shows up as an external CD changer. The first 5 playlists on the iPod show up as CDs 1-5. Unfortunately the track/artist/album names don't show up on the radio or the in-dash LCD, and you can only use 5 playlists, which kind of sucks. Oh well.

Filed under: Car, Electronics, General Comments
29Jul/06

The day the music died

Today my iPod decided to die with the "folder and exclamation point" error:

iPod exclamation point error

Unfortunately none of Apple's troubleshooting suggestions worked (typical), and I couldn't get my computer to recognize it as a Firewire device any more. The hard disk seemed to be dead since I couldn't hear it spinning or seeking when turning on the iPod.

The warranty expired a long time ago, so I opened it up to see if there was anything loose or obviously wrong. I didn't see anything, so I guess I'll be getting a new one. I was planning to anyway, but I wanted to wait until the next version, with the rumored full-size screen. Oh well.

Here are some pictures of the insides of the iPod:

iPod Case

iPod parts

iPod circuit board

Filed under: Electronics, General Comments
25Jun/06

SD vs HD

Fortunately, my problems with the video quality of the DCT-3412 cable box ended up not being so bad, for the simple reason that all of the channels I receive seem to be digital, so they can all be recorded via Firewire (as long as they are not protected with DRM). Also, connecting the MCE via S-Video instead of the RF tuner increased the video quality for shows I can't record with Firewire.

Once that was all working, I did some tests to see how noticeable the difference between SD and HD really is. Here are some pictures:

Firewire SD recording

Standard Definition

Firewire HD recording

High Definition

Obviously the HD screenshot has been shrunk to SD, so they look about the same here (except that the HD shot is in 16:9). Click the HD thumbnail to see it in its full resolution (HD 1080i).

Here are the two shots scaled to the same size, for an easier comparison:

Standard Def face

Standard Definition

High Definition face

High Definition

The last shot clearly shows HD's better picture quality, but ironically the newscaster actually looks a bit better and younger in the SD shot, since the blurriness of SD masks wrinkles and imperfections, while HD hides nothing. (I'm definitely not the first to note this irony)

20Jun/06

Mac Mini Media Center

Last week I finally caved to peer pressure and got cable TV installed. Instead of actually watching any TV shows, I went right to work on getting the TV signal hooked up to my computer so that I could record and watch TV on it.

Unfortunately my computer is very loud and heats up my room whenever it's on, so I couldn't imagine leaving it on all the time in order to record TV shows. So I looked around for a small & quiet, yet still somewhat powerful computer. I decided to get one of the new Intel Mac Minis:

Mac Mini

So far it has been pretty good. It has its pros:

  • Small
  • Quiet
  • Intel Core Duo processor
  • DVI & digital audio out

and cons:

  • Weak integrated graphics
  • No CD eject button
  • Some of the hardware doesn't work under Windows
  • No expansion capabilities (i.e. for a TV tuner)

Surprisingly, it was fairly easy to install Windows XP Media Center Edition 2005 on it. I only had a couple of problems:

  • I had to burn my own install DVD since Apple's Boot Camp software only likes XP Home & Professional
  • I hit the infamous and deceiving "Setup cannot find the EULA" error message, which was caused by the large hard drive getting formatted incorrectly by Mac OS X, so I had to re-partition it by hand

For the TV tuner I got a Hauppauge Win-TV-PVR-USB2-MCE:

TV Tuner

I thought this would be a good tuner (even though it's USB), but unfortunately I was disappointed. The video quality is noticeably blurry when compared to component output from the cable box. I haven't figured out yet whether it is the fault of the RF encoder on the cable box or the USB tuner, but it could probably be either one (or both).

The tuner quality was not supposed to be a problem in either case, since I was planning to grab the raw digital video directly off of the cable box using Firewire and Tim Moore's set-top box controller software (recommended by my friend Mike). Unfortunately that plan didn't work out so well either, because Comcast gave me the new cheapo Motorola DCT-3412 STB, instead of the good DCT-6412, which included an MPEG2 encoder and could output any channel over Firewire:

Cable box

So I can only record analogue channels using the blurry tuner, although digital (and HD) channels should work fine over Firewire, once the kinks are all worked out.

Ultimately it didn't work out as well as I had hoped, but it should still be OK since I can always record analogue shows on the Comcast box and watch them there. Here's a picture of the final 'Mac Mini Media Center':

Mac Mini Media Center

And here is a screenshot at 720p (linked to full version):

Screenhost thumbnail

Filed under: Electronics, General Comments
5Jun/06

LEGO Robot

A few weeks ago I was at the mall and I walked by a LEGO Store. I had heard of these, but I did not realize that there was one nearby. Naturally, I had to go in. When I came out, I had $200+ worth of LEGOs, and a membership in their "Loyalty Discount Card" program.

The most interesting thing I got was a Mindstorms kit. The Mindstorms kit lets you build little LEGO robots out of electric motors, wheels, gears, and things like that. Somehow I missed out on them when I was a kid, but I have them now.

I always wanted to make a wireless rover bot that could drive around the floor and take pictures of things. I was able to make a robot like that in college, but it had a bunch of wires hooked to it for power and control, so it wasn't as cool as it could have been. Now, with the Mindstorms kit I realized I had everything I would need. I could build a little robot out of LEGOs and attach my cell phone to it. The cell phone would direct the robot and send pictures back to my laptop, where I would be controlling the whole thing.

It ended up being more difficult than it sounded, primarily because the LEGO computer could only communicate via infrared, and it was a proprietary protocol (not IrDA), so the IR port on my cell phone would not work. I solved the problem by ripping the IR PCB out of the Mindstorms transmitter, attaching it to a handy Bluetooth serial port, and hooking it up to a RC car battery pack. Unfortunately the IR transmitter required 9V and the Bluetooth receiver required 5V, so I had to add a regulator into the mix, but it turned out OK:

IR Transmitter

Now my phone could communicate wirelessly with the LEGO controller over Bluetooth. Luckily the protocol had already been previously reverse-engineered by a Stanford student with far too much time on his hands, so I didn't have to do that too.

The next thing to do was to build a robot that could house the battery and hold the cell phone up. I wanted it to be able to turn around and rotate in place, so I came up with a 3-wheeled design:

Robot 1
Dragon wings make anything cool
Robot 2

It ended up being a bit top-heavy, but it works pretty well.The last thing to do was to get a video-conferencing program to run on the phone and transmit video back to my laptop. I figured this would be the easiest part of the project, but it ended up being the most difficult, because I had to write my own by hand. I was shocked to find that there were no Pocket PC video conferencing programs that worked with Windows Mobile 5.0 over WiFi. Microsoft Portrait was almost exactly what I needed, but unfortunately it had not been updated in several years and did not work with my phone's camera.

I started from an SDK sample that captured JPEG images and made a little program that sends a stream of images to a PC over WiFi. It's a bit slow since it doesn't use a real video codec, but it's still surprisingly fast. It updates at about the speed of a USB webcam. Here's a screenshot of the PC half of the software:

PhoneCam

Finally I had everything in place and was able to drive the robot around and see where it was going from my computer. Awesome!

Here is a video of me driving it around:

About Me

Eric Faller

Eric Faller

Software Engineer at Facebook
Palo Alto, CA
Facebook Link

Photos

IMG_2441 IMG_0138 IMG_0363 DSC01558 IMG_0646 IMG_0390 IMG_4849 IMG_0677 IMG_0924 DSC01893
More Photos..

Recent Posts

Topics

Archives

Site Tasks