The iPhone Serial Port Hack
An anonymous reader writes "The iPhone's little known secret, a hidden serial port, is revealed. 'The real benefit in all of this is that there are so many console packages for iPhone in Cydia now that you can have a fully functional computer, as useful as a Linux box, but without carrying around a laptop.'"
Get a Nokia N900 or Android.
i want to know why everytime i plug in my ipad the pc asks what kind of camera it is
I'm reminded of Linksys WRT-54G routers and such.
You might need to do some surface mount soldering to get to the required connections.
Very handy for booting up a Sun server.
This isn't a "secret"... it's been in the iPhone (and iPod for that matter) for quite a long time. This same serial port is how 3rd party docks and cables control the device from the outside: http://www.adriangame.co.uk/ipod-acc-pro.html
The iPhone's little known secret, a hidden serial port, is revealed. 'The real benefit in all of this is that there are so many console packages for iPhone in Cydia now that you can have a fully functional computer, as useful as a Linux box, but without carrying around a laptop.'
Personally I think it would be far more practical and useful to use an iPad. The iPhone screen is just too small for practical use, however in an emergency the iPhone could be quite useful. But for somewhat frequent normal use, I have doubts.
Could have sworn there was more to these computer things then that.
"Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
If you'd like to read the article instead of Computer World's stupid-ass slide show, it's at http://resolvehax.blogspot.com/2010/10/iphone-serial-port.html
Just get a Nokia N900. Nothing hidden there.
How are you going to attach the tape reader/punch for the program tape without a serial port?
Welcome to the Panopticon. Used to be a prison, now it's your home.
"Don't jailbreak your iPhone, that's stupid. You shouldn't have to do anything to run the software you want. Instead, get an Android phone. Yeah you have to root it to run the software you want, but that's totally different".
And yet, you are posting on Slashdot.
Wirelessly?
Yeah you have to root it to run the software you want, but that's totally different
You're right, it is. Unless you Jailbreak your iPhone, you're stuck with the App store. I can install programs from wherever I want to on an Android phone by selecting an option built into the OS.
Living With a Nerd
Or, I dunno, a small netbook and a USB-to-serial cable. They're hardly massive.
It's not like you don't know in advance when you're going to need a terminal. If you can remember to bring that massive dongle thing along you can remember a netbook.
No sig today...
Please don't use the hardware you purchased and is now yours for non-Apple authorized activities. Apple reserves the right to REMOVE and/or RESTRICT functionality in order to support our business model as we see fit.
Apple
And yes, I'm aware you have to root the phone to install a custom ROM...but you can still install apps from anywhere without having to void your warranty or hacking the phone.
Living With a Nerd
Alas, this hack won't do it:
To operate the serial port, we need to run an RS232 to TTL converter. Fortunately, there's a 3.3v output on the bottom of the phone that'll power our unit. Not useful if you want to get into the phone's serial console, since it only provides power once booted.
In other words, this design is powered with a power source that isn't even available until the iPhone/iPod is booted up.
I guess you could fix that with an appropriate external power supply; a little wall-wart and some appropriate voltage regulation.
Welcome to the Panopticon. Used to be a prison, now it's your home.
as useful as a Linux box
Sure.
What next? They'll discover a hidden parallel port and what? It's supposed to stop world hunger?
1 Earth is warming, 2 It's us, 3 it's royally bad, 4 we need to take action NOW
<sobbing level="softly">I don't want to go back to carrying gender changes, null modems, 9/15 pin changers as well as worrrying about DCE/DTE and handshaking ..... </sobbing>
I am Slashdot. Are you Slashdot as well?
...given that you can buy ipod breakout boards on ebay with the serial connectors clearly marked, it doesn't seem to be a particularly well kept secret.
See http://cgi.ebay.co.uk/Enhanced-Breakout-Board-Ipod-Iphone-Ipad-/370447835814?pt=UK_CE_MP3Access_RL&hash=item56406962a6 for an example.
My time is worth too much to play with hidden features that the manufacturer won't even tell me about, much less support.
And yet, you are posting on Slashdot.
FUCK! I had no clue that /. had hidden features... I am guessing that's where all the good submissions end up?
This serial port has been around forever. All those cars with iPod integration use it for control and data. I've controlled the iPod functionality on every iPod I've had (since 3rd gen) as well as three iPhones using an Atmega controller. I year or so I shared some controller code for Arduino based atmega microconrollers.
Here's how you control your iPhone or iPod music with an Arduino, easy peasy:
Sheldon
* /* Control iPod/iPhones from Arduino
Sheldon Stokes
Jan 3, 2009
Standing on the shoulders of ipodLinux.org
http://ipodlinux.org/wiki/Apple_Accessory_Protocol
This send comands to the iPod as though it were a remote.
These are the simple 2 byte commands that should work on all
Apple iPods and iPhones starting with the 3rd Generation iPod
*********** Commands (array index, command value, command description) **************
0 0x00 Button Release
1 0x01 Play/Pause
2 0x02 Vol+
3 0x04 Vol-
4 0x08 Skip >
5 0x10 Skip
6 0x20 Next Album
7 0x40 Prev Album
8 0x80 Stop
*/
int commandBytes[]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
int checkSum;
int playPin = 2;
int stopPin = 3;
int fwdPin = 4;
int backPin = 5;
int playVal, stopVal, fwdVal, backVal;
void setup()
{
Serial.begin(19200);
pinMode(playPin, INPUT);
pinMode(stopPin, INPUT);
pinMode(fwdPin, INPUT);
pinMode(backPin, INPUT);
}
void loop()
{
playVal = digitalRead(playPin); // read play button // read stop button // read fwd button // read back button
stopVal = digitalRead(stopPin);
fwdVal = digitalRead(fwdPin);
backVal = digitalRead(backPin);
if (playVal == LOW) // send play command // send button release // send stop command // send button release // send stop command // send button release // send stop command // send button release
{
sendRequest(commandBytes[1]);
sendRequest(commandBytes[0]);
}
else if (stopVal == LOW)
{
sendRequest(commandBytes[8]);
sendRequest(commandBytes[0]);
}
else if (fwdVal == LOW)
{
sendRequest(commandBytes[4]);
sendRequest(commandBytes[0]);
}
else if (backVal == LOW)
{
sendRequest(commandBytes[5]);
sendRequest(commandBytes[0]);
}
delay(100);
}
void sendRequest(int val) {
checkSum = 0x100 - ((0x03 + 0x02 + val + 0) & 0xFF);
int request[] = {0xFF, 0x55, 0x03, 0x02, 0x00, val, checkSum};
Yeah, it's got a serial port, with TTL levels, at its external connector. Big deal.
It's also possible to attach USB devices, which is somewhat more useful today. For example, you can plug a real keyboard into an iPad.
I still think the iPhone is much more of a hackers platform than any android phone.
It is kind of long but I'm going to recycle a recent comment:
---
What's funny is, iOS jailbroken is actually a nerd's paradise. Much more so than android actually.
On the iPhone, you have a full apt package system, a terminal running bash, OpenSSH/OpenSSL tools, server, client, etc. a full GCC dev environement, etc.
A lot of this stuff is stuff you just don't get on Android at any level. You get a terminal out of the box with android, but what do you get? Busybox. Guh. Want SSH? You get Dropbear. The package system sucks compared to APT. I've never tried getting GCC running on the phone but I don't imagine it is easy, if at all possible.
With the iPhone I really feel like I have a full computer running in my pocket. I asked several android hackers why you are limited with these crappy tools on the phone itself, and they replied it was an embedded device so you get embedded tools. I'm sorry but something with 1-2 cores at >1GHz, a GPU that far outstrips anything on my earlier computers, and 32 gigs of NV storage is -not- an embedded device, I don't care how small it is.
You get all this, PLUS a UI that (only IMO I understand) is far more fluid and nicer to use than Android.
Don't get my wrong I'm not just yelling across the fence. I had a Nexus one for a good few months. I tried hard to like it, but in the end when the i4 came out, I jumped ship like it was on fire.
There is of course, hassle. I don't like to restore from backup so Every time there is a major firmware update I actually wipe my phone clean, then sync all my apps over fresh. But thanks to several tools out there it isn't a total restart.
There is hassle but for me, android has a LONG way to go, especially on the hacker front to be anywhere near the iPhone in terms of UI -AND- geekery.
---
It's easier to fight for one's principles than to live up to them.
But you need a 3G data card in the netbook if you want to just leave it in situ and ssh in to it; the iphone and this box can juat be plugged in and left there -- (for as long as the battery lasts) -- you can be wherever you like.
So your saying you can leave it somewhere running on it's battery for about an hour?
Be seeing you...
More recent ones have anti-tamper (Droid X) or auto-reflash (G2), making it a pain to root.
I honestly think Google is very disingenuous to say Android is open when many currently-selling actual devices are locked tighter than the iPhone.
Perhaps Google is just happy that Android is "open to the carriers".
You want a sure bet for an open system, go with the N900.
Make sure everyone's vote counts: Verified Voting
Love how you classed that right up by adding a smiley.
Did you see the masthead? "News for nerds". This is what we do. This is our recreation. I personally found the article fascinating, even though I don't have an iPhone.
You say your time is worth too much to play with hidden features, but I'll bet it isn't worth too much time to watch a NASCAR race or a football game or a movie, now is it?
Free Martian Whores!
Because hardware "is hard". The bulk of the arduino crowd doesn't really want to play with hardware, they want to buy kits and write some glue code for premade libraries and pretend like they know microcontrollers.
Means to an end, and all that. They're more concerned with what they can do with it than how they accomplish it.
So a jailbroken A is more open than a B in its original, closed state? Fascinating.
Escher was the first MC and Giger invented the HR department.
Alas, this hack won't do it:
In other words, this design is powered with a power source that isn't even available until the iPhone/iPod is booted up.
I guess you could fix that with an appropriate external power supply; a little wall-wart and some appropriate voltage regulation.
A USB-serial adapter like the CA-42 (powered from the PC on the other end) would be perfect for that purpose. Check out all the OpenWRT or similar "serial console" articles.
Dude, it's selling right now from major retailers. Ships today.
I got this after 5 seconds of googling:
Google Shopping
Amazon
Make sure everyone's vote counts: Verified Voting
Fantastic. So to get a usable device, I have to install a different operating system.
It is cool, nice to be able to do, etc, but not quite the same thing.
It's easier to fight for one's principles than to live up to them.
Meh... or you could get a N900 that comes with those tools *ALREADY INCLUDED* in the base OS.
Package manager? Maemo is a modified Debian, and uses Apt.
Shell? Default is Busybox, but the full system is in the repos.
Build toolchain, including GCC? In the repos.
OpenSSH and sshd? In the repos (also dropbear, if you prefer).
Anything that's available as source and compiles on ARM? Go to town. You can even pull directly to the device using Subversion and other mackage managers.
Seriously, arguing over whether iOS or Android is more open is like arguing over whether a Prius or a sports car is better for off-road driving. You're both doing it wrong. Get the right tool for the job.
There's no place I could be, since I've found Serenity...
Few people remember when the iPhone serial port was used to hack into a flying saucer and inject a virus into an alien space fleet, saving the Earth. And the President himself led the attack against the mothership. It seems like only yesterday, before these stupid people locked me up in here.