These Are a Few of my Favorite Things

ok — one of my favorite things.

It’s my old Garmin eTrex! A friend’s son is going to be working at Garmin for the summer, and I was reminiscing about my long history with their products. This was my first — the original eTrex. I can still remember going to a MacWorld exhibition back in 1989 or 1990 and seeing a Sony GPS unit (yes, Sony!). It must have been a Pyxis model, though my recollection was that the antenna unit was spherical rather than just round. Could be faulty memory, or might have been a prototype unit. More likely the former. Anyway, it was of course super expensive, and there was no way I would be able to afford such a thing, but the concept of a (semi) portable device that could tell you (fairly) precisely where you were anywhere on earth seemed pretty magical.

In any case, GPS technology continued to evolve, and a newish company, Garmin, was producing some interesting devices. A lot of the early devices were aimed at the boating market, where LORAN had been the previous popular means of electronic navigation. There were some handheld units, but the eTrex was (I would say) the first reasonably priced, handheld GPS receiver, oriented towards hiking. And so, I bought one. I used it for hiking, and even toyed with connecting it up with a PocketPC via a cable purchased from a “pfranc” (Purple Open Project Franchisee). If you have a few minutes, the history of those 3rd-party connectors is really fascinating and fun, and Larry Berg is a great example of a hacker’s hacker. I remember being completely absorbed by the story back then, but eventually I lost track of him, and he apparently passed away in 2012. But the other thing the cable was useful for was powering the eTrex in the car. I could also connect it to a laptop via a serial port (and later, a USB-to-RS-232 converter). Because, of course, the eTrex had no built-in mapping capability. It could just tell you where you were. And via a “breadcrumb trail” function, where you’d been. And store waypoints. And point you in the precise direction of a waypoint and tell you how far it was. But it had no concept of roads, or trails, or anything other than location: current, previous, and preset waypoints. But this was enough! I recorded many hikes with my beautiful yellow eTrex that I could then save and post, and overlay the breadcrumb trail on top of topo maps, etc.

The eTrex was a miracle of technology, but still showed some weaknesses that were common among early GPS receivers. It could take quite some time to get a signal, and it required quite a clear view of the sky in order to receive the signal reliably. For the many years that it was my hiking GPS, you would see me with the unit balanced on top of my hat. No doubt this helped improve my posture. Many times I thought about velcroing it there, but I never actually did.

One of the great things about GPS was that, being a government designed technology, the standards were published, and while different companies might well choose to implement proprietary physical connectors to their device, the data coming from those devices was all standard, so if you wrote an app to interface with one GPS, with very minor exceptions, you could interface with all of them. A great example of the value of standards!

After the eTrex, I eventually bought an Edge 705, which was oriented towards biking, and could interface with a cadence meter, a wheel tachometer to more accurately calculate speed, and a heart rate monitor. This had several advantages over the eTrex — it had USB connectivity (via a standard connector, even — way to evolve, Garmin!!), and a rechargeable battery. It had much quicker startup times, and had a much more sensitive receiver. So much so that it spent most of its time in my pocket, resulting in a screen that has suffered many scratches from other pocket paraphernalia. But most of all, it had a mapping capability! I could load street maps on it, and it could calculate routes. I could load topo maps on it, and see what the trail ahead looked like, etc. It even had a color screen! Even after I had a phone that could also do all these things, I still carried the Edge. It did much better with battery life, and it meant I could leave my phone in airplane mode to conserve its battery, and have it available for emergencies.

But the beautiful thing is that, after 20+ years, the thing still works. Once I cleaned out the leaked battery acid from old alkalines (Duracell, even!), and popped in a fresh pair of AAs, the thing booted up and found the requisite “birds” and was able to give me a location. As always, it had to be outdoors to get a good enough view of the sky, but it still works! I Love It!

The Bug Hunt

A few years ago, someone’s project came up on my Twitter Feed (or elsewhere — it’s been a while, and I don’t remember with certainty) that caught my interest. This happens with an alarming frequency, but most of the time I can stifle the interest sufficiently to avoid ordering all the parts. Our house is littered with projects that I have bought the parts for, but never completed. Projects that are born of my own fevered brain, especially those whose inspiration is a really nifty part or gizmo I’ve come across, are especially susceptible to this fate. And the Classroom Clock started out like many — I purchased the necessary parts, and then they sat there for a couple of years.

