Building a PDA from scratch

Extremely powerful ARM microcontrollers have been around for ages now, but only recently have they been available for just a few dollars with a good enough toolchain for some serious development work. [Jose] wanted to develop something awesome with an ARM chip he had lying around, so he built a PDA (Spanish, translation) that can be used as a game console, an oscilloscope, a clock, or a wristwatch. Basically, it’s a portable homebrew computer that can do just about anything.

The hardware is built around an ARM Cortex M4 chip clocked at 170MHz. Included on the PCB is an SD card slot, a JTAG interface, a USB port (only used for charging the battery at this point), and a touch screen LCD controller.

After designing the PCB and enclosure, [Jose] looked around the Internet for a decent GUI library without much success. He eventually found Gwen, a lightweight library for programming GUIs that is easily ported to [Jose]’s hardware.

So far, [Jose] has a few GUI demos up and running on his homebrew PDA, but nothing very useful yet. Still, the fact that [Jose] can get a full-featured ARM tablet-like piece of hardware off the ground without a team of developers brings a smile to our face. We can’t wait to see the state of homebrew ARM devices in a few years when everyone has the requisite hardware and software knowledge.

34 thoughts on “Building a PDA from scratch

      1. Someone patented making toast. Someone patented swinging (on a swing) from side to side (instead of back and fourth).

        … getting into software, there are a bunch of ridiculous things patented, including displaying two windows with scrolling text and a mouse cursor…

        Amazon had storing credit card numbers in a database patented for a while…

        I *honestly* would only be a *little-bit* surprised if rounded corners were patented — it would explain a lot about Microsoft’s “Metro” design language.

    1. “Have you guys checked if Apple holds the patent to that?”

      How can you know if they do? Their patents are so ridiculously broad that they may indeed do or their lawyers make it so.

      As KillerBug said above, he used rounded corners! :P

  1. Impressive. I’d say could be a candidate got a commercial venture, but aren’t PDA somewhat redundant to carry around these days? Even my dumb phone can function as a basic PDA. Only it’s clumsy interface make it a pain to use in that manner. My guess it that few geeks will duplicate this, opting to use the commercial products they own, saving the geek time for other projects. So geek dreams of a future where everyone will be carrying homemade devices are just dreams that probably won’t be realized sorry.

    1. You may be thinking in the wrong direction. This is a giant first step towards a completely open source smartphone (yes, I understand about FCC type certification in the US and similar laws elsewhere) or tablet computer. PDA’s may be outdated, but they were a critical part of the design lineage of today’s common portable devices.

    2. As we see from this, the hardware for a handheld, rich-GUI device is simple and inexpensive. I’d say the “product” would be a simple device like this, expandable, with a sweet plastic case and Li-ION battery — and, most importantly, — a development environment that makes creating GUI-driven embedded applications easy, just like the Arduino environment has done for simpler embedded devices. Perhaps a compile environment like the arduino, a sweet graphics/GUI library and a built-in layout tool that abstracts the form.

      IMHO this would open up an entire new realm of maker-created gadgets with awesome user interfaces.

    3. If a web browser was built on top of this or something, and the chipsets came with wireless support, it could end the age of the cellular phone. JavaScript and HTML could make up interface, and other web technologies, like ViOP, could be integrated. As far as connectivity goes, where can’t you find a wireless signal these days?

  2. The chip is STM32F4 (had to look at photo of PCB to read it). Someoen recently posted about using one of these in an “updated” Bus Pirate… I prefer the idea of the LCD used here.

    Maybe the two designers should collaborate, and give us a Bus Pirate with an LCD screen.

      1. Amateur radio TNC? I haven’t messed with that stuff in a while (though I am still licensed) but I believe the hardware has shrunk to the point that it fits inside a handheld rig that hooks up to a computer now. I can see throwing together a QRP transceiver board with a TNC module, that together would fit inside the case of a device like this. Use software to control the radio, similar to Bluetooth, and you have instant network access if you log on to a node with an Internet bridge.

  3. The problem with wireless stuff is that you’re rather limited by regs and battery life. Cellular would be nice, but realistically you’re only viable option would be to rip the guts out of a 3G dongle and somehow interface with it.

    Alternatively, perhaps something could be built that used bluetooth or wifi that used opportunist mesh networking of some sort to propagate messages (kinda like how the 3DS works I guess). Obviously needs a certain density…but in the engineering dept of a uni campus should be possible :)

  4. Not trying to hate here; it’s cool, but by the time you build something even half as capable as most 1st gen android phones, you’ve already sunk more money into it than you could get an android phone for.

    1. Correct, but building your own PDA gives you control over many aspects. An android phone would have greater power consumption than a Cortex-M4-based device. You can connect almost any peripheral that fits inside the enclosure, IrDA, DECT, GPRS modem – you name it.

  5. The issue I always run into is interfacing the larger LCD displays. You can get some with I2C or SPI but that results in slow throughput when updating higher resolutions. That usually means you have to use parallel data connections, 8 for each color, and that takes up a lot of pins.

  6. With the purpose of this being to create an entirely self-made PDA for your own personal satisfaction, I’d say this is very well done!

    There are several aspects of designing such a device I’d consider particularly difficult, or require specialized knowledge. I’m NOT counting having to write all your own apps, because if you’re doing this, you love to code and probably WANT to write your own apps. ;)

    First there’s the filesystem. Good old FatFS to the rescue here.

    Next, the GUI. Coding a full-featured and stable GUI from the ground up takes a LOT of time. I didn’t know about Gwen until now. Have been looking at it for a few hours, and it’s an impressive piece of work. I’m glad to see such a thing exists, and may use it in a future project.

    Finally, you’ll probably want the ability to add peripherals, like a wireless connection. And it would be best if you could use consumer USB peripherals, rather than more expensive hobbyist modules. Sadly, as far as I know this remains largely unsolved; you’re forced to use Linux if you want support for more than the simplest USB devices. I hope this will change in the future.

    Also, a simple relational database built into the OS would be really nice, and ease app development. Something like the old Microsoft JET engine, but designed for easy porting like FatFS and Gwen. Anyone know if something exists that will fit this bill?

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s