Batch of General Purpose H-Bridge PCBs Now on Sale!

I’m working on a new CM600 DRSSTC project, so in order to stir up some funding, I’ve finally decided to sell off some PCBs I made for my smaller TO247 IGBT coil last year. They are now available on eBay here.

Here’s an example of a DRSSTC I built with this board (but you can use this PCB for basically any purpose):


And here’s a very simple high voltage SMPS with the H-bridge board driving a homemade ferrite transformer. The driver is a TL494 and some gate drive chips deadbugged onto some blank copper clad board in an afternoon:

The boards are a derivative of the general purpose H-bridge design that I posted about in 2013, which I’ve had many requests to sell over the years. There are a few notable improvements that I’ll document here along with the rest of the design.

Key Features:

  • H-Bridge with four spots for TO247 IGBTs or MOSFETs
  • Gate protection network on each gate
  • 0805 and 2010 dual package landing pattern for gate resistors
  • 1.5KExxx series TVS across each TO247 device
  • CDE940 series snubber capacitor
  • Mounting space for two 1″-diameter GDTs
  • SMA connectors for GDT drive signals
  • Voltage doubler input with two TO220 diodes with heatsinks, two 10.16mm grid, 35mm diameter bus capacitors, and bleeder resistors
  • 5mm x 20mm fuseholder
  • 10AWG holes for external DC bus input
  • 4oz copper on both sides with low inductance laminated bus structure

Digikey Bill of Materials (Excel file hosted in Dropbox)



Top side scan:PCB_Hbridge_FT14_Top_0001

Bottom side scan:PCB_Hbridge_FT14_Bottom_0001

CAD files are available upon request. Please send in any feedback you have so I can improve future versions of this board.

Currently, there is one known issue with the board; the labels on the mains input connector are wrong. They read “GND (GRN), NTRL (WHT), HOT (BLK)”, but they should read “GND (GRN), NTRL (BLK), HOT (WHT)”. Basically, the ground, neutral, and hot connections are labeled correctly, but their standard wire colors are not. Neutral is black and hot is white, not the other way around.

IAP Project: 3.6kW Spark Gap Tesla Coil

