This DCC circuit breaker is loosely based on the MERG ARC - Auto Reverse and Cutout, the influence of which is gratefully acknowledged. There's no reversing relay, this circuit is only a circuit breaker. Download information is at the bottom of the page. I estimate the cost of building this circuit on a piece of perfboard (i.e. without using a printed circuit board) to be about $15-20 (or less if you have a well-stocked junk box.)
Figure 1 shows the current sensing and the solid state on-off switch, which uses two pairs of FET's. Figure 2 shows the processor and its voltage regulator.
Under normal conditions, optoisolators U1b and U1a are conducting (controlled by an output of the processor) and both sets of FET's are turned on. D2 and C1 generate an "extra high" voltage to make sure Q2 and Q3 are fully on.
When a short occurs, the voltage drop across either or both of R5 and R10 will be enough to turn on either Q1 or Q4. This will energize either U1a or U2a, which will signal to the processor that a short has occured. The processor will then de-energize the breaker by turning off U1b and U2b. After a short wait, the breaker will be re-energized. If the short has cleared, operation will continue normally. If the short has not cleared, the cycle will repeat.
The trip current is set by R5 and R10. With the indicated value of 0.15 ohms for both of these resistors, the trip current will be about 4 amps. Raising the value of these resistors to 0.22 ohms will reduce the trip current to a bit under 3 amps.
The circuit breaker is controlled by a Microchip PIC12F629. This is an 8-pin device with 6 I/O lines, 4 of which are used. You could implement some additional funtionality with the other two I/O lines - there's plenty of code space left.
There is an LED output from the processor to indicate status. The LED is on steadily during normal operation. While the breaker is shorted, the LED will blink on and off rapidly. The push button allows you to manually de-energize the output of the breaker, for example if you want to do some maintenance on a piece of track. Pushing the button once forces the breaker to de-energize; pushing the button a second time re-eneregizes. While the breaker is manually shut down, the LED blinks with a different pattern (800ms on, 200ms off.)
The circuit is a little more complicated than is strictly necessary, in that all of the control and current sensing is optoisolated from the processor. I originally did this so that I could run an external connection to the processor for remote monitoring. That connection would then have its own ground, and not share any common wiring with the rest of the breaker. Assuming you weren't interested in the remote monitoring, it would not be too difficult to rearrange things to eliminate optoisolator U2. Refer to the original MERG ARC circuit to see how to do this.
Most of the component values are shown on the schematic. Other components as follows:
D1, D2: UF4002 (actually, a 1N914 would probably be fine here.) D3, D4, D5, D6: 1N914 Q2, Q3, Q5, Q5: IRF511 or similar N-channel FET U1, U2: Fairchild MCT6 dual optocoupler (you can also use 4 singles, or a single quad) NOTE: R5 and R10 should have a 2 watt rating
The software, which is written in PIC assembler, is quite strightforward. It's implemented as a state machine, with the various states representing representing normal, shorted, and manually shut down. The on-chip timer is used to control the amount of time in the "shorted" state, before re-energizing. There's another state machine to monitor the button presses, and yet another to control the LED blinking. About 120 of the available 1024 program words are used, so there's plenty of room if you want to add bells and whistles.
One improvement that needs to be made to the software is to add a delay before shutting down when a short is detected. Right now, the breaker shuts down as soon as a short is detected. It really ought to wait a short time before shutting down, so it will not shut down immediately when subjected to the inrush current of a locomotive that happens to draw a lot of current (like the BLI sound-equipped locomotives, for example.) As long as the breaker delay is less than the booster's delay, the breaker will trip first.
I used a 12F629 because I happened to have a bunch of them left over from another project. You could also use a PIC12F508, which I think is a little cheaper, or even one of the new PIC10F processors that have exactly 4 I/O lines. Using either the 12F508 of the 10F parts would require some minor code changes.
If anyone is interested, I have a printed circuit board for this design, and gerber files are available on request. However, it does use surface mount parts which I realize might not be to everyone's taste. If enough people were interested, I could be persuaded to produce a board using through-hole parts.
Click here to download a ZIP file containing the schematics in PDF format and the source code for the PIC program. The software is released under the GPL.