Posts Tagged ‘Scope Traces’

Tektronix 564B Scope Repair, Part 1

Sunday, June 17th, 2012

So, I have a real thing for old Tek scopes.

This is due in no small part to the gospel preached by Jim Williams (you can get the cliff notes for said polemic here as well as a lot of other great scope-related stuff and some repair notes).

More personally, it’s also due to the fact that my first scope was a Tek — a 454 that I snagged from trash pile at my college job before I knew an opamp from an opcode. I learned how to use a scope by fiddling with that thing, and I broke it a lot being a careless kid (mostly in shipping). This meant I had to fix it a lot, too. My first job out of school was repairing stereo receivers and guitar amps, and fixing that 454 was both alien and awesome. Alien, because it was way more complicated than a Fender Twin, and awesome because the service manual was head and shoulders above any repair treatise I’d ever seen, whether it was for a piece of electronics, a car, or a piece of software. It really wanted you to understand the instrument. I loved that manual.

So later, once I started drinking the Williams kool-aid, it didn’t take a whole lot of convincing that the old Teks were “intellectual integrity” reified. I won’t bore you all with the details — Jim did it better anyway (as does Kent at his excellent site).

Anyhow, I bought an old Tek564b off Ebay a long time ago and had it sitting in the project pile. I got it because I was fascinated by the idea of the Analog Storage Oscilloscope. In a nutshell, an ASO allows you to save a trace on the screen of an oscilloscope by using some special phosphors in the CRT and a set of special electron guns. You can save any number of traces (two is easy, any more and it gets tricky) to compare or photograph. Since the stored output is not sampled, it essentially has infinite “bit-depth”, and it was built at a time when semiconductor memory was still on the drawing board.

This particular 564 and its plugins had a few problems, but one really stood out as a great example of the interrelated-ness of systems inside electronic equipment. I made the following video detailing this problem before I fixed the scope. At the time, I didn’t know what was wrong with the scope but I had a pretty good idea. I’ll give you a hint — if you are thinking along the same lines as I was at the end of that video, you’re wrong :-)

In the coming weeks I’ll post the actual repair, but play along at home and see if you can figure it out.

Color Me Baddly — New Hit Single “Arbitrary Phase Shift” Out Now.

Thursday, April 22nd, 2010

So you can see this PLL video synth guy working his magick here if you look at the scope. That’s a reference colorburst on the top trace, and the bottom trace is that same signal being shifted back and forth around the reference. That’s how NTSC is fixing to get its hue on.

Doing this is the hardest part about generating a color video signal from scratch. “Real” color encoding devices (in NTSC) use something called “IQ Modulation” (really) or QAM (Quadrature Amplitude Modulation) which is what I will shoot for in the next version of this.

I mean, real devices now use processors and ASICs, but.

A close up of the board after he got stuck on some hot pink acrylic.

xo
TB

WTPA v0.98 Review and Shakedown!

Wednesday, March 18th, 2009


So I got the test PCBs Monday, bare as the day they were born. The last couple days I’ve been going through all the circuits and checking the hardware for problems, bugs, things to optimize, and stuff that would otherwise be Bad To Deal With in a run of 200 units.
The good news: The third rev of boards does more or less all the stuff it is supposed to, and has most of the performance improvements I’d expected. However, nothing is perfect.

First, let me give you young nerds a piece of advice. Become rich. Then use your dough to buy prototype boards that have a soldermask. Good lord. You will save yourself hours in debugging stupid soldering problems, and gray hair in debugging other problems which you may at first erroneously attribute to solder bridges.
Bare PCBs do offer an advantage in that they’re easy to probe wherever you need to, and all that exposed tin makes it easy to solder fixes in, but in general they will make you crazy at least once with some weird connection that you didn’t mean to make. That was the first round of problems I had to solve.

With those out of the way came the first real, serious, problem: The VCO. The VCO got incorporated in the last board rev and I dutifully wanked on it a few times and then set it aside to deal with other problems. This in retrospect was quite stupid, because if I had paid more attention I could’ve saved myself a lot of time and a little false advertising.
It turns out that the VCO design I used (ripped wholesale, with a few changes, from Horowitz and Hill p. 240, who I’m pretty sure in turn ripped it wholesale-with-changes from the LM324 datasheet) is good in many regards. It is single supply and simple. It requires only opamps and a fairly generic transistor or FET. The problem came in trying to tune the monster over a wide range. Though the TLV2474 opamps I’m using are pretty good at RRIO, they aren’t perfect.
All the drama occurred when the CV was some small number of millivolts from the bottom rail. The ’2474s don’t really want to drive that low, so I made the little Merce Cunningham looking mess of dancing resistors (pictured above) to help pull them there. Simple enough, but a little ugly.
Approaching REALLY closer to the rail (say within 10mV or less) the VCO stops responding in anything approaching a linear fashion and gets jittery and tends to drop out. Normally I wouldn’t care and would just bias the CVs above 10mV, but that ends up being a significant amount of tuning in the low-sample rate range. Which is silly. _NO_ op amp is that good, really, and no good design should try and expect one to be assuming it isn’t colliding particles or something.
With a marathon all-nighter / all-dayer the best performance I could get from the VCO was a not-so-great 2kHz to 16kHz, a tuning range of 8-to-1. This sucks. In retrospect the humble relaxation oscillator of the first WTPA did something like 60-to-1.

