Philipp Klaus's Computing Blog

Success is about speed and efficiency

Qstarz BT-Q1000 Premium

Hardware Features and Specifications


  • Adopt MTK chipset with high sensitivity -158dBm and 51-Channel tracking
  • Lower power consumption up to 32hrs for travel recording
  • Stand-Alone travel recorder to log over 100,000 records
  • Easily switch Travel Recorder to LOG mode or NAV mode (LOG = Navigation + Log)
  • Support button push manually to memorize your location immediately
  • Active NMEA protocol VTG / GLL manually via Qstarz setup tool.
  • Backup your travel record as CSV / NMEA / Google Earth file format.
  • Fast Position Fix ,Cold start 36s, Warm start 33s,Hot start 1s
  • WAAS+EGNOS support
  • Auto On-Off function for smart power control

About MTK chipset based GPS devices:


Qstarz BT-Q1000 Premium Specifications

dmesg output on Ubuntu 9.04

usb 5-1: new full speed USB device using uhci_hcd and address 2
usb 5-1: configuration #1 chosen from 1 choice
usbcore: registered new interface driver usbserial
USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial Driver core
USB Serial support registered for cp2101
cp2101 5-1:1.0: cp2101 converter detected
usb 5-1: reset full speed USB device using uhci_hcd and address 2
usb 5-1: cp2101 converter now attached to ttyUSB0
usbcore: registered new interface driver cp2101
cp2101: v0.07:Silicon Labs CP2101/CP2102 RS232 serial adaptor driver

5Hz record mode

(setup using MiniGPS and Qstarz tool or using BT-747)

Qstzar BT-Q1000 can log at 5Hz to internal memory:

I had assumed that 5Hz logging was only possible by pda or PC but quite by accident I seem to have found that the BTQ1000 has the ability to internally log at 5Hz. Right now I'm looking at a log I took while going for a short motorbike ride. Once the bike gets over 30km/h (as set in the travel recorder utility) the logger has recorded 5 individual entries for every second. Essentially I can see my acceleration characteristics down to .2 seconds. The time stamps are identical however for all 5 entries. I assume that it just doesn't record the .0 .2 .4 .6 .8. When plotted the data clearly shows the acceleration and deceleration with .2 seconds resolution.

