Piezo-Acoustic iPod Hack
jugander writes "nilss over at the iPodLinux Project (previously on /.) has performed one of the coolest and most bizzare hacks I've seen in a while. He was able to extract the bootloader from the 4G iPod by sounding out ticks with the iPod's squeaky piezo. With some tweaking and a makeshift recording studio, he was able to dump the 64 kb file at 5 bytes/sec. And yes, this means that 4G iPods can now boot linux!"
I was curious was a piezo is. I found this explanation:
Short for piezoelectricity or piezoelectric effect. Piezoelectricity is an electric charge that occurs in some substances when they are squeezed or otherwise subjected to mechanical stress. It is also possible to cause these materials to vibrate when a voltage is applied to them. Quartz is one of the better known piezoelectric materials, and is commonly fabricated into small pieces, called "crystals" that are used for frequency standards. A crystal of specific size and shape will vibrate at a predictable and very stable rate when a voltage is applied. This makes them ideal for use in things like watches or clocks for digital audio equipment. Piezoelectric elements have also been used various types of transducers such as phonograph cartridges, microphones and loudspeakers. Piezo microphones can be quite small and still have relatively high output at a low cost; however, their less than ideal frequency response prohibits use in critical applications. Piezo loudspeakers usually come in the form of tweeters, or very high frequency elements. They generally have very low distortion in the 5 kHz and above range, but haven't widely been used in sound reinforcement due in part to their relatively low output levels. It takes dozens of the average piezo tweeter to equal the output of one medium-sized compression driver
I'm still confused (and I did RTFA) how the bits of the bootloader were translated to sound. Anyone care to explain?
This is a truely clever hack, I'm glad I donated money to these guys for a new 4G ipod.. now my ipod can run linux !
Sweetness !
This is slick, everything old is new again ? Reminds me of loading Adventure on my Apple II
Data transmission via acoustics is certainly nothing new, but getting something OUT thats not meant to be exposed on a MODERN device this way is just too cool.
Right now there are MANY P'o'd execs at Apple, and a bunch of engineers going crap (but quietly thinking man is this cool)
I wonder how many other things this can be applied to , for reverse engineering of bootloaders, roms, etc.
I would have fried a dozen gamecubes 2 years ago trying this method had I been given the idea then, (Yeah I know all the goofy bootloader stuff NOW in the last 6 months ) for GC is out,
KUDOS, now I might actually buy one.
I have fiddled a little bit with similar stuff.. Transmitting data via sound.
Basically I made a program that analyzes(FFT-ish) whatever comes in through the mic.
The sent data was beeps at 375Hz(zero) and 1500Hz(one). I was able to recieve data from a range of ~5m at around 50bps. In real-time no less.
As an added bonus it annoyed the hell out of my roommates(beepbeepboopboopbeep..)
I read the Googlecached story, karmawhored into this thread. It seems he kept the Apple bootloader, but rewrote the iPod "OS" with Linux. Then wrote a program to cat the stored bootloader to the piezo speaker, recorded that, then decoded the audio back to its bits - revealing the bootloader bit image.
Clever, but necessary? Does iPod Linux not give HW access for sending data over the iPod Firewire? If he can strobe the speaker, can't he strobe the headphone jack, for better fidelity and bandwidth? I understand the esthetics of this goofy, clever hack - worth doing even if just for the sake of weirdness. But was it necessary?
--
make install -not war
The newer iPods (the ones in this article) have at least twice as much CPU power. So, the Ogg question may be worth revisiting.
I'm sure plenty of users here have used WinAmp over the years. You've probably also used any number of different "plugins" for it. Some of my favorites are the ones that do "AGC" (Automatic Gain Control) on the playback audio. The better ones have settings for attack/release, min/max gain, etc. This process works to keep the playback volume relatively constant: Quiet passages are brought up, loud ones reduced.
It would be cool if the iPod/Linux software could incorporate such functionality, along with some of the other features of WinAmp, like the M3U playlists, etc. Imagine dumping your entire MP3 library AND WinAmp playlist(s) into the thing, then calling up the WinAmp emulator in Linux, and enjoying the crossfaded,random,volume-equalized music until the batteries croak.
Willie...
is it worth 400$ and the possiblity of bricking it to get a less that ipod quality mp3 player?
You can't see it now, but the iPod linunx site states clearly that, to their knowledge, no one has bricked an iPod due to installing iPodLinux on it -- even since the long-ago development days.
In fact, iPodLinux's installer sets it up so you can dual boot into Linux and the Apple firmware, and you can make one the default. I installed this on my 1G and the other day, and it indeed works very, very easily. It is one of the more underrated hacks going on today, IMO.
Its sweet but does it ahve a point?
To satisfy your slashdotty interests: imagine you and a friend have iPods, and imagine you connect them with a firewire cable. You both boot into linux, transfer files, and reboot (back in to the Apple firmware). The use is left as an exercise to the hacker.
Meh, not really because he isn't doing any modulation or demodulation. He is simply playing one sound if the bit is on, and another sound if the bit is off. This is very slow, but in this case it was the "The right tool for the job".
A true modem encodes data somewhat differently.
http://www.wikipedia.org/wiki/Modem
— darco
Reminds of how I dumped the gameboy advance rom. You wouldn't access the rom memory directly no matter what you did. However, that didn't stop you from using the video interrupts with a pointer at location zero. :)
And even more related, you could do the same thing with the sound registers, except that you could get a hardware buffer instead of interpreting the sounds.
~X~
~X~
I'll have that young whippersnapper know that those of us who loaded up our home computers from cassette tape recorders could tell by the volume whether we would get a good load and even learn to tell when the load was about done for specific programs.
On an old computer 15 years ago (it was not really a PC yet), I had no sound output and wanted to experiment with sound processing. so I used the 5" floppy drive's LED which I could blink up to about 100 kHz, in front of which I put a photodiode connected to my amplifier's input. I had to turn of the lights to remove the 50 Hz background noise, but then I could hear the sounds really well. I even played using a PWM code to be able to output analogue levels.
It was funny to do all this when computers were not as equipped as they are today. Now we're just users and nothing more.