LG is the Good Guy

A few years ago I got an LG Nexus 5X phone through a new Google Fi account.

The Nexus5X has a camera app that (probably) eats RAM often to the point of crashing the system and/or killing the two GPS logging apps I always have running. But the camera app does HDR well and has great panorama logic. The camera app pretty much displaced an old Canon A650 IS for my picture taking.

And then, some months ago, my Nexus 5X went in to the infamous “boot loop”. The Nexus 5X would not boot. After a lot of Google time and whatnot, I bought a Motorola Power G. And found a solid, reliable camera app. That reliably took lousy pictures. Bizarre panoramas. Ugly HDR. Thank God for the decade old, long-in-the-tooth Canon.

Cue the trumpets: A couple of months ago I accidentally found the original Nexus5X box. Which had the phone’s IMEI number. Which allowed me to call LG’s support number. Who told me that LG would fix a boot-loop phone for free. So, that phone call set up an email from LG a couple of weeks later. The email had a FedEx shipping label. Which I drove, with the phone, to the Issaquah FedEx office. And a couple/three weeks later I got a working Nexus5X.

Early in personal computer history, it was common practice to advertise a product idea as a real product. Enough pre-orders drove the actual product creation and manufacture. Then IBM came out with their PC. The PC was already engineered and shipping. But IBM goofed. All shipped PCs needed a fix. IBM fixed them. IBM ate the cost. That sealed the PC deal. IBM showed that they could be trusted. They stood behind their product. That was a massive change in the personal computer world of the time.

With my Nexus5X, I found LG stands behind their product.

CrystaLens

Monday I was sedated and had my big-cataracted, right lens replaced with a CrystaLens by Dr. Jarstad at Evergreen Eye Center in Federal Way.

A bunch of eye-drops, at least one 13 hour sleep, and the eye is starting to see things without a sheet of turbulent water in the way.

The kitchen’s fluorescent lights made one thing very, very clear. Currently, the CrystaLens eye sees a far cooler color temperature. Two of the three kitchen lights were a bright blue in the new right eye, a warm orange in the “normal” eye. Here’s an image with two roughly identical sides on one of my monitors (the right-eye side has a bit of a blue glow on the other monitor).

crystalens_left_eye_01

 

That is, if the left eye sees the left side and the right eye sees the right side, the two sides look pretty close to the same.

The left eye version of this image doesn’t see a huge difference between the two sides. The right eye version sees a stronger blue-ish on the left, green-ish on the right with quite a bit of intensity difference.

There are a number of odd artifacts having to do with surrounding colors. But, we’ll see how things change in the next week or so. The doctor indicated I had quite a bit of swelling so it’ll be some time before things settle down.

But, at least today, the eye hasn’t felt like there’s a chunk of rock in it. That’s a huge improvement.

 

Ubuntu Precise makes Vista look like a sparkling, priceless jewel

For work reasons I looked at Ubuntu 12.04, Precise 32bit under VMWare Player.

From early reviews, etc., I was prepared for being underwhelmed by the Unity user interface. I was not prepared for a disaster.

Here are some tag lines that come to mind:

“Ubuntu Precise – for those who cannot figure out a mouse.”

“Ubuntu Precise – bringing the worst of bad phone UI design to a desktop frighteningly near you.”

“Ubuntu Precise – the most expensive free OS in existence.”

“Ubuntu Precise – for those who never ever want to resize or scroll a window.”

“Ubuntu Precise – with an immutable, ‘Halloween from Elm Street’ desktop theme loved by 32 year old boys in their mother’s basements worldwide.”

“Ubuntu Precise – breaking 10 years of software improvements to squeeze a whole ‘UI’ in to an icon-sized area at the top left corner of your bare-bones, dual 24″ 1080p monitor system.”

“Ubuntu Precise – the OS for people who struggle with only 500 icons on their desktops.”

“Ubuntu Precise – type partial app names to see icons that do nothing.”

The list goes on and on.

What’s truly unfortunate is that Precise, by all accounts, has many small but real improvements over Lucid in particular programs and sub-systems.

If Lucid ran Office, a normal person could probably drop Windows and deal with Linux USB and general non-Windows issues. Lucid has pluses over XP and even Win7 to balance the minuses. But I’d not point anyone to Precise. It’s simply not a working system.