I fiddled around trying to get another VCO design breadboarded for a little while, but all the good ones I know use an OTA. I’ve seen some designs with analog switches and of course plenty with specialized VCO ICs, but I had three op amp sections and a dream. The final decision was to drop the VCO, return to the traditional relaxation oscillator, and reduce the opamp from a quad to a dual. Even Saving You Money(tm) in the process.

For those of you crying “Noooo! How will I make it talk to my Modular?” first let me say — samplers usually don’t talk to modular synthesizers, you’re spoilt. Second, let me say, because I love you, and because that’s a weird and cool idea, I’ve worked out a way to make the sampler’s oscillator clock sync up to audio inputs — so you’re losing a VCO, but you’re gaining a sync! This means that now you can synchronize your samples to your vocal line, synth line, guitar, or any signal in the audio frequency range.
This should work pretty reliably — I’ll know soon. I can no longer say “The only sampler with a VCO” but I think the new effect will probably be cooler anyway.

Everything else: I found a hardware bug in the in-circuit serial programming section related to changing around the data bus. I fixed with some pullup resistors. After that I made sure the switches and LEDs worked with the new bus structure. It’s technically still possible to PWM the LEDs and maybe I’ll do that sometime before release, but it’s low on the list. Next I quantified the bus-turnaround time related to the bus routing changes, and they’re almost invisible. It took some NOPs in the ISR, but I bet I can optimize those out later. I tested the MIDI output — so far WTPA has only received midi messages. But today it took charge, such as it can.
Finally, I took a look at the audio path. This was important and enlightening. Using a function generator and a fancypants benchtop meter set to take dB readings, I figured out the f3dB points for all the different audio paths through the system. They were pretty good — the first reading showed the audio range of the sampler’s pass-through and DAC paths to be about 14Hz-356kHz (pictured above). Not bad!
Still, as a rule of thumb (also ganked from H&H) I try and position f3dB points 10 times greater or less than the frequency of interest to avoid phase shifts in the audio range. You know what they say about phase shifts, right? “They make for weak ass west coast bass, not that Miami shit.” That’s what I heard them say.
Anyway, I got the range for those paths to be more like 2.8Hz to 370kHz with a few changes. In the overdub path I managed to actually DC couple some of the connections which means that there should be no loss in that path relative to the rest of the sampler.
Giving it the listen test, it sounds Really Good. I’m happy with the audio quality. It’s nice and quiet where it should be, with good frequency response, leaving it free to Expose Da Crust in all the important parts.

Finally, there was one more valid thing I found. In an effort to keep impedances (and costs) low I settled on two values of potentiometer for the final thing — a 500k audio taper for the input and output amp gain controls and 1k linear pots for everything else. In all the audio controls on the board, the 1k pots have a resistor from the wiper to ground to approximate a logarithmic curve (and make your life silky smooth). This means that the total resistance in some places in circuit ends up being pretty darn low. Although this does keep noise pickup low and the top f3dB point high, it also ends up working out the driving opamps something fierce. My hot rail-to-rail output doesn’t swing nearly as rail-to-rail as it used to. This of course means less usable bits in our sample. I can fix this a little by chaning the tapering resistors on the pots, but the right thing to do would be to bump the pots up to 10k and scale their related circuits. Easy enough, if I didn’t have a boatload of pots on the way from China already. The ENOB isn’t terrible, but it could be a little better. Hey, what’s a design if there isn’t room for revision?

Lastly, before I leave the soapbox, I’d like to take this opportunity to show this off as yet another example of an old TMB truism: Analog Be Harder Than Digital. Not better, but harder, and perhaps by association more noble and romantic.
While I was frantically breadboarding crappy VCOs, I came across this app note in which that continuous font of inspiration, Jim Williams, designs like 10 analog circuits which are complicated enough that they make my head spin even after reading his explanations, and he figures them out for shits in his garage or something, while on vacation. There’s a badass VCO in there which tests my understanding, and whose makeup is also (or consequently?) not quite right for WTPA.

Oh, and it also made me always remember to refer to VCOs as “Voltage to Frequency Converters” again. Saying VCO makes you sound like Jean-Michel Jarre; saying VFC makes you sound like a curmudgeon with a white beard and a bunch of Teflon caps and bandgaps. Who would you rather be?

Hello, big bag of Chinese boards? Perhaps you would like to come over?

Xoxoxo, TMB

WTPA v0.95 Sampling, Jittering

Tuesday, December 16th, 2008

WooHoo!

