Free Java Development in IPAQ: My Experience...
843849Apr 13 2005 — edited Oct 17 2007Hi all,
I just finished testing my java application in a totally free platform, the only thing I payed for was my PDA.
I have two PDAs here at my work, a HP Ipaq 3870 and an HP Ipaq 5500. The challenge was to be able to run Java applications and also to use Bluetooth.
I started by searching the VM to use on my PDA.
On the WinCE side I tried Creme (very good) and tried IBM J9 or WSDD like it is called now (good). With Creme 4.0 or J9 i was able to run applications until JDK1.3.1, the difference is the Creme 4.0 already supports swing and in J9 u need an external package.
For Bluetooth i tried the avetana JSR82 stack with WIDCOMM driver for Bluetooth dongle, which was designed for CrEmE VM and I managed to setup connections using RFCOMM and SPP between my laptop and my PDA. On J9 i havent tried to setup bluetooth connections.
This would do the trick, but since i am involved in a academic research project.... to pay for software is not really what we want to do. So the next step was to evaluate the Linux side on the PDA. I installed Familiar OS v0.8.1 (today they released Familiar v0.8.2) in my Ipaq 5500 and I started searching for VMs to install on Familiar.
I found three VMs, BlackDown, SableVM and JamVM. JamVM i didnt tryed at all and BlackDown is not supported after Familiar V0.7.2, so i installed SableVM. It is hard to tell what JDK this VM implements. I sent some posts in the SableVM list and they told me that it has already some parts that is totally compatible with JDK1.3.1 and others are still being developed, like for example swing support. With SableVM i was able to run my JDK1.3.1 application with AWT, no swing was supported. Although seams like a valid platform for someone that wants to develop applications that use JDK1.3.1 and AWT for GUIs.
So my next step was to validate BlackDown VM wich is JDK1.3.1 compatible and already supports swing. In order to do so I had to install Familiar v0.7.1 in my Ipaq HP 3870 (this because the H5500 hardware is only supported in Familiar 0.8 and BlackDown VM is not supported in this version of Familiar OS). The installation was easy and i was able to run, once again my JDK1.3.1 application this time with a Swing GUI. I was very pleased.
As for Bluetooth in Familiar, well no problems because Familiar already cames with BlueZ stack which is more complete then JSR82. For example BlueZ stack already implements the PAN profile. There is also a JBlueZ that is a Java API that works on top of BlueZ. In my case, since i had the PAN profile in order to communicate with my Laptop I pared the two devices and used the PAN profile to establish a connection. This profile gives IP addresses to the two devices which allows to use normal Java Sockets to send and receive information over Bluetooth.
So resuming.... With Familiar it is easy to setup a platform to use Java (until JDK1.3.1) using or awt or swing (depending on the ipaq you have) and use Bluetooth to communicate totally FREE. On the WinCE side you can do almost the same (i didnt found any bluetooth stack that implements PAN profile in Java) but u need to pay for the VM and for BT Stack.
Now i am using on my Ipaq HP PocketPC 3870, Familiar v0.7.1 with BlackDown VM (JDK1.3.1 fully supported including swing) and BlueZ PAN Profile. On the Ipaq HP PocketPC 5500 you can use Familiar 0.8.1 with SableVM (JDK1.3.1 only AWT is supported) with BlueZ PAN Profile.
Hope this helps someone, if someone has diferent experiences please share them!!!
Cris