And we may use it in a product, desktop-less.

Net Connection Monitor

The net connection here was getting pretty flaky. Down for chunks of time in the night, day and in between.

Since our connection’s gears are hidden beneath a couple layers of organizations, it’s been frustrating to deal with the outages. It feels like Qwest / Century Link’s problem – the telling from the second hand says they say that there is only 1 wire-pair in to the house, so they probably are not wholly on top of things. But who knows?

So I wrote a little script to ping every 10 seconds an address randomly chosen from:

The script prints the exit value from the “ping” program (1 is bad) and the duration the pinging has been bad when a good ping follows any bad one.

Here is a day of activity:

1   8.8.8.8         Sat Oct 22 00:02:11 2011
0   72.1.134.1      Sat Oct 22 00:02:33 2011 00:00:22
1   66.93.87.2      Sat Oct 22 00:30:48 2011
0   72.1.134.1      Sat Oct 22 00:30:59 2011 00:00:11
1   8.8.8.8         Sat Oct 22 00:31:11 2011
0   8.8.8.8         Sat Oct 22 00:31:44 2011 00:00:32
1   66.93.87.2      Sat Oct 22 01:27:28 2011
0   8.8.8.8         Sat Oct 22 01:27:39 2011 00:00:10
1   8.8.8.8         Sat Oct 22 01:27:51 2011
0   66.93.87.2      Sat Oct 22 01:28:02 2011 00:00:10
1   66.93.87.2      Sat Oct 22 01:32:49 2011
0   66.93.87.2      Sat Oct 22 01:32:59 2011 00:00:10
1   66.93.87.2      Sat Oct 22 02:03:45 2011
0   8.8.8.8         Sat Oct 22 02:04:39 2011 00:00:54
1   72.1.134.1      Sat Oct 22 02:14:32 2011
0   72.1.134.1      Sat Oct 22 02:14:42 2011 00:00:10
1   66.93.87.2      Sat Oct 22 02:21:29 2011
0   72.1.134.1      Sat Oct 22 02:21:50 2011 00:00:21
1   66.93.87.2      Sat Oct 22 02:33:26 2011
0   66.93.87.2      Sat Oct 22 02:33:36 2011 00:00:10
1   66.93.87.2      Sat Oct 22 02:45:24 2011
0   8.8.8.8         Sat Oct 22 02:45:34 2011 00:00:10
1   72.1.134.1      Sat Oct 22 02:57:01 2011
0   8.8.8.8         Sat Oct 22 02:57:23 2011 00:00:21
1   8.8.8.8         Sat Oct 22 03:28:36 2011
0   72.1.134.1      Sat Oct 22 03:29:09 2011 00:00:32
1   8.8.8.8         Sat Oct 22 03:32:55 2011
0   66.93.87.2      Sat Oct 22 03:33:06 2011 00:00:10
1   66.93.87.2      Sat Oct 22 04:27:07 2011
0   72.1.134.1      Sat Oct 22 04:27:28 2011 00:00:21
1   66.93.87.2      Sat Oct 22 04:32:22 2011
0   66.93.87.2      Sat Oct 22 04:32:43 2011 00:00:21
1   72.1.134.1      Sat Oct 22 04:44:21 2011
0   66.93.87.2      Sat Oct 22 04:44:31 2011 00:00:10
1   8.8.8.8         Sat Oct 22 04:56:09 2011
0   8.8.8.8         Sat Oct 22 04:56:19 2011 00:00:10
1   8.8.8.8         Sat Oct 22 05:19:54 2011
0   8.8.8.8         Sat Oct 22 05:20:04 2011 00:00:10
1   66.93.87.2      Sat Oct 22 05:31:40 2011
0   72.1.134.1      Sat Oct 22 05:32:01 2011 00:00:21
1   66.93.87.2      Sat Oct 22 06:18:38 2011
0   66.93.87.2      Sat Oct 22 06:19:11 2011 00:00:32
1   66.93.87.2      Sat Oct 22 06:19:23 2011
0   72.1.134.1      Sat Oct 22 06:19:34 2011 00:00:10
1   72.1.134.1      Sat Oct 22 06:19:46 2011
0   72.1.134.1      Sat Oct 22 06:19:56 2011 00:00:10
1   72.1.134.1      Sat Oct 22 06:54:21 2011
0   8.8.8.8         Sat Oct 22 06:54:32 2011 00:00:10
1   66.93.87.2      Sat Oct 22 06:56:35 2011
0   66.93.87.2      Sat Oct 22 06:56:46 2011 00:00:10
1   66.93.87.2      Sat Oct 22 07:17:56 2011
0   8.8.8.8         Sat Oct 22 07:18:06 2011 00:00:10
1   66.93.87.2      Sat Oct 22 07:53:16 2011
0   66.93.87.2      Sat Oct 22 07:53:26 2011 00:00:10
1   72.1.134.1      Sat Oct 22 07:53:38 2011
0   66.93.87.2      Sat Oct 22 07:53:48 2011 00:00:10
1   66.93.87.2      Sat Oct 22 08:16:52 2011
0   66.93.87.2      Sat Oct 22 08:17:02 2011 00:00:10
1   66.93.87.2      Sat Oct 22 08:40:22 2011
0   66.93.87.2      Sat Oct 22 08:40:44 2011 00:00:21
1   8.8.8.8         Sat Oct 22 09:54:46 2011
0   66.93.87.2      Sat Oct 22 09:54:57 2011 00:00:10
1   66.93.87.2      Sat Oct 22 09:56:30 2011
0   66.93.87.2      Sat Oct 22 09:56:52 2011 00:00:21
1   8.8.8.8         Sat Oct 22 11:54:25 2011
0   66.93.87.2      Sat Oct 22 11:54:46 2011 00:00:21
1   72.1.134.1      Sat Oct 22 11:56:32 2011
0   66.93.87.2      Sat Oct 22 11:57:15 2011 00:00:43
1   8.8.8.8         Sat Oct 22 12:05:20 2011
0   8.8.8.8         Sat Oct 22 12:05:41 2011 00:00:21
1   8.8.8.8         Sat Oct 22 12:40:48 2011
0   72.1.134.1      Sat Oct 22 12:40:58 2011 00:00:10
1   66.93.87.2      Sat Oct 22 12:52:24 2011
0   72.1.134.1      Sat Oct 22 12:52:35 2011 00:00:10
1   66.93.87.2      Sat Oct 22 12:57:20 2011
0   72.1.134.1      Sat Oct 22 12:57:41 2011 00:00:21
1   72.1.134.1      Sat Oct 22 14:23:30 2011
0   66.93.87.2      Sat Oct 22 14:24:02 2011 00:00:32
1   72.1.134.1      Sat Oct 22 19:32:21 2011
0   8.8.8.8         Sat Oct 22 19:32:32 2011 00:00:10
1   66.93.87.2      Sat Oct 22 21:39:20 2011
0   66.93.87.2      Sat Oct 22 21:39:30 2011 00:00:10
1   8.8.8.8         Sat Oct 22 21:53:51 2011
0   72.1.134.1      Sat Oct 22 21:54:13 2011 00:00:21
1   8.8.8.8         Sat Oct 22 21:54:36 2011
0   72.1.134.1      Sat Oct 22 21:54:57 2011 00:00:21
1   72.1.134.1      Sat Oct 22 23:12:39 2011
0   72.1.134.1      Sat Oct 22 23:12:49 2011 00:00:10