But unlike so many others, this one did eventually come together. Probably at least in part because it was given as a Christmas gift to my wife, Susan, a middle school science teacher. It took some work to get it all together, but then the problem was that the kind of schedule it was originally programmed for didn’t really mesh well with the schedule at Susan’s school. Once I began to get familiar with the code, I realized I didn’t like it very well, so I rewrote most of it from scratch, in a somewhat more generalized way. This past year, I made some more minor updates to it, basically to make it easier to update the schedule and calendar from year to year. The official school clock seems to drift more than the Chronodot that’s at the heart of the Classroom Clock, so periodically I have to re-program the time. The original project didn’t have any means for user input, so there is no way to manually change the time on the clock. In fact, the only way to change the time is to reprogram the clock, and the only way to “synchronize” the time is to calculate exactly how long it takes to upload the code to the clock, and hard-code an appropriate time in the program. Argh!

My contribution in this area was to write a completely separate program that can be uploaded to the clock, with which you can interactively set the time. Then, you reload the normal clock firmware which no longer attempts to set the clock at all, and everything is good.

So one time in the fall, Susan’s students apparently wanted the clock to display in 24 hour time. This is of course an easy change. The Chronodot tracks time in 24 hour mode, so it was just a matter of not subtracting 12 from the hours.

Recently, the delta between the official school clock and the Classroom Clock got to be large enough to be annoying, so Susan asked me to come adjust it. We ended up bringing the clock home, and it was approaching 9 p.m. when I got around to looking at it. I wasn’t paying attention to the actual time, but when I powered up the clock, it said something like 10:43! It had always been completely reliable, so I was mystified as to why it would display a completely random time like that. After a few minutes, I realized that the minutes were correct, but why were the hours off by 2? That was a bizarre mystery.

A little while later, it finally dawned on me what the problem was. The clock might have read 10:43, but that’s only because it was in fact not designed for 24 hour time. The digit for tens of hours was not a full seven segment digit, but rather just the two rightmost vertical segments — an engineering shortcut if ever there was one! The code in the clock, when deciding what to display there, would turn both segments OFF if the hours were less than 10, and both segments ON otherwise. So, it was doing its darnedest to display 20:43, but couldn’t. And of course I was not thinking about the fact that it ought to be in 24 hour mode — I just saw 10:43 and eventually decided it was off by 2 hours somehow.

I asked Susan if she’d ever noticed it being wrong like that before, and she recalled that perhaps she had. When pressed, she remember that it was during parent-teacher conferences, in the evening. One of the only other times anyone would have been looking at the clock after 19:59.

It’s easy to see how a bug like this could cause lots of head scratching, because it would be easy to report the problem as “sometimes the clock is off by 2 hours” and leave it at that. And you’d be left poring over the code, trying to figure out how a simple math error could occur occasionally and seemingly randomly.

In the end, we decided to set the clock back to 12 hour mode.

I’ve long had a Version 2 of the clock in my brain. I’ve constructed it so that the “brains” of the clock can be transplanted while leaving the display parts intact. The brains for V2 will run on a chip that provides WiFi connectivity and runs microPython. It will therefore be able to:

  • query a timeserver on the internet for the actual time
  • periodically download a configuration file, which can have the calendar, schedule, and an offset to apply to the real time, so the clock can match the official school clocks

The hope is to write the code in a flexible enough manner that the config file can provide lots of different ways of arranging schedules and using the “extra” digit to denote the period, or day, or whatever.

And now I realize there ought to be a V2 of the display hardware as well, which would have a full digit for tens-of-hours to allow for 24 hour time, and also some form of explict PM indicator for 12 hour mode.

Some day…

Hello, World!

When you start programming, or pick up a new programming language, often the first program you write is referred to as a “Hello, World!” program, because for the most part all you want to do is be able to produce a working program, so printing something like “Hello, World!” to the screen often feels like a great start. Once you have that working, you can expand upon it.

So we have a MOD-t 3-D printer that we bought a couple of years ago, and I’ve printed a bunch of things on it, but they were all things that other people designed. I’d always wanted to be able to do my own designs, and had two particular projects in mind. One is a part of a cover for a Starbucks travel mug. I have one that I really like, but the small piece which closes over the mouth hole keeps coming off. It doesn’t really stay in the cover, and is constantly at risk of being lost. So I’ve wanted to create a replacement. But that would seem to require considerable design skill. On the simpler end, I have a portable phone charger that I carry, which doubles as a flashlight. I like it, but periodically the light will come on in my pocket, and I may or may not notice. If I don’t, the battery will die. So I’ve wanted to create an end cap for it, to protect the switch from being pressed accidentally by all the other things in my pockets.

And so I have! I created such a cap using the program OpenSCAD which allows you to design things by describing them with code. For this particular item, it is essentially 3 things: a pretty flat cylinder for the base, a hollow cylinder for the body, and another hollow cylinder that sits just inside the larger one, which is very small to make a tiny ridge inside the body, enabling the cap to “snap” fit on the device at its seam. On the 8th try, I have something I am now happy with:IMG_2764

