BT747 iPhone app?

aspenboy's picture

Don't know if this request belongs here, but with the new iPhone 3.0 it seems like it might be possible to access bluetooth GPS loggers. If so, I would love to have an iPhone app to download tracks to and also be able to access realtime GPS data from my iTrek Z1 logger. I have a first gen iPhone without GPS, but also I know that using even the iPhone 3G as a GPS data logger is not ideal, because:
- can't run logging in the background
- hurts battery life

It would be nice to occasionally have access to some GPS data from the logger over bluetooth but also know that the logger is collecting data and you don't have to keep the app running if you want to check your email or surf the web.

Anyway, I thought this might be useful for others as well. Thanks for listening.

mdeweerd's picture

Java support on iPhone

If the iPhone supports some kind of Java, then BT747 should be portable (or just 'run' if it supports J2ME).

I've also seen some paying application that can translate the java application to something the iPhone can understand.

The app would be no problem,

The app would be no problem, if OS3.0 allow complete Bluetooth-access. The problem i see is, how to get the loaded data from the iphone/ipod touch to the mac/pc? Only some applications have there own sync-function, itunes do not support 3th party applications.

The biggest problem i see is

The biggest problem i see is how to sync the loaded gps-data with the mac or pc to use them there, e.g. for photo-tagging. Maybe we need another app that do this job. And it will be also work on the ipod touch, not only on the iphone.

mdeweerd's picture

I suppose that there are ways

I suppose that there are ways to sync data on the iPhone with the PC.

In the worst case scenario, we might just need to have the app send an e-mail to the user.

aspenboy's picture

syncing

Yeah, apple doesn't make it easy, but there are many apps that enable you to make a local wifi connection (you typically have to type in the IP address of the iphone), so I don't think it is that hard to implement. Then you can use a web-browser or FTP client to pull files off of the iphone. There are others that automatically sync with the cloud, but that obviously requires a dedicated server or some service (like dropbox, mobileme or box.net).

Yes, the great thing is that it would work with the ipod touch, which I think someone said there are 13 million or so, which would be a big market for this app that could work with an external GPS unit.

I try "AMSerialPort" on my

I try "AMSerialPort" on my Mac. I got a bluetooth-connection and see the live data. I don't know if it work with the current iphone-sdk, but i will to run this app in the iphone-simulator. If it not work, we must wait for the new 3.0-sdk.

mdeweerd's picture

Java on the iPhone / iPod Touch

To run BT747 on the iPhone or iPod Touch, some kind fo java is needed.

I did not dig too deep in it, but I found the following links for a start (These are old threads - not so easy to find some fresh information):
http://www.appletell.com/apple/comment/sun-planning-java-for-iphone-and-...
http://www.ipodtouchfans.com/forums/showthread.php?t=12315

The other solution is to not use a J2ME VM but to translate Java using Alchemo to C++ (http://www.innaworks.com/alcheMo-for-iPhone.html).

It seems that some 'complex' procedure allows you to run Java applications anyways (Mobile Terminal, Cydia Installer, Jikes).
http://blog.taragana.com/index.php/archive/how-to-install-compile-run-ja... .

mdeweerd's picture

I thrown in Google's solution too : Android (& Dalvic)

Android seems to be lacking a JVM too but it has another solution:

http://en.wikipedia.org/wiki/Dalvik_virtual_machine.

mdeweerd's picture

A solution may be coming ...

Microemu is a J2ME 'emulator' using J2SE. There is currently work going on to port this emulator to the iPhone.

http://www.microemu.org/
http://microemu.blogspot.com/2008/12/microemulator-coming-to-iphone.html
http://markus.heberling.net/lang/en/2009/03/10/lwuit-on-microemulator-on...

This is based on JamVM where there is also a mention of the iPhone, meaning that there may be some possiblity to make a J2SE port (not J2ME) to the iPhone.

http://jamvm.sourceforge.net/

For the Android platform, the solution may already exist:

http://microemu.blogspot.com/2008/11/running-java-me-applications-on-and...

The most critical functionality is the bluetooth connection for this application. If there is a need to adjust the connection code, this is possible but somebody would need to code it. All that BT747 needs is an interface allowing to open the port, close the port, read and write bytes on the port. BT Device selection can be relatively independent of the main code.

If you have any success with any of this, post it here.

iPhone / iPod touch with OS 3.0

Hi,

did anyone here have a iPhone or iPod toch with the new OS 3.0? And if yes, did the device found the GPS-logger over Bluetooth? If it posssible to connect?

Kind regards, Dirk (HaasD)

mdeweerd's picture

Some other news too

It turns out that TotalCross, the successor of SuperWaba (the platform used for the PDA version) runs on iPhone. I suppose that the connectivity is supported, but I can not be sure.

Another port of BT747 could be made, this time to TotalCross. Porting should not be extremely complex. The TotalCross VM is not free though and there is a cost per license (I try to get information about the cost) and licenses must be bought in groups (AFAICS).

[edit]
I just got more information. For the moment TotalCross is out of the question for the iPhone - TotalCross does not support Bluetooth on it. Further it can be installed only on a jailbroken device.
Further a TotalCross license would cost in low volumes somewhere around 10 EUR.

mdeweerd's picture

Java on the iPhone

I've been searching for pages regarding JamVM and iPhone.
The best one I currently found is:
http://java4iphone.com/all-news/tutorial-install-java-on-the-iphone/

It explains how to install Java on the iPhone "for testing purposes".

What I understand is that JamVM does not really allow a GUI app. JocStrap does allow GUI.

Two options are available:
1) Make BT747 available as a command line application on the iPhone. This would at least provide something to get the logs.
2) Reuse/develop an iPhone specific GUI in JocStrap.

