How-To: Holux M-241 with BT747 v1.52 GPS logger software over Bluetooth

Here’s a new HOW-TO to connect your Holux M-241 GPS logger over Bluetooth on the Mac using the BT747 application.

  1. If there is already an /Application/GPS folder on your hard drive, (re)move or rename it.
  2. Enter the following commands in a shell (Terminal):
    sudo mkdir /var/lock && sudo chmod 777 /var/lock
    You will be asked for your root password.
  3. Turn the M-241 on and use the Bluetooth setup assistant on the Mac to set the device up (see screenshots below). Use passkey 0000 (four zeros). Once the wizard finishes, the M-241 will show up as paired but not connected. There will be no Bluetooth icon shown on the M-241 as for now because the serial port hasn’t been opened yet. If all is set up correctly there’s an entry called tty.HOLUX_M-241-SPPSlave-1 in the /dev directory of your Mac. Open a shell (Terminal) an try to run the command
    cat /dev/tty.HOLUX_M-241-SPPSlave-1

    and the Bluetooth icon on the the M-241 should appear almost immediately. Wait another 30 seconds and the last position information should be dumped in the shell. Press CTRL-C to abort. If it says “No such file or directory” the device may not have been set up correctly on your Mac. In some cases, the M-241 may be shown as tty.HOLUX_M-241-SPPSlave-0.




  4. Extract the content of BT747_1.52_xx.zip to /Applications/GPS
  5. Run the bt747_macosX.command script (double click it in your /Applications/GPS folder), the BT747 application should start
  6. On the tab labeled “Con” hit the BLUETOOTH button. If everything is fine the application will connect to your M-241.
  7. Don’t forget to hit the button “Get Log” on the tab labeled “Log” to download the track information from your M-241
  8. After the log is downloaded, press any of the format buttons to export your position data to that format.
  9. This is optional:
    Create a subdirectory logs in /Applications/GPS
    Change to the tab labeled “File”
    Change the output dir to /Applications/GPS/logs
    Press “Apply&Set the above values”
    All your downloaded and converted GPS files will be written to this directory from now on.

If you get a gnu.io.PortInUseException:
Have a look at step 2 above.

I’m using the default Java Runtime Environment (JRE) on Mac OS X 10.5.4 which at this time happens to be 1.5.0_13-b05-237.


You may also be interested to read:

