Holux M-241

From OpenStreetMap Wiki
Jump to navigation Jump to search
Holux M-241.jpg

The Holux M-241 is a simple, compact GPS data logger. It features a 128x32 pixel monochrome LCD display with green backlight to show current position and device status.[1] The internal memory can record up to 130,000 position data sets, including longitude, latitude, time, and altitude. Logged data can be retrieved from the M-241 via USB cable or Bluetooth wireless link using the NMEA 0183 V3.01 Interface Standard.[2] The M-241 supports distance and time logging modes, kilometer and mile distance units, and five languages — English, Traditional Chinese, Simplified Chinese, German, and French.

It was manufactured by Holux Technology, Inc., Hsinchu, Taiwan, R.O.C.

Since August 2019, the official website of the manufacturer holux.com is offline. Some information is provided by a volunteer support project, holux.info.


Holux M-241 at 319 km/h in a high-speed train, along with Columbus V-900

As shipped, the M-241 includes a AA battery (1 cell), a 12 VDC car adapter with removable USB cable, User Guide and Driver CD-ROM, M-241 Quick Guide warranty card and nylon wrist lanyard. The device is extensively documented in the User Guide, including instructions in use of software to communicate with it. The Holux ezTour software included on the CD-ROM is only compatible with Microsoft Windows XP, Vista and Windows 7, but third-party solutions exist for Linux and Mac OS X.

Basic accuracy of the M-241 is stated at 3 m, but this can be improved to 2.2 m when Differential GPS (DGPS)[3] is available.

Although not waterproof, the M-241 is specified to operate over a relative humidity range of 5% to 90% and temperature range of 0 °C to +50 °C. However, the battery may not provide optimal performance and life over the entire temperature range. Storage temperature range is -10 °C to +60 °C.

Before using the M-241 for OpenStreetMap, make sure it has firmware V1.11, or later. Further details are discussed in the Firmware section, below.

The unit can either start logging automatically, or after pressing the start button. It shows a little running-man icon on the left side while logging.

To store a waypoint while logging, one must be in the menu that displays latitude and longitude. Pressing the Enter button logs the waypoint, and confirms it by briefly displaying a little flag icon in the bottom left corner.

GPS week Rollover

The device cannot deal with the GPS week rollover that happens every 1024 weeks (10 bit encoding). Thus since 2019-04-07, it reports date stamps in the early 2000s, and does not show the time while logging.

Holux failed to produce a firmware patch for this problem. Tracks can be postprocessed with software such as gpsbabel or dedicated scripts, adding 7168 days to the timestamps.


The M-241 can log GPS points for up to 12 hours with one alkaline AA cell (recommended) at room temperature, 10 hours at high temperature or 2 hours at low temperature. An ordinary carbon-zinc cell can power it up to 4 hours at room temperature. A Ni-MH 1700 mAh rechargeable AA cell is specified to power it up to 10 hours at room temperature, and if a 2200 mAh cell is used, users have reported up to 12 hours usable life. Frequent activation of the backlight will shorten battery life. If an external 5 VDC power source is connected to the M-241 via the USB-miniport, as with the included car adapter, it can be used without a battery.

Although the M-241 User Manual expressly states that it cannot recharge cells, at least two users have reported success with rechargeable Ni-MH cells. When the Ni-MH cell is nearly depleted, connect the M-241 with the cell still inside to a USB power-only adapter (no data wires) and it may begin to get recharged slowly. (The ability to charge a battery this way may be due to a quirk in the circuit design or electronic component characteristics, and cannot be relied upon for future production units, so it would be prudent to carry extra cells or a battery charger that uses 12 VDC auto power or AC mains power.) If you want to try charging a cell while it is in the M-241, it is recommended to not wait until the battery is depleted: One can charge Ni-MH batteries even with remaining charge, without risk of "memory effect". Since there is concern with some users about suitable batteries, we can list ones that work well here:

  • eneReady 2200 mAh NiMH AA low self-discharge cell — works very well
  • etc.

Using the M-241


BT747 is a software solution for using the Holux M-241 with Linux, Microsoft Windows, Mac, Mobile Phones (J2ME), etc. You can configure the M-241 to log extra data, such as *DOP, SAT Info, Milliseconds.