Analysis of more data shows that, indeed, the gateway is more reliably pinged than the Speakeasy/Megapath DNS server, which is slightly more reliable than the Google DNS server. So, it’s the wire.

Meanwhile, the net connection currently is faster than it’s ever been. Almost a meg, down and a half meg up. Whooo, hoo.

CMS50E Pulse Oximeter USB / Serial Protocol

I hate reverse engineering.

You cannot underestimate how little I care that bit 3 of byte 2 of an 11 byte, binary message indicates whether the left flange of the Acme, Incorporated Doohickee 3500-XL is up or down. It just does not matter.

I don’t care to know the details of how someone implemented a device or protocol or whatever. Those details don’t matter.

But, this CMS50E is out of the Far East, so talking to it through the serial/USB port requires reverse engineering.

And a strong stomach.

Now, the CMS50E has a 1-button user interface: Beautifully done. A work of art in design and implementation.

The protocol? … … … Otherwise.

So, here goes:

The device talks to a PC through a serial-to-USB conversion cable. The PC program sets 19.2 8O1. Yes. Odd parity. And the PC program actually does a 4800/19200 dance at the top. Is this bug-clearing logic for the cable or device? Who knows.

The device sends a data stream to the PC when the “USB” menu item is “on”.

Any single byte sent to the device appears to turn USB streaming on. Perhaps, any voltage transition on the receive data line turns it on.