23 Comments so far

  1. Jan on July 13th, 2008

    Don’t miss my recent article about the geotagging workflow on the mac:
    http://www.trick77.com/2008/07.....n-the-mac/

  2. Charles Lee on July 17th, 2008

    Thanks for the great tutorial. However, I can’t seem to get BT747 to remember the output dir setting between sessions. Is there a file that I can modify? Or do I need to change the permission on certain files to make the settings stick? Thanks!

  3. David on July 20th, 2008

    Hi, after failing to get it working with the previous method, I tried your new HOW-TO and I’m getting the following report in Terminal when clicking on “Bluetooth” in the Applet - any ideas, cheers:

    181 - null
    Info: trying to open /dev/cu.SLAB_USBtoUART
    java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver
    —————————
    >>>>>>> CAUGHT UNHANDLED EXCEPTION IN SuperWaba EVENT THREAD:
    java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1753)
    at java.lang.Runtime.loadLibrary0(Runtime.java:822)
    at java.lang.System.loadLibrary(System.java:993)
    at gnu.io.CommPortIdentifier.(CommPortIdentifier.java:83)
    at gps.port.GPSRxTxPort.openPort(Unknown Source)
    at gps.GPSrxtx.setBluetoothAndOpen(Unknown Source)
    at bt747.model.Controller.setBluetooth(Unknown Source)
    at bt747.waba_view.GPSconctrl.GPS_setChannel(Unknown Source)
    at bt747.waba_view.GPSconctrl.onEvent(Unknown Source)
    at waba.ui.Control.postEvent(Control.java:611)
    at waba.ui.Button.onEvent(Button.java:203)
    at waba.ui.Control.postEvent(Control.java:611)
    at waba.ui.Window._postEvent(Window.java:574)
    at waba.applet.SWEventThread.handleOneEvent(SWEventThread.java:84)
    at waba.applet.SWEventThread.run(SWEventThread.java:48)
    at java.lang.Thread.run(Thread.java:613)

  4. Jan on July 21st, 2008

    David, it looks like you’re not using the latest version (v1.52). This problem occured in v1.48 because of an error in the start script.

  5. David on July 21st, 2008

    Doh! Thanks Jan - not sure how I managed to use the wrong one - perhaps I deleted the new instead of an older download. Anyway, thanks, it’s working well now :)

  6. Andrew on August 2nd, 2008

    Help!

    I have followed your instructions, and everything worked until I started BT747. I got a response from my GPS, but I keep getting the message below when I force it to use the right port (Qstarz 1000P) or the same message but for the USB driver when I don’t. Any ideas! This is on an Intel Mac Mini with 10.5.4.

    Info: trying to open /dev/tty.iBT-GPS-SPPslave-1
    gnu.io.NoSuchPortException
    at gnu.io.CommPortIdentifier.getPortIdentifier(CommPortIdentifier.java:218)
    at gps.connection.GPSRxTxPort.openPort(Unknown Source)
    at gps.connection.GPSrxtx.setBluetoothAndOpen(Unknown Source)
    at bt747.model.Controller.setBluetooth(Unknown Source)
    at bt747.waba_view.GPSconctrl.GPS_setChannel(Unknown Source)
    at bt747.waba_view.GPSconctrl.onEvent(Unknown Source)
    at waba.ui.Control.postEvent(Control.java:611)
    at waba.ui.Button.onEvent(Button.java:203)
    at waba.ui.Control.postEvent(Control.java:611)
    at waba.ui.Window._postEvent(Window.java:574)
    at waba.applet.SWEventThread.handleOneEvent(SWEventThread.java:84)
    at waba.applet.SWEventThread.run(SWEventThread.java:48)
    at java.lang.Thread.run(Thread.java:613)

  7. Jan on August 2nd, 2008

    Andrew, if you list (using Terminal) all the files in the /dev directory, do you see an entry with the name
    tty.iBT-GPS-SPPslave-1
    and if yes, what happens if you use the cat command on that device?

  8. Andrew on August 2nd, 2008

    I found the error. The entry for the Qstarz Q1000P should be tty.iBT-GPS-SPPSlave-1 with a capital S on Slave otherwise it won’t work. Once I changed the command script it was fine. I didn’t think OSX was case sensitive like that.

    Many thanks for your help

  9. brendan on August 14th, 2008

    you might want to check out gpsbabel for getting the tracks off the m241… Support for the m241 hasn’t made it to the release yet, but if you grab the source from CVS and compile it, it works quite nicely… It’s also got a gui front-end (nicer than bt747), which last I checked didn’t have the options for the m241, but it’s not too difficult to add them in…

  10. Michael on August 28th, 2008

    im getting an error when i click Get Log:

    ERROR:
    Could not open
    /BT747/BT747/log.bin
    Check path & if Card is writeable…

    any ideas?

  11. corny on September 4th, 2008

    Hi,
    in the documents there you tell something about setting waypoints using “the button”. On my M-241 I only have two buttons, one for menu and one for enter. I cannot get any waypoint using these two buttons. How do I get waypoints?

    thanx, great work

  12. Rainer on September 10th, 2008

    I have the same problem Michael on August 28th, 2008 reported

  13. Jan on September 14th, 2008

    You have to set an existing path for the data file and make sure you don’t forget to press the save button in the dialog. Maybe step #9 isn’t as optional as I initially thought.

  14. Rainer on September 14th, 2008

    Thanks 77

    It works !!

    Summary:
    First select a writable folder (I use my desktop)
    Second press the save button
    Third press the transformation (I use GPX)

  15. Paul on September 29th, 2008

    Hi, I’m sure I’m using the latest version of BT747 (version 1.55.2) but I keep getting the error below. Has it re-appeared in version 1.55? Version 1.52.xx doesn’t seem to be available for download any longer from sourceforge.

    Info: trying to open /dev/tty.HOLUX_M-241-SPPSlave-1
    java.lang.UnsatisfiedLinkError: /Applications/GPS/lib/rxtx-2.1-7-bins-r2/Mac_OS_X/librxtxSerial.jnilib: thrown while loading gnu.io.RXTXCommDriver
    —————————

    >>>>>>> CAUGHT UNHANDLED EXCEPTION IN SuperWaba EVENT THREAD:
    java.lang.UnsatisfiedLinkError: /Applications/GPS/lib/rxtx-2.1-7-bins-r2/Mac_OS_X/librxtxSerial.jnilib:
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1822)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1739)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1030)
    at gnu.io.CommPortIdentifier.(CommPortIdentifier.java:83)
    at gps.connection.GPSRxTxPort.openPort(Unknown Source)
    at gps.connection.GPSrxtx.setBluetoothAndOpen(Unknown Source)
    at bt747.model.Controller.setBluetooth(Unknown Source)
    at bt747.waba_view.GPSconctrl.GPS_setChannel(Unknown Source)
    at bt747.waba_view.GPSconctrl.onEvent(Unknown Source)
    at waba.ui.Control.postEvent(Control.java:611)
    at waba.ui.Button.onEvent(Button.java:203)
    at waba.ui.Control.postEvent(Control.java:611)
    at waba.ui.Window._postEvent(Window.java:574)
    at waba.applet.SWEventThread.handleOneEvent(SWEventThread.java:84)
    at waba.applet.SWEventThread.run(SWEventThread.java:48)
    at java.lang.Thread.run(Thread.java:637)

  16. Mario on September 30th, 2008

    Your problem is strange because this is reported working by a Mac User.
    You can try the latest version from the debug_release too if you like.

    A search on the net may give us a solution:
    http://www.arduino.cc/cgi-bin/.....1204208692

    Apparently removing an input manager solves the problem there - I do not know what that is however.
    Another solution seems to be using Java 5 (setting in the java preferences)?

    Let us know if anything there helps.

  17. nicola on October 30th, 2008

    Hi,
    I am trying to follow this guide, the first steps are ok but I cannot launch bt747! When I run the bt747_macosX.command script, I get this error:

    /Applications/GPS/bt747_macosX.command: line 53: javaw: command not found

    I am running mac os x 10.4.11 with J2SE5.0

    thanks if anybody could help!

  18. Jan on October 30th, 2008

    I’m using the default JVM in Mac OS X 10.5.5 and I’m able to start the bt747_macosX.command script by just double clicking it in the folder. I’m using bt747 1.60. If you know the path to your java or javaw you can always hardcode it into the script. It looks like in your setup the script can’t detect neither of the needed JVM start executables.

  19. nicola on October 31st, 2008

    Hi jan,
    thanks for your fast answer: first of all I forgot to write the version of bt747 that I was using: 1.60.11_en.
    Anyway yesterday I kept searching, and I’ve found this website:
    http://bt747.free.fr/content/
    which allows to install the software through a ‘Java Web Start’ system. Apart a different (in my opinion better) graphical interface, if worked like a charm with my holux M-241. Downloaded 1 hour ago my test path and was perfect in google earth, also waypoints.
    I thought was right to write back my experience, but still thanks a lot for your nice guide (and the other interesting articles!).

  20. maze on November 8th, 2008

    Hi Jan

    Brilliant! This how to and also your GPS-Aperture Workflow is amazing! Everyting works fine but I have a question.

    I have no skills with automator but it would be very nice to have a automator skript to connect the Holux-241. Now I always open terminal and copy/paste your commands and I ask myself if there isn’t a better way to do this. If you can explain me a better way I would be very happy.

    Thank you

    maze

  21. [...] Eine Anleitung zur Verwendung des Holux M-241 am Mac unter OS X findet man bei Trick 77 [...]

  22. GadgetDoctor on December 15th, 2008

    I’m 99% of the way there with my Holux talking nicely over bluetooth to my mac via the Version 1.60.11 of the BT747 software all thanks to this terrific post. I had a look at the PC software (via parallels) but it looks even more nasty than the open source method!

    My problem comes with trying to shut the thing down. If it hangs or seems to hang I try to quit it but no matter what I have a waba.applet.Applet icon in my dock and no force quitting will get rid of it till I reboot. Once this has happened, there is no way to reconnect to the Holux until I’ve rebooted.

    Is there some Java magic I need to know?

    Also my Holux, seems to turn itself off from time to time without telling me that the battery is low. I’m using some NIMH batteries which I haven’t used for a while and have only just recharged recently. It’s possible that the batteries are a bit suspect right?

  23. Jan on December 15th, 2008

    I haven’t seen such a Java problem on my Mac but you may want to ask the developer of BT747 himself by visiting his web site and forum over at:
    http://bt747.free.fr/content/?q=forum

    The battery indicator problem seems to be battery related OR related to the battery algorithm in the Holux. It may have been optimized for non-rechargeable batteries.

Leave a reply