PDAs as Arduino peripherals?  Or vice-versa?

The thread on a car monitor with a speech synthesizer (http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1243362861) got me thinking about using iPaqs and Palms in conjunction with Arduinos.

For example, you can buy a working Palm III for not much more than the cost of a bare graphic LCD. There's an app available (http://palmorb.sourceforge.net/) that makes it act like a Matrix Orbital serial character LCD. But why not make it act like a graphic LCD? You could get around the slow speed of the serial interface by implementing the functions of the GLCD library (http://www.arduino.cc/playground/Code/GLCDks0108) on the Palm, and just sending the function parameters, instead of hundreds of bytes of pixel data. You could also use the Palm touchscreen as an input device for the Arduino.

It costs more to get an iPaq, but you get a much nicer screen (again, at a cost similar to that of a bare display module). And quite a bit more CPU power, so you could do both a display and a speech synthesizer on it. And even use it as an Ethernet or WiFi bridge with the right plug-in card. Or write apps that run on the iPaq and use the Arduino for I/O. I doubt an iPaq could support a full-blown Processing environment, but it's probably feasible to do some sort of standard GUI application that would use (a subset of) the same protocol.

My inclination (because of my strong anti-MS bias, and my extreme cheapness) would be to design tools that would work with older iPaqs that had been reflashed with Linux. It's a more PC-ish environment, with networking and multi-tasking well-supported, that's just plain better for building embedded applications (and doesn't require a hard reset and restore every few weeks like older versions of the MS software do :P).

Has anyone else thought about doing this sort of interfacing? What are your thoughts on architecting a PDA-Arduino system?

Ran

From what I understand, if the idea is to have the PalmPilot as an input/output device that talks to Arduino on the serial port, then it sounds very interesting to me. I see a few issues to overcome: - developing/finding/maintaining software for the PalmPilot; - serial port on PalmPilot seems to be RS232, so one would need an adapter; But: - one can use the power from PalmPilot (are those rechargeable, in place?); - for user input/output, no need for shields, LCD screen, buttons etc. It sounds great, indeed (I am a cheap guy as well). I will follow your research.

I did a little hunting on E-bay a year or so ago looking for a PDA to use as a cheap terminal for a micro system. Never could figure out exactly which brand and model would have worked best. I did find a few things out.

  1. Most models for quite a few years now use USB for communications so not a easy fit for an Arduino.

  2. Not clear which brands/models came with a serial communications app built in. There were 3rd party and shareware apps for many but not sure how easy to find today for the older models.

  3. Display quality/brightness varied alot between era/brands/models. I read lots of old reviews and finally gave up searching, however it's still a good idea and their are very cheap prices on E-bay, I just couldn't make a good buying decision without being able to see the PDAs in person.

Lefty

See this thread: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1241304479 and http://palmorb.sourceforge.net/

The first couple generations of Palms have a 160x160 monochrome screen, run off AAA batteries (rechargeables are okay), and have an RS-232 interface that works with simple 1-transistor or CMOS inverter circuits. They weren't intended to use external power or share their battery supply (but people have done tricks like using a couple of dowels with tacks on the end to replace the batteries with a wall wart). Serial connectors and cradles for them are real cheap due to lack of demand.

The third generation (Palm V) has an internal rechargeable that's somewhat difficult to replace, and a connector that's incompatible with both the Palms that came before it and the later ones. I haven't really looked at prices on those.

Some of the later Palms (with the "universal" connector) might be good candidates: they still have serial interfaces, can run off external power (so they might be extra-cheap if the batteries are weak). Some also have color screens. But they may also be "current" enough to not be available dirt-cheap like the early ones.

The 3600 and 3700 iPaqs are probably among the best candidates: obsolete enough to be cheap, with legendary display quality, serial interfaces, and a separate power connector that makes them easy to run off external 5V power. If you switch 'em to Linux, they can store applications in flash, so they don't go brain-dead on you if the battery runs down the way they do with MS software. One other plus: if you're geeky enough to be playing with Arduinos, it's relatively easy to replace their probably-dead-by-now batteries compared to rechargeable Palms.

Both the early Palms and linux-based iPaqs have free development tools, and quite a bit of free open-source software to use as starting points for developing Arduino-oriented applications. So they make good candidates for cheapskates wanting to turn another man's trash into their treasure 8-)

I have a few of each sitting in boxes, so I can make a start at developing for either or both, depending on what other potential users/collaborators have on hand.

Ran

I have an old PalmIII laying around, but hadn't thought of using that yet.

I am working on a project that will use a serial Bluetooth adapter like this one to talk to an app on a PPC device.

No sure about the older iPAQ, but I have a 4100 (collecting dust in a drawer) that has Bluetooth. I'll have to find a project for it next.

I'm going to be talking to a PPC6700 since I have an extra one of them too. They have a great screen, slide out keyboard, and can be upgraded to WM6 (if you're into that sort of thing). I know that there is a Linux project for them and they can be found cheaply on eBay.

If someone wanted to develop for Windows Mobile they could use .NET, and the free Visual Studio express versions.

I dunno if any of there support java, but if they do you maybe able to use mobile processing to write java apps. or instead of a pda you could use a mobile phone! as part of my long term project, i'm hoping to use my phone too control a robot and report statistics, but didnt think of using the phone in a more perifal manor!