And I have “published” this design to a site called Thingiverse, which is the biggest repository of shared 3-D designs on the web. We’ll see if anyone else finds it useful.

The Technology Optimist

I suppose I could rightfully be accused of thinking too often that I can solve a problem around my house with the application of just a little more technology. Guilty as charged. But for some problems, technology is the best answer, or the only rational answer.

Nicholas Negroponte is also a “TO.” I love the vision of the One Laptop per Child organization he helped to found, to “empower the world’s poorest children through education” and to provide that education, in part, by providing

each child with a rugged, low-cost, low-power, connected laptop. To this end, we have designed hardware, content and software for collaborative, joyful, and self-empowered learning. With access to this type of tool, children are engaged in their own education, and learn, share, and create together. They become connected to each other, to the world and to a brighter future.

I bought two of these XO laptops, for my two older children, when the devices first came out. The organization had a “Buy One, Get One” campaign at that time. I would have called it a “Buy Two, Get One” campaign, though, because you paid for two devices and only received one. The other one went to a child somewhere the organization was deploying them, generally in conjunction with federal governments. Each “pair” of laptops cost $400 at the time. They were really nifty devices, so well thought out for their purpose like no commercial product could be. They were designed to be serviceable and rugged. The screen was an amazing piece of technology developed just for the XO — it was a color display, but had a monochrome mode that was enabled by turning the backlight all the way down. And in the monochrome mode, the screen was completely readable in the bright sun. This was important to them, because in rural African villages, which were one of their target “markets” that’s where school is held!

The devices were also designed to work together to provide a “mesh” network, so that if there was internet access in a village, the laptops themselves could extend the network outward to homes. They also came up with innovative chargers, and other adjunct bits of support technology. Later on, I bought a third one from a friend who had bought a couple, but wasn’t using one.

In the end, my kids treated the devices more as toys than anything else, at least in part because they had easy access to computers at home that were much more powerful. And I happily donated the three back to the foundation. They continue to work on innovative hardware and software to help spread knowledge and educate children.

So today my Twitter Feed had a link to an IndieGoGo campaign that sounded intriguing and very “TO” — the Lantern. This is a nifty, pocket(ish) sized device that receives all kinds of content over a satellite link, and can provide a wifi hotspot that any wifi enabled device can connect to in order to consume the content. It’s not an “active” connection to the internet, but rather acts like a web server with static content. They plan to provide the content of wikipedia, among many other things, including near real time news and weather info. This can help in areas where other infrastructure has been affected, or where governments restrict access to the internet. And as it’s a broadcast technology, nobody can easily track who’s receiving the data. They compare the drive to get these devices out to people like Andrew Carnegie’s building of public libraries, and it’s not hard to see why.

Whither Weather?

A long, long time ago, we had an amateur weather station (Oregon Scientific WMR-968) at our house. It had a wind vane/anemometer; a rain gauge; an outdoor thermometer/hygrometer; and an indoor thermometer/hygrometer/barometer. It came with a nice LCD display, and all the instruments communicated their data to the display wirelessly. The instruments also had a small solar panel, and a battery compartment, all weather-tight. The solar panels charged a built-in pair of small rechargeable batteries, and the batteries would power the instrument and the radio. There was also room for you to install fancy/expensive Lithium AA batteries which would allow the instruments to work down to -40 F. The console could be connected to a computer as well, and the computer could run software to gather the data from the instruments, log it, and even post it on the internet! We ran our own little weather site, a sub-domain of, but also posted the data to some other sites, notably The Weather Underground. (Not to be confused with the Weather Underground). It was fun knowing that we were helping to provide a “public service” and conceptually having all that weather data on file.

Well, eventually (after a good number of years), the instruments began to fail. I think a big part of it was the built-in rechargeable batteries. I made a half-hearted attempt at building new battery packs from rechargeable cells I bought on eBay, but never really succeeded, and the station fell into disuse until it was only a clock (yet another clock that had to be reset whenever the power went out). And long before that, the PC that had been logging the weather and posting it to the internet had been replaced with a Mac, and I never took the time to find good Mac software to do the same thing. So we’ve been out of the weather picture for a long time. But it’s always been on my mind to get back in the game.

This Christmas, I used my Christmas money to buy an inexpensive weather station from Costco.

It’s an Acurite 5-in-1 with a snazzy display.

