In discussion of the GPSD project, a commenter suggested that its role might be going away in part because the NMEA 0183 protocol historically used in GPS sensors is being replaced by NMEA2000. So far, this is not true, and the reasons it’s not true are worth a look because they illustrate a sort of flip side of the economic and technological tends driving the adoption of open source and open protocols in the wider technology market.
NMEA0183, the quasi-standard protocol historically used by GPSes reporting over serial and USB links, is horribly badly designed. The awfulness of NMEA0183 and the various proprietary vendor protocols competing with it is a major reason that GPSD fills a need.
One might expect, then, that a major redesign of the protocol would be an occasion to rectify these design failures, and that rectification would trigger a concerted rush to adopt NMEA2000 as players in the GPS market sighed with collective relief. And NMEA, the National Marine Electronics Association, would certainly like you to think this is happening.
In fact, uptake of NMEA2000 has been so poor that there are only a tiny handful of GPS sensors supporting it, all of them tightly coupled to the proprietary physical network specification of the protocol and (so far) used only in specialized marine systems. Uptake in the more general GPS market has been zero; we at the GPSD project have received no requests for NMEA2000 support, and as far as we can tell, the Pacific-Rim companies that produce the bulk of consumer-grade receivers have completely ignored it.
As it turns out, there are actually pretty good reasons for them to ignore NMEA2000. One of the major ones is revealed by a class of products specifically marketed to users of existing navigation software that offer to gateway from NMEA2000 physical networks to USB, translating NMEA2000 packets on the fly to NMEA0183 sentences that existing software can read. The fact that this is possible reveals that NMEA2000 adds little information and little value to the contents of an NMEA0183 stream of navigation data.
Another reason for the specialized gateways: the coupling of NMEA2000 to a proprietary physical network is so tight that there is no standard for shipping it over USB, RS232, Ethernet, or any of the other physical networks commonly used in the general computing market. GPS vendors serving that market would have to be plain nuts to abandon the userbase around those physical networks for a protocol that doesn’t serve them.
Yet a third problem with NMEA2000 (for anyone outside the NMEA vendor cartel, anyway) is that the NMEA2000 specification itself is proprietary and expensive. In theory NMEA0183 was, too, but there’s a difference: enough information about it leaked out, in the days before aggressive IP lawsuits over protocols were common, that conforming to it became easy and a widespread practice. That leakage was assisted by one of the few good things about NMEA0183, the fact that it’s textual and easy to read with a Mark One Eyeball. NMEA2000 “fixes” that; its packet format is unreadable binary goo.
Taken all together, these features of NMEA2000 are a classic case study in how to design an application protocol for as little uptake as possible. Add little or no value to existing protocols, tie it tightly to a specific physical networking scheme, make the specification expensive and proprietary, and make it opaque binary goo.
I’ve often made the point in the past that open source and open protocols grow markets and create opportunities. NMEA2000 sharply illustrates the obverse of this point. All of these major choices were made in the opposite direction from the way we’d do it in the open-source tradition, and the effect is to shrink and lock down the market it addresses.
It’s not clear whether this constitutes a failure on NMEA’s part. The not-very-well-hidden purpose of NMEA is to sustain a technology cartel protecting the major marine-electronics vendors. NMEA2000 probably tightens the NMEA’s control of that particular market; therefore, they may very well not care that they’re getting no adoption elsewhere, not even in parallel vertical markets such as aviation systems.
Back when NMEA2000 was just a heavily-promoted gleam in NMEA’s eye, we at the GPSD project thought for sure we’d have to support it when it actually issued. This didn’t particularly bother us – ho hum, another stupid fscking vendor binary protocol, another reverse-engineering job, another logic path in the autoconfiguring packet sniffer, yeah, so what else is new?
Now it looks like NMEA has done such an effective job of walling off their garden that we’re never going to have to deal with it. It’s not that they’ve locked us out of marine navigation, even, just that the applications that might use GPSD will all be sitting on the near side of those NMEA2000-to-USB gateways.
And in the general-purpose GPS-receiver market that GPSD serves, NMEA2000 is not going to be a factor. Not until and unless it’s decoupled from its physical network, and probably not even then – not enough value-add there for the vendors to move.
The final question NMEA2000 raises, one which has its own open-source implications, is how much NMEA’s retreat into a fortified position is going to cost its vendors in the long run. Is the market for general-purpose GPS sensors declining or growing? We do know that handset GPSes are being rapidly killed off by smartphones, though that in itself affects GPSD very little since the handset users never needed us in the first place; the question is whether GPSes in smartphone-like devices are going to kill off the sort of receiver that has a USB or serial cable hanging off it.
This reflects a larger question about how much tightly-integrated bespoke systems like smartphones and proprietary marine networks linking special-purpose devices are going to replace the sort of general-purpose computers that have serial and USB ports. Open-source software in general (and GPSD in particular) thrives in loosely-coupled systems of general-purpose computers and doesn’t do as well in the sort of world that NMEA and proprietary smartphone vendors want to create.
So the last lesson of NMEA2000, and an encouraging one, is how atypical and archaic it looks in 2010. Binary packets instead of HTTP? Wacky proprietary physical layers? This is not the direction the rest of the Web-enabled, Internet-centric world is moving. And as for GPS sensors with cables, smartphones don’t seem to be inhibiting the pace of new-product launches one iota. If anything, the increasing visibility of location-aware apps on smartphones seems to be driving more demand for standalone sensors. This may seem counterintuitive; why should that be?
I think it reflects a fundamental economic law; when a technology like GPS gets cheap, every use case for it attracts more money and more vendors as people find uses for both loosely-coupled and tightly-integrated versions of it that create new goods and substitute for more expensive old ones. Smartphone GPSes and the sort with cables aren’t in zero-sum competition after all; they’re complementary goods that indirectly stimulate demand for each other. Really we should have known this years ago from observing the demand for handset GPses.
That means that, ultimately, NMEA has made the wrong bet. They’ve chosen to be the big frog in a small pond. It means that GPSD is going to continue to have devices to reverse-engineer and a role to play for the foreseeable future. And, more generally, it assures us that the sort of loosely-coupled computer systems in which open-source software has a starring role will continue to attract increasing investment.