Set logger to record at 5Hz using MiniGPS 1.32 and using Qstzar pc utility set logger to Advanced=>Log For Vehicle=>Log every 1 second and Log over 30km/h.
Use logger as normal on a drive or roller coaster or whatever in log mode. (Ididn't have mine connected to any PC or PDA). When downloading information you must set the logger back to 1Hz otherwise there is too much live GPS data on the emulated com port over USB when downloading data from logger.

Connect it to a PC using Bluetooth


To restart the bluetooth stack:

sudo /etc/init.d/bluez-utils restart
hcitool scan
sdptool records 00:02:76:FD:85:35
rfcomm bind /dev/rfcomm4 00:02:76:FD:85:35
sudo hcitool cc 00:02:76:FD:85:35
sudo hcitool con
sudo rfcomm bind /dev/rfcomm4 00:02:76:FD:85:35

Get current location using gpsd


start gpsd

sudo rfcomm release 4
sudo rfcomm bind 4
sudo chmod 777 /dev/rfcomm4
gpsd -f /dev/rfcomm4

# Um einen GPS-Track mitzuschreiben, der mit einem per
# virtueller serieller Schnittstelle angeschlossenen
# bluetooth gps-Empfänger und gpsd empfangen wird:
echo rw|netcat localhost 2947 > Track.dump
# Umwandeln in einen gpx-track:
gpsbabel -i nmea -f Track.dump -o gpx -F Track.gpx

# gleich einen gpx-RTtrack:
sudo apt-get install gpsd-clients
cgpxlogger > track.gpx

gpsbabel (download track and waypoints, Convert to GPX)

To download logged tracks use format mtk: This is the format for MTK Logger (like the iBlue 747,Qstarz BT-1000, etc.). The format can read tracks and has the following options: erase, log_enable, csv.

Download tracks and waypoints and erase storage on the device:

gpsbabel -t -w -i mtk,erase -f /dev/ttyUSB0 -o gpx -F out.gpx

Convert MTK binary track file to GPX ( )

gpsbabel -t -i mtk-bin,csv=extra.csv -f data.bin -o gpx -F out.gpx

mtkbabel (get tracks, erase memory, set logging on/off, set logging mode)

Install mtkbabel on Ubuntu Linux:

sudo aptitude install mtkbabel

Enable / disable logging:

mtkbabel -l on|off

Read out tracks (.gpx):

mtkbabel -f gpsdata -t

Read out waypoints (.gpx):

mtkbabel -f gpsdata -w

Erase data:

mtkbabel -E

.. do it all with one command:

mtkbabel -l off -f gpsdata -t -w -E

..with a bit rate of 38.400 (Holux M-241):

mtkbabel -s 38400 -l off -f gpsdata -t -w -E

Set up logging format, e.g. NMEA-GGA + Option RCR (Record reason):


Set up logging intervals, e.g. every 2s or 25m (Time[s]:Distance[m]:MinSpeed[km/h]):

mtkbabel -r 2:25:0

Set up logging mode:

mtkbabel -m stop|overlap

Display help text:

mtkbabel -h

BT747 software

BT747 is free software: (on sourceforge: BT747 was orignally designed for handheld devices. Today it has four different interfaces:

  • Desktop GUI, works on Windows, MacOSX, Linux;
  • PDA GUI, works on Palm, PocketPC, Windows, MacOSX, Linux;
  • Mobile Phone GUI, works on Java Enabled Phones (with JSR82 for bluetooth and JSR75 for file access);
  • Command line operation, works on Windows, MacOSX and Linux.

Feature Overview

  • Use the SW on your PDA (and some phones) - No need to have your PC with you to change settings or know the device status;
  • Download the log in raw format - the raw format is saved and can be appended to later on (fine grained incremental download) or converted at a later time;
  • Archive the logs. You can keep the original 'bin' files and convert them at any later time. It is not required to be connected to the device to convert. You can name the file after the date or the trip that is logged in it.
  • Convert the log to CSV, KML, GPX, NMEA, Google Maps (single HTML file), CompeGPS (TRK), or PLT (OziExplorer) format (CSV is improved over the original application);
  • Define the name and location of output (input) files ;
  • Get one output file per day in the log file;
  • Automatically seperate tracks.
  • Subtract the difference between the MSL (geoid) and the WGS84 from the logged height. This difference is added to the height when it is logged in the device. That way the height is matched to what Google Maps expect and to what the user expects.
  • Filter items written to these formats by:
  • date (start/end date);
  • log reason (time, speed, distance, button, and application specific);
  • fix type (no fix, sps, dgps, estimate, ...)Change the logging reason parameters (time, speed, distance). To change, check the tick box and then push SET;
  • record number, speed, distans, PDOP, HDOP, VDOP, NSAT (=Advanced).
  • Change the log format (without erasing the log on the device);
  • Set 5Hz logging (set Time=0.2 s and fix = 200 ms) or the button on the 'Easy' tab;
  • Log positions from within the application (on the device) using extra log reasons.
  • Start/Stop the log;
  • Set some special settings (not available in the PC application delivered with the device): DGPS mode, test satellite, fix frequency (e.g., 5Hz setting)
  • Avoid the bugs of the original application (V2.2):
  • Incomplete (incorrect) log download resulting in not being able to get all the log points;
  • Errors in HDOP value interpretation (1.09 is written as 1.9 by the original application);
  • Incorrect date given in the NMEA format.

Bigger version of the screenshot:
Screenshot of the BT747 software (v2.X.1520)

Installation (javaws) and run


# start BT747 via Java Webstart
# (see <>)

arch=$(uname -m)

if [ "$arch" == 'x86_64' ]

switch on the device (Log mode otherwise it will enter sleep mode automatically in few minutes under NAV mode) connect it to the USB port. Start the software and click on connect ( connection: USB or enter /dev/ttyUSB0 ) -> done