It provides the same basic instruments as the old station, but all the outdoor instruments are housed in a single package. This certainly makes installation easier, but the downside is that the location for each instrument is somewhat compromised. Your anemometer/wind vane is supposed to be up as high as possible, away from any obstructions. Temperature readings, on the other hand, are supposed to be taken at four feet above ground, and the instrument should be out of direct sun, yet away from buildings, etc. Similar for the rain gauge, etc. Oh well! I am just excited to have a weather station again!

The console for this station can also be connected to a computer, and of course, you can run software on the computer to log the data, post to the internet, etc. This time, though, it’s not connected to a big, traditional PC, but rather to a Raspberry Pi,

so it’s very unobtrusive. We are using Meteohub software which is the only Linux package I could find that supports this station. You can view our weather data at The Weather Underground. Someday, we may re-create our own weather site as well.

Going out of Business!

As a kid in high school, I loved reading through the catalogs that came in the mail. Biking catalogs were a favorite. Bike Nashbar and Performance Bicycle I remember. Campmor was another with all kinds of cool outdoorsy gear. But one of the most interesting that came in our mailbox was the Hidalgo Sunglasses catalog. It was printed on cheap newsprint, in black and white, but came loaded with interesting information about sunglasses, and prescription glasses as well. It had actual size pictures of the frames, so you could cut them out and try them on for size. Of course, back then I couldn’t afford anything in the catalog, but I learned a lot by reading it.

Since the dawn of the web, I’ve kept looking for Hidalgo on the web, but they were very late to the game. They did finally arrive, however, in more of a “Web 1.0” style than the “2.0” that was gaining traction. It still looks rather dated, but is full of good information and you can still actually download the entire old fashioned catalog as a PDF. According to the Wayback Machine, they first had a web site around 2001, but it was just a handful of static pages until 2010, when you could finally order from it!

I just visited again today, mostly to find the right URL to pass along to a friend, and discovered that Hidalgo is going out of business. Now I have to decide whether to buy a pair of sunglasses from them before they go out of business…

Trip Tech

I used to have a Linksys Travel Router that I’d bring with me on trips. It was one I’d bought on eBay and had loaded special 3rd party firmware (dd-wrt) onto it. But it became unreliable. So naturally, I bought another one. But this time I decided not to complicate my life by changing the firmware on it.

Well, this is now the first trip where I’m wanting to use it, and I was immediately reminded why I’d bothered with the alternative firmware in the first place: the original Linksys firmware had a nifty feature that let the router connect to one wifi network, but then offer a different one for its clients. That means that you don’t have to start connecting to new wifi nets on all your devices. Only the router needs to connect to the new one, and everything else connects to it. Problem is, the Linksys firmware only let you connect to open networks. So at some point I’ll have to invest the hours and anxiety to see if I can put better firmware on it.

Our apartment was not advertised as having internet access, so I was anticipating having to find the occasional coffee shop (*not* hard to find here!) to stop in at and catch up on email, etc. Thankfully, it was just an oversight in the listing, because our phones, set to Airplane mode, are basically glorified iPods here in Canada, unless we want to pay roaming charges. Going without makes you realize how much we take for granted, and also how possible it is to do without.

Doing our share

This past week was a pretty big one at the Stewart household. Two “environmental” projects came to fruition this past week. First, and most important, is that our photovoltaic array went live, and we are now generating some of our own electricity. We have 28 250 Watt panels distributed among our main roof, dormers, and the garage roof, for a maximum hypothetical power rating of 7 KW. However, the DC-AC conversion isn’t 100% efficient, and by design the sun doesn’t shine on them all equally, so we won’t expect to see that number ever come up. But it is fun to see numbers, and to that end, here is a web site that is publicly accessible that shows some statistics about our power production: Today we produced 35.1 kWh, and had a peak power output of 5.7 kW. Payback of our initial investment in the system is expected to take 5-6 years.

On another front, we also purchased a new vehicle today. Well, more accurately, a used vehicle. Partly because we understand that the best value to be had in cars is in ones that are 1-2 years old, but also because a friend reminded us that buying a new car implies the assumption of the environmental cost of producing a new car. I was enamored of hybrids for a time, but the same friend educated us about the environmental cost of sourcing all the rare earth materials for the batteries. So the conclusion we came to was to find an efficient gasoline powered car. But we couldn’t find one. Perhaps my standards are “too high” but I remember cars from back in the 80’s that would achieve 50 mpg. Many friends have heard me wonder aloud whether this technology was somehow lost.

It seems that there are a couple of big factors at play here. First, people expect their cars to be more powerful that those “econo-boxes” of the time. We expect to be able to get up to highway speed from a standstill in a matter of seconds. Another factor is that people have come to demand/expect many more accoutrements in their vehicles, like power windows, power locks, GPS Navigation, big, honkin’ sound systems with 12 speakers, power seats, etc. Do they still make cars without air conditioning?

