« Back

The HP Jornada 680 (Deluxe Edition)

22 Aug 2024 - faintshadows

Preface

This post, being a "Deluxe Edition", is a rewrite and expansion of my previous post on this device. You may have noticed the long break between my last post and now. On the back end, I've been struggling with finding material to write about, and also not being satisfied with my writing style. Due to this, I have already taken down my posts on the Fujitsu Lifebook P1120, my cursed Transmeta Crusoe machine. I posted about this on my mastodon when I made that decision. I plan on putting the original versions of these posts in an archive somewhere for posterity and adding a header pointing to the rewrites.


Onto the actual post

I've always had a weird fascination with the Windows based PDAs. Part of it was due to my obsession with all things Windows in my childhood, something I have very much outgrown. But even in my current state, there's just something that gets me going when I see the Windows UI on something that fits in your hand. I was never able to get my hands on one of those back then, closest I got was the device emulator program Microsoft put out that shipped an image of Windows CE 6.

I have one now, and it's a goofy little guy.

The HP Jornada 680, on top of a PowerBook 520c for scale

This is an HP Jornada 680. It is powered by a 133MHz Hitachi SH3 CPU with 16MB of RAM. There is a built in modem, a CompactFlash reader, and a PCMCIA slot for all your expansion needs. In ROM lies a copy of Windows CE Professional 2.11, the Pocket Office suite, and some HP bundled utilities. Pocket Office included the usual suspects, Word, Excel, Powerpoint, Outlook, and Access.

The SH3 chip is an interesting choice, not for any reason other than that I have never seen any other device except the Dreamcast use SuperH. Paraphrasing the Wikipedia article for some context, these chips uses 16-bit instructions despite being a 32-bit architecture, for memory and cache efficiency.

Speaking of the memory, that 16MB of RAM is split by default to be half as traditional RAM, and the other half as a RAMDisk. This is one of the many quirks of Windows CE's design. Every time the system boots, it's like you just bought it. There is zero persistence. How these devices got around this was simple, keep the RAM hot all the time (and take backups!). The Jornada has a CR2032 easily accessible next to the speaker and CF slot. It's clear how important keeping a charged one of those is with how often Windows will nag you that it's dead. It's around every 5 minutes.

That CF slot is on a little carrier that will physically move out of the way when a PCMCIA card is inserted. A little kickstand on the other side of the device keeps it balanced, and the dock includes cutouts to accomodate this.

The display is nothing special, it's a "half VGA" or 640x240 display, with a grand total of 256 colors. A software update was provided by HP to increase that to 64k colors, but as of writing I haven't found a copy to try out. It's a passive matrix and resistive touch LCD, so using it is a chore, I generally rely on keyboard navigation. A stylus is provided, and has a holder inside the Jornada, but I am unable to use it as the plastics have given out at the stylus tip.

The rest of the device is not immune to the passage of time, as a whole corner cracked just from sitting in storage for a year. No idea what caused that, it was climate controlled and everything. Due to that though, I will not be disassembling it in fear of more plastics breaking. I think I can fix this corner, but I don't want to push my luck.

On the software side, the list of included software outside of the basic Windows programs are as follows:

That's a pretty good start, considering there was only 16MB of ROM space available for the OS image.

This is where my original post ended. Well, it ended a little after that but I don't really want to rehash my frustrations with software gatekeeping here. It's the part of the original post I disliked the most.


A lot has happened in the time since then, I managed to find a dock! The serial cable was not obtainable for a reasonable price sadly, so I did what anyone would. Reverse engineer the PCB and solder in a serial cable to the board!

The Jornada in it's dock

This could not have been done if it weren't for this page, where the dock pinout was documented, along with the pins of the serial cable. That page is for the Jornada 720 but it works with the 680.

I had a friend over (thanks again, Nutcake!), we both went at the dock PCB, tracing back everything and going slightly insane in the process. At the end of it, we had a KiCad file tracing the 10 pin dock connector to the 10 pin serial cable, to what it would be if it were a DB-9 connector. And it works!

The mod we made to the dock PCB

The only issue was that I now needed a machine to connect to it and sync up. That above page mentions SynCE, a Linux utility for just that. However in looking it up, that tool only supports devices running Windows Mobile 2003 or later. Stuck with the official tools.