Today is momentous. It samples; from the shoulders of giants it does. I even made a snarled up little video of the first experiment in the act. Scandinavians vs. USA in the bass-less wastelands of Camcorder Flats. Or perhaps holding hands: Glasnost or whatever the equivalent is with stank cheese, progressive design, and socialized medicine.

I tell you, I am a sentimental mess like Lawrence Sterne never made. Honestly, when the first phrase of music kicked out of this thing I almost peed. And then I had a beer or two, which explains the tone here. However, I will stand by this: The New Version Sounds Great Or At Least Slays The Shit Out Of The Old One. I think this mostly has to do with the noise floor not gumming up the quiet parts and _maybe_ some improved amp design.
It’s not perfect by any stretch: I still haven’t hammered out anything in the way of new features, and it isn’t benchmarked yet (I’m very curious to see how much time it spends in the audio ISR) but it IS bumpin, and this test has been great fun. The jitter generator works and sounds weird in an exciting way BUT is tweaky and needs to be tuned in both the analog and firmware domains. I think it’s a keeper, though, just from the initial listening.
As I had hoped the noise floor is pretty good! It’s not annoying, or really even noticeable! I can still see some gnarls on the scope, though, and will hunt them to their holes and Make Reckoning. Like “Reckoning” was “Clean” or “All”.
AND there’s more than enough sample time to hang yourself with the new RAM. Booyah.
Next: MIDI, and ferreting out any remaining hardware bugs and revving the board to the FINAL VERSION!

WTPA v0.95 Noise Floor and Programming Victories

Wednesday, December 10th, 2008

Yesterday was a good day for sampler technology!


Three really important things got done; two are improvements on the old sampler:

First: the serial link between the MCUs is now totally robust and fast. As I suspected the real problem with the serial before was the internal RC oscillator on the helper MCU. For now it’s been replaced with a 7.3728MHz crystal, but Digikey just rolled up with some 18.432MHz crystals this morning which I’ll be using instead, I think (these particular and seemingly-weird frequencies are exact integer multiples of common UART frequencies, and allow 0 baud rate error).

There were a couple other little forehead-smacking moments where I got bit by casting errors and other general programming bugs but they weren’t really bad once the UART worked. Like for instance — if you declare a variable “theByte” as an unsigned char, set it equal to ~’p’, and then later check for equality with ~’p’, it comes back false. Know why? Know how to fix it? I do now. :-)

Second: It makes audio! Since I already put a picture of a noble sawtooth wave up a million years ago and since the old sampler definitely did this just fine, this is less exciting. BUT it does mean a couple things. The new DAC works, and the analog sections (mostly) work and all the volume pots are the right way around. The VCO works, and the jitter generator — Oh boy does it work! All these need tweaking but they’re all rocking solid.

Third: I spent a long long time fiddling with the PCB and tracking down noise demons. This, I am happy to say, was a big success and a _huge_ improvement on the old sampler!

Pictured above are some example waveforms. On the left is a picture of the output of the old sampler with the preamp gain, through level, DAC level, and master volume all the way up. You probably can’t read the V/div knob on the scope, but this waveform is unmistakably clock noise which has capacitively coupled into the audio path and has been amplified such that it is ~220mV at the output. Yikes! This is really bad. Those of you who’ve heard the original WTPA know that this whine is one of its not-so-good-akshully characteristics.

The photo on the right is a noise picture of the new sampler after a little screwing around by me. Under full-gain, worst-case noise conditions, the new sampler has approximately 4mV of clock feedthrough. This is 34.8dB of improvement!

There are a couple noise sources in the WTPA family. One source of LF noise is the LEDs pulling current spikes from the supply when they turn on. This is at its worst when running from a not-so-low impedance supply (like a 9v battery or worse an STK500 through the ISP header) and did manage to find its way into the audio but it wasn’t terrible. The best fix for it was to improve filtering at the op-amp reference terminals (the VDD/2 level at the non-inverting terminal of a summing amp, say) since the noise that got there got amplified by the circuit’s gain. This helped for sure.

By far the worst noise source is clock bleedthrough, although the new design also shows bleedthrough from the white-noise generator. Improving this was a little trickier. A couple things made a big difference. Varying the gain on the preamp as opposed to keeping the gain fixed (and high) and attenuating its input level was one. Re-doing the design with better ground and signal routing mattered A LOT, although I still had to rip up a trace with an exacto — one poorly-thought out connection added nearly 100mV to the output noise here. Filtering the analog references better helped deal with this noise a little, too.

Finally, I think a ground plane (or two) are in order for the final hardware revision. I also think associating the VCO and Jitter Generator with the digital supply lines (or at least isolating them from the quiet amplifier analog supply) would be a really good idea. I might even use a choke input to the quiet analog supply. We’ll see. Either way, this statistic is already A LOT better than it was, and I’m excited.

Next: Sampling / RAM / throughput rate test, and more fun analog tweaking.