VP-200 Installed
in an Aircraft

In November of 2005, I joined with Marc Ausman and Jake Dostal to build a prototype of the VP-200. This system replaces circuit breakers, fuses, and switches with solid state electronics in the experimental aircraft (home-built) industry. And although the system could power devices simplistically, it uses the flight mode of the aircraft to automatically handle device power transitions. In addition to power control, the VP-200 levies the flight modes for a strong context-sensitive base to enhance engine gauges, provide smart alerts, and display checklists.

In July of 2006, our doors opened. Within 9 months, we had the production hardware in-house. Within 13 months, we launched the VP-200 and VP-100 at the EAA AirVenture 2007. To date, there are over 80k lines of code, 7 custom circuit boards, and 4 core products.


Co-Founder/VP Engineering/Software Lead/Software Developer

Technical Highlights

Software speaking, there are two different development aspects of the VP-200: (a) a soft-real time system for controlling and monitoring the Electronic Circuit Breakers (ECB) on the Power Control Unit and (b) a user interface for the pilot (Display Unit).

Power Control Unit

The control and monitoring for the ECB system runs on an 8-bit microprocessor without an OS. The system powers standard avionics (lights, EFIS, GPS) and the mechanical systems (starter, flaps, and trim). There is a primary loop that cycles through the different aspects of power control. One such control was determining whether an ECB has a short or over-current condition. There were several iterations on the detection algorithms to ensure that there were not any false-positive notifications, as this proved to be tricky with respect to certain high current inrush and continual cycle (e.g. strobes) lights.

VP-200 Flight Display

The user interface runs on an Xscale (ARM core) processor running embedded (small footprint) Linux. The core of the software is written in Java with some JNI/C and Linux driver code to access the hardware. I built an AWT-like widget package on top of SDL in order to reduce the overhead of the standard AWT/Swing packages which requires X-Windows. Since data and control arrives from multiple sources, I wrote a generic event handling system that passes data to the appropriate data listeners. The flight modes are implemented as a set of objects that handle transitions and in-state control. Adding new features results in one or two new objects (including adding/updating a user interface screen for setup), easily plugging into the standard data pathways.

Lessons Learned

Fun Facts



Notice: images used with permission from Vertical Power.