Fog Creek Software
Discussion Board

PDAs and like architecture for hacking?

The thread about PDAs reminded me of something I've wondered about for awhile.

It would seem to me that the Palm/Handspring PDA architecture, being a bit old but pretty stable and with many development tools floating around for it, would be a good candidate for low end embedded and machine control projects. It has a decent user interface for such a compact device. Also, since the Palm platform has been sold since the mid 90s I would think that PalmOS and Dragonball processor based clone systems would be available quite cheaply, well south of $100 US.

For instance, being lightweight and low power, I would think a Palm clone would be an ideal candidate as a controller for kite aerial photography, to control a camera.

However, you just don't see stuff like this at all. The embedded hobbyist market is all about PIC and BASIC stamp processors.  I've never even seen an article about Palm hardware hacking.

I would Google it but I'm too damned lazy and I figured someone here would present this info on a silver platter. ;-)

PS: what do I use a Palm for? I have a Handspring in a cradle connected to my PC. I use it only for creating an alert mechanism for scheduled tasks. For instance, if I have a meeting on a certain day I will create a reminder in Outlook and download it to the Handspring. Because it's rechargeable/self powered and not subject to disk crashes, I know that it will invariably allow me to keep appointments....

Bored Bystander
Monday, February 16, 2004

I'm a PIC developer and I wouldn't think of using a Palm device in place of any of my PIC applications. Embedded systems as simple as a camera controller for a kite are probably much easier to do with a microcontroller than a Palm.

How would you interface with hardware? You would probably still need a microcontroller sitting at the serial port to talk to your servos, relays, or whatever you're working with.

The PIC has low power requirements, is much cheaper, and very small. I have tubes full of cheap PICs that I can easily replace. I have no tubes full of Palms.

You also have the support of a massive developer community that has probably already done what you want to do, using microcontrollers.

Monday, February 16, 2004

> You would probably still need a microcontroller sitting at the serial port to talk to your servos, relays, or whatever you're working with.

Yup, what Joe said.

Unless the devices you have created already speak the same exact language allowed by the sync cradle port... chances are you'll need to build an interface card. And if you are going to build an interface card, that's 90% of the way to having a PIC interface card that supports networking. There's still uses for a Palm or PocketPC I think, really depends on the programming/engineering investment you are willing to put into the project to get the product you one.

Li-fan Chen
Monday, February 16, 2004

Where would someone interested in microcontroller projects get started?  Most google searches just seem to bring up sites selling microcontrollers, so it's hard to find objective information.  Any pointers for a good place to get started?  I'm particularly interested in projects that can be done with very inexpensive controllers.  I'd rather build 25 projects with cheap controllers than a few with the more expensive stuff.  So, any pointers?

Monday, February 16, 2004

What is your background? Hardware? Software? Both? None? At what level?

It is hard to point you to any direction without knowing what you know. Before I say anything and either offend you with its simplicity or overwhelm you with its complexity, it would help to know what you know and what you have done in your past.

It would also help if you could clearify what you mean by "microcontroller projects". You can stick those suckers into anything these days!  ;)

A non-PDA user
Monday, February 16, 2004

My suggestion is

Monday, February 16, 2004

If you want to use a Palm for embedded control, then check out the documentation for the core CPU chips.

The original Palm used Motorola m68k-based DragonBall processors.  My Sony Clie uses an ARM9-based DragonBall iMXL application processor.  Data sheets for these devices are available from Motorola's web site.

If you look at the block diagram for these devices, say, the iMXL, then you'll see that there's very little else required to make a Palm: the iMXL has an SDRAM controller, UART, USB, I2C, Flash/Memory Stick, etc. Even a display controller to drive the LCD! The only thing that the iMXL does not obviously have that a PDA uses is the digitizer, and it's likely that that comes in through I2C or some such.

For embedded use, then, the Motorola docs give you everything you need hardware-wise. You can also get the chip pinout and use a continuity tester to map chip pins to the cradle. At that point the device is pretty much an open book.

David Jones
Tuesday, February 17, 2004

"What is your background? Hardware? Software? Both? None? At what level?"

