1/ Letting Projects Go: A Thread in 71 Parts

In November 2018, I attended the Hackaday Superconference in Pasadena, CA, where I was lucky enough to give a talk. I had presented at academic conferences before, but this, my first hacker conference, was something completely new.
2/ These weren’t the academics for whom I had lost almost all respect during my three aborted PhD programs; these were people who worked on stuff because they loved it, because it was different, because they were compelled to it. Amateurs, aficionados, enthusiasts, hobbyists.
3/ In other words, Hackers. These were my people; I had found my tribe. As I stepped off the stage, intoxicated by the experience, I vowed to do whatever it took to get back up there next year.
4/ On the flights back east, I scribbled down ideas for projects that I might be able to pull off in a year or so.
5/ I have a suspicion that a lot of my project ideas are truly silly at their core – I like them simply because they’re different, but they’re probably different because they’re impractical for some reason or another. I may like them *because* they are impractical.
6/ It didn’t take long to realize that the only possibly significant thing I had been thinking about for a while were sampling oscilloscopes.
7/ I had been interested in them for over fifteen years; I had bought a 250 MHz digital scope with a maximum 100 MS/s c. 2004 and learned the hard way about the capabilities and limitations of these instruments.
8/ And even before that, in 2002, while working on a doppler radio direction finder, I had learned about using diodes for high-frequency switching, and found out about their use in sampling circuits.
9/ In any case, I had committed to making a high-speed sampling scope of some kind by December 2018 because I bought an ebay 1 GHz Tek scope to work on the project on the 13th, and mentioned the project to the whole Hackaday team in an email on the 18th.
10/ I’ll take the briefest of detours here into the world of sampling oscilloscopes because it will help explain why I’m not working on this project anymore. What the hell, if I’m going to post a thread in a gazillion parts, I might as well.
11/ Sampling oscilloscopes are terrible, awful, nasty, frustrating, and amazing devices. You don’t use them unless you have no choice.
12/ If you’re lucky enough to have a signal that repeats, or you can find a way to make it repeat, you can make seemingly impossible measurements – like capturing a 20 GHz waveform with a 100 kHz sampling frequency.
13/ To do this, though, you have to navigate a host of issues that would be completely foreign to users of even the bargain rigols and siglents of today.
14/ The classic sampling scope is typified by the venerable Tektronix 11801, dating back to the 1980s, which is still the go-to instrument for those without six-figure equipment budgets. You can get a 50 GHz sampling head for it, but heaven help you if you do.
15/ If you’ve used one, you know how challenging it can be to get what you want out of what was, in its day, a state-of-the-art instrument that originally cost as much as a BMW 3-series. Without sampling heads.
16/ You can get one with a selection of sampling heads on ebay for around $1500 today, which I did as soon as I realized the 1 GHz scope wouldn’t be sufficient.
17/ Inside the classic sampling scope, there are from one to six very fast Schottky diodes that are used to sample the input signal. These diodes can switch on and off in a few picoseconds, and in doing so, transfer a sample of the input signal to a small capacitor.
18/ The bandwidth of the instrument is basically limited by how fast the diodes can switch, and the speed of the sampling pulse you can generate to drive them.
19/ This sampling pulse is in turn generated by another special diode, known as a step recovery diode (SRD), or snap diode. SRDs can turn off amazingly quickly, producing the very fast edge required for sampling.
20/ Setting up a SRD for this pulse takes some time, however, and this is one of the factors that limits the sampling rate of these scopes to the hundreds of KS/s or so.
21/ This also necessitates a pre-trigger pulse; you need to trigger some number of nanoseconds before the part of the waveform you want to capture. As was common with analog scopes, a delay line – typically a special coaxial cable -- is used to get this delay.
22/ Just for completeness, I’ll mention the other special diode you find in these scopes: the tunnel diode.
23/ These diodes were used in countdown triggers that allow you to synchronize the scope’s triggering with a GHz-frequency input signal: a single oscillating diode locks to a subharmonic of the input signal and generate a synchronous trigger for the scope.
24/ The problem with these special diodes is that they have become difficult to find over the years. While you can still source excellent Schottky diodes for sampling, SRDs and tunnel diodes are quite rare.
25/ I really wanted to design a sampler with parts you could buy from DigiKey or Mouser, so I initially started with a design that used Schottky diodes in the front end, and would use modern semiconductors to generate the sampling strobe pulse.
26/ You can get off-the-shelf parts, such as laser diode drivers and CML gates, that are capable of generating edges down into the 30 ps range or so relatively inexpensively.
27/ Bu,t they’re only really capable of generating relatively low-voltage pulses, probably not enough to fully turn on the sampling diodes.
28/ I experimented with many pulse generators and front-end typologies, but eventually walked away from this approach because while I think it’s promising, it wasn’t going to yield results before the conference, which was my immediate goal.