I also remember reading an article a while back in an online car magazine (TopGear) about a project where a team was challenged to put together a car for less than $7000 that would get 70 mpg and be able to get from 0-60 in 7 seconds. I think I’m remembering all that correctly, it was a long time ago, and the article was taken offline quite a while ago, unfortunately. All that remains are posts that link to it, and failed to have a copy, unfortunately. Here’s one post that at least references the series, called “Project Sipster.” They took an old diesel VW Rabbit that they got for next to nothing, and put a lot of work into it, including a new engine, and new suspension. I don’t think the $7000 included the weeks of labor. Watch the video, though, and tell me you wouldn’t want to own this car:

In spite of my 13 year old truck running OK, and having no major problems, we didn’t think it would necessarily last through the next 10 years which will include paying for three college educations. And so, inspired somewhat by the above, we bought a 2011 VW Jetta Sportswagen TDI with only 18,000 miles on it. It’s fun to drive, and gets an EPA estimated 30/42, but you hear plenty of reports of people getting better. Really depends on how you drive it. Unfortunately, it is peppy, fun to drive, and encourages acceleration. Hopefully it will last through the kids’ college years. Isn’t it cute?



Bought a new printer today, to replace the Canon Pixma MP-500 that has been our main family printer for a few years. It started being all squeaky last week, and then it started completely missing horizontal bands. Tried all the head cleaning options, and finally tried removing the cartridges and the printhead and cleaning it by hand. A lot of ink went down the drain, but to no avail.

For a replacement, I wanted a multi-function printer (to be able to send the occasional fax and make copies and scan things), and also one which supports Apple’s AirPrint so our many iDevices can print. After a couple of hours browsing Amazon, and reading magazine articles, and other sources of online reviews, and then seeing what was available locally, I decided upon an HP PhotoSmart 7520, which I could pick up at Staples for $149, plus we had a $10 off coupon, so even with the tax it came in around $149.

Brought it home, and after the unpacking ordeal I connected it via USB to our AirPort (actually, TimeCapsule with built-in AirPort). On both Macs, the new printer came up right away when going into the System Preferences, Printers area. They both had to download and install software, but all that went smoothly, with no reboot or anything. Printing worked fine, and I was able to print a couple of sheets of business cards for Clara with no problems, on card stock, too!

Later on, I wanted to get the AirPrint going, so I went through the on-screen menus to setup the Wireless. I can’t tell you how many devices I’ve connected to our home network over the years, both wired and wireless. Many vintages of Mac, PC, Linux computers; many iDevices, many other small devices, too. I have 3 WiFi routers (2 configured as AP only) that all expose the same SSID, and this has worked fine for years. But not for this printer — it would not connect. One of the AP’s (the AirPort!) is right next to it, even. I begin to lookup whether there are firmware updates. Sure enough, some digging turns up how to update your printer’s firmware. And guess what? (Hint: this is where the title comes into play), the way you update firmware is via WiFi.

Huh?? I’d like to know what brilliant person came up with *that* scheme. The printer even has a memory card reader socket on the front. Why not allow firmware updates that way?

In any case here are some of the things I tried to work around the problem:

  • connect to our “open” wifi AP, in case the problem was with passphrase recognition
  • connect to a neighbor’s AP, in case the problem was connecting to our specific router.
  • use a portable router I keep in my laptop bag. It wouldn’t stay powered on, though.
  • setup ICS on my laptop, but kept getting an Access Denied error.

Finally, I turned WiFi on, on the old Fios router that’s there for our cable boxes to connect back home. Even that took some trial and error, but did get it working, and the printer did connect, and download firmware. After that, it connected to our network OK, but when I then moved the printer back downstairs, it no longer would. I finally changed the SSID on the Apple Airport (Time Capsule), and then it could connect to the original network. Maybe it doesn’t like Airports, or maybe the signal was too strong, but all of this just goes to show that WiFi can still be tricky, and building a product that can only get updates via WiFi is ill-advised. It works now, and AirPrint works, but it was quite an ordeal.

Logging back into my router, I realized how old the distro I’m running is — it’s a version of DD-WRT from May of 2008. I had another problem with it recently, where after a power outage, it wouldn’t connect back to the internet right away. Only after a couple of hours,  (and presumably, the expiry of the DHCP lease), was it able to. Might be time to update this thing, and I’m thinking of using OpenWRT instead this time, as DD-WRT doesn’t seeem to have been updated much (at least as far as official releases go) in the intervening 4 years. Any non-spambot comments?