DPAC

Archive for January, 2010

iPod Controls

without comments

iPod Breakout Board

After bringing up the FM Radio, the iPod was a walk in the park. We found a wiki site nuxx.net with the protocol reverse engineered, and it was as simple as sending serial strings at 8N1 19200 speeds, terminating with a checksum. We wrote up functions to pause, play, and skip songs, and they worked great.

Using a pinout we found at pinouts.ru, we connected to the line level audio out, and fed that through our audio multiplexer and into the amp. We had bought a breakout adapter from Sparkfun which made it easy to wire to the iPod. Our next phase would have been to use the advanced protocol to retrieve song data, but we ran out of time.

Written by egaertner

January 16th, 2010 at 8:16 pm

Posted in Worklog

FM Radio

without comments

AR1010 FM Radio

We chose to use the AR1010 FM Receiver module for our radio component. Addressable over I2C, we could tune to specific stations or seek at an adjustable sensitivity level. The documentation from Airoha wasn’t the best we had ever seen, and it took some work to come to a consensus on some specifics of the architecture. We found several documents and code portions that seemed to conflict in the exact operation procedure. Eventually we found the right combination of register settings, and the chip came to life. Using only a piece of  24AWG wire as an antenna, the analog audio outputted from the device sounded fantastic, even down in our underground cement-walled lab. We also hope to provide this code in the future to the SF community as a baseline standard.

Written by egaertner

January 10th, 2010 at 8:09 pm

Posted in Worklog

Web Interface

without comments

Web User Interface

We elected to create a service that ran on a remote web server to do the heavy lifting. This service interfaces with all of the various API’s to do the heavy lifting and calculate the final wake up time which is pushed to our device.

Along with this service we created a configuration front end that the user can access. When the user first sets up their device, they would create an account on our site, providing a unique identification number from the device. This number is stored in EEPROM and pushed with each web request, to associate the device with it’s data. Once the user logs in they provide their Google Calendar login information so our service can access their calendar entries.

They can also configure several parameters such as addresses, X10 device codes, and default wake times. The address shortcut fields make it easier to enter information into your calendar. Since Google Maps requires exact addresses that can be tedious to input, the user can use shortcuts such as “Work”, that our service will parse out into the correct address.

Written by egaertner

January 5th, 2010 at 9:24 pm

Posted in Worklog