Does anyone see the problem yet?
29/ It turns out that there’s a different way to sample high-speed waveforms, one that doesn’t require unobtanium diodes. You can get blazingly-fast latching analog comparators made on SiGe.
30/ These devices are readily available with fantastic front-end bandwidths: a crisp $20 bill will get you 8 GHz.
31/ With one of these in hand, you’re ready to make the equivalent of a successive-approximation analog-to-digital converter, except that you’ve also got the latch port, which when driven with a strobe pulse derived from a trigger input, can synchronize the sampling with the…
32/ …incoming waveform. This latch port doesn’t need a large voltage swing from the strobe generator like the Schottky diodes; normal ECL or CML logic levels will do.

I abandoned the Schottky diode analog front end designs in favor of a comparator-based sampler.
33/ I wasn’t entirely happy about it. It felt like a cop-out. But, it would get me results for the conference. There’s another piece of a sampling scope I haven’t mentioned yet – the timebase. In the basic design, the timebase is a simple adjustable delay element.
34/ An incoming trigger event gets delayed by the timebase, which in turn activates the sampling pulse. By adjusting the delay time, you can have the sampler capture any particular part of the waveform.
35/ The delay generator I used allows for a 10 ns sampling window, essentially a fixed 10 ns sweep.

So, you’ve got ths 10 ns sweep window. You have to get the signal of interest into that window.
36/ It's not like the 11801 where you can go out some microseconds to find the part of the waveform you want to see -- you've got to arrange cables as delay lines to get things centered on the "screen."
37/ It's not very practical, and while I might be willing to put up with it if I had no other options, I'm not sure other users would be.
38/ I had a plan to add another delay generator to allow an extended sweep when you are using the internal clock -- like on the 11801 -- and this is probably doable, although it doesn't allow a wider window for triggered sweep.
39/ Allowing a wider window for triggered sweep is the really difficult part. I found a reference at one point -- it escapes me now -- to how Tek did it on the 11801. They used a custom IC containing a gated ring oscillator plus a counter.
40/ This oscillator can start up with incredibly low jitter on the incoming trigger edge, and provides the rough timing that is then fine-tuned with their ramp-based timebase.
41/ I've made a few attempts at duplicating this with off-the-shelf parts, but haven't really made it a priority. I think there is a lot of work involved in making something like this.

But, I had something working. Barely. And it was good enough for the Supercon talk.
42/ Along the way, I had to figure out the intricacies of high-speed design; something I hadn’t done before. Armed with the 11801, I send out prototype after prototype to test verious ideas and techniques.
43/ I didn’t have time to serialize the experiments, so I always had several designs in flight at any one time, designing new PCBs and sending them out to be made before I had tested the last ones.
44/ I made many, many test PCBs and prototypes to test out parts, footprints, and sub-circuits. The work consumed the large part of a year, and cost several thousand dollars in equipment, PCB fabrication, and parts.
45/ I think to work on a large, ambitious project by yourself probably requires an unhealthy obsession with the subject, at least that’s been my experience. If you don’t have one at first, you’ll develop one as the project progresses.
46/ How else can you devote the money, energy, and most precious of all, time, that’s needed to keep moving? So, while this might be a necessity to make progress, there’s an obvious problem. You have AN UNHEALTHY OBSESSION with the subject.
47/ In retrospect, this effort probably stalled for a few reasons. First, the goal really was a proof-of-concept, which I achieved. This project, like most of them, seems to follow an 80-20 rule.
48/ I spent about a year getting to where I did, which was at the demonstration or early prototype stage.
49/ If you saw my talk at Supercon 2019, each example was done with a different firmware, different arrangements of cables to get the various delays required, and a lot of patience, and sometimes hours of averaging.
50/ Getting this to be a "product" would take the other 80% of the time; and I don't have another four years to get it to that level. It might not take that long, but I suspect it could.
51/ Somehow, in my mind, though, this became the new goal – I was a victim of scope creep (see what I did there?).

