 Great, thank you very much. Can everybody hear me okay? I can't, yeah okay, great. Yeah, so my original intention actually was to, one of the things that's a lot is that I've been wondering what I could be saying is some interesting bits of hardware design using Debian as my not only primary but only development platform. I actually was really interested in sort of finding out who else was doing interesting stuff and whether it was interested in collaborating on kind of improving the packaging of various tools that are interesting or even hardware design and things like that. As often happens, when my postings like this I panicked a little bit when I saw that it had been scheduled for the biggest meeting because that often ends up kind of setting up the people that are expecting me to talk a whole lot. So I did just throw together a bunch of slides for most of the photos and things that I've worked on that we've been holding on to. That's really what you all want, that's just fine, but yes, I know some of you, that's what you all just want. But before I even say anything else at all, out of curiosity, how many of you have any of you are doing either electrical or mechanical or integrated circuit or various things and that is, less than all there are two of you, great. So out of curiosity, it's something I'm liable to get to some day. Right, so another one here, and then somebody further back. Yeah, I think my case is the classical electrical engineer design, I mean schematics, yeah, that kind of stuff. But unfortunately I haven't found any free software that could, which I could carry out this issue with. So well, I know, I mean, the most advanced I know, which it's hardly to go beyond the amateur level, is the KiCAD, I don't know if you know it. I know of it, I don't use it, I actually use the GEDA tool set, which I'll talk about a little bit. It has pros and cons, it's currently being worked on rather actively. Well, that one. Yeah, okay, cool. So I play around with my model trains, which have become a bit of a techno thing rather than an actual modeling thing in the standard DD type of way. I did the circuit ball design with the very venerable old PCB program. I didn't bother with schematics, instead I had a pole script generator net list to check my PCB designs against. That worked really well. I wrote a few small things for hacking up my Gerber files so that I could penalize them, that worked all really well. And I found a copy of Spice under a rock somewhere when I had a bit of an analog design problem. Right, okay, cool. Yeah, I've studied electrical engineering and took a hardware over here. Yeah, yeah, hi. Hardware description and verification course. Right. I didn't know VHDL before this, and it was known for software for it. And you think you know it now? No, and I actually don't want to know it either. But what we used Lava later on, which is a functional programming language for it, describing and verifying well circuits. Very cool. Which is free software I believe developed at my university. Chalmers in Gothenburg, Sweden. Yeah, very cool. I've heard of it, but I have not investigated it at all, so maybe you can talk about it a little bit later and we'll see how things go. Based on Haskell, by the way. Right, based on Haskell. Was there somebody else, yeah? Yeah, I'm mainly doing PCB or programming for microcontroller, a bit of VHDL. Right. I'm still using some proprietary software. I'm switching slowly, but I still, for some cases, haven't found the equivalent. Right, okay, cool. Well, so what I've been playing with, a couple of years ago, I gave a talk, I guess the first, oh, did you want to jump in too? I was just gonna say, I've done a bit of PCB fiddling about making basically incredibly noddy PCBs with, I tried the PCB thing, and actually, most I used Eagle because that's what the things I was trying to change came with. Right, right, right, right. Which is only kind of slightly free. Yeah, yeah. In fact, I've, it's, yeah, right, it's not free, it's just you can get, it's free as in beer for the restricted capability version. I've actually, for a while, had a full license to the Eagle suite with the full auto router and all that kind of stuff, and so I know that tool chain pretty well. Before that, I used Tango and things like that. Also have had the pleasure or the curse of in my history of employment being the person who was responsible for the people who were responsible for the engineering design tools, integrated circuit, printed circuit board, mechanical and software engineering tools for a non-trivial chunk of the old Hewlett Packard test and measurement business in Colorado Springs. And as a consequence, I sort of got spoiled by having access to what were at the time the world's best tools, and I'm really pleased that over the last couple of years, the tools that are available that are free software have finally kind of gotten to the point where I feel like I can use them without wanting to be ill all the time. Sony, what do I do? Well, a couple of years ago, I got really wound up about this notion of building an open hardware design for performing certain avionics functions on high-powered model rockets, and I've given talks about the rocketry stuff before. The first version of the board that I worked on, you know, it's the classic, you're a computer-oriented guy that's going to solve a problem, so what do you do? You put down a really big, I mean, you know, from a Linux standpoint, this is not much of a processor, but for the task at hand, which is, you know, making a couple of analog measurements and figuring out when to flip a bit or two, you know, I went at it with an ARM7 and a GCC tool chain, and well, you know, some interesting sensors, pressure sensor, three-axis accelerometer. I hadn't actually done the math very well yet, though, and didn't realize for the size of rockets I'm playing with how completely and utterly inadequate a 6G accelerometer would be. And a temperature sensor, and I actually was very interested in magnetic field sensors. There's been some work done by different people on using, detecting what your orientation is relative to the Earth's magnetic field as a way of telling when the rocket's going over at Apogee and it's time to deploy the drogue chute. So anyway, that led me to, this is actually two copies of the circuit side by side. I did a really, really cheap, 100% auto-routed circuit board layout, which after I repaired a handful of design stupidities, I did actually get some of these boards working. That's the back of the board with the ARM space down. And this is what they look like loaded up. This is the top side and the back side. As you can see, not a dense board at all. In fact, almost embarrassingly sparse. But the claim to fame is that this was completely auto-routed by the lame auto-router that's part of the PCB tool and actually designed real checked. And other than the things that I screwed up on, you can see various jumpers on the board. The tools actually delivered exactly the result that was expected. This board, however, never flew because this was the first prototype and as you can see, there were a bunch of things that I screwed up on it. And I decided that the right answer was going to be to, oh, and by the way, but before I got too much farther, I do have a preferred license for these things. When I'm doing hobby hardware projects, I'm very enamored of the Tapper Open Hardware License, not just because I'm one of the people who helped to review it and improve it before it was adopted, but I really do think it's sort of the closest equivalent to the GPL that we have for hardware design. I've had some interesting conversation with others here this week about how hard it is to actually come up with a plausible business model for pursuing commercial hardware development around the sort of an open design. I'm not burdened by that as a difficulty at all because all of my hardware projects are very explicitly hobby projects at this point. I've also discovered that if you do something as a, which you'll see later, if you do something that's sort of insanely complicated or difficult or dense or whatever, and you do it as an open design, and your target audience is kind of small and really willing to spend money to avoid having to learn how to duplicate your effort, that it is possible to carve out niches where you can be completely open and yet nobody, everyone will just give you money instead of wanting to try and replicate it themselves. I'm sure if I ever do anything that's attractive to the high volume folks in the Far East that I would have a different experience. And I'm real big on GPL version two for this kind of stuff because of the legacy of code I've built up that that's neither here nor there. So as I mentioned, I have used the GEDA tool set for all of my own schematic and PC board designs now for I guess about three years, principally GSCM and PCB. I'm surprised at how important I think the parts searching capabilities of the modern electronic component distributors websites are. In particular in the U.S. I use Digikey a lot. And it used to be that I spent a lot of time digging around in data books or on CD-ROMs or whatever trying to find parts and then there was sort of a separate process by which I figured out if the parts I wanted to use were available. Being able to go to somewhere like Digikey that has an incredibly rich parametric database of components and start off by saying I'm only interested in parts that are in stock and that I can buy in quantities of one or 10 or whatever you think your reasonable minimum are has been just an amazing productivity booster. It's taken out a lot of the annoying stuff that used to be associated with doing home hardware design for me and I just can't say enough about that. I've also discovered that there are a couple of really cool sites. FreeDFM is a website that's run by a printed circuit board shop that's actually just on the outskirts of Denver, Colorado. It's actually fairly close to where I live. I use their Barebones PCB service for those really cheap two-layer boards that I did the first time around. But the freedfm.com is kind of cool because you can upload your Gerber design files for your printed circuit board and they'll actually run all of their design for manufacturer ability tests and send you an email back with a report about are you anywhere close to being something they think that it could actually manufacture. And the combination of that DFM checking with the electrical rules checking and sort of simplistic spacing checks and so forth that the GEDA suites PCB tool applied were really completely sufficient for me to do successful stuff. And I did all the things everybody ever does. I bought a prototyping board, an Olamex board that had the processor chip on it I was interested in. I stuck down, that's, I don't know, it's an I squared C memory part up in the corner of the prototyping area and one of the little prototyping boards for the three-axis accelerometer and we're doing software development in parallel with playing with the hardware. The Olamex ARM JTAG interface is very well supported by OpenOCD. We had no problem using it to bring up the target. Just had to make up a sort of a custom cable to get from that to the tiny little connector that, series that Wookie actually talked me into to taking a look at. And I do have to admit that once you bite the bullet and buy the rather expensive crimping tool, being able to make up these cute little one and a quarter millimeter spacing connectors for everything is a mighty handy ability indeed. And then, you know, it doesn't have much to do with the free software but when I've talked about this to other people, I've spent a certain amount of time talking about the tools I use for actually doing printed circuit board assembly. That's the most important one. I talked to my wife and kids into buying me a nice inspection microscope for Christmas a couple of years ago. These have unfortunately become sort of a fixed fixture around me in the last couple of years. One of those signs of aging reading glasses. But with the inspection microscope, I'm very reasonably capable of hand placing, you know, 0402 sized surface mount parts, which I really can't even see without this equipment. So that's been a really important tool to me. But a funny thing happened is I said, you know, I never actually flew that original altimeter design because it didn't take long after putting the board together to start to realize that, you know, there are a number of things that, and this is kind of cool to have a board that kind of works and I went and gave some talks about it and I demoed some firmware working on it and you could play with the board and see what the accelerometer was doing and so on. But before I actually got around to flying it, I thought the right answer would be to update the design a little bit, do another printed circuit board run that fixed all of those stupid errors, so I would have a more robust unit to fly. And along the way, I ran into Keith Packard, who's a really good friend of mine and many of you will recognize from his very long involvement in X Windows and related things. And he, I managed to sort of sucker him into getting involved in the high powered rocket thing with me and that's now a hobby that we've taken a lot of joint pleasure from over the last couple of years. And he and I both ended up buying these little radio transmitter boards called B-Lines for helping to find our big rockets after we launched them. It allows us to do radio direction finding to locate them. And we were sitting together at a conference and realized that it would be really nice if we could actually get some telemetry from the Avionics board down over the radio link instead of just having it beep at us. Make a long story short, a friend pointed out to us that the chip that was being used on our favorite little tracker board had a newer version that integrated a processor and an RF system on the same chip. And even more than that, it was available for about $7 US in single quantities. Given that I was paying on an 11 or $12 a piece for that arm chip in single quantities and had realized by this point that it was gross overkill for the technical task that I was trying to work on, we realized we really could sort of completely revise the design and come up with an altimeter system that had the RF link included for about the same price as the silly little beacon board by itself. So in reality, we ended up adding enough stuff that little feature creep, it costs a little more than that. But the key hardware features of our current design, which we've taken to calling Telemetrum, is that it's based on one of these Texas Instruments chip con CC1111F32 RF system on chip parts. And this is a really interesting little thing because in the single little surface mount part, it's got a transceiver that will do data transmit and receive up to about a gigahertz. There are also versions of this that are optimized for use at 2.4 gigahertz with a variety of standards, including the ZigBee stuff and so forth. But in my case, I actually want low data rate and long distance. So we're using forward error corrected GFSK at about 435 megahertz in the middle of the amateur radio band there. But it also has this little 8051 8-bit micro processor unit and some flash and RAM. And it also has USB. And one of the things that had driven me to do my own altimeter was my frustration with the fact that everybody building these sorts of things commercially for the hobby rocketry community expected you to go buy a separate dongle to interface to RS232 to do the level shifting. And then of course, with modern notebooks, you also had to get a USB to RS232 interface. And I just found all of this stuff really annoying. So about the same set of sensors that we're flying before except that we switched to a single axis accelerometer. And by default, we fly with a 50G accelerometer. Though the footprint of the part that we've chosen, that series also has parts that go as high as 200, plus or minus 200Gs. And in fact, we have one rocket design on the table that would exceed 80Gs off the rail. So it's good that we have the flexibility to do that. The other big thing we did at Linux Conference Australia in Melbourne, so that would have been about a year and a half ago, someone gave me a really hard time about still using crappy, huge nine volt batteries and asked me why I wasn't investigating lithium polymer batteries. And as often happens, I at the time said, well, you know, that's interesting, but we'll get to it. And then ended up sitting up that whole night in our apartment in Melbourne with my notebook researching going, oh wow, there really are some cool little charging chips now. So anyway, the new design does full lithium polymer battery support and that's turned out to be really cool. That's a CC-11 physical part sitting on a lousy printout of the printed circuit board artwork. As well as things I learned to do a long time ago before I actually send boards out for FAB, I print out one to one a copy of the artwork and start putting parts down on it to make sure that the footprints are actually something near right. And to date, I have never, ever done this and had all of the footprints right the first time. It's for me at least an absolutely essential step in getting all this stuff right. But that's a tiny little part, as you'll see here shortly. There's the barometric pressure sensor, the shiny thing with the hole in the top of it, the memory chip to the left of it, the accelerometer and the little voltage switcher for the accelerometer is the only part on the board that needs five volts, everything else is running at three, three. So then we sent the artwork off and we got back, again, because we're being cheap, we discovered that using one of these cheap prototype being services, we could get four layer boards done and we could get five of them for X number of dollars in the maximum surface area for any given board with such and such. And I realized that I could panelize 10 of my boards and still have it count as one of theirs. And they agreed that if they didn't have to route them or snap them apart that they would indeed treat that as one board. So I got a stack of five panels of 10 boards for very little money and then I had to figure out how to get them apart, which is where the other part of my personal hobby obsession with doing free software things with hardware came in. I've written a bunch of Perl Python libraries, excuse me, that emit CNC code for doing three axis milling machine control. And this is my stupid little tabletop milling machine in the garage, cutting one of these panels apart. There's a closer shot. It's a lousy little mill that uses just commercial screw thread as its axes drive screws. And yet by playing around and futzing with it and messing a couple up before I got it right, I'm holding to within one mill tolerance on this, which is a thousandth of an inch or some substantially small fraction of a millimeter. Close enough that I'm having no trouble, once I cut these apart, placing them under the solder paste stencil to be able to put paste on them and load them. And here's just for a sense of scale. There's my 10 year old son, Robert, watching the milling machine do its thing. Is that actually easier than just getting out a hacksaw? Yes, actually. The question was, was this easier than getting out a hacksaw? And the answer is yes, for two reasons. One, the footprint for that tiny little RF systems on chip part is a little on the critical side, because as an RF component, there's a fairly precise pattern of solder paste that has to be placed down on the ground pad under the chip. And it has to be lined up just right so that when you reflow solder at the part actually settles appropriately, makes contact on all the peripheral pins and achieves a good RF ground to the inner layer, ground plane and a good thermal contact. And in order to do this, I had to bite the bullet and get a commercial stencil made, because there's no other way to put an even layer of solder paste down at that sort of fine level of detail. And having done that, you then always want to come up with some sort of a fixture to hold the solder paste stencil, and you need to be able to register the board relative to that fairly precisely. And I actually tried on the first panel, cutting them apart manually in different ways, including using a little Dremel tool with a diamond cutoff wheel and things like that. And I was never able to get them sort of consistent enough to be able to align them under the solder paste stencil as close as I needed to avoid ending up getting all sorts of solder bridges and so forth. So after a couple of tries, I said, I need something more repeatable. Oh, right, I have a milling machine. Can I actually do this accurately enough? And the answer is yes. With a tiny little chunk of Python in a couple of loops emitting the repetitious code to step across and cut them and precisely characterizing the width of the cutting tip I was using and looking at how much runout there was in the spindle and doing all those things that people who've played with machine tools eventually figure out they need to worry about, I was able to hold a one mill accuracy on all of these, which was good enough to be able to do the solder paste placement, to be able to place components, reflow them and have the boards pretty much always work. So as far as I'm concerned, yeah, the only choices are either to take the time to program the mill to cut them apart or pay the board shop to actually do it, which would have made these on the order of, you know, in the prototype shop I was using would have made the raw board something like $35 a piece instead of slightly under five, which for four layer prototypes in small quantities, you know, not bad. So this is a shot, in fact, you can see the sort of crosshatch pattern on that part down there. It's actually, the creating the footprint for that for the GEDA PCB tool was an adventure in and of itself. If you're interested, again, in sort of examples of stupid looking Python that do seemingly innocuous yet rather complicated stuff, there is something like 87 discreet pieces of geometry in the ground pad under the processor to actually get all of the keep outs and solder paste mask and vias and all those other things aligned appropriately. Yeah, you had a question? It's just very briefly, underneath that QFN, the light green is copper with solar resist. The light green would be solder resist. The dark parts are actually shiny, you know, solderable areas. So you've got the row of pads around the house. You've got nine buried vias there, but you've then put solder resist over the top. That's right. Is there a reason that you did that rather than gridding the mask instead? Yes, I'm very precisely following TI chip cons notes on what they said we really needed to do. Yeah, the only reason I'm interested is because we put down QFNs for 2.4 gigahertz parts and they're like almost the inverse. We've got nine squares of solder and this is the grid pattern of resist. I was just interested in whether that was your choice. Yeah, so the chip con guys had a multi-page document describing the footprint and to be honest, I spent about three hours one evening sort of thinking about it and then said, oh, to hell with it, I'll do exactly what they said and then hopefully it'll work. And then it took about three, well, I guess two really long nights of hacking around figuring out how to get their geometry represented in the description language for footprints in the PCB tool. And there are a couple of slightly clever things I ended up doing about sort of overlaying polygons, but that's all not all that exciting here. If anybody's interested in that stuff, I did go and register a page for myself at GEDA symbols.org and then have never actually gotten around to pushing my symbol stuff out there. So if you want any of these library parts, I'm happy to share them. They're actually sitting in my Git server somewhere, but we'll push those out. Yeah. Yeah, I think that's... Yeah, the random microphone thing, there you go. One of the biggest pains that I find with trying to use any free software for doing hardware development is that libraries are either very poor or exceedingly rare and you end up, like you say, sitting for hours and hours and hours poring over data sheets, trying to do libraries. The more sort of free libraries that we can get out there, I think the better off we're all gonna be. So frankly, it's one of the things that excited me about the GEDA set is that DJ Delores now created this GEDA symbols.org site where people are putting things. But even there, you have to be very careful that you know what you're grabbing. I personally have discovered that I really end up spending less total time during a design if I do all of the footprints myself and sort of create my own library because then I sort of know what I thought I was doing and what I've discovered is even for relatively simple passives, I end up having preferences about even things like where I prefer the silkscreen, component reference designators to show up relative to the rest of the part that differ from some other people. And so my personal experience has been that if I just do the footprints myself, it's less total time invested than if I go searching around and trying to find things in libraries and then discovering later that it's not quite exactly what I wanted and having to go backwards to tweak that up. I don't know, maybe I just have a bad case of NIH, I don't know. I want to point out that this little, cute little embedded RF system on chip thing. I'm talking about the hardware design stuff here, but Keith went totally wacko, not so... Excuse me, there was a question. Oh, another one there? Just while we're on the subject of footprints, I had the same problem that you immediately find, oh, there isn't a footprint for it and now you've got to spend hours drawing one or finding... I don't know whether you've found any success getting them off the manufacturer's sites. In principle, they should be the people who've actually done the right footprint. It should be easy to just suck them all down. And as long as you're using a tool set that the manufacturer is willing to acknowledge the existence of, they sort of exist. But the problem is that it sort of depends on who you go to. I think the TI chip gun guys provide their footprints in four different formats, all of which are in the $100,000 or more a seat price range. Indeed, but this is clearly something that Free Software would do very well if we all, everybody got their act together. We would actually be on top of the win here. We have to cross a critical mass of... Exactly, we're not there yet. We're not there yet. More shouting at people is clearly in order. Absolutely, absolutely. I have, I've been watching, yeah, sure. Sometimes I have pulled from the internet some footprints but they're totally messed up. And it's better to draw your own footprints than get somebody else's that are wrong. And you find out after you made the board or things like that. You know, in my dreaming of a better world moments, I would love someday for a group of us who actually care enough about this stuff to see whether we can do something that the commercial boys have never been able to do, which is to come up with a reasonable specification and process for capturing and archiving and versioning and so forth, all of these things that, you know, allows us to develop a shared library of components, particularly footprints, but schematic symbols as well that are actually useful. I have to tell you, one of my great joys in using this tool set is that all the design files are eminently manageable in Git. And so all of my hardware designs are in git.gag.com. You can go find them if you want. And being able to sort of step forward and backward different revisions and, well, you know, it's all the usual revision control stuff, but the notion of a design tool where all of the things like footprints and schematics and so forth are under strong and distributed revision control is also pretty cool. Yeah, quality is important, I think. Yeah, so actually Keith and I have proposed for Linux Conference Australia this coming January in Wellington, New Zealand a pair of talks, one going in a great detail on the hardware design of this particular board, and then the other from Keith going in a great detail on the software stack that he put together, you know, starting from sand. He really started, you know, it's an integrated circuit guys, they start with sand and anyway. He really did start out using a USB attached GPIO board to wiggle individual pins on the processor chip and went from there to where we now have full C programming source level debugging on the target system and all of that working beautifully from a Debian system. So hopefully those talks will get accepted and we'll get around to doing this and you'll all be able to watch video feeds or look at the presentations or something later, but I really didn't do a whole lot differently on the hardware design this time around except that I used this other face of my favorite PC board shop in Denver called 66Each, which really is $66 each for four layer prototype boards up to 30 square inches. I apologize for the, you know, USCN units. And the deal is that if you buy four they throw a fifth one in free. So it's five 30 square inch four layer circuit boards shipped for about 300 bucks. It's a really insanely nice deal. I mentioned the solder paste stencil. This is my little fixture with an L shaped piece of big L shaped and a little L shaped piece of printed circuit board material is sort of registering things. The circuit board gets stuck down in there and then I flip the solder paste stencil down. I don't know if you can see but that's actually a laser cut piece of stainless steel that has the holes in the precisely right places that when you smear a little solder paste down and squeegee it through the holes, it puts precisely a uniform layer of solder paste which is powdered solder and the associated flux down in the right places so that then you can take the board with the flux with the paste on it over, put it under the microscope place all the parts and then solder it. And one of the things I did is went and bought some of these little muffin tins and labeled them so that I could stage all of the parts ahead of time because once you put the solder paste down it only has a finite working time before the flux evaporates and this solder paste gets kind of yick. So I pre-prepare all of the parts in these nicely metallic so therefore easy to keep grounded parts tins and from there using tweezers place them under the microscope and then I stick the boards down in the middle of a little electric kitchen frying pan and using a non-contact infrared thermometer to watch the temperature on the surface of the board manually dial the temperature on the pan to run it up and through the controlled soldering thermal profile. And it just works. One of the tricks here of course is that while it's a four layer board with lots of traces on the backside there are no components on the bottom of the board and just some through holes for putting connectors in which makes it possible to do it this way with a skillet. There are other approaches. There are people using little toaster ovens with closed loop feedback, thermal controllers to run the temperature profile. I have to admit I really like the frying pan. It's easy. It cost me about $20 at the local big box discount store. I'll be happy to tell you later if you wanna try doing this yourself how easy it really is to run the temperature profile because these pans have sort of a heating element sort of in a ring and my boards are small enough that when I put them in the center of the pan like this I usually do them two at a time by the way this was a test of a partial load of just the power supply components but when I put them in the center of the pan when I turn the heat on if I watch with a thermometer until the board surface just crosses the bottom edge of one of the windows in the soldering profile and then turn the heat off the thermal inertia of the pan floating up to the temperature that the ring has actually gotten to already causes it to dwell for the right length of time in that thermal window and so the process really is you turn the heat on and you sit there with the thermometer shooting the surface temperature until it crosses the preheat threshold then you turn the heat off and then you wait about a minute watching and as soon as the temperature starts to droop back down towards the bottom of the pre three heat threshold you turn it back on all the way and watch it until it goes all the way up and then with an illuminated magnifier one of those sort of magnifiers that has a light around it positioned over the pan I can watch both the temperature and visually see when the solder liquefies and all the parts solder together and so far I've been averaging one solder defect per board that has to be addressed either a short between adjacent pins on the little QFN part which is easy to deal with you just wick the solder off the edge of the chip or one unsoldered pin on the QFN where you get a teeny tiny little soldering tip and a tiny little bit of solder and you kind of fiddle with it until it solders itself and yes these have flown at high G on our rockets and survived. So anyway this was the first time I tried loading a board I did just a minimal set of parts to turn the power supply on I don't know if you can see it here but just next to the connector on the right there's a little yellow LED that's lit up saying oh yes we're happily charging the LiPo battery and there was much rejoicing. This is what one of the fully loaded boards looks like for those of you that are curious it's an inch by two and a half so that's 25 ish millimeters by 50, 60, 70 ish, 70 ish millimeters so like 25 by 70 millimeter board something like that. The green connector block on the left is six screw terminals for attaching wires that are used for the two ejection charges and the switch to turn the power to this thing on and off. Little thing up in the top left with the orange piece of tape stuff on it is a mini USB connector. The white connector in the lower left is for the LiPo battery. The four machine pins in the lower right are the debug interface. We're gonna switch that to a much smaller and cheaper connector next time around. The big black thing in the top center is actually the little beeper. It's just there for making noise. I've already pointed out some of the other parts. The thing sticking up in the bottom center is a three-leaded temperature sensor part which we also will be eliminating on future boards. The right hand side, those three pads that are side by side are for an RF connector and SMA connector but normally I don't actually put a connector on we just solder an antenna wire down. Here's one of the boards mounted on the piece of epoxy fiberglass used as an avionics sled inside of one of my rockets. And you can see the black wire going down to the lower left. That's the antenna. It's just a quarter wave length, the piece of wire that's tax-outered to the center pin. And that works just fine. At least so far we've had no trouble tracking it up past, well, 10,000-ish, well no, excuse me, 20,000 feet's the highest flight one of these has been on. So that's seven kilometers, something like that, six or seven. There are various things about this design we'll change next time around but the nice thing is we did a lot of design review of this at the schematic level and at the PC board artwork level before we sent it out. We had some friends at Portland State University in Oregon who were interested in maybe using this for a project in the future who spent quite a bit of time looking at it. Keith and I set up a lot of late nights arguing with each other over silly little things on IRC. But in the end, there are exactly two cuts and jumps required on here. We got one pair of traces that we need to change and there are two additional pull-down resistors that we needed to install. So I end up tacking two 0402 resistors down adjacent to existing ones and wiring their ground sides over. And other than that, the hardware design has just been brilliant so I'm actually quite happy with it. There are a lot of things I'm gonna change for the next board because you know, can't ever leave anything alone. But that's a cute little mix signal oscilloscope that I have. I used to work for that part of HP test and measurement which is now Agilent Technology so I do have fun toys. Little thing on the lower left that's got the red LED glowing is the little USB CP 2103 board. We were using the extra GPIO lines on to do our initial debugging. And then you know, because I play with rockets, I don't just use the milling machine to cut the circuit boards apart. This is the milling machine cutting custom centering ring for putting the motor mount tube in the middle of an airframe tube for this would have been a 75 millimeter airframe with a 38 millimeter motor mount. I do a couple of tricky things. Cutting those slots in the top of it, the three of them allows me to fit the fins in through the wall of the airframe and lock them into the grooves in the centering ring. So they're always perfectly aligned before we start putting glue on them. And some of the guys in my local club are obviously quite envious that I have tools that will allow me to do stuff like this. And again, it's a really simple sort of stupid loops and Python to output the G code. I have sort of a standardized template for making centering rings and I just fill it in for how many holes and slots and grooves and all we want. Here's cutting another one. This was actually for my first level three certification attempt. That was a 75 millimeter motor inside a 98 millimeter airframe. So the ring wasn't all that big. This is my new toy, which I'm gradually in the process of getting converted over. You saw the scale of the little milling machine. It will fit on here, the entire little milling machine will fit underneath the cutting head on this one as it's sitting right now. It's an entirely different scale. The table on this one's about that big. And once it's in place and working, this will be again controlled completely from motor amplifier electronics that I've designed, derived from a design that some folks had posted out on the net using the EMC machine control stuff running on a Debian box. So once again, it's another sort of area playing around with hardware. So that's really all the sort of things I had thrown together. I would at this point be happy to take any other questions or we can talk about what other people are working on. Looks like we still got 17 or 18 minutes left in the hour. So. Well, are you aware that the Linux Journal has an article about rockets and they're using this LPC controller and USB to attach some accelerometers and things like that and they use some real time stuff? Yeah, I'm actually I'm familiar with that. In fact, I believe that the article you're referring to was written by one of the folks who's associated with the team at Portland State University that Keith is one of the mentors of. There may be another one as well, but I know of that article and so I actually know quite a bit about it. It was serendipitous, it was not intentional, but my choice of the LPC 2148 was kind of interesting because when I did the first board, that's the same chip that the Portland State students chose to use for their sensor electronics board. They've changed a lot of things. Their project is incredibly more complicated than what I'm trying to accomplish. They actually have aspirations of controlling the rockets orientation during the motor burn using a Debian system running on the rocket, which is a slightly different problem to solve, but they've got lots of students and I'm just me with a side order of Keith, so. Yeah, it's fun. It's also been really fun to me recently since I started talking about all this stuff a couple of years ago. John Oxer and some other folks in Australia have been playing around using Arduino boards with various sensors to record interesting information about rockets in flight. It's really fun to see other people experimenting. Nobody yet has taken on anything quite as nutso as this. Actually, let me bring up the design tools real quickly and wait for my disk to wake up. There we go, so this is just the schematic editor with all of its gnarliness and schematics are schematics, right, but the user interface on this is moderately clunky sometimes, but it does seem to do all the right things. The printed circuit board tool, the version that's actually packaged in Debian is the stable release from the GEDA guys, and so it looks really sort of boring and 2D. I can turn off a couple planes and you can see more of the traces, but so the interesting thing is if I actually get rid of the, let's leave that. If I take the silk off, you notice this board isn't nearly as dense as you might think it is when you look in terms of traces. There's a whole lot less traces on this board than you might have thought just from looking at it, but I have to tell you, having spent time now under the microscope quite a few evenings loading parts and inspecting them, I don't know that I wanna get a whole lot denser than this at home. The new version of PCB on a different branch is really wonderfully different and better. They've switched to using OpenGL to render this and so now all of a sudden you can do things like actually see using translucency all of the layers of the circuit board as you're designing and as you're shoving copper around, you can actually see what's going on on the other layers because while the current tool is very, each layer is very opaque, you really sort of can't see what's going on around you while you're doing something. The new version, which is actually being worked on largely by a fellow at Cambridge is really just stunningly wonderful and I'm looking forward to seeing that new branch show up in the main line. Yeah. Just out of interest, is that tool rip up and relay or push root? It depends on which branch of the code you're playing with. All of the stuff that I've played up is rip up and reroute and in fact, I don't consider the auto router unhear usable for more than two layers right now and even there it's very... Personally, I wouldn't touch an auto router with a barge pole. So the interesting thing is I've had experiences working with tools that were good enough that sort of figuring out the right constraints for letting it route the board was the right answer and allowed you to sort of tweak the design at the schematic level a lot longer in the process without as much pain redoing PCB stuff. This board is 100% hand routed and so any ugliness you see is because I got tired of dealing with it and once it met all the ERC and DRC and DFM rules, we sent it off and lo and behold, the only thing we screwed up is there's one pin on the SPI memory chip that we really needed to hook up that we didn't anticipate needing to hook up and there's a self-test feature on the accelerometer we decided we could live without so we cut those two traces and put two jumps in to solve that problem and on the circuitry that we used to detect whether there's continuity through the electric matches that we used for igniting ejection charges for putting out the parachutes on the rocket, I just, one of those complete and utter mental lapses didn't think about what was gonna be happening in the sense circuit and we needed two more resistors to make those circuits work right. One too many impedance games in my head in the middle of the night I guess but other than that I'm actually very proud of this board because we've built and flown four of them out, we unfortunately now have lost two of them. Keith had a rocket that didn't come home after being flown at brothers in Eastern Oregon and the Saturday before coming here in one of my son's little rockets would have helped if I had remembered to put the tape on the nose cone. At Apogee it successfully deployed the drug parachute and it also successfully separated the nose cone and the circuit board full of electronics including a GPS receiver and all sorts of other stuff went flying out ripping the wires to the power switches it went. My son who was sitting there with the Yaggy antenna aim sort of in the right direction for the rocket hooked up to the little receiver hooked up to the notebook which was running Keith's ground station software that uses festival to do voice synthesis so that we can get reports during flight without having to look at the screen which is totally cool. He hollered over at me and he said, dad, it just said the rocket might have crashed. And I said, no it didn't, it's right there, I see it. I was watching it come down and when we recovered the airframe and discovered that the nose cone wasn't there nor was the circuit board full of electronics I had to do a mea culpa because I'm the one that was supposed to put the tape on to hold the nose cone on and on the positive side if we have to find a silver lining in every cloud we at least now know that the crash detection in the ground station works. So, because while the rocket didn't crash the electronics most certainly did. It's somewhere in the wood south of the launch site near Pueblo, Colorado but I don't expect to ever find it. I've let the club members know and I'm sure people will keep their eyes out for it but it's a little bit of plywood with some electronics on it that came down hard and tall grass, so who knows. So yeah, I did a bit of auto-routing with PCB this was several years ago now and obviously the program's been somewhat improved since then but even so I found yeah, it wasn't any good for the really big wide buses or anything like that but for the fill-in stuff it was quite reasonable. You give it a sort of a bit of a start helping hand here and there and it took all the tedium out of the auto-routing. I could do the sort of big bits were easy enough to do by hand and then the sort of leftovers it dealt with for me. So this one was completely auto-routed by comparison. There's not a single manually traced trace on here and if you look at it it takes all of about three seconds staring at this zoomed up with some of the obstructions turned off to go my that's stupid. Now the flip side is that it very faithfully rendered the schematic. All the problems I had turning the board on were in fact due to schematic level errors not inconsistencies between the schematics and the PC board artwork. So I'm hesitant to speak too harshly about it. It's certainly correct if not wonderful but it was utterly incapable. So the first thing I ran into is that if you have a four-layer board it has no concept of what to do with the inner layers and if you want sort of one to be ground and one to be 3.3 volts and it has no idea that it could actually take all of the pins that need to attach to those and do thermal relief via connects and things like. It has no clue about any of that. So for routing traces on planes it's kind of okay but when I realized how much pre-work I would have to do all of which would require manual touching up any time I changed anything on the board I sort of leaned back and went well this is silly I'll just do it all myself and in fact Keith commented a couple of times about how impressed he was at how quickly the routing of the board actually went once I sat down and I spent a lot of time pushing and shoving things around to get a component layout that would work for me and for various physical constraints the accelerometer axis has to be oriented the right way and things like that but once we got that actually routing the board wasn't all that terrible. Yeah this question back here near the there's only one working mic okay and we're getting close to being out of time so maybe we should take one more question and wrap it up huh. I'll be around until Friday morning so happy to have more hallway conversations about this. I really wouldn't worry about auto routing at all we use very expensive PCB tools at work and 99% of the time it's all manually rooted. They just don't trust pushing shift just doesn't work. It still does silly things. It just don't bother me it's not there yet. It's an immensely complex problem and there have been some interesting Google summer of code and related projects the last couple of years with people playing around with entirely different conceptual approaches to try and solve the problem. I'm always fascinated to see the results of the work and they often do pretty things until you ask them that yes but what about all the other sort of normal and expected behaviors that I don't see here and the answer is oh well yes they're much too hard to actually implement so. Yeah and basically if you can't express the high level thought that needs to go into for example these two lines need to be matched. These two lines must be no longer than 3,000ths of an inch different. These lines have to be wrapped in a ground plane you just can't explain that to an auto route. So 13, 14 years ago when we were building multi gigahertz front ends for oscilloscopes and logic analyzers at the old HP Colorado Springs division we did have an auto router that we did trust to do boards using constraint based design. The problem was that I will never in my life be able to afford a license for that tool and so even it's just completely irrelevant and it's such a hard problem and it requires so much intelligence in creating the constraints that at the end of the day for projects of this kind of scale I'll happily put the copper down myself. Well anyway thanks very much for your time and attention. Do we have time for it? Oh we actually do we have three minutes left so. Yeah I was just wondering how you work out how much space you need. Oh I suppose you don't need to get your soldering iron in on this particular design. So I always find it when trying to lay things out it's very hard to know how it's gonna work in terms of actually getting your soldering iron in. Well I have to be honest with you that's one of the things I look at when I do my paper printouts of the one-to-one artwork and stick parts down. I'm constantly thinking about it and I always try to buy at least some samples or get some free samples, a lot of free samples of parts before I go to do the board design because that gives me a sense of heights of things and so on. I will admit that after I thought I was done with this design the reason I didn't get to spend my Christmas holiday last year loading the first boards up is that couple of the guys in Portland beat me up pretty hard about some of the physical spacing issues and I ended up doing quite a bit of sort of squishing around on the board to open up a little bit more space between certain things and a consequence of that was a heck of a lot of re-manual routing of traces and trying to sort of you ever once get to the point where the electrical and physical rules checkers are all happy at that point the emotional cost of moving anything and then having to rework it and trying to get back to where you thought you were before is high. And overall whilst the skillet thing was quite entertaining did you find that worthwhile over just paying somebody to load the board? I will do it again for boards like this at the sort of quantity one to 10 kind of scale. There are people all over the rocketry community in Colorado who are really cheap to know when they'll be able to buy these boards from me and how much they'll cost even though I never really set out to do that. And it's absolutely clear to me that I will never sell somebody a board that I did in my skillet. It's just too much work. When I do two boards at a time it takes me about an hour to prep the parts, to sort of count out the right number into the bins and get them all sort of ready to place. And then it takes me about an hour to do the solder paste, the parts placement, get them in the skillet and solder them. So my net labor effort right now is about an hour per board and at what I think I'm worth that's not cost effective nor is it effective for my sanity. So since I originally built four full up flight boards, two partially loaded boards to use as the receivers on the ground, we've now lost two of the flight boards and I've decided for myself that I need to build another six or eight before our big launch event in early October. And that will probably be about as many as I'm willing to do of this generation of the design. The plan then is we're actually gonna move the GPS chip onto the board, losing the beeper and a thermal sensor and stretching the board another quarter of an inch in length. And to do that, I'll redo the artwork, we'll relay it out, I'll use the skillet to do a couple of them to verify the design and then I don't intend to do any more of this generation by hand. So our time is out. Thanks very much for your time and attention. I'll be around the rest of the week.