Let’s cover this first goof in the PC interface:

If the device is USB powered, then USB streaming should start and stop when the USB power is on or off. Duh. And, in any case and if the device does not use USB power, then a particular command message from the PC should turn streaming on – for a limited time so the battery isn’t drained from the streaming.

Poof. The menu item goes away.

USB powered devices should send identifying heartbeat messages in any case. This would allow a PC program to find the device by opening and only listening on the serial port. The heartbeat should include device identity information.

A menu choice tells the device to dump its recorded data.

Let’s cover this second goof:

A message from the PC should start the dump.

Poof. The menu item goes away.

Turns out, the PC program sends two 0xf5 bytes when it begins the data dump. And it sends three 0xf6 bytes when it has received the dump. I cannot find any reason the PC program does this. The only effect they seem to have is to turn on data streaming. Note: the displayed state of the “USB” option does not visually change until the menu choice is actively scrolled to. No big deal, but this is the reason I’ve not tested the effects of all 256 byte values sent to the device.

Streaming data format:

The streaming data is composed of 5-byte messages sent 60 times a second:

  1. Byte 1: 128 / 0x80 means the “finger” is not in the device. Ignore the other 4 bytes.

    If the high bit is not set then this is not the first byte of a message. Wait for a byte with the high bit set.

    0xf0 bits: Outside documentation indicates this is a “signal strength for pulsate” value. I have recorded only values from 0 through 9. No recorded values from 10 through 15. In all cases of a zero value but two, the heart rate and SpO2 values have been zero, but the waveform value has been valid, though also often zero. The two anamalous cases had a spurious heart rate of 132.

    0x10 bit: Outside documentation indicates this bit means “searching too long” when set.

    0x20 bit: Outside documentation indicates this bit means “dropping of SpO2” when set.

    0x40 bit: is set when the device senses a heart “beat” – a peak in the waveform. This “beat” marker comes a few samples after the actual peak and seems to coincide with the beep sound the device makes. There are often two samples together with the beat markers.

  2. Byte 2: The waveform value. 0..127. The high bit is not set. If it is set (and the high bit is set on byte 1, of course), then this is not a streaming data message, but rather a recorded data dump message.

  3. Byte 3: High bit of heart rate and certain status bits.

    The 0x40 bit is the heart rate high bit – allowing heart rates of up to 255 BPM.

    0x0f bits: Apparent duplications of the top 4 bits of the waveform value. I tried to make sense of these bits. Were they a way to get at the instantaneous oxygen saturation? No luck so far. Outside documentation indicates that they are to be used for a bar-graph on a display. In any case the 0x08 bit is always zero as the 0x80 bit of the waveform data in byte 2 is always zero, too.

    0x10 bit: Outside documentation indicates it may be “probe error” if set.

    0x20 bit: Outside documentation indicates it may be “searching” if set.

    I have no instances of the 0x30 bits being set.

    0x80 bit: Must always be zero. Otherwise, this is not a regular sample.

  4. Byte 4: Heart rate: 0..127. The low 7 bits of the heart rate, that is.

    If the third byte is 0xf2 and the fourth byte has its high bit set, then they are the first two bytes of a recorded data dump.

    The heart rate appears to be a calculation on the time difference between the oldest and most recent “beat” in the last 30 seconds plus a few samples.

  5. Byte 5: Oxygen saturation percentage.

    This value seems to be a 30 second average of some sort. Anyway, it lags by 30 seconds.

Data dump format:

A recorded data dump is composed of 3-byte messages telling the heart rate and oxygen saturation level once a second.

The first two messages sent contain the HH:MM time value set by the user when the recording was started.

The third message sent tells how many bytes are in the full data dump.

Subsequent messages are the dump, itself.

Once started, the dump continues until finished. I have not tested the effect of pulling the USB connection during a dump.

The three message types:

  1. Time value (from the menu HH:MM time, set by the user when recording was started).

    Two of these messages are sent to start the data dump.

    They can be recognized by:

    (first_byte == 0xf2) and (second_byte & 0x80)

    1. Byte 1:

      0xf2

    2. Byte 2:

      High bit is set.

      The 0x1f bits are the hours: 0..23.

    3. Byte 3:

      Minutes 0..59.

  2. The single message not starting with an 0xf2 value and following an 0xf2 message tells how many bytes of recorded data will be sent in the subsequent messages.

    The calculation is:

    ((first_byte & 0x3f) < <  14) | ((second_byte & 0x7f) << 7) | third_byte

    Note: There appear to be bugs in the device which makes this byte count subject to adjustments along the way. See the code for my current best guesses. Too. WordPress seems to render the shift-left 14 with an extra space.

  3. Recorded data.
    1. Byte 1:

      0xf0 or 0xf1 (possibly 0xf2 and 0xf3, but I doubt it)

      The low bit (or two bits) are the high bit(s) of the heartrate.

      If this byte masked with 0xf0 is not 0xf0, then see the code. It gets knarly.

      The device appears to be directly dumping its flash memory and the data seems to be organized on 256 byte page boundaries. 256 / 3 (3 being the message length) is not an even number. So strange things happen 3 times every 256 data messages. It’s baffling why the engineer did things this way. But there it is. Perhaps extra information is encoded by special messages at these page boundaries, but it sure doesn’t look like it. The whole thing just looks incredibly sloppy. This feel of sloppiness is enhanced because there can be obvious glitches in the data and/or dumping during particular recording dumps. The glitches appear to be in memory rather than communications problems.

    2. Byte 2:

      Low 7 bits of the heart rate.

      The 0x80 or 0x180 bits – the high bit(s) – of the heart rate are in the first byte’s low bit(s).

      If byte 2 and byte 3 are both zero, then presumably the finger was out.

    3. Byte 3:

      The oxygen saturation percentage: ?..99. I have never seen 100. At the first two 256-byte boundaries in the data dump for each 256 samples, this value is 255.

      The third 256-byte boundary seems to yield a regular streaming data sample message with bongoed heartrate – or something.

There you have it. Gosh, I hope the engineer responsible for this can say, “Hey, whadya want? I had an hour to do it in!”

Playing with the CMS50E Pulse Oximeter

All devices are toys. So, I played.

Here is a picture of the kind of waveform I would suppose you want to see from this device.

OK pulse

Fine, fine.

Now, let’s start with the first thing that made no sense.

Starting at, say, 96% SPo2 and doing a breath-out-hold, the SPo2 level goes up! Ditto, for the whole duration of a big-breath-in, breath-hold. The device’s 30 second lag confuses things. You stop holding your breath and start breathing – the SPo2 level goes down! Well, it’s just then reporting on the old, breath-hold blood.

Big-breath-in hold is peculiar. The SPo2 level never really goes down, but the pulse rate can go from 60 to 80+. It appears that my body, if not yours, compensates for no air by simply beating the heart faster.

Which brings up the really wild thing that this device showed about my body.

Here’s the deal:

After racing around Lake Sacajawea late one night with Strom a couple months before going in to the service, I had some ice cream and hit the sack. Soon, my chest felt very uncomfortable. It was plain that my heart had stopped beating. This can be disconcerting to an 18 year old. I felt my pulse. Nothing. It lasted several seconds at least. Who knows. Time passes slowly when you think your heart’s gone south. Two lessons learned:

  1. Don’t eat ice cream before bed.
  2. If your heart stops, sit up.

Of course, I wasn’t about to tell anyone about it. In fact, I pretty much forgot about it – but did remember the two lessons.

Years later, Scott’s just born. Imani is at the hospital. I’m home and going to sleep. Maybe I had ice cream. Dumb, sure, but hey, the lessons may have slipped my mind under the circumstances. Anyway, guess what. Yeah. I sat up to fix the problem. Bit of a scare.

Years later, I hooked up a heart monitor on the chance of seeing some indication of what was going on. Nothing. Still have a textbook-clean, ECG from Physio in a drawer somewhere.

Now, here’s the other half of the deal:

Some time recently when going to sleep, I noticed a half feeling like the heart-stop thing. Not dramatic, but not normal. This has been going on for some time, but it had never really bubbled up to daytime notice.

So, what does this CMS50E pulse oximeter display? A graph of heartbeat action. And it beeps when it senses a peak – at beat time – matching wrist-pulse and general senses perfectly.

The other day, I was up at Mark M’s and got him to try the device. Maybe the device was bad. The SPo2 level didn’t drop below 94%, after all. But, on Mark, the device worked just dandy – the SPo2 number went down as one would expect, though delayed a few seconds.

So, now what?

I put the device on me and turned on heart beat beeping. Mark’s like: “What’s with that?!” The beeping could have been a random number generator. Not all the time. But some times. No logic to it, though I suspect that things even out as soon as I do something other than sit still. Anyway, I’d already seen it for hours the night before. Several seconds, no beat. 5 steady beats, miss a beat, 5 steady beats, miss a beat. Couple weak beats. Etc. Random. Weird.

So … interesting. I’ll take the device for a walk as soon as it appears that the “kidney stone” can take shaking. (Postscript: Yes, erratic all the way around Maplewood.)

Here’s a waveform without much flatlining:

Rough Pulse

And, that’s not the only oddity.

How to get a solid 99% SPo2 instead of a wimpy 97% or 98%? Just sit there bouncing a leg on the toes.

And:

Speaking of toes. The device works on toes as well as fingers. That’s nice, since you can’t type with the device on a finger. Coding tz_cms50.py involved a lot of un-clip/clipping.

So, what about the code?

Another post, is what.

Contec Medical Systems CMS50E Pulse Oximeter

For obscure, work reasons I ordered a Contec Medical Systems CMS50E Pulse Oximeter from Amazon.

front view

back view

This device clips on a finger, toe, or whatever and reads how much oxygen is in your blood.

Let’s get to the bottom line:

This is a neat little gizmo.

The out-of-box is nice, starting with – really – a metal box. That is so retro!

box view

The UI is all done with 1 button. I’m impressed! Very easy to figure out and use. The OLED screen is laid out simple and clean. The options are simple and clean. No instructions are needed, though they are written in understandable, native-Chinese English.

The device’s UI flow is impeccable.

The whole thing is tightly designed and built. Hats off to whoever put the user-package together.

The PC programs are unremarkable, but they do work and are also simple and clean. There should be only one program – a subject I’ll take up in a later, technical posting.

Apparently, the device is sold to the sleep apnea market. You can clip it on your finger and record a night of Oxi percentage and heart rate at per-second intervals (no untethered waveform recording). The device alarms when the two values go out of ranges you set. The alarm is loud. This could be quite handy for some people wanting to stay alive. Given my own experience with Oxi levels at anywhere near alarming values, it’s hard to imagine someone not waking up on their own if the Oxi value is too low. Pulse monitoring might be nice. Sit up to get the heart ticking again. Anyway, what little I looked at in this whole area worked fine.

OK. What about the device?

I wanted it to measure a quick dip in oxygen level under certain, odd circumstances. Apparently, no … can … do. So, for work/research purposes, this device looks like a disappointment. We’ll see. Jury’s still out.

Fun?

Here’s the deal: Maybe 20 years ago, the kids and I were prowling high up in Bel Square where a local hospital had a show-and-tell for the day. They had a finger clip thing that was supposed to read the oxygen in your blood – presumably an early pulse oximeter. I thought: “Cool. Let’s see what happens.” And held my breath for a couple minutes – until the nurse looked more than a little concerned. The number, if I recall, dropped to around 70%.

So that’s what I expected from this device, tempered by body age.

I tried to get the Oxi number down. I tried some more. I tried taking a deep breath and going 100 seconds. I tried breathing everything out and going 30+ seconds.

The results did not match memory.

It took a day of struggle to get the Oxi level below 94%. Turns out, there’s a 30 second lag from when the level is lowest in the mind, so to speak, to when it goes low on the device. And getting the level below 94 requires a breath-out hold for 40+ seconds rather than take-a-big-breath hold for a minute or two.

But that’s just me. Mark M. had no problem getting the Oxi level to drop.

That said, it’s become an interesting toy – raising all sorts of questions.

Let’s do another blog post about my “user” experience.