I have never made money from hardware design. It was never my day job; I did firmware.
52/ So, I saw a bunch of broken hardware and had to convince hardware designers it was their fault, but I never got paid to design any myself. It’s always been a hobby; I don’t have the professional credentials to land a job in the field.
53/ So, I can’t even say that side projects are good training for a legit contributing-to-society job. It’s got to be just for fun. And this isn’t fun anymore.

I didn’t respond well to getting stuck on this project. I stopped reading Hackaday. I stopped writing Hackaday.
54/ I probably could have negotiated $250 for this thread as an article, but I didn’t. I had promised to send part of this discussion as an email to someone on April 17th, but never did: this lingering commitment is why I’ve pasted this essay into a zillion tweets.
55/ I withdrew from most things technical, and started tweeting about nonsense like interesting spiders I came across in the garage. I tried to get started on other projects, but couldn’t build any momentum.
56/ The year is 2020, so there aren’t physical conferences to avoid. Instead, I was invited to virtual hacker meetups, then didn’t go.
57/ I hung out a little with @SophiKravitz, also stuck on the East Coast during COVID, who was a great comfort, as she definitely “gets it” about project baggage.
58/ And I talked a lot with @MLE_Online, a continent away, who has an absolutely amazing ability to actually complete projects, then move on. I am still trying to figure out how she does it.
59/ What’s kept me from continuing work on this? I don’t know. There are plenty of challenges left, but they don’t seem fun anymore.
60/ Besides the technical hurdles, there's the support aspect. I already spend a decent amount of time answering questions about the design for interested people, which I'm happy to do. But, if the thing became any more ”real” you couldn't pay me enough to support it.
61/ I've already had people asking me how they can build one because they think it would make a good first oscilloscope. It wouldn’t. Absolutely not. But, if it were available for a little more than $100, how many people would buy it as one? What a disaster.
62/ Those of you who have used a commercial sampling scope: can you imagine someone using a much more limited version of the 11801 as a first scope??!
63/ People are used to the internal triggering and niceties you get for a few hundred dollars with the rigols and siglents of the world. I'm not sure anyone would willingly put up with the pain of such a design unless they had no choice.
64/ I mean even on the 11801, the pre-trigger delay and the other odd aspects of the sampling architecture sometimes make measurements a challenge, but you put up with it because WTF else are you going to do?
65/ People have volunteered to help on the project, but I don't think this is feasible for a few reasons. First, I guess I haven’t made this clear elsewhere, but the real problems are with the timebase.
66/ There’s an army of KiCAD aficionados and firmware people waiting to contribute, but without a more flexible time base, this probably isn’t practical.
67/ But maybe more importantly, I was an engineering manager when I worked for Cisco, and I hated it. I'm much happier in an individual contributor role.
68/ Unfortunately, to get a team to work on this project would mean stepping back into a management role, and while I could stomach it while vesting stock options back in the day, I'm not sure what could possibly motivate me to do that again, even in an informal setting.
69/ There’s a feeling with open-source projects that you owe the community something. You don’t. I feel that all of this is keeping me from moving on to other things. I spent a year of my life in limbo over this damn thing.
70/ I’m out.
71/ Having said that, if anyone wants to pick up the project from where I left off, that's cool with me. I’m leaving this thread open to comments, but I won’t be answering questions.
You can follow @tedyapo.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: