Active Topics

 


Reply
Thread Tools
Posts: 109 | Thanked: 91 times | Joined on Dec 2007
#1
I just got a Qstarz QT-1300 GPS receiver. It pairs via bluetooth to my N810 running Diablo. Maemo Mapper or Wayfinder can use it as an external GPS.

The device also does data logging. I'm looking for a way to transfer the binary log files from the GPS receiver to my N810 via Bluetooth.

I don't expect to convert the log files to other formats or do photo-geotagging or other operations on my N810, but I want to store the log files so that they can be processed on a PC at a later time.

There are several programs that talk with the QT-1300, but they all have difficulties on the N810. Some of the issues are:
  • The N810 does not recognize the QT-1300 when connected via USB. This is probably due to a definition being missing in the cdc-acm kernel device drive. I had to modify this driver for the GPS to be recognized under Fedora 9 on my laptop.
  • The BT747 program offers complete management of the GPS data logs, but it requires Java.
  • The Perl program "mtkbabel" looks like it has the potential to run on the tablet to manage data transfers and conversion, but there are 3 issues:
    the program requires perl modules that aren't on the tablet (File::Basename, Device::SerialPort, and Date::Format)
    the Perl program assumes that the GPS is connected via a USB (serial) cable, not bluetooth
    the mtkbabel has a known bug that means that the data conversion does not work correctly on the tablet. This would not be a big problem if the other issues were fixed and mtkbabel could transfer the binary log files without converting them
 
Posts: 6 | Thanked: 7 times | Joined on Apr 2009
#2
Hi z2n,

I've a Holux M-241 GPS logger and here's a short description
what I've done to download tracks to my N800 (you need a shell and root access)!

1. By gpsbabel via USB
I've compiled gpsbabel version 1.3.6 for Diablo 4.1.2
and the missing USB-to-UART kernel modules. For the M-241 the
usbserial.ko and the cp2101.ko modules are required!
To read the track out you must first switch your N8x0 into the
USB host mode according to
http://www.internettablettalk.com/wi..._using_OS_2008
load the drivers by
insmod usbserial.ko
insmod cp2101.ko
connect the USB cable and then finally call
gpsbabel -t -i m241 -f /dev/ttyUSB0 -o gpx -F mytrack.gpx

2. By gpsbabel via Bluetooth
First you have to install the bluez-utils-test package from
http://repository.maemo.org/pool/dia...b/bluez-utils/
Then create a Bluetooth connection to your GPS logger by
hcitool cc <bt-address>
and bind the RFCOMM device /dev/rfcomm0 to the GPS logger
rfcomm bind /dev/rfcomm0 <bt-address>
Now you can call gpsbabel to read out the track data
gpsbabel -t -i m241 -f /dev/rfcomm0 -o gpx -F mytrack.gpx

The <bt-address> is the Bluetooth address of your GPS device,
like 00:1B:C1:04:F7:71. You can find it e.g. by calling
hcitool scan
For your QT-1300 you should try "-i mtk" instead of "-i m241"
as parameter for gpsbabel!

3. By bt747 via Bluetooth
I've successfully read out the track data by bt747 (version 1.68.7),
but the application is incredible slow on the N800 (see the attached
screen shot)! If you want to try it you have to install Jalimo from
https://wiki.evolvis.org/jalimo/index.php/Maemo
together with the optional packages
classpath-gtk, librxtx-jni and librxtx-java! Then you can use my
modified run_rxtx.sh script to start bt747. If /dev/rfcomm0 does not
exist the script will do the job for you! Therefore you have to
replace the <bt-address> in line 4 and 5 by the address of your GPS
device!

The run_rxtx.sh script, gpsbabel version 1.3.6 and the USB-to-serial
Kernel modules described above are included in the attached gpslogger.zip
archive!

Suggestions and ideas to make alls this more user friendly are welcome...
Attached Images
 
Attached Files
File Type: zip gpslogger.zip (487.3 KB, 274 views)
 

The Following 4 Users Say Thank You to Koios For This Useful Post:
Posts: 109 | Thanked: 91 times | Joined on Dec 2007
#3
Originally Posted by Koios View Post
Hi z2n,

I've a Holux M-241 GPS logger and here's a short description
what I've done to download tracks to my N800 (you need a shell and root access)!
Wow! This is just amazing. Frankly, I didn't expect that anyone was dealing with this, much less having found some solutions. Thanks again for such a detailed and coherent post.

I'm leaving on a trip tomorrow (hmmm...actually, today!) so I'm not sure if I'll have a change to try this out, but I'm taking my n810 and the files you've provided.
Originally Posted by Koios View Post