Mostly software, including some of what I'd consider low-level stuff.  No real hardware experience beyond pulling out the soldering iron now and then to fix a loose part.

My guess is that the Basic stamp kits are probably about the right level for me, but they're expensive enough that they don't really lend themselves to buying a bunch of them for every project you can find.  I think what I'd like to find is a good transition, where maybe I could play with some kind of basic stamp kit for a while, and then move on to something cheaper and/or more advanced.  I'm mostly looking at controlling things from the computer, like model trains or light switches or something.

I feel that I'm at that point in learning about something where I don't even know what questions to ask, so I appreciate the help and advice.

Tuesday, February 17, 2004

"I feel that I'm at that point in learning about something where I don't even know what questions to ask, so I appreciate the help and advice."

No problem. I will try to help.

"Mostly software, including some of what I'd consider low-level stuff.  No real hardware experience beyond pulling out the soldering iron now and then to fix a loose part."

Hmmm.. Well here is the deal. There are zillions of microcontrollers out there these days. Their cost is the least of your worries. They are usually around or below $10 per piece. Here are your real worries:

* Development tools
I think this is one of your biggest concerns. The development tools have several layers of features. They are (in a nut shell): compiling, debugging and programming.

Some microcontrollers require specific compilers from third parties which will cost you an arm and a leg. I never used basic stamp, but I did use PIC controllers. They are cheap parts and the development tools are also very reasonably priced unless you want to use a C compiler. Then you have to pay a third party to get that. I don't know how much the c compiler costs (it is called PIC-C). I personally prefer microcontrollers which have GNU support such as the ones from motorola, intel-based ones, and a few others from miscellaneous companies (such as the AVR from Atmel).

The debugging aspect of a development tool might offer you different levels of poking into your microcontroller and seeing how things are working. Some IDEs come with simulators which are good upto a certain point. Some IDEs allow you to read registers, put breakpointsin your code while it is in the microcontrollers memory, etc... You also need to consider if you can get these features for your microcontroller's IDE and for how much.

The last thing is programming your device. This is more important for microcontrollers which have on-board FLASH memory. Most of them can be programmed easily with an rs-232 interface. Most companies give you the programming application for free. Some IDEs just come with this option which means once you upload your code, you can observe it running, but if something goes wrong it will be very difficult to figure out.

* Pin count and Package type
You want something you can work with obviously. Some microcontrollers only come in BGA packages which are next to impossible to use for a hobbiest.

If you are going to use a microcontroller which only comes in a surface mount package (but not BGA), then you have to ask yourself how many tiny little pins you can solder before you lose your mind. I'd stick to the low pin count devices in the beginning until you perfect your skill. DIP packages are better for a beginner. For surface mount parts, you also need a more sophisticated soldering iron with temperature control and a tiny tip (1/64"), and some special tools like small tip tweezers, flux pen, and thin solder. These are not a must, but they will help with the frustration that comes with building boards if you are not planning to use a breadboard.

This is all I can tell you for picking a part. Which part is the best? You need to decide that. You need to see what is out there, get a datasheet for the part and start reading about the part. If you like its capabilities, and its package type and the pin count; and if you can also get a decent development tool for it with enough features then you are ready to develop my friend.

Another thing to try is to google the following words: "microcontroller" "project" "circuit" "Schematic". This search should bring up people selling project kits, and people who created their own projects and are kind enough to tell you what they did and how you can do it on your own. You could learn about parts and how they are used that way too. These people most often also explain what the circuit does and how it does it. As you read more, you will learn and pick up the hardware side of things.

If you are really into hardware, you might want to take some college courses too. It is hard to pick up everything from google and books. You need hands on experience, lots of patience and a person to turn to when you get stuck. You might be able to get the knowledge from books, but being able to ask questions when stuck is priceless.

I hope this helps you out a little.
Good luck!

Tuesday, February 17, 2004

"I hope this helps you out a little.
Good luck! "

That post was the sort of suggestions I've been looking for.  Thanks a lot!

Tuesday, February 17, 2004

No problem! Glad to help.  :)

Tuesday, February 17, 2004

*  Recent Topics

*  Fog Creek Home