Sparks 6 (PDU Unballasted, 5.5' Target, No Discharge Rod)

As per my usual protocol for these sorts of things, I decided to build a large spark gap Tesla coil this IAP (read: winter term) after I finally collected all of the necessary components through a couple years of hoarding and one lucky find from a dorm basement cleanout early in January. It turns out that many years ago, someone in East Campus had attempted to build a fairly large SGTC (it appears in some old i3 videos), gotten to the point where it made some amount of sparks, and then moved the pile of parts to the server room in the basement, which may or may not have contained an EE bench at the time. Fast forward to 2015 and the server room was getting cleaned out and refurbished, and there was a pile of Tesla coil parts sitting in the hallway waiting to be picked up for disposal. I took the old power supply, secondary coil, topload, and asynchronous rotary spark gap and promptly got to work after redesigning the entire system in JavaTC (see linked files at the end).

The first order of business was getting the power supply to turn on. It consisted of a 14.4kV potential transformer and a PDU (Power Distribution Unit) with a pair of variacs (one for the transformer, one for the rotary gap) and had certainly seen better days. After a day of reverse engineering the wiring and fixing broken connections inside the PDU, the electronics were restored to working order, and I could even turn the power on after the keyswitch was bypassed! (It didn’t come with a key…)

Front of PDU

Back Side of PDU

Next up was the rotary spark gap. Everything appeared to be in working order so I slowly and carefully powered it up. It promptly self-destructed, and I spent the next few days waiting for some tungsten welding rods to arrive from eBay (5/32″ x 7″ Lanthanated TIG rods) and then cutting them down on an angle grinder and got to work rebuilding the mechanism. It turns out that the bolts holding the motor to the faceplate of the rotary gap were loose and allowed the slight, inevitable imbalance in the rotor to develop into a serious problem. Lessons learned: use lock washers, and make sure the fasteners in your high RPM mechanical assembly are tightened!

Rotary Spark Gap

I decided to try my hand at some basic woodworking, so I routed two 32″-diameter circles of wood for the base of the coil, drilled mounting holes after mocking everything up on a computer, and then sanded, stained, and varnished the parts:

Routing Coil Bases Using Jig

The primary supports were laser cut from 0.25″ thick acrylic sheets and the primary was wound with 0.25″ diameter flexible copper tubing ziptied to the supports.

Primary Construction

For the primary capacitor, I used 8 parallel Ion Physics model 4006-311 low-inductance, high-voltage polypropylene film capacitors rated for 100kV at DC and several nanofarads each. The total capacitance of the bank was 54.98nF. It’s definitely overkill (and probably not quite enough capacitance), but it’s what I had on hand. I’m planning to replace it with an 0.7uF, 50kV Maxwell pulsecap from eBay, but that hasn’t arrived yet. These capacitors are gigantic, by the way:

Ion Physics Co. Capacitor (1 of 8)

The fully-charged bank (at 100kV) can store in excess of 250 Joules (this is not a totally inconceivable scenario if you consider resonant charging!); charged to the peak of a 14.4kV RMS sine wave, the bang energy is closer to 12J, which is reasonable for a coil of this size, but the physical size of the capacitors is mostly wasted.

The secondary coil was re-varnished, laser cut end caps were installed, and I was faced with an interesting problem. After assembling the coil in my dorm room, I realized it was far too big to fit through the door, and I didn’t have anywhere near the amount of power required to turn it on, even if I took it outside. Luckily, though the base it didn’t fit through my room’s door, it did fit through most other doors in the building and I rolled everything over to Walker Gym in building 50, which is right next to the amateur radio club and has 15A and 20A single phase and 40A three phase outlets.

Operating without a ballast (this is the maximum performance mode, as the rotary spark gap quenches very effectively), the sparks are 6 feet to a grounded target and break out in multiple directions, which suggests that the performance could be improved further with a larger topload. As I am near the maximum primary tap with my current primary capacitor, I have not yet tried this.

Setting up the coil and target:

Measuring Perpendicular Distance to Target

6 foot ground strike:

Sparks 5 (PDU Unballasted, 5.5' Target)

Additional documentation:

YouTube video

Photo Album

JavaTC Data File

Laser Cut Parts Inventor and DXF Files

If you are in the area and would like a demonstration some weekend evening, shoot me an email and perhaps something can be arranged.

DIY Active Differential Probe Characterization (Round 2)

Back in February, I built an active differential probe for the MakeMIT hackathon, but I never really got around to measuring it’s bandwidth, other than confirming that it passes an 1ns-risetime, 100kHz square wave with reasonable accuracy and estimating it’s upper cutoff frequency based on the risetime of the output signal versus the risetime of the input signal. Recently, however, I acquired a much faster signal generator than I had before, which allows me to make accurate measurements far into the GHz range, so I decided to get some better data on the probe.

Active Probe Test Setup

Active Probe Test Setup

The experimental setup is relatively simple: first, connect the signal generator directly to a 50Ω-terminated oscilloscope input and measure the signal amplitude as the sine source is stepped through all of the frequencies of interest (I measured 10 points per decade, with extra data points added later as I felt were necessary to smooth out the bode plot). It’s important to do this because the signal source will inevitably have some amplitude variation with frequency, and the scope has a limited bandwidth. I used a Tektronix 784D, which claims a bandwidth of 1GHz (I measured 970MHz — pretty close!) and I picked a signal level of +10dBm (0.707V RMS, 2V pk-pk) because this seemed like a reasonable input level for a high frequency measurement. It is noteworthy though that the probe has a very wide dynamic range and is capable of much higher differential input levels, but I don’t yet have a signal source that can do more than +10dBm at high frequencies.

Once this baseline is established, the next step is to insert the active probe into the circuit and repeat the frequency sweep; the signal source is connected to a 50Ω termination soldered directly to a free-floating female SMA jack, the active probe input is attached across the termination, and the active probe’s output is fed into a 50Ω-terminated oscilloscope input. At high frequencies, the input capacitance of the probe will load down the circuit under test much more than the input resistance, but at 300MHz (close to the measured -3dB point), with an input capacitance of at most 0.5pF per differential input, this impedance is over 1kΩ, so we can assume the termination is good. At 1GHz, this impedance drops to 318Ω, which will start to have some noticeable effect on the termination, but by this point the results of the measurement show that the gain has already rolled off by more than 10dB. Theoretically, it would be more correct to use exactly the same length of SMA cable in both the baseline measurement and the probe gain measurement, but I didn’t do this for lack of an SMA extender because the losses down 1.5′ of SMA cable at these frequencies and power levels should be negligible.

Dividing the signal amplitude with the probe in place by the signal amplitude with a direct feedthrough yields the gain of the probe, which is summarized in the following plot (from 1kHz to 1GHz):

Active Probe Gain Measurement

Active Probe Gain Measurement

The lower -3dB frequency occurs around 7kHz, while the upper -3dB frequency occurs around 350MHz. The original risetime measurement yielded an upper cutoff of around 400MHz, which is fairly close to the true value. Clearly this probe doesn’t achieve the 1GHz upper cutoff target, but it gets close enough to be useful! Some interesting features to note are that the midband gain is around -19dB, instead of the design target of -20dB, and there is a sharp +2dB resonant peak around 60MHz.

The increased midband gain suggests that there is extra gain somewhere in the circuit that wasn’t planned for. This, in addition to unaccounted-for high frequency loss mechanisms in the PCB and components could partially explain why the top-end gain rolls off at a lower frequency than predicted by the SPICE simulations. I suspect that the 60MHz resonance is a product of the parallel AC coupling capacitors I used between the input buffers and differential amplifier; the largest coupling capacitors (1uF) are placed furthest away from the signal path, giving them the greatest amount of parasitic inductance.

AC Coupling Capacitor Arrangement

AC Coupling Capacitor Arrangement

This seemed like a good idea at the time because the smallest capacitors, which pass the highest frequencies, can be closest to the signal path and therefore have the least parasitic inductance. Counter-intuitively, though, this results in the largest coupling capacitors’ self-resonances to occur at even lower frequencies than they normally would. It seems that the solution would either be to remove the largest AC coupling capacitors, which would result in a higher low-end cutoff, or rearrange the AC coupling capacitors to put the largest ones closer to the signal path, which would add some extra parasitic inductance into the high frequency path and reduce the high-end gain. Time to start switching around capacitors to try to make the resonance go away!

That’s all for now, after I experiment with the capacitor arrangement and try to get the gain closer to -20dB, I might send out for another revision of this board with a high frequency PCB substrate (ie. Rogers) and 4-layers. Hopefully the price doesn’t go through the roof (fingers crossed!).

You can read more about the active probe project here.

Fixing a 50GHz Sampling Scope (Tektronix CSA803)

About a month ago I found a rather nice-looking Dell laptop being thrown away on the Stata loading dock, through which the majority of MIT’s tech trash passes. Knowing me to be a scope junky (I currently own 10), a friend quickly offered to trade me an old Tektronix sampling mainframe he’d found that was failing a POST test for my new laptop (in unknown condition), so of course I accepted. Who needs computers when there’s interesting test equipment to be had!

Upon closer examination, the scope (Tektronix CSA803) came with an SD-26 dual-20GHz sampling head installed and was throwing error E5322 on power up. Here’s the unhelpful documentation of the error from Tektronix (translation: “we don’t support this product, we don’t publish a service manual with detailed troubleshooting instructions like we used to, and we want you to buy a new Tek scope”), and here’s a great Google Group thread that has a real solution. It turns out that error E5322 indicates an issue communicating with a pair of battery-backed RAMs on the timebase board, and replacement parts are available from Digikey for about 15 bucks a piece! Win.

A few days later, after the parts had arrived, I pulled the thing apart to get a closer look:

The replacement RAMs are the tall ST chips visible in the top right, U500 and U511.

The replacement RAMs are the tall ST chips visible in the top right, U500 and U511.


Probing between the power pins on the RAMs confirmed that the battery backups were dead. After replacing them with the new parts, the scope powered up and passed POST. Here’s a measurement of the 1ns risetime of the output clock waveform (this scope has both a calibrator output and internal clock output):

CSA803 Self Cal Test

With the scope working, I decided to buy an SD-24 dual-20GHz sampling head with TDR, extending the scope to 4 channels at 20GHz each, and adding a pair of TDR inputs/outputs. The TDR outputs are capable of generating risetimes as fast as 17.5ps, the idea is that instead of using a network analyzer (which I don’t have) to characterize some system, I can hook up one TDR channel to port 1 and the other to port 2, and then record the step responses on both channels to a step applied to either channel (that’s four measurements, each corresponding to one of the four 2-port S-parameters).

Here’s a shot of the reflected signal from an open termination (nothing connected to the TDR pulse output channel). Looks about right!

Yes, that 7000-series Tek Cart was *definitely* intended for this purpose.

Yes, that 7000-series Tek Cart was *definitely* intended for this purpose.

Translating to frequency domain should then be fairly straightforward: send the data to a computer over RS-232, import into MATLAB, take the derivative to find the impulse response, and then calculate the Fourier transform and scale it appropriately.

Next up, building some high speed probes to make this thing useful.

6.111 or: How I Learned to Stop Worrying and Love the FPGA

So it’s that time of the year again when classes end and I can take a break and write a blog post again!

This semester I took 6.111: “Introductory Digital Systems Laboratory”, aka MIT’s FPGA lab, and produced a functional 2-channel 100MSPS, 25MHz analog bandwidth digital oscilloscope for my final project:

The Analog Front End Board.

The Analog Front End Board.

Half the project was designing and debugging a 4-layer analog front end and sampling board, and the other half was writing the Verilog code to make the thing work. The board layout looks like this (layer is 2 a continuous ground plane that is hidden):

Lots of squiggles!

Lots of squiggles!

The FPGA I used was a Spartan 6 on a Digilent Atlys dev board. The Atlys was chosen due to its HDMI output capability and high speed 68-pin VHDCI connector that was used to interface with the custom front end board. The HDMI output was used to drive an OEM 13.3″ replacement laptop screen I found on eBay and hooked up to an HDMI to 40-pin LVDS controller:

A trace!

A trace!

The front end board contains a pair of TI ADC08200 ADCs that are clocked from the FPGA through a clock buffer IC. My code currently runs them at 100MSPS, but they’re rated for operation up to 200MSPS (potentially doubling the bandwidth of the scope to 50MHz). The ADCs’ reference voltage is set by an AD7801 parallel DAC, which, in addition to a switchable input attenuator, allows for different vertical scales. A few high speed opamps per channel buffer, scale, and offset the input signal (taken from a real scope probe!) into the somewhat narrow input range of the ADCs. Here’s: the schematic. My first trace was acquired with the analog processing bypassed and a signal generator feeding the ADC input directly:

Atlys + HDMI + Front End Board + Sig Gen

Atlys + HDMI + Front End Board + Sig Gen

Sadly enough, I forgot to decouple the opamps to ground (they were only decoupled from V+ to V-). When I first powered the analog processing section, the opamps oscillated and I measured 80mV of input offset voltage in one of the preamplifier stages, which was causing the output the drop outside of the input range of the ADCs. Adding decoupling capacitors from V+ to ground and V- to ground fixed the offset voltage problem and reduced some of the oscillations (remember: the input from the scope probe is referenced to ground, not V+ or V-!). Based on some advice from a friend who knows about fast analog things, I added some input pulldown resistors to one of the opamp stages in each channel, which reduced the effect of parasitic capacitances that can couple the output back into the noninverting input and create oscillations, and I got a trace with input from an oscilloscope probe. Here’s what that looked like:



Here’s: my final report (warning: big file!) for those that may be interested. Note that this was written in one all-nighter, the night after the all-nighter in which I got the last bits of the project working in time for the checkoff, so reader beware.

I’ll be working on adding more features like simultaneous display of both channels, better interpolation and horizontal scaling, and cursors and measurements in time to present this project at Techfair, so stay tuned for more updates! If time permits, I might even try making a new front end board with 1GSPS ADCs and a variable gain amplifier instead of a switched relay attenuator. Texas Instruments was generous enough to overnight all the ICs I used in this project that they manufacture after I entered their Analog Design Contest, so I might as well continue to make nicer boards… 🙂

General Purpose H-Bridge Inverter

Obligatory picture at the beginning of my post so it doesn’t make my entire front page look like a wall of text:

A quick skim through my site will reveal that I haven’t been very diligent about posting new projects or filling in the many blank pages that are supposed to document my old ones. Sadly, I’ll probably be too busy with schoolwork until the summer to fix that, but in the meantime, I’ve decided to try something new; this page is going to have short weekly/monthly documentation of what I’m building, rather than some sort of weird chronological list of the projects I finally get around to posting about. In other words, this is finally going to be a real blog. Here it goes!

After about a year of playing around with all kinds of different H-bridge designs for my DRSSTC projects, I decided to put together a finalized general purpose H-bridge board that would work well for all kinds of small to medium-sized high voltage projects (read: those that don’t use bricks). Basically, any time I need an inverter for something like a Tesla coil or ferrite transformer, I want to be able to grab one of these boards, add a driver, and gogogo!

The first obvious design choice is mini brick (SOT-227), or TO-247? Seeing as mini bricks are about 5 to 10 times more expensive ($20 – $30 a pop, as opposed to $2 – $5 for the average TO-247), I’ve only ever used the latter in my projects. It’s been experimentally determined that it’s best to replace all the silicon on your bridge every time something fails (there’s an old 4hv thread on this out there somewhere), that means replacing an entire bridge on a TO-247-based coil after a device failure costs about as much as a single lower-end mini brick transistor. If that alone isn’t enough to convince you, here are some other reasons TO-247s are better at this scale:

1. Mini bricks have isolated metal backplates, while TO247s do not. At first glance, this might seem like a good thing because it means you can bolt all your mini bricks to the same heatsink without worrying about creating short circuits. The downside is that internally, the thermal contact between the die and the mounting plate is much poorer than what you get with a TO-247. A bridge of TO-247s with individual heatsinks is the ideal route to take, although silpads or the occasional surplus Beryllium Oxide heatsink insulators found on eBay will allow you to put the entire bridge on the same heatsink.

2. On average, mini bricks have much more gate charge and switch slower than TO-247 IGBTs. Beefy gate drivers with gate drive chips driving discrete FETs and phase lead networks (for feedback-tuned systems) can turn minibricks  into a more viable option, but it’s nice not to have to go through all of that for a board that’s supposed to be easy to use.

3. Modern TO-247 IGBTs such as the Fairchild FGH60N60SMD can reliably handled peak currents as high as 300A (and probably more) in conventional DRSSTC use up to hundreds of kHz, which is good enough. While it’s possible to push some mini bricks up to insane currents as high as 1000A or more to get giant sparks out of little coils due to the mini bricks’ larger dies, it limits their average operating lifetimes down to 5 to 10 minutes due to rapid degradation of the silicon. The “old way” of making a DRSSTC was to push the primary current as high as possible and regularly replace the transistors (this practice was born back when mini bricks could be had as free samples by the box!), but that’s not generally considered to be a good idea anymore. If you need that much current, you can use a ferrite transformer to enforce current sharing between multiple bridges (see Steve Ward’s new phase-ramping QCW coil, it’s really clever!).

tl;dr: I used TO-247s.

Okay, now here’s the actual design of the board. Note that the IGBTs are meant to be mounted on the heatsink under the board:

Board layout

Board layout

Key features:

– Laminated DC bus with a snubber very close to the transistors: The reason the positive and negative rails are right on top of each other is to keep the inductance between the bus capacitors and the transistors as low as possible. The stray capacitance of this arrangement lumps into the snubber capacitor, which also works to our benefit. The idea behind all of this is to minimize the bus inductance that gets excited during switching transients.

– Current transformer (compatible with standard Triad Magnetics CTs from Digikey) and coax cable connector on the board: this leaves one less unsecured or semi-secured thing flopping around the DRSSTC. The SMA cable connector is also much more reliable than a twisted pair of wires, which has actually been a failure point in one of my coils.

– GDT (gate drive transformer) mounting pads: yet another thing that would probably be better off not floating around between the driver board and the bridge!

– FUSE! A fast-acting fuse saves transistors (sometimes) and board trace explosions/things catching on fire (always).

– External connector pads: let you connect an external DC supply for testing, or a larger set of buscaps for a coil that runs long bursts (like a QCW).

Here’s the schematic (click to view – wordpress derped the preview):

Eagle Schematic

Eagle Schematic

You’ll note that I didn’t include a spot for TVS (transient voltage suppressors). You can deadbug them onto the IGBT pads, but given the laminated bus and the position of the snubber capacitor, I’m not sure it’s necessary. I haven’t had any problems with excessive buss ringing, even while hard-switching in my attempts to build a QCW:

Sort of…

Here’s a picture of the actual board once it’s populated. This was done using a temperature-controlled iron and some regular solder, no fancy surface mount equipment or supplies required. If the IGBT leads are left uncut, they make nice scope probe test points:

The snubber looks sad because it had a few angry encounters with a soldering iron when I was installing the IGBTs!

The snubber looks sad because it had a few angry encounters with a soldering iron when I was installing the IGBTs!

I will try to get some pictures of the bare boards soon. This was a test run from PCBFabExpress, which made 5 of these with a 2-day lead time and 2-day shipping for a net cost of something like $20 per board. Quite good! A future sendout would probably be done using MyroPCB, which makes higher-quality boards in a variety of colors. Their black boards have looked nice in the past (look up oneTesla and RageBridge to see what they might look like).

If you’re interested in participating in a group sendout, let me know! Comments, PMs, emails, etc. are all welcome. If there’s interest, I’ll write a assembly guide with some more documentation. In the meantime, I’ll post a parts list soon.

Here are the Eagle files.

And here’s a shot of what an earlier prototype of this board did with when I put it in my DRSSTC (something like 250 – 300A peak primary current):

3'+ from a full bridge of TO247s.

3’+ from a full bridge of TO247s.

Summer Project: 13EM7 Stereo Tube Amplifier

Mmmm.... tubes!

Mmmm…. tubes!

This is a summer project built between my junior year of high school and freshman year at MIT. I went through a few prototypes, figured out how to etched double-sided circuit boards, and learned a lot about amplifier construction in the process. Because I didn’t want to take too many risks with such an expensive project (actually quite cheap for a tube amplifier – the total was well under $300), I used Fred Nachbaur’s Minibloc SET design for the pre and power amplifier to ensure I built something that was guaranteed to sound good, but modified the power supply slightly. 1 watt of output power is easily enough to fill my dorm room with music with the right speakers.

Read More

Demo-Coil! (A New SGTC)

Pushing 48"+ streamers and ground strikes.

Pushing 48″+ streamers and ground strikes.

This coil was built as a general demonstration coil for MITERS after a tour for some high school students involved in FIRST robotics exposed that we had no working projects to show! Although oneTesla is now is a state where it’s completely “plug and play”, I’d rather have that somebody doing the plugging be myself or Bayley, and we’re not always around to give tours. The idea behind this coil is that it’s as simple as a Tesla coil gets (so anyone demoing it can explain it, hardly the case with a DRSSTC!), and that it’s bulletproof: anyone can plug it in without tuning or dabbling with software; it just works. The main components of the system are similar to my previous SGTC (“2-Day Coil“), but a 240V step-up variac, new secondary coil, and rolling base have been added.

Maximum spark length achieved was 4-feet; shoot me an email if you want to see it in action and are in the Boston area!

Read More

Digital Salinometer

The completed Salinometer.

The completed Salinometer.

This device was built for a regional science team event using an opamp oscillator circuit with amplitude proportional to the conductivity (which in turn is proportional to the salinity) of a sample of water. The output is rectified and filtered, diode drop hidden by another opamp, to produce a DC voltage that is analyzed by an ICL7107 sample&hold/ADC/Binary to 7 Segment chip.

The design is a derivative of this person’s work.

Read More