1. By gpsbabel via USB
I've compiled gpsbabel version 1.3.6 for Diablo 4.1.2
and the missing USB-to-UART kernel modules. For the M-241 the
usbserial.ko and the cp2101.ko modules are required!
On my x86 Linux machine, I needed the "cdc-acm" module... Unfortunately, the
stock kernel source for the module (up to 2.6.27) doesn't have a definition
for the mtk GPS, so the device is not recognized without patching cdc-acm.c to
add
Code:
{ USB_DEVICE(0x0e8d, 0x3329), /* MediaTek Inc GPS */
and building the modified kernel module. Not a big hassle on my desktop, but I
don't have scratchbox anymore, and cross-compiling kernel modules is way
beyond my comfort level.

Anyway, I'll try what you've generously built, but I suspect it won't
recognize the MTK-chipset GPS... Hopefully I'm wrong.

Originally Posted by Koios View Post

2. By gpsbabel via Bluetooth
First you have to install the bluez-utils-test package from
http://repository.maemo.org/pool/dia...b/bluez-utils/
Then create a Bluetooth connection to your GPS logger by
hcitool cc <bt-address>
and bind the RFCOMM device /dev/rfcomm0 to the GPS logger
rfcomm bind /dev/rfcomm0 <bt-address>
Now you can call gpsbabel to read out the track data
gpsbabel -t -i m241 -f /dev/rfcomm0 -o gpx -F mytrack.gpx

The <bt-address> is the Bluetooth address of your GPS device,
like 00:1B:C1:04:F7:71. You can find it e.g. by calling
hcitool scan
For your QT-1300 you should try "-i mtk" instead of "-i m241"
as parameter for gpsbabel!
That's got real potential, since the Bluetooth connection is already working!


Originally Posted by Koios View Post

3. By bt747 via Bluetooth
I've successfully read out the track data by bt747 (version 1.68.7),
but the application is incredible slow on the N800 (see the attached
screen shot)! If you want to try it you have to install Jalimo from
https://wiki.evolvis.org/jalimo/index.php/Maemo
together with the optional packages
classpath-gtk, librxtx-jni and librxtx-java! Then you can use my
modified run_rxtx.sh script to start bt747. If /dev/rfcomm0 does not
exist the script will do the job for you! Therefore you have to
replace the <bt-address> in line 4 and 5 by the address of your GPS
device!
Wow! That's enough to convince me to try Jalimo!

Originally Posted by Koios View Post

The run_rxtx.sh script, gpsbabel version 1.3.6 and the USB-to-serial
Kernel modules described above are included in the attached gpslogger.zip
archive!

Suggestions and ideas to make alls this more user friendly are welcome...
Thanks again...I'll try to give some feedback.
 
Posts: 7 | Thanked: 0 times | Joined on Sep 2008
#4
This is something I wanted to do when traveling, e.g. on a bicycle tour. It looks like a complicated and risky install (how many people have tried Jalimo?), but I'd love to know how it goes for someone else.

I have the Qstarz BT1000p, which should be able to connect by Bluetooth, but I'd be equally happy to connect by USB (I've done the hosting thing). Primarily I'd want to download and clear logs. I'd also like to be able to change the GPS settings (it would be terrible if something didn't work at the start of a trip and you couldn't correct it!), but since it seems that all of BT747 runs, I guess that's no problem.

Great stuff -- many thanks to Koios! To qwerty12, TA-t3, and z2n -- have you tried this out?
 
Posts: 6 | Thanked: 7 times | Joined on Apr 2009
#5
In the meantime I've found a better solution to bind the RFCOMM device
to the GPS logger. Instead of using the rfcomm command from
the bluez-utils-test package you can use the D-BUS interface to the
Bluetooth connection daemon! This means that you don't need root
permissions and haven't to install an additional package on your
N8x0! I was inspired by this post
http://lists.maemo.org/pipermail/mae...er/030367.html
but have improved the script to save the returned device name.
Now I use the following script to read out the data from my GPS logger:

Code:
#!/bin/sh

BTADDR=00:xx:xx:xx:xx:xx

BTdevice=$(dbus-send --system --type=method_call --print-reply \
--dest=com.nokia.btcond /com/nokia/btcond/request \
 com.nokia.btcond.request.rfcomm_bind string:$BTADDR string:SPP 2>&1 )
if [ $? != 0 ]; then
 BTdevice=$(echo ${BTdevice} | cut -d ' ' -f 8-)
