From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-vx0-f171.google.com (mail-vx0-f171.google.com [209.85.220.171]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority" (verified OK)) by huchra.bufferbloat.net (Postfix) with ESMTPS id 2EE7A2001DB for ; Sat, 10 Mar 2012 10:02:42 -0800 (PST) Received: by vcbfl15 with SMTP id fl15so4750917vcb.16 for ; Sat, 10 Mar 2012 10:02:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=g4e3bz62nZ36DZ3ysqFIr4AR+YPvJUOA7MdF0Rw1cdo=; b=LG8H+H9JGrDYrLNIKmPqp7TKcaBviOZhmSL8uAj6CdcaQp6snWTCZg3C3M7SUH3g4m aoxpQ+qgOoxPkHqXErXOf6y+mNO9JDS+gzvf3v5iNL3c/j9YudJ0JOfneJVdFIh6eBRb T2f6haqa7MIvaWAdXtT9CGpDjkQmfFo47O1gDhmYMoJuB47b9PgeYuIvAFxolS4f/YWn wDOtt3WDAqDYuG6g1p49/RlZPxwD2xVVbmcKivCCVMvWSi5tfpjnxIsXnryeK7L+P/D3 SM2c9I3VJJTsdA0E6TmgJMaTT2tqCHbYaudfNE9glo2G+lCytsT5zBg5WDMddW8gfWOz K4mg== MIME-Version: 1.0 Received: by 10.52.27.111 with SMTP id s15mr10063903vdg.120.1331402560820; Sat, 10 Mar 2012 10:02:40 -0800 (PST) Received: by 10.220.140.132 with HTTP; Sat, 10 Mar 2012 10:02:40 -0800 (PST) Date: Sat, 10 Mar 2012 12:02:40 -0600 Message-ID: From: Patrick Maupin To: thumbgps-devel@lists.bufferbloat.net Content-Type: text/plain; charset=ISO-8859-1 Subject: [Thumbgps-devel] Build vs. modify vs. what should we be doing anyway? X-BeenThere: thumbgps-devel@lists.bufferbloat.net X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 10 Mar 2012 18:02:42 -0000 In this message on esr's blog, I suggested that perhaps we should acquire and test/modify a really cheap ($23) USB GPS module. http://esr.ibiblio.org/?p=4171&cpage=1#comment-374779 esr correctly wanted to understand the value in this. There are several reasons to do this. First, it's dirt cheap for playing with. We can test the latency through the prolific, hack in a couple of FTDI chips and test their latency as well, test the wobble on the PPS pin from that particular module, etc. Second, if I understand correctly, this device is EXACTLY what we want to build, except for the lack of the PPS connection. Third (and I alluded to this on the blog, but perhaps didn't stress it enough) electronic parts pricing follows an exponential decay curve vs. quantity. It is actually unlikely that you could make a PCB and buy all the parts in that thing for anywhere as low as $23 in quantities of 100, plus the labor of building the board is significant compared to the labor of cutting a board trace and adding a wire. So the first production run (maybe all production runs) could be to buy those, add a blue wire, and ship them. (FWIW, real actual consumer products ship with hacked boards all the time.) Fourth, and I can't stress this enough -- when you're doing things in small quantities, you're unimportant. Priorities change. Nobody bothers to inform you that the part you settled on as "best" after 30 hours of research is going to be end-of-lifed in 2 months. But they DO tell the customers that buy thousands, and those customers put in a final buy order, and a few more are made and then the thing becomes completely unavailable. Then you're spinning a new board, scrapping the 200 "extras" you had made because board pricing is such that the first one costs a couple of hundred but the next few are practically free, and doing a lot of extra work just to ship the next ten units. (As an aside, the fourth point doesn't apply so much if you're willing to pay a lot for the more industrial modules, but that probably gets us above the price point we're aiming for.) Fifth, the most important thing for us is probably a testbed that gives us confidence in the latencies through the system. This is not a board that will ship in quantity. As with all science, it should be reproducible, but perhaps you only need two or three in the world. This test system should probably be FPGA-based and should have at least these capabilities: - High resolution, high stability frequency source (OCXO or TCXO). - Ability to timestamp PPS signals from multiple attached GPS devices to look for wobble - Ability to timestamp start-character information from multiple attached GPS devices -- maybe we can get lucky and find one that has consistent message timing - Ability to compare latency through different USB converters In other words, trust but verify. Spec sheets are meaningless, but we can apply metrics to all the hardware we can find. OK, so what should we be doing? I propose: 1) Such a test-system, thoroughly documented and used by 2 or 3 people (or more if they want). Investment might be around $300-400/unit to achieve excellent accuracy, plus cost of whatever GPS devices you want to hook to it. 2) A process whereby several different options are presented and the pros and cons discussed and user chooses the best one for him 3) A dialogue with different vendors, and lots of descriptive links to different products. 4) A storefront, perhaps with someone like seeedstudio or sparkfun, where we can contract for them to build and have available a few of the units du jour. Minimal investment on our part that is not designed to make a profit, but rather to facilitate their efforts in making these things available. As an example, buying 100 of those cheap units would cost $2300 and if you had them modified and minimally tested in seeedstudio in China that would add $2 to $5/unit. (seeedstudio is cheaper and probably more amenable to modifying other devices.) 5) Links to other webpages where people have done the same sorts of modifications. I have seen several of these, some quite useful. I think that the market is actually working well for these devices, and that our efforts will be best spent categorizing winners and losers and almost-winners, and facilitating modifying almost-winners into winners, both on a one-off standpoint and with the manufacturers. At the end of the day, if we are successful, lots of manufacturers will be shipping GPS mice with the desired properties. Other people's mileage may vary and it may very well be that the right answer is to, in fact, build a board and source components and build the thing from scratch. We all have our own biases, so I will describe a little about my background here. I work for a chip manufacturer. We ship zillions of chips. But to design and test those, we need boards and widgets in the lab. We make anywhere from a couple of those to dozens of those. We also ship development kits that may ship in the low hundreds. So, while our product is made in China, we don't make enough boards to do that. I know nothing about getting a board made in China, and frankly have no interest in learning at this point. We have boards made locally, or we hand make them in the lab. Making boards in the lab would be too expensive for 100 boards. Making them in a local board shop would probably be to expensive unless your minimum production run was at least 50 boards -- then you could probably get the assembly cost down to $10-$15 per board. But making small modifications is a piece of cake. I could probably give our best technician $300 to take home 100 of those dongles that just need a blue wire added, and take them home and add the wire, and then we'd all be extremely happy. You can see these economics in action all over the place. Go look at sparkfun or seeedstudio or any similar sites, and take a good look at the products they actually make. In a lot of cases, you will see "out of stock" notices. This is because the economies of the entire process, from purchasing to board fabrication to board assembly, are heavily weighted towards batch building. The only economies that aren't significantly improved by batch building involve hand labor (but even those are improved to the extent that it's easier to outsource modifications to a batch than to a single board). This is why I strongly suggest that we find someone who (1) has good economies of scale because they are making thousands, (2) actually passes on a significant value of those economies of scale to their customers, and (3) has a product that is easily adaptable to what we need. This is what I do all the time at work. I make boards that have a header to accept power from an ATX supply. I build projects that fit inside aluminum external drive cases (which you can buy for less than you could buy the power supply inside!) I work really hard to leverage existing stuff I can find for cheap and turn into what I need. Sometimes. If you're just building one board, banana jacks for a lab supply are fine. If you're building 15, it's nice for it to have its own power supply. In short, if this was a work project, I'd be buying a couple of those $23 units with an eye towards hacking them and figuring out if I wanted to buy another hundred. In that process, I would develop a test bench and some skills that would let me analyze the units, and other similar ones in the future, to evaluate if they really meet the needs at hand, and to help insulate myself from inevitable future product unavailability.