ESC Protector

In my design for my autonomous car, Johnny Five, I chose to power the system (CPU, GPS, etc.) directly from the motor controller (called an Electronic Speed Control, or "ESC" by RC people.)  This was convenient because I simply had to turn on the ESC to power up the car and all its systems.  However, back in my development lab, this had an annoying (and, later, more serious) consequence.  Whenever I plugged in the USB cable to upload new code into the Arduino Mega that drives J5's, the ESC and the steering servo would try to power up, too.  This caused the ESC to beep annoyingly, and the servo to twitch enough to sometimes cause a current spike that would glitch the code and restart the program.  This happens because, when the power switch is turned on, the ESC generates 5 volts to drive the motor control circuits as well as provide 5 volts to the servos and the RC receiver.  However, applying 5 volts to the power output of the ESC also powers it up, as it bypasses the ESC's on-board regulator.  

On a more serious note, I also experienced a near meltdown of an ESC of a different design (in this case, the ESC in my daughter's AVC entry, QED) where applying power to the 5 volt output when the ESC's power switch was turned off caused the ESC H-Bridge (the circuit that controls the motor) to go into a short circuit condition, which destroyed the ESC and nearly destroyed the battery and car to which it was connected.  I don't know how common this type of problem is with different ESC designs, but I decided that it would be nice to find a way to prevent both problems without having to remember to unplug the ESC each time I need to upload new code (which I quite frequently fail to remember.)

After a few failed attempts (mostly from not thinking the problem though clearly), I came up with a simple design I adapted from the app note for the LTC4412 integrated circuit which uses a P-Channel MOSFET to, in effect, implement a one-way current path from ESC to CPU.  Power applied to the ESC side will power up the circuit and turn on the MOSFET to supply power through to the CPU.  However, power applied to the CPU side will not power up the ESC (except for about 1-2 micro amperes of leakage current.)  Here's the schematic:

Both the FDC602P and LTC4412 are SOT-23-6, surface mount parts, so I decided to design a simple PCB to implement the circuit above.  The finished PCB is only 500 mils by 300 mils and is designed to plugged in inline between the ESC and the CPU.  Here's a picture of the completed PCB that has been covered with clear, Polyolefin shrink tubing to protect the circuit and prevent short circuits:

I can't guarantee this circuit will prevent an ESC meltdown, as that depends on the details of how the ESC is internally designed, which are beyond my control.  However, this circuit does eliminate the annoying beep problem and, so far, I've not blown out an ESC.  If anyone would like to try my design, the gerber files are contained in the archive.zip file linked below.  This .zip file can be directly uploaded to OSH Park if you'd like to fabricate a set of three boards for yourself at a cost of only 75 cents, so don't bother emailing me about making you a PCB.  BTW, the parts for this circuit cost about $2, total via Digi-Key.  However, as these are quite small components, you will need some experience with surface mount parts to build this circuit.