else
 BTdevice=$(echo ${BTdevice} | cut -d ' ' -f 7- | tr -d \")
fi
 
./gpsbabel -t -w -i m241 -f $BTdevice -o gpx -F `date +'%Y-%m-%d-%H%M%S'`.gpx
Furthermore I've noticed that the Bluetooth connection with the
BT747 program drops while downloading the GPS data if you have
more than a few hundred track points stored in your device!
I think it's not really worth to spend too much time and efforts to get
this up and running, gpsbabel is IMHO the best choice to download the
data. BT747 makes only sense if you really want to adjust some settings.
I use BT747 now only to convert the raw binary file from gpsbabel
into the GPX format because gpsbabel can only convert tracks but no
waypoints!! (the M-241 logger records a waypoint while logging by
pressing the Enter button in the lat/long view)

@luxelux
The Qstarz BT1000 is supported by gpsbabel
http://www.gpsbabel.org/htmldoc-deve...t/fmt_mtk.html
I make a bet that it will work
 

The Following User Says Thank You to Koios For This Useful Post:
Posts: 41 | Thanked: 8 times | Joined on Mar 2008
#6
Koios,

Thanks for figuring this all out. I've been trying to come up with a way to get the logs off my Holux M-1000C. Do you think this would work? The program that came with the unit is for both the M-1000C and the M-241, so I'm guessing they're similar. The M-1000C isn't listed as supported on the gpsbabel site.

Thanks!
 
Posts: 6 | Thanked: 0 times | Joined on Jun 2009
#7
Regarding BT747 on maemo: good to see that it works (even slowly).
The main issue for the speed there is the way the emulation of the SuperWaba VM on Java works for the GUI.
I am sure this can be made a lot faster if the GUI is adapted for Maemo and uses 'standard' GUI methods.

I started of a thread on the BT747 site but that did not really go anywhere, so I decided to sign up for an account here.

BT747 has a command line interface too, so I would suggest that somebody tries to get that running on Maemo to check out the speed of that.

Regarding Holux M-1000C vs M-241. Holux managed to make changes again to their protocol and binary log format. They are similar, but not the same!
Most commands will work though and as a user you would not notice a lot. Holux's program detects the device it is talking to and adapts according to it.

BT747 has support for the decoding of the M-1000C logs and adjustments are being made to take into account the new protocol but as the old protocol is mostly in place, that is not important

Regarding the download problems with BT747: did you try to adjust the chunk size, read ahead, .... These parameters influence performance on Maemo.
Further, if there is a better connection method on Maemo, that can be taken into account.

Of course, the best thing would be that somebody with a Maemo device looks into that in detail.
 
Posts: 7 | Thanked: 0 times | Joined on Sep 2008
#8
Originally Posted by Koios View Post
Now I use the following script to read out the data from my GPS logger:

Code:
#!/bin/sh

BTADDR=00:xx:xx:xx:xx:xx

BTdevice=$(dbus-send --system --type=method_call --print-reply \
--dest=com.nokia.btcond /com/nokia/btcond/request \
 com.nokia.btcond.request.rfcomm_bind string:$BTADDR string:SPP 2>&1 )
if [ $? != 0 ]; then
 BTdevice=$(echo ${BTdevice} | cut -d ' ' -f 8-)
else
 BTdevice=$(echo ${BTdevice} | cut -d ' ' -f 7- | tr -d \")
fi
 
./gpsbabel -t -w -i m241 -f $BTdevice -o gpx -F `date +'%Y-%m-%d-%H%M%S'`.gpx
@luxelux
The Qstarz BT1000 is supported by gpsbabel
http://www.gpsbabel.org/htmldoc-deve...t/fmt_mtk.html
I make a bet that it will work
I just tried this and got "read_log.sh: line 14: ./gpsbabel: Permission denied." Any suggestions?

I filled in the BT address as copied from Maemo mapper (I'm sure it appears other places too), and did
sh read_log.sh
in a command window. Is that the right way to run the script? You indicated one didn't need to be root; certainly I'm not root, and while I've been root, I don't remember how to become root. I had some trouble with ctrl-M line ends when I copied the files from my PC, but in read_log.sh I edited them out, and for gpsbabel I tried the version copied from my PC and a version unzipped on the tablet itself.

Would love to get this working in the next day or so! Wouldn't mind getting BT747 working too, wired or BT, but I'm not willing to risk the tablet's stability now -- no new Java install, methinks.

Thanks,
luxelux
 
Posts: 87 | Thanked: 56 times | Joined on Nov 2008
#9
I have been using mtkbabel with bt747 logger, just to download and clear logs. It needed couple of perl modules to tablet as described in first post. You can make it work through bluetooth with rfcomm, that is the way I normally use it. If I remember correcly it worked ok with USB cable, too.
 
Posts: 6 | Thanked: 7 times | Joined on Apr 2009
#10
Originally Posted by luxelux View Post
I just tried this and got "read_log.sh: line 14: ./gpsbabel: Permission denied." Any suggestions?
Yes, all the file permissions have been lost in the zip file, you must make the binary executable by
chmod +x ./gpsbabel



Originally Posted by le_top View Post
BT747 has a command line interface too, so I would suggest that somebody tries to get that running on Maemo to check out the speed of that.

Regarding the download problems with BT747: did you try to adjust the chunk size, read ahead, .... These parameters influence performance on Maemo.
Further, if there is a better connection method on Maemo, that can be taken into account.
Sorry, I havn't read the forum for a while! I've just found your suggestions and I'll try them out in the next days!
 
Reply


 
Forum Jump


All times are GMT. The time now is 18:58.