[SOLVED] BT-Q1300S (Qstarz Sports Recorder) on ubuntu

Dear All,

I've just bought a Qstarz BT-Q1300S, and I would be the happiest man in world if I could configure it (at least, get data) from my ubuntu. I've seen the Qstarz BT-Q1300 on Ubuntu 8.04 (Hardy Heron) post, but I must acknowledge I'm not good enough in kernel compiling to perform this kind of tuning.

Have some of you already managed to use a Qstarz BT-Q1300S with BT747 on ubuntu ?

(Maybe stupid) additional question : must I install BT747 or is it sufficient to launch the java soft ?

Many thanks in advance for your help,

Denis

Bild von mdeweerd

Hi Dennis AFAIK the latest

Hi Dennis

AFAIK the latest Ubuntu version have the required low level drivers and that it is sufficient to lauch BT747 from one of the links here: http://soft.bt747.org .

I am able to launch BT747 in Ubuntu in Virtualbox from this link : http://soft.bt747.org/BT747_J2SE_Latest_RXTX2.2_Install.jnlp and I have downloaded tracks from similar devices in the past on this platform.

 

Mario

Dear Mario, Thank you a lot

Dear Mario,

Thank you a lot for your quick answer. I used the link you proposed. The software is launched. The Qstarz BT-Q1300S is plugged and turned ON. I push the button Connect and it seems that nothing happens (I thought the "download" button would become active, for instance)

When I look at the "info" tab and click on connect (having enabled all debugs), here is the result :

********debugging info********

129592 - 
Listing known ports:
175048 - isValidPort('/dev/cu.serial-0001')?: false -1
175049 - isValidPort('/dev/cu.SLAB_USBtoUART')?: false -1
175049 - isValidPort('/dev/cu.iBTAGPS-SPPslave')?: false -1
175049 - isValidPort('/dev/ttyUSB0')?: false -1
175049 - isValidPort('/dev/ttyUSB1')?: false -1
175049 - isValidPort('/dev/ttyUSB2')?: false -1
175050 - isValidPort('/dev/ttyUSB3')?: false -1
175050 - isValidPort('/dev/ttyUSB4')?: false -1
175050 - isValidPort('/dev/ttyUSB5')?: false -1
175070 - isValidPort('/dev/ttyACM0')?: false -1
175070 - isValidPort('/dev/ttyACM1')?: false -1
175070 - isValidPort('/dev/ttyACM2')?: false -1
175071 - isValidPort('/dev/ttyACM3')?: false -1
175071 - isValidPort('/dev/ttyACM4')?: false -1
175071 - isValidPort('/dev/ttyACM5')?: false -1
175071 - isValidPort('/dev/cu.usbmodem1b10')?: false -1
175072 - isValidPort('/dev/cu.usbmodem1d10')?: false -1
175072 - isValidPort('/dev/cu.usbmodem3d10')?: false -1
175072 - isValidPort('/dev/cu.usbmodem3a20')?: false -1
175072 - isValidPort('/dev/cu.usbmodem620')?: false -1
175072 - isValidPort('/dev/cu.usbmodemfd110')?: false -1
175073 - isValidPort('/dev/tty.usbmodemfd110')?: false -1
175073 - isValidPort('/dev/tty.usbmodemfd510')?: false -1
175075 - isValidPort('/dev/tty.usbserial')?: false -1
Info: trying to open 'null'
gnu.io.NoSuchPortException
at gnu.io.CommPortIdentifier.getPortIdentifier(CommPortIdentifier.java:269)
at gps.connection.GPSRxTxPort.openPort(GPSRxTxPort.java:167)
at gps.connection.GPSrxtx.myOpenPort(GPSrxtx.java:117)
at gps.connection.GPSrxtx.setUSBAndOpen(GPSrxtx.java:127)
at bt747.model.Controller.setUsb(Controller.java:1084)
at bt747.j2se_view.BT747Main.openPort(BT747Main.java:1492)
at bt747.j2se_view.BT747Main.btConnectActionPerformed(BT747Main.java:1410)
at bt747.j2se_view.BT747Main.access$300(BT747Main.java:66)
at bt747.j2se_view.BT747Main$7.actionPerformed(BT747Main.java:812)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6389)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3268)
at java.awt.Component.processEvent(Component.java:6154)
at java.awt.Container.processEvent(Container.java:2045)
at java.awt.Component.dispatchEventImpl(Component.java:4750)
at java.awt.Container.dispatchEventImpl(Container.java:2103)
at java.awt.Component.dispatchEvent(Component.java:4576)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4633)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4297)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4227)
at java.awt.Container.dispatchEventImpl(Container.java:2089)
at java.awt.Window.dispatchEventImpl(Window.java:2518)
at java.awt.Component.dispatchEvent(Component.java:4576)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:672)
at java.awt.EventQueue.access$400(EventQueue.java:96)
at java.awt.EventQueue$2.run(EventQueue.java:631)
at java.awt.EventQueue$2.run(EventQueue.java:629)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116)
at java.awt.EventQueue$3.run(EventQueue.java:645)
at java.awt.EventQueue$3.run(EventQueue.java:643)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:642)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
175087 - 
Listing known ports:********End of debugging info********

