Close Menu
    Facebook X (Twitter) Instagram Pinterest YouTube
    Trending
    • Disable SSH Password Login on Raspberry Pi
    • Elecrow Meteor IPS Touchscreen with RGB LEDs
    • Pi Pico Pinout Display on the Command Line
    • How to Add a Raspberry Pi Pico Reset Button
    • Pi Pico Onboard LED
    • Pi Pico W Pinout and Power Pins
    • CrowPi L Raspberry Pi Laptop and Learning Platform
    • Pi Pico W Launched
    Mastodon YouTube Facebook Instagram Pinterest RSS
    Raspberry Pi SpyRaspberry Pi Spy
    • Home
    • Categories
      • General
      • Hardware
      • Programming
      • Python
      • Software
      • Tutorials & Help
    • BerryClip
      • BerryClip Instructions
      • BerryClip Plus Instructions
      • Videos & Reviews
    • Buy
      • Buy Pi
      • Buy Pi Accessories
      • Buy Books
    • Tools
      • Ultimate Raspberry Pi Alexa Skill
      • Pi Power Estimator App
      • Pi-Lite 14×9 LED Matrix Sprite Editor
      • RPiREF Pin-out Reference App
      • Simple Ohm’s Law Calculator
      • Web Sites & Links
    • Tutorials & Help
        Featured
        November 9, 20200

        Raspberry Pi Temperature Monitoring

        Recent
        February 16, 2024

        Disable SSH Password Login on Raspberry Pi

        December 23, 2022

        How to Add a Raspberry Pi Pico Reset Button

        November 20, 2022

        Pi Pico Onboard LED

      1. Contact Us
      2. Site Map
      Raspberry Pi SpyRaspberry Pi Spy
      You are at:Home»Hardware»Holux Bluetooth GPS Module And The Raspberry Pi
      Raspberry Pi GPS Clients under LXDE

      Holux Bluetooth GPS Module And The Raspberry Pi

      29
      By Matt on December 13, 2013 Hardware, Tutorials & Help

      Back in the old days I had an Acer N50 Premium PDA. For the youngsters out there it was like a Smart Phone but without the phone bit, the capacitive touch-screen, memory, apps, GPS or battery life. I mainly used it as a TomTom based sat-nav device connected to a Holux GPSlim236 Bluetooth module.

      The module had been sat in a drawer for at least five years and I decided to see if I could get it working with the Raspberry Pi. Surprisingly I didn’t need to charge it as five years later it still powered up fine. It uses what at the time was a standard Nokia phone battery.

      Holux GPSlim236This is the hardware I used :

      • Holux GPSlim236 Bluetooth GPS Module
      • PoundWorld Bluetooth module
      • Raspberry Pi Model B (Rev 2)
      • Power supply
      • Fresh Raspbian SD card
        (2013-09-25-wheezy-raspbian)

      This was one of those experiments where Google gave me all the answers once I had pieced together fragments from many different blogs and forums.

      Although I’m using a specific GPS device I don’t see why it wouldn’t work with any Bluetooth GPS module given they will all be sending serial data in standard NMEA format. Let me know if it works for other units.

      Step 1 – Initial Setup

      Start with a fresh Raspbian image on your SD card and plug it into the Pi along with the Bluetooth dongle. Power up the Pi with it connected to a network as we will need access to the internet.

      As this is a fresh SD card start by running :

      sudo raspi-config

      and expand the SD card partition to fill the spare card space. Then run :

      sudo apt-get update
      sudo apt-get upgrade

      to ensure everything was up to date. This will take a while (5-10 minutes) so it is a good opportunity to grab a coffee. In order to form the link between the Pi and the device we will need to install a few extra packages :

      sudo apt-get -y install bluez-utils gpsd-clients

      Answer “Y” when prompted. “bluez-utils” provides some Bluetooth tools and “gpsd-clients” is a collection of tools for processing and displaying data.

      As we’ve installed so many new files it is a good idea to reboot :

      sudo reboot

      Step 3 – Get MAC Address

      With the Pi powered up switch on the Holux module and give it 60 seconds to look for satellites. We need to know the MAC address of the module so run :

      hcitool scan

      After a few seconds you should get a response :

      Scanning ...
              00:0B:0D:6F:B5:D4       HOLUX GPSlim236

      This will give you the MAC address of your device. In my case it is “00:0B:0D:6F:B5:D4” which I took a note of.

      Step 4 – Connect To The GPS Module

      Next we need to run the following command to connect the Pi to the remote Bluetooth device :

      rfcomm connect 0 00:0B:0D:6F:B5:D4 &

      The & at the end tells the command to run in the background and return to the command prompt. Remeber to use your MAC address! When it runs it echoes a process ID to the screen. A few seconds later it will display some text :

      Connected /dev/rfcomm0 to 00:0B:0D:6F:B5:D4 on channel 1
      Press CTRL-C for hangup

      You may need to press the Enter key to return to the command prompt. Do not press “CTRL-C”!

      To test the connection we can run :

      cat /dev/rfcomm0

      If the connection is working you should see some GPS data (NMEA format) being streamed from the GPS module. Press CTRL-C to return to the command prompt.

      Step 5 – GPSD Daemon

      Next is the “gpsd” daemon. This is a process that runs in the background and translates the NMEA messages for use by the clients.

      gpsd -b /dev/rfcomm0

      The b switch tells it to only read messages and not attempt to send anything back to the GPS receiver.

      Step 6 – Terminal Client

      At this stage your GPS module should be streaming data to the Pi over Bluetooth. To present this data in a more readable way we can use one of the clients that comes with the gpsd package. Try :

      cgps -s

      If everything has gone to plan you should see something a bit think this :

      CGPS Client

      To return to the command prompt you can press CTRL-C.

      Step 7 – GUI Client

      Once you’ve got cgps working you can try the GUI client xgps. Fire up the GUI by typing :

      startx

      Open a LXTerminal window by clicking the desktop icon. Then run the client by using :

      xgps

      You should see something like :

      XGPS Client

      If it’s all working and you are still reading this then congratulations!

      Step 8 – Reconnecting After Reboot

      When you reboot you will lose the Bluetooth link and will have to repeat the process from Step 4. That’s boring. By editing a system file we can get the Pi to reconnect on start-up.

      sudo nano /etc/bluetooth/rfcomm.conf

      Remove the # characters in front of the rfcomm0 {} block and edit the settings so you end up with something like this :

      rfcomm0 {
              # Automatically bind the device at startup
              bind yes;
      
              # Bluetooth address of the device
              device YOUR_DEVICE_MAC_ADDRESS;
      
              # RFCOMM channel for the connection
              channel 1;
      
              # Description of the connection
              comment "My GPS Module";
      }

      Remember to set bind to “yes” and replace “YOUR_DEVICE_MAC_ADDRESS” with the MAC address of your device.

      Use CTRL-X, Y and then enter to save and exit from the nano text editor. On reboot you will now be able to start at Step 5 (running gpsd).

      To take it a step further you can get gpsd to run at boot automatically. To do that run :

      sudo dpkg-reconfigure gpsd

      This will bring up a wizard which configures gpsd to start automatically. You will need to enter a few details such as the serial port location (/dev/rfcomm0) and the command line switches (-b). I wasn’t interested in USB devices so I told it to ignore those.

      When you restart your Pi it should connect to the GPS device and allow you to launch the clients straight away.

      Step 9 – Other Clients

      Once you’ve got the basics working you can start exploring all the other applications that are happy to read data from the gpsd process. One application worth trying is FoxtrotGPS. It can be installed using :

      sudo apt-get -y install foxtrotgps

      and then run using :

      foxtrotgps

      It loads maps from OpenStreetMap and will show your current position as well as speed and altitude.

      Final Thoughts

      There are plenty of other GPS clients that will probably run on the Pi. What you do with them is just down to your imagination.

      Raspberry Pi GPS Clients under LXDE

      Updates

      I have seen messages that the following devices work using this tutorial :

      • Dell BT-309 GPS
      • Emtac D1598 Bluetooth GPS
      • Holux GPSlim236 GPS
      • Holux GR-230
      • Holux M-241 GPS Data Logger
      • Navicore SiRF III Bluetooth GPS
      • RoyalTek RBT-2300 GPS
      • QStarz BT-Q816 GPS

      If you’ve tried it and it works for your device let me know and I will update this list.

      Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
      Previous ArticleFree Your Raspberry Pi Serial Port
      Next Article Berry Bookies – A Horse Racing Game For The BerryClip

      Related Posts

      Disable SSH Password Login on Raspberry Pi

      Elecrow Meteor IPS Touchscreen with RGB LEDs

      Pi Pico Pinout Display on the Command Line

      29 Comments

      1. Rick on December 15, 2013 9:43 pm

        Thanks for the tip. Works great with my QStarz BT-Q816.

        Reply
      2. Ian Bremner on January 6, 2014 9:17 pm

        HI,
        Good guide, just noticed that the rfcomm command needs to be run as root or I get a “permission denied” error.

        Also tested this with a Dell branded BT-309 GPS for the Axim X50/X51 PDA’s and a Belkin F8T012 Bluetooth adpator and it communicated fine although the GPS couldn’t get a fix on the satellite signal which I put down to LOS problems.

        Reply
        • Jos Neelen on February 9, 2014 10:27 am

          Hallo Ian,

          I have the same problem with rfcomm.
          What do you mean by root ?

          Thanks

          Jos

          Reply
      3. Dalos on January 7, 2014 8:48 pm

        Works like a charm with Holux M-241 GPS Bluetooth Data Logger.

        Reply
      4. vanbillemont kenny on February 10, 2014 12:26 pm

        thanks for this one, works great

        emtac bluetooth gps
        model :D1598

        Reply
      5. james Lacassagne on February 18, 2014 2:18 pm

        Works with the Plugable 4.0 LE. Thanks!

        Reply
      6. Colin Jacobs on March 11, 2014 9:19 pm

        Everything working just fine with my navicore SiRF III Bluetooth GPS

        Reply
      7. Klaus Dobbrick on April 9, 2014 2:18 pm

        Hi,
        it works also with Holux GR-230.
        Good To Do List.
        Klaus

        Reply
      8. karim on April 25, 2014 10:04 am

        Thanks! Works like a charm with Holux GPSlim 240 (SiRF III Bluetooth GPS).

        Reply
      9. Andreas on April 28, 2014 10:35 pm

        I don’t have access to a GPS receiver running bluetooth so I wondered whether I could use a standard serial GPS receiver (4800 8N1) interfaced via bluetooth (/dev/rfcomm0) instead. For this I needed just two pieces of additional hardware, a LogiLink USB dongle plugged into the Pi (better double check its presence running lsusb) and a HC-06 Bluetooth to serial adapter cheaply bought on ebay. And it worked. Here is a short rundown of the additional steps I had to take. Since the GPS receiver has a fixed speed of 4800 I had to reconfigure the HC-06 Bluetooth to serial adapter to 4800 as well (default is 9600). The command for this was “AT+BAUD3” sent with 9600 8N1. The “hcitool scan” command found the HC-06 and unveiled its MAC-address. To check the USB dongle can indeed talk to the HC-06 I ran “sudo l2ping MAC-address”. The result doesn’t look much different from the usual ping. Since the HC-06 comes with a password (1234) I had to run “sudo bluez-simple-agent hci0 Mac-address” which prompted me to enter that password. Now I was all set to run “sudo rfcomm connect 0 Mac-address &” as described above. BTW. gpsd can be killed running “sudo kill -9 ‘pidof gpsd'”. Thanks for all your fine work!!!

        Reply
      10. Rami on October 26, 2014 4:52 pm

        Just followed the guide to configure my TomTom Bluetooth GPS antenna, and it works fine too.

        Thanks 🙂

        Reply
      11. John on November 14, 2014 11:30 pm

        Thanks for the great tutorial, it really helped me get past the last bit (getting the data connection).

        Confirmed working on Altina GBT-709 receiver, identifies itself as BT_GPS on the hcitool scan.

        Reply
      12. Yu on December 26, 2014 5:19 am

        Thank you for your tips!! My GNS 2000 also works fine.

        Reply
      13. jordi on February 10, 2015 12:31 pm

        HOLUX M1000 also works fine

        How to set in km/h and meters. By default apears in ft and mph?

        Reply
        • José on August 7, 2018 6:40 pm

          Hi,

          I know there’s some time since you replied this but i need to know if everything worked for you or you made some kind of work around?

          I have the same gps device, the rfcomm is working properly, but the gpsd isn’t working, he’s not catching the data that are being transmitted on the channel.

          Thanks!

          Reply
      14. Jane Bloom on February 24, 2015 10:32 pm

        Ik heb een GPS lim 236 mis de antenne kabel. Weet iemand wie die nog in voorraad heeft. B.v.b. mijn dank. Jane Bloom

        Reply
      15. JanF on March 10, 2015 9:42 pm

        Dual XGPS160 works fine.

        Reply
      16. Lance Muswell on April 8, 2015 10:08 pm

        Just fired up an ancient iBT-GPS unit with a CSR Bluetooth dongle on the Pi and worked just fine. Most surprising thing is the GPS unit has been in a box for at least 10 years and the battery still had charge!

        Many thanks for the tips.

        Reply
      17. aless on April 14, 2015 2:59 pm

        Hi.
        How to connect to Bluetooth GPS, if GPS require PIN?

        Thx
        A.

        Reply
      18. Carlos on April 21, 2015 8:13 am

        Worked fine with an old TomTom 9821X. Thanks for the great tutorial.

        Reply
      19. Hans on April 21, 2015 10:05 pm

        Hi
        Works fine with my GPS Mouse “Route66 Sirf3 ”
        Thx for this nice Tutorial !

        Reply
      20. Zbyhu on May 22, 2015 4:55 am

        Thanks for this tutorial. It works with my GSpace GS-R238.

        Reply
      21. gml on July 8, 2015 1:12 am

        Thanks so much for the tutorial! Works well with Holux M1000. I’ll be looking for other GPS clients just for fun.

        Reply
      22. Mario on August 10, 2015 1:35 am

        Works great when connecting PI to an android phone with ‘gps to bluetooth’ app (tested with several devices)
        The app used was btGPS.v2

        Reply
      23. Tor on September 29, 2015 6:56 pm

        Thank you for a great tutorial. Works for an old RoyalTek RBT-2100LP too

        Reply
      24. Griffin on November 16, 2015 3:38 pm

        Works well on my good old Garmin GPS 10x : )

        Reply
      25. Richard on November 5, 2016 12:28 pm

        GPT-700 Bluetooth GPS Receiver

        Reply
      26. thymjan on June 24, 2017 9:05 pm

        Dual XGPS150 works fine.

        Reply
      27. Johannes Roth on February 24, 2018 11:22 pm

        I tried it with the now obsolete CoPilot Bluetooth GPS Receiver I kept in my shed for the last 10 years – worked a treat!

        Reply
      Leave A Reply Cancel Reply

      This site uses Akismet to reduce spam. Learn how your comment data is processed.

      Recent Posts
      February 16, 2024

      Disable SSH Password Login on Raspberry Pi

      March 13, 2023

      Elecrow Meteor IPS Touchscreen with RGB LEDs

      December 26, 2022

      Pi Pico Pinout Display on the Command Line

      December 23, 2022

      How to Add a Raspberry Pi Pico Reset Button

      November 20, 2022

      Pi Pico Onboard LED

      Categories
      • 1-wire
      • 3D Printing
      • Add-ons
      • BBC Micro:bit
      • BerryClip
      • Books
      • Camera Module
      • Cases
      • Events
      • General
      • Hardware
      • I2C
      • Infographics
      • Interfaces
      • Minecraft
      • Model A+
      • Model B+
      • News
      • Pi Models
      • Pi Pico
      • Pi Zero
      • Power
      • Programming
      • Python
      • Raspberry Pi OS
      • Raspbian
      • RetroGaming
      • Robotics
      • Sensors
      • Software
      • SPI
      • Tutorials & Help
      Tags
      Arduino audio battery berryclip Birthday bluetooth cambridge camera CamJam DigiMakers display games GPIO I2C interface Kickstarter Kodi LCD LED Linux media Minecraft Model A motionEyeOS PCB photography photos Pi-Lite Pi Pico power python Raspberry Jam Raspberry Pi Bootcamp raspbian Retrogaming retroPie screen SD card security sensor SPI SSH temperature ultrasonic video
      Raspberry PI Related
      • Adafruit Blog
      • Average Maker
      • Official RaspBerry Pi Site
      • Raspberry Pi Pod
      • RasPi.tv
      • RaspTut
      • Stuff About Code
      Tech Resources
      • MattsBits – Pi Resources
      • Microbit Spy
      • Technology Spy
      Archives

      Entries RSS | Comments RSS

      This site is not associated with the official Raspberrypi.org site or the Raspberry Pi Foundation. Raspberry Pi is a trademark of the Raspberry Pi Foundation.

      Copyright © 2025 - All Rights Reserved - Matt Hawkins

      About

      Unofficial site devoted to the Raspberry Pi credit card sized computer offering tutorials, guides, resources,scripts and downloads. We hope to help everyone get the most out of their Pi by providing clear, simple articles on configuring, programming and operating it.

      Popular Posts
      September 19, 2014

      Top 5 Reasons The Raspberry Pi Sucks

      July 27, 2012

      16×2 LCD Module Control Using Python

      October 20, 2013

      Analogue Sensors On The Raspberry Pi Using An MCP3008

      Latest Posts
      February 16, 2024

      Disable SSH Password Login on Raspberry Pi

      March 13, 2023

      Elecrow Meteor IPS Touchscreen with RGB LEDs

      December 26, 2022

      Pi Pico Pinout Display on the Command Line

      Mastodon YouTube Instagram Facebook Pinterest RSS

      Entries RSS | Comments RSS

      This site is not associated with the official Raspberrypi.org site or the Raspberry Pi Foundation. Raspberry Pi is a trademark of the Raspberry Pi Foundation.

      Copyright © 2025 - All Rights Reserved - Matt Hawkins

      mastodon.social@RPiSpy

      Type above and press Enter to search. Press Esc to cancel.