No Surrender

Cover of one edition

No Surrender – My Thirty-year War” was a top-notch, one-sitting book.

Hiroo Onoda was one of the last Japanese WWII holdouts. He spent 30 years on a small island in the Philippines, most of the time with companions, convinced that the war was still on and that he lived in a Truman Show world of disinformation.

When my explanations of why something I don’t want to believe are long and self-dependent, I’ll try to remember this fascinating book.

Travel Honey GPS Watch from Chinavasion

Quick bottom line:

Chinavasion Professional, responsive and web-competent.
Travel Honey Watch Not much value. A bust.

The GlobalSat GH615 watch is falling apart.

I like the watch form-factor for GPS.

  • The wrist is a very handy place to carry a GPS unit.
  • A watch must necessarily be nicely small.
  • Synchronizing the camera’s clock with geo-tagging photos is easy. Take a picture of the watch’s GPS time. Then sync the picture in TrodTrack to the time on the watch. I do this for every hike or photo session. The camera’s clock loses a second every week or so.

What to do?

Turns out, GPS watches are rare. I’ll sadly share credit with GlobalSat for ruining the GH615’s excellent chances for success in the market. Garmin Forerunners can be had for a bit over $100 on eBay. Forerunners look kind of klunky, at best. And, new, they are overpriced.

So what to do?

A web search found Chinavasion and the unfortunately named Travel Honey watch.

Note to manufacturer: In the U.S., “honey” means either the tasty stuff that comes from bees or this. Your products don’t come from bees.

On the subject of names: Chinavasion? Guys, if my experience with you is representative, you’re on your way to the top. But, consider, what would your impression of a Japanese company named Japanvasion be?

It took a two or three weeks to get the watch by mail from Hong Kong. No problem there. ‘Bout what you’d expect.

Out of box:

The shipping box perfectly fit around the product’s box. Wow!

Software

The included iTravel software is a finished product. Its Google Maps code is better than my TrodTrack code – faster and with a couple of nice spiffs. The track point editor is a nice thing. The UI layout looks good and well thought out.

It took a product key to get the program to talk to the watch. The key was not in the box so I got one from Chinavasion by on-line chat and email. Who knows whether it’s paid for. Anyway, it worked.

But I won’t be using the iTravel software except on the laptop while traveling. I have used an open source Linux program to pull the tracks off the watch. The watch protocol is documented and if I were to use the watch, I’d probably end up writing Python code to talk to it. But I won’t be using this watch as a primary GPS.

Watch

The watch is smaller than the GH615. That’s nice.

The time-keeping part of the watch, itself, is bargain basement. “Uselessly inaccurate” might be the most accurate description. And, since it’s not a GPS-time watch, it cannot be used to sync the camera time.

The GPS is provided by a SkyTraq Venus 6 GPS chip. In this watch the GPS is clearly inferior to the SirfIII in the GH-615. It loses its way in Northwest forests often and without fail.

This is a killer.

There are other problems. For instance, I have the GPS set for 1-second samples. It occasionally switches to 5-second samples and/or no sampling. The only way to get the watch back working is to reset the settings through the PC software.

So, this Travel Honey watch was a nice experiment. I’d wanted to see how another GPS chip matched up against the SirfIII. Now I know. It could be that the weakness of this GPS is in the small, watch packaging. But why chance it? I’ll probably get a normal GPS logger that uses the SirfIII chip. And, knowing me, I’ll probably end up using the GH-615 for another couple of years.

I’m inclined to get another gadget from Chinavasion. They (and many other outlets like them) certainly open a window in to another world. … so many gadgets at cut-rate prices of probable cut-rate quality.

This other world is interesting. During the 80’s and 90’s Taiwan cranked out a lot of PC boards and such-like in white boxes for low prices. One would have expected that the quality of such devices would be low. But that was not the case. Compared to the “name” brands, they were almost always:

  • Cheaper
  • Simpler to install and use
  • Higher quality
  • More powerful
  • Even with fractured English, often better (geekier) documented

My gut feeling is that these eleven-teen jillion Chinese gadgets are not like that. They give off an aura that matches the Travel Honey watch: cheap junk with a promising core. Think Japanese products from the 50’s and early 60’s.

Anyway, this evolutionary process will be fun to watch.