If you compile your own kernel, make sure you set CONFIG_USB_SERIAL_CP2101=m in your configuration.

The GPSBabel bash script for downloading tracks from the Holux M-241 is available from OpenStreetMap user Gerkin's dropbox or from wiki.freemap.sk/HoluxDownload.


You don't have to use your M-241 device with Bluetooth: You can save batteries by using a USB cable and using the power from your laptop, which should last much longer.

stty 38400 < /dev/ttyUSB0
gpsd -N -D 2 /dev/ttyUSB0


To download the tracks with GPSBabel:

gpsbabel -t -i m241 -f /dev/ttyUSB0 -o gpx -F $(date -Iminutes).gpx


  • You may first need to add yourself to the group dialout : sudo adduser <yourself> dialout
  • On MacOSX, the Bluetooth device is: /dev/tty.HOLUX_M-241-SPPSlave-1

The resulting file (for example: 2016-12-31T23:59+02:00.gpx) does not contain the waypoints (when you press the "Enter" button while in "Show Position Mode"). To get those, use the script from Saving waypoints with Holux M-241.

There is a how-to, Holux M-241 and (Arch)Linux (Archived on 2008), but note that the gpsbabel command-line provided there is not correct anymore.


To download tracks and waypoints, use mtkbabel, making sure you have at least version 0.7:

mtkbabel -s 38400 -f `date +'%F-%H%M%S'` -t -w

Use -t for download tracks, -w for waypoints. Mtkbabel creates you a file called XXX.bin XXX_trk.gpx XXX_wpt.gpx where XXX is -f.

You need to set -s 38400 using USB. For Bluetooth, default speed (115000) should work. Note that the NMEA 0183 Interface Standard specifies serial communication speed at 4800 baud, although the M-241 is capable of exceeding this speed when connected to a suitable host.

You can easily send custom commands by editing the source code. (See Software hacks, below.) Further configuration can also be done by command line switches. See --help.

Comment: "Mtkbabel works better for me. It makes a track from every time you switch on the device and you will get the waypoints. (I did not get them with gpsbabel.)"

Even if Mtkbabel allows to set higher logging intervals (1 s, 1 m), the firmware seems to overwrite this with the settings from the menu.

BT747 software

BT747 software works on Linux. See the Microsoft Windows section for general details.

Microsoft Windows

German instructions: http://www.die-ritters.de/blog/holux-m-241-und-bt-747.sturkopf

There are two ways to connect to this device — USB and Bluetooth. Each requires a slightly different setup. You do not need to set it up both ways, either is sufficient, but USB is much faster for downloading logged data points than Bluetooth — 480 Mbps vs. 2.1 Mbps. Additionally, since there are various Bluetooth implementations ("stacks"), you may have to adjust these instructions for particular software-hardware combination.


First, make sure the Holux M-241 has Bluetooth turned on. Check as follows:

  1. Press the MENU (Mode) button until "Setting" is displayed, then press ENTER.
  2. Press MENU 8 times until "Bluetooth" is displayed, then press ENTER.
  3. If it says "On", you're all set.
  4. If it says "Off", press MENU (Sel) and then ENTER (OK) to turn Bluetooth on.

Have your computer search for Bluetooth devices. The following instructions are how I did it in Microsoft Windows on my Lenovo Thinkpad X300 with the Broadcom Bluetooth stack. Your Bluetooth applications will likely be slightly different.

  1. Go to My Computer and open up "My Bluetooth Places"
  2. Select "Add Bluetooth Device" from the "Bluetooth" menu
  3. Check to make sure the drop-down menu says "Show All Devices" and you should see the Holux device listed
  4. Select it and enter "0000" as the passcode for pairing
  5. Check the box next "SPP Slave" and click "Configure".
  6. Name the connection whatever you'd like, but make sure to note the COM port listed here

The M-241 should now be connected. When you want to connect in the future, right-click on the Bluetooth tray icon and select Quick Connect --> Bluetooth Serial Port --> Holux_M-241.