Can this help you to understand what my problem is ?
I manage to communicate with the logger under windows on virtualbox but I would rather use your software which would allow me to stay within one OS, and which seems to be far more powerful in communicating and configuring my device.

Thank you in advance.
Best regards,
Denis

Bild von mdeweerd

BT747 can not find the serial

BT747 can not find the serial port for your logger.

What version of Ubuntu are you using?

Check if the logger does have a device driver.  You may need to uninstall 'gpsd' if it is installed.

To check that a device is assigned, do 'ls /dev > file1' before connecting the device, and 'ls /dev > file2' after connecting the device.

'diff file1 file2' will give you the relevant device name, if any.

Enter that device name as the path to the device in BT747.

Dear Mario, Thank again for

Dear Mario,

Thank again for your quick reply. I'm on Ubuntu 10.04

feurer@LISAH-BB:~$ uname -a
Linux LISAH-BB 3.2.0-33-generic-pae #52-Ubuntu SMP Thu Oct 18 16:39:21 UTC 2012 i686 i686 i386 GNU/Linux

I found were the Qstarz is mounted under /dev thanks to your instructions :

feurer@LISAH-BB:~$ diff file1 file2
80a81
> serial
154a156
> ttyACM0

Now, I must acknowledge I didn't found where I must enter this path in BT747.. Sorry if I'm too newbie, and thank again for your help.

Kind regards,

Denis

P.S : I kind of remember that the ttyACMO path is also used by 3G modems. There might be a trouble with rights associated with this path ?

 

feurer@LISAH-BB:/dev$ ls ttyACM0 -l
crw-rw---- 1 root dialout 166, 0 nov.  23 10:19 ttyACM0

Bild von mdeweerd

Hi The location where you

Hi

The location where you should enter the port is next to the connect button where you'll probably read 'USB'.

You'ld have to put:  /dev/serial or /dev/ttyACM0

It's a bit strange that BT747 did not identify it as a valid port because we can read in your earlier post:

175070 - isValidPort('/dev/ttyACM0')?: false -1

Which means that the port was tested and found to be invalid.

I suggest that you try again with the explicit paths.

If that does not work, the next best guess is that something is wrong with the driver which is a bit harder to fix.  You can try the alternative versions of RXTX from soft.bt747.org:

http://soft.bt747.org/BT747_J2SE_Latest.jnlp

http://soft.bt747.org/BT747_J2SE_Latest_rxtx2_2p2.jnlp

 

Maybe one or the other works for you.

 

The final solution would be to install the Ubuntu RXTX package on your machine (which I think exists), get the zip package for BT747 and refer to the local RXTX installation when launching BT747.

Hello Mario, and thanks again

Hello Mario, and thanks again for you answer.

I'm quite puzzled now. The solution with give the full path didn't work. I couldn't test the two links you proposed, I have an error when launching the java file :

net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: Could not initialize application. at net.sourceforge.jnlp.Launcher.createApplication(Launcher.java:778) at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:552) at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:889) Caused by: net.sourceforge.jnlp.LaunchException: Fatal: Application Error: Unknown Main-Class. Could not determine the main class for this application. at net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:508) at net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:201) at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:320) at net.sourceforge.jnlp.Launcher.createApplication(Launcher.java:770) ... 2 more Caused by: net.sourceforge.jnlp.LaunchException: Fatal: Application Error: Unknown Main-Class. Could not determine the main class for this application. at net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:508) at net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:201) at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:320) at net.sourceforge.jnlp.Launcher.createApplication(Launcher.java:770) at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:552) at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:889)

I tried to install the rxtx package (to be precise, the librxtx-java and librxtx-java-dbg packages) but I don't know haw to tell BT747 to use these libs.. I don't know what to do now, I'm afraid I'm not of a good help in diagnosing my trouble.

Anyway, thanks again in advance ! Best regards,

Denis

Hello all, I keep struggling

Hello all,

I keep struggling with my GPS. One more thing I noticed ; when doing

sudo cat /dev/ttyACM0

I can see NMEA phrases. It goes through USB seeing that it works even when I turn off my notebook bluetooth device.

Thanks in advance,

Denis

Dear Mario, I finally managed

Dear Mario,

I finally managed to communicate with the Qstarz BT-1300ST. I've just launched the following command under a terminal

sudo javaws "/home/feurer/.icedtea/cache/22/http/soft.bt747.org/BT747_J2SE_Latest_RXTX2.2_Install.jnlp"

When doing this, I can connect to my GPS when connecting (either to USB either to /dev/ttyACM0). Now the question is : how can I use your software without beeing root ? Thanks a lot in advance and for your great work (now I could navigate through the options, I could have a glance at the numerous possibilities of it !)

Best regards,

Denis

Dear All, Me again. Now I

Dear All,

Me again.

Now I would like to manage to use BT747 software even when not connected to internet (for example, when in field).

I tried the two last versions (which are maybe identical ?) :

BT747_Latest_Full.zip

BT747_2.X.1968M_full.zip

I tried to launch the shell scripts run_j2se.sh, even as root but I can't connect to the device. I don't understand because the soft works when I launch as root the jnlp file

Anyone would help me ?

Thanks a lot in advance,

Denis

Bild von mdeweerd

If you click one of the jnlp

If you click one of the jnlp links with 'Install' in it and you accept that a local link is created, the jnlp installation also works without a network.

 

If you can not connect to the device, the wrong driver is selected in the startup script.

In run_j2se.sh, change the first line to '#!/bin/sh -xv' to get more information about which rxtx path is taken.

Kind regards

 

Mario

Dear Mario, More than one

Dear Mario,

More than one year later : a friend of mine just managed to have its BT747 working offline on Ubuntu at the first try, so I went back on my trouble and I finally fixed it ! Urra !

You last advice was the good one, my apologizes for not having trusted it strongly enough...

I looked to the files installed in my local librxtx-java package (in synaptics) and found that /usr/lib/jni is my local path. I then modified the run_j2se.sh script this way :

[...]
  # Did not find binary - look on system.
  if [ -e /usr/share/java/RXTXcomm.jar ] ; then
    # if librxtx-java seems to be installed locally (e.g., on Ubuntu)
    RXTXPATH=/usr/lib/jni #added /jni
    RXTXLIBPATH=/usr/lib/jni #added /jni
    RXTXJAR=/usr/share/java/RXTXcomm.jar
  fi
[...]

Now that works ! Many many thanks again for your sofwtare !

Denis

By the way, I post the very

By the way, I post the very simple procedure my friend used, and which seem to work almost on the first try :

Download http://sourceforge.net/projects/bt747/files/Development/BT747_Latest_Ful..., unzip in the directory DIR and then type :

chown $USER DIR
chmod -R 750 DIR
./run_j2se.sh

And here you are !

Denis