In a change of pace (I didn't feel like finding a suitable machine in my pile), I tried a Windows 98 install in a VM, but after trying two different solutions, KVM first, then 86Box after, I ran into some major issues.

First, my Ryzen 7 5800X3D was a bit too fast for Windows 98 under KVM, it would crash on boot. But only after you finish most of the install process. Very cool. I went to 86Box and chose a Slot 1 box with a Pentium II to be my host machine. This worked much better, I could actually complete the installation. Unfortunately, serial port redirection doesn't work apparently. At least not on my machine. I can redirect to a virtual terminal, but to my hardware serial port I got nothing out of it.

I needed a real machine for this.

I set up Windows 98 on a Dell I had lying around, fresh install, absolutely nothing going on except Windows, and the Windows CE software. Initial connection test was successful, I could talk to the serial port directly and get characters on both sides. However, the Windows CE software refused to see the Jornada.

I started following the built in troubleshooting steps, which even called for doing that connection test I already did, ultimately reinstalling the Windows CE software. It was then I noticed that if I unplug the serial cable or un-dock the Jornada it sometimes tries connecting. I tried starting a connection from the Jornada and I got a message, No Carrier Detect. I found out that the cable setup I had was incorrect, the serial cable I was using did not pass Carrier Detect. After repinning the cable to use a DB-9 female vs a male, I got a connection!

The PC showing a successful connection

There wasn't much I could immediately do once connected, since I had nothing to sync over. But I could take a backup of the Jornada. It took a few minutes, 19200 baud is no speed demon, but it works!!

So now I need some software. I've been digging around Internet Archive and I've found a little bit but not a whole lot. So far I've only found the Microsoft Entertainment Pack for Windows CE, and a disc full of freeware. I also found a driver for a 3com 3C589 PCMCIA Ethernet card. On that freeware disc, I found a copy of Microsoft PowerToys for Windows CE, which I didn't even know existed. It didn't have a whole lot outside of some more wallpapers and a quick menu thing that didn't feel any more useful than the start menu itself. There was one really interesting addition however, a remote control program. It claimed to let you use your Windows CE device completely from your desktop, allowed for screenshots and even clipboard sharing. I couldn't get it to work though, it just loaded to a gray screen and not much else.

I did the right thing next and try upping the baud rate to 115200 baud, which even Microsoft said wasn't a good idea, but it says its supported. And sure enough, it connected right up. I was genuinely surprised. To test the speed, I copied over a bunch of wallpapers that came on the freeware CD. Sure enough, they went over pretty darn fast. The wallpapers weren't all that interesting though. They all were monochrome images, mostly clip art, a fair amount were Star Wars screencaps, and the few obligatory scantily clad women.

The Jornada showing a connection to the pc at 115200 baud

It was at this point I kinda hit a roadblock with the Jornada. It works! It syncs! Now what?!

As I teased in the original post, Linux and NetBSD both exist for these devices. And in the original's Part 2, I talked about doing just that. Following is that post, edited for consistency, and to reduce my rambling from writing as I went.


I had tried NetBSD 9.3 (which was the latest at the time), but the install program would freeze or segfault during the process. I switched to 7.2 since the 7.x series was confirmed to work by others online, though that didn't end up working all that well either.

The NetBSD Installer Things looked like they were going well, I was able to partition a disk and actually get some file copies going. However…

Failed extraction

It was possible that the swap I gave it (32MB) was just too small for these larger tarballs, but trying again with 128MB of swap led to the same problem. I tried using NetBSD 5 and 6, but 5 did not have an installer program for the SH cpus, and 6 also failed. This time with an outright kernel panic.

Kernel panic'd extraction

So NetBSD was a bust, at least in my first go around. There's also JLime, a Linux distro specifically for these SH based PDAs. The version I have is the last one, from 2009. There was no installer, all you had to do was extract a tarball to an ext2 partition and run the loader from WinCE.

JLime boot screen Output of /proc/cpuinfo

It Just Works! There's drivers for my 3Com Ethernet adapter built into the kernel already, so I did the obvious:

My website loaded under Konqueror

The install is pretty minimal, the userland is covered by BusyBox, the X11 session is IceWM, there's no Bash, etc. etc. Nothing unexpected for something this underpowered, I would've done similar if I was building up something for this thing.

The package repositories are archived and available online, though actually installing software on this is an exercise in patience. Looking up what others have said about JLime,

However running opkg install on the device is super slow - it takes a few hours to install vim.

This is a little less than ideal. I wasn't really feeling waiting a few hours to do anything with the package manager.


Epilogue

This was more or less where my original posts end. I cleaned up the first one a lot and added the new info I got when finally hooking it up to a real computer. What's next? I don't really know. NetBSD is more or less a dead end. I could try 10.x since that came out recently, but I don't have high hopes for it working any better than 9 did. For JLime, it's hard to do much on there, just because the package manager is so slow.

For modern Linux, SH-3 is still supported, but building a toolchain has proven to be difficult, and I am not entirely sure it would be worth the effort in the end, given JLime actually works well. I'm not going to gain anything by putting kernel 6.x on it. The rest of the userland will be heavier than it was in 2009 too, even if I keep up with the BusyBox userland. musl supports SuperH, at least on paper it does. I'm not well versed enough in how distributions are made for Linux to have the know-how to spin up a toolchain and build up a rootfs, I just leverage the Gentoo tools to do that for me. Unfortunately Gentoo does not currently have SuperH files, the folder for it under their experimental downloads archive is empty. It's not out of the question, but I feel that is a task for someone a little more insane than myself.

I don't know if I will revisit the Jornada again, I've run out of things that I would want to do, or could even do, with it. It's possible I'll find a lead on more (hopefully interesting) software for WinCE, or maybe get BSD to install. If that ever happens, I'll likely just edit this post with those additions, and make a post on my Mastodon.

Thanks for reading, if you're new, welcome, if you've been reading my blog for a while, thanks for sticking around while I make some changes to how I handle all this.

~faint