Both alternatives probably require adjusting the System Bridge code (low level java calls already bridged to J2ME, SuperWaba and J2SE - not really a big deal, but some work), and, most importantly, ensure that Bluetooth connections can be made in the relevant VM (that too needs to be 'bridged' probably).

If you are willing to develop this for the iPhone, you're welcome. There is no need to touch the 'core' of BT747, only:
1) Setup the code for the bluetooth connection (BT747 has to be able to open, close the connection and read/write from it.)
2) Correct the bridge (pretty simple stuff, but platform dependent. The J2SE implementation is probably (almost) ok already).
3) Develop the gui (can start out simple: connect/disconnect, download and grow gradually to include other important options).

[edit]I forgot about adding this link: http://iphoneroot.com/category/all-news/java/

mdeweerd's picture

BT747 natively on the iPhone???

More hope + debugging on the desktop (mostly) possible. I still do not have a definitive response regarding the bluetooth link - but I has that because Objective C is used in the end, it can be done in Objective C!

http://www.xmlvm.org
http://www.xmlvm.org/iphone

Who's up for the challenge?

mdeweerd's picture

Started a book page on what I

Started a book page on what I am doing to setup the Java environment to be able to do applications for the iPhone. node/164

HaaseD's picture

Did it work without

Did it work without hacking/jailbreaking the iPhone / iPod touch?

Im back now from holiday, so i will check this at weekend.

mdeweerd's picture

iPhone setup

Hi Dirk

I do not have an iPhone.
I was able to setup the environment and launch a demo program in the iPhone Java 'emulator'.

My guess is that it is possible to get it running on non-jailbroken devices. The condition I guess is that the generated Objective C is compiled using the SDK provided by Apple and distributed as they require.
I do not have that means (and will not have in a foreseeable future).

HaaseD's picture

Looks no one here have a

Looks no one here have a iPhone or iPod touch. But if both can't be connected, all other things are not important.

access bluetooth GPS loggers.


access bluetooth GPS loggers. If so, I would love to have an iPhone app to download tracks to and also be able to access realtime GPS data

Bump!

I have a first gen iPhone without GPS
Double bump!!

I will follow your progress with hope.

As far as I know, the biggest

As far as I know, the biggest problem would be bluetooth. The iPhone/iPod Touch (even version 3.0) bluetooth stacks do not support SPP (Serial Port Profile)

mdeweerd's picture

Hi Joris I agree, this is the

Hi Joris
I agree, this is the key challenge. However, some of the BT Profiles made 'publically' available need SPP in fact. I had a look a the headers of the iPhone SDK and I've seen references confirming that so I think that give the right skills and motivation it is quite likely possible.

androu's picture

The i-blue 747 can't be seen

The i-blue 747 can't be seen by the iPhone's normal bluetooth pairing.
I don't know if the new APIs are somehow able to see devices that the iPhone normally wouldn't pair with (the lack of SPP doesn't sound promising).

I'm hoping to get a MacBook later in the year and will hopefully have the time to look into this a bit more.

Having BT747 run on the iPhone would be great - even on the 3G and 3GS, the limitations imposed on apps that want to log (notably having the screen stay on) are too limiting. It would be wonderful if an external logger could be read from the device.

androu's picture

Just saw this article (in

Just saw this article (in french) about a more complete bluetooth stack for jailbroken iPhones: 

http://www.iphon.fr/post/2009/09/28/Un-GPS-bluetooth-utilis%C3%A9-avec-un-iPhone-ou-un-iPod-Touch-!-%28video%29

 

The video shows the developer getting it to connect to a Holux and using Navigon on the iPod touch.

So it's encouraging that it looks like it's possible, but disappointing that jailbreaking is necessary.

mdeweerd's picture

I contacted the author of

I contacted the author of that app.  He seems willing to help out by making his stack compatible with BT747 (or BT747 compatible with the stack).  However, BT747 would first need to be ported for the major part of it to the iPhone.

I think xmlvm would be a good start.  For initial porting the serial communciation could be a dummy and the graphical interface could be simplified to offer just a few functions.

mdeweerd's picture

I looked around again, and

I looked around again, and given that it seems possible to compile java for the jailbroken iPhone:

And given that a bluetooth stack is possible now, with some motivation it should be possible to get BT747 on the iPhone.

HaaseD's picture

For now two videos as

For now two videos as "manual":

1) the jailbreak (works also on the new iPod touch)
http://www.youtube.com/watch?v=4oHmRO8NiC4

2) installing ssh (to transfer files to the iPod / iPhone
http://www.youtube.com/watch?v=YhFUj3uxCVA

3) java - installation over Cydia or something similar

4) roqyGPS - not tested yet

5) run bt747 from the terminal (run_j2se.sh do something...)

mdeweerd's picture

I installed the Android SDK

I installed the Android SDK today and had a closer look.

It looks pretty easy to reuse BT747's code to map it to the Android.  I am going to start a new thread for it.

mdeweerd's picture

It looks like a lot of these

It looks like a lot of these workarounds have now become a violation of Apple's modified developer agreement:

http://www.jamesrichards.com/post/2010/04/09/How-will-Applee28099s-New-D...

For me the first stepp is now

For me the first stepp is now done  - with the Spirit-jailbreak from today my touch 3gen is now permanent broken. Now i have to improve my programming skills or found another one to port bt747 to the iphone/ipod touch ;-)

 

Dirk

mdeweerd's picture

Dirk - maybe you can already

Dirk - maybe you can already try to install the java stuff.

Right, thats one of the next

Right, thats one of the next steps. But for now i must play with the new Starcraft 2 - beta. Since today for the Mac. :-)