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.

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

  1. 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!

  2. 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)

  3. 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.

  4. 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 :)

  5. 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)

  6. 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?

  7. 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

  8. 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…

  9. 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?

  10. 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

  11. 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.

  12. 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)

  13. 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)

  14. 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.

  15. 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!

  16. 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.

  17. 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!).

  18. 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

  19. 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?

  20. 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.

  21. Pingback: Geotagging mit Holux M-241 unter Mac OS | www.rootof.net
  22. I’m not managing to get this to work.

    First time, in step 6, a connection was not established with the HOLUX.

    Then, trying to replicate the procedure, I’m stuck in step 3; the bluetooth icon does not appear anymore after typing in the shell command. Also, first, when typing in the shell command, what seemed to be output from the HOLUX was sent to the command line. Now, this no longer happens.

    Confused.

  23. I, too, can get to step 6. The app runs but the BLUETOOTH button fails to connect to the device. Everything works fine until this step. Using BT747_2.X.1580 with snow leopard and Holux M-241 firmware 1.1.

  24. Everything goes fine untill I get to B747 and click Get Log button. It seems to work fine as the bar apears at the bottom and some data is downloaded. But then when I click on ‘to gpx’ or ‘to kml’ I get the message saying:
    ‘No output files were created!
    This usually means that either:
    – the filter did not select any points
    – the log does not contain any data
    Try selecting all point.
    If that does not work, it may be a bug.

    Where and how should I select some points? The data seems to be there. Can anybody give me a tip what to do with that and how to save the data into gpx or kml, pleaser? Thank you

  25. Also watch out for step 2, if your root password is blank it does not work. I had to create new password, since I used none. With blank password it just did not create the folder /var/lock it should have.

  26. I tried many hours, looking for a solution everywhere… until… I got Photolinker. The perfect solution for Mac users who want to use a logger for Geotagging photos. I use Holux M-241 that does not support Mac. Photolinker is wonderful.
    Stop playing with the Mac Console, Java, etc.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>