About six weeks ago I asked How would you like to help fix the Internet? It was an open invitation to help develop a cheap millisecond-precision time source for instrumented routers, so we can do delay tomography on the Internet and measure the bufferbloat problem.
The discussion thread on that post was lively, but eventually moved to a thumbgps project mailing list out of public view. I’m going to summarize what has gone on here because parts of it are very interesting in a “Wow…it really is the 21st century!” sort of way, and illustrate that there can be a lot of power in making simple connections.
My call went out on 1 March. Dave Täht launched the mailing list on 10 March. Early discussion consisted mainly of a lot of kicking around of concept designs for time hardware. While this was going on, I was holding on to the idea of a simple mod to one of the existing cheap-ass GPS designs, just wiring the 1PPS pin from the GPS to DCD or RI on the serial-to-USB adapter chip and getting PPS with at worst one USB polling interval’s worth of jitter. There’s one simple connection for you
On 15 Mar I discovered alibaba.com. This is a site that make connections in mainland China through which you can chat in real time with trade reps from Chinese electronics fabricators. Turns out these guys are constantly looking for OEM/ODM business, and I was able to interest two different companies that already make cheap GPSes for export – UniTraq and NaviSys.
During the following week I exchanged email with these companies describing in detail the required single-trace hardware mod, explaining exactly how and why I believe it would work, and what the potential market is. I explained all the relevant obscure technicalia – 1PPS, handshake input pins on USB-to-serial adaptors, USB notification events, effects of polling on latency.
It helped that on 16 Mar one of the thumbgps guys breadboarded a test setup and reported measured jitter of 300μs with 1PPS from a Garmin 18 feeding a common serial-to-USB chip, the FTDI SIO. OK, yes, you can in fact crowdsource some of the critical test engineering on a project like this.
And the people in Shenzhen went for it – started modding prototypes and reporting progress.
Now I want to pause for a moment so you can really take this in. In effect, I became the lead designer on a new electronics product by email. Just me. No corporate-backing, no million-dollar development budget, one guy saying “Hey, if you connect this to that, cool things will happen!” – negotiating directly with people on the other side of the planet who’ll never meet me face to face. And it’s more interesting because I’m not famous to these guys and not even a hardware geek.
All that SF/future-shock speculation about disaggregated manufacturing, contract and trust networks replacing corporations, Coasian effects disappearing as communications get cheaper? It’s here. Now. I’m living it. I’m using it.
So, the current state of play is that both companies are working on minor technical glitches. One outfit used a USB-to-serial adaptor, the CP2101, that turned out to be unusable for our purposes when I tested the engineering samples. The chip vendor persistently refused to release enough interfacing info to allow the open-source Linux driver to wait on a change in the state of an emulated handshake line. Now they’ve effectively EOLed the chip. We’re going to have to move to something like a PL2303.
The other design, which does use a PL2303, has been tested with GPSD in China and works – they emailed me the test logs. But they did it with a patch wire, and there’s some internal connector issue they have to work out for the production design.
These are solvable problems. The important point is that (a) the basic concept of adding one PCB trace to pass out 1PPS over USB has been shown to work to sub-1ms accuracy, and (b) the design and communication process is working. Nothing but a little elbow grease and routine product engineering stands between where we are now and multiple-source availability of 1ms-accuracy time sources for about $30 each quantity 100.
Connections are powerful things. This is a novel capability, and a dramatic improvement in the price-performance ratio of existing precision-time sources as finished products that can be deployed immediately. From one PCB trace! Which the GPS vendors could have added years ago if they had known just a little more about their chipsets.
Sometimes the most important connection of all is just knowing that a given thing is possible.