Please note that transferring data points over Bluetooth is significantly slower than over USB due to limitations of the NMEA Interface Standard. Also, if the battery in the M-241 is dead, you can power it via USB, even while using Bluetooth connectivity.


  1. Download the driver for the USB->Serial chip set (Silicon Labs CP210x):
  2. Search for the "VCP Driver Kit" (CP210x_VCP_Win2K_XP_S2K3.zip):
  3. Run CP210x_VCP_Win2K_XP_S2K3.exe and install the driver (default is to C:\siLabs\MCU\)
  4. Browse to C:\siLabs\MCU\CP210x\Windows_2K_XP_S2K3_Vista and run CP210xVCPInstaller.exe
  5. Now you'll have drivers installed here:
    C:\Program Files\Silabs\MCU\CP210x\
  6. Plug in your Holux with a MiniUSB cable.
  7. Open device manager; under "Ports (COM & LPT)", look for "Silicon Labs CP210x USB to UART Bridge (COMx)" and note the COM port number.

BT747 software

  1. Install the Sun JRE from http://www.oracle.com/technetwork/java/index.html.
  2. Download the BT747 application by selecting "Install Desktop version" from http://www.bt747.org/webinstall.
  3. Go to the Settings menu --> Download Protocol and make sure "iBlue / QStarz / Holux / Konet" is selected.
  4. At the bottom of the window select the COM port you'll be using, e.g., COM6 or whatever, and set speed to 38400.
  5. Click "Connect" in the bottom left hand corner.
  6. Go to the "Log Operations" tab (first tab)
  7. Specify a file where you'd like to output the raw data "Raw Log File", e.g., "C:\gpsdata\mylog.nmea"
  8. Click Download

Mac OS X

It is very easy to use the Holux M-241 on an Apple Mac computer with the Mac OS X operating system.


Use the Bluetooth setup in System Preferences to install "Any Device". Use Passcode: 0000 or no pairing settings and PPSlave. The Mac will create the device /dev/tty.HOLUX_M-241-SPPSlave-1, which is always ready if Bluetooth is on and the Holux M-241 is on or powered by USB. See instructions with screenshots. Obtain the beta version of gpsbabel and type:

gpsbabel -t -i m241 -f /dev/tty.HOLUX_M-241* -o gpx -F dump.gpx


In order to use the Holux M-241 with USB, you need to install a driver for the USB chip set used in the device. You can get the driver on the Web site of the manufacturer of the chip set: https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx

Then make sure you have a folder /var/lock and make it readable and writeable for everyone by typing:[1]

sudo mkdir /var/lock
sudo chmod 777 /var/lock

You need the administrator password for that.

Get BT747 and copy it to some location; most tutorials favor /Applications/gps. Click on one of the start scripts for Mac Os X. If you are not running bash as your shell, you need to modify the scripts, so that the first line reads:


Plug in the USB cable, start BT747 and connect to /dev/cu.SLAB_USBtoUART at 38400 baud.


Recent firmware releases as of 2008–2009 are versions 1.11, 1.12, and 1.13. You can check the version when you display the "Setting" page.

Firmware updates are available from the manufacturer: http://www.holux.com/JCore/en/products/products_download.jsp?pno=341

With all releases, the device can be temporarily switched to 5 Hz fixes (200 ms), which are sent via the NMEA 0183 V3.01 interface only and not logged at this rate.


Firmware 1.11 allows you to set the unit to log one point per second, and it allows one to start logging without waiting to have a fix (logging will start as soon as a fix is acquired).

With this firmware, specific parameters for logging that are set by third-party software, such as BT747, are being kept during power-on/off cycles and battery changing. Such parameters include Speed, DOP (Dilution of Precision) and Satellite information (numbers of satellites, Satellite IDs, position in the sky and signal/noise ratio). Logging these parameters requires a significant share of the device's memory and reduces the capacity of points that can be logged.

Bluetooth cannot be switched off in this release.


This release still allows to set specific logging parameters while the device is switched on. They are reset to default once the device is powered on and/or the battery is changed.

In this release, Bluetooth can be switched off, so the device can save power when no Bluetooth is needed, or keep logging in environments where Bluetooth is not allowed, such as in an airliner.


Firmware version 1.13 was released in September 2009 and is still current as of May 2016.

This release still allows one to set specific logging parameters while the device is switched on. They are reset to default once the device is powered on and/or the battery is changed. This firmware requires GPSBabel 1.3.7 or newer to work.

Default logging of speed is added, and the internal binary logging format is changed from 16 to 20 bytes per log point, to allow 4 bytes for the speed.

Software hacks

It is easy to fiddle with mtkbabel source code to send your own commands to the unit. This is some documentation you can use:

The links are taken from a post in the [http://www.gpspassion.com/forumsen/topic.asp?TOPIC_ID=85368 GPSPasSion forum].

For a source of ideas of what commands you can send, you can look into the BT747 source code. For example, to set the M-241 to a 2 Hz fix, you can add this to mtkbabel:

$ret = packet_wait('PMTK001,300,3');

If you want to set the MTK to an insane 5 Hz fix rate, to take very detailed gpx traces with your laptop, you can use this:

$ret = packet_wait('PMTK001,300,3');

Remember to set the serial speed to 38400 before talking to the unit:

stty 38400 < /dev/ttyUSB0

There are reports of people managing to set the unit to log 5 points a second and lots of extra information, although 1 point per second is very good already and there should be no need for more. (FIXME: I can admit that it is possible to get 5 points per second, but you get it as NMEA via USB or Bluetooth, not logged into device memory. If you manually set the logging rate under 1s, the device will raise it automatically until the next logging starts.)


To open the device, locate the antenna side with the "up" symbol, and lift the thin cover on the more curves side (opposing the symbol). This reveals a small philips screw. Once removed, the device slides open easily. The yellow wrapper does not cover any screws.

Reliability issues with the on/off switch can be solved by bridging it with some solder (permanently on when battery inserted). Issues with the battery contact connecting to the PCB can be fixed with a short flexible wire soldered to both.


The Holux M-241 is not waterproof. If one expects to be inundated or to use it in the rain, it should be enclosed in a waterproof plastic container, a zip-closure polyethylene freezer bag, or a zip-closure vinyl envelope designed for electronics.

The unit is very neatly packed. For low use it can run over a year without any problems. From a daily OSM surveyor, here some experiences:

  • Frequently changing the rechargeable battery for many months (8+) eventually makes the connector on the cap and the inside loose. This causes the device to spontaneously reset while running. At later stages (10+ months) the battery will lose contact entirely and repairs will be needed. Adding a solder bump to the contact will do the job for another few months, although solder is soft and the bump will eventually get hammered down by the battery terminal.
  • The cap plastic is durable enough to last about 10 months with moderately rough use. After a few drops of about a foot (30 cm), the cap jaws may break and cause new problems.
  • Important: To open and fix or solder the unit, you need to remove the sticker with a parabolic antenna icon on it. It is on the top end of the device where the wrist lanyard is attached. The sticker is non-obvious, but its edges can be found at the sides of the unit. Use a scalpel, a sharp hobby knife, or similar tool to gently pry the sticker loose.

Comment: Since it is hard to buy a new Holux M-241 in India, I have been patching it, soldering it a few times now. It is just about 1 year old now. It is very good, and therefore the hard work is worth the effort.

Comment: Guess I would qualify as a low user, although I am rather tall. I noticed that the unit will break after "a few falls". Since I am tall, falling has to be avoided. I got the unit as a gift, without any extras, but I have attached a strap from a digital camera to the above-mentioned top-nose-holes. This strap I can attach to my clothing. So I can gladly report that the unit has never (!) fallen so far. And the cap is fine.
Still, I am grateful for the hint about the connectors on the little cap wearing out. My solution — I hardly ever open the unit. I do recharge the battery via my USB cable, while I download the tracks. I just leave the unit connected some hours and it has not needed a fresh battery for many weeks now.

See also


  1. Some units have apparently been manufactured with yellow LED backlights, as seen in user photos posted on the Internet.
  2. http://www.nmea.org/content/nmea_standards/nmea_standards.asp
  3. http://en.wikipedia.org/wiki/Differential_GPS

External links