Heino R. Pull - Principal Engineer at Tapestry Solutions - a Boeing Company
My father was an electrical engineer when the industry was changing from vacuum tubes to solid state devices and always had a bunch of gadgets and projects at home when my brother and I were growing up.
I remember my dad borrowing an oscilloscope from work over the weekend when I was six or seven. I was fascinated by the instrument and managed to turn it on and get a trace while he wasn’t around. I didn’t know what I was doing but I spent quite a bit of time pushing every button, turning all the dials to see what I could make the trace do. When he discovered that every dial and setting was as far out of a normal setup as could be done – he asked me if I had played with it and I said yes. Instead of scolding me – he showed me a little of how it worked and watching an audio trace from a microphone on the scope just hooked me. My dad was extremely supportive of my interest and let me take stuff apart to see how it ticked. Later he took the family to 2001 A Space Odyssey in 1968. Seeing the avionics displays in the futuristic space craft and the later scenes of HAL 9000, focused my interest into computers and electronics.
In my junior year in high school we got the January 1975 issue of Popular Electronics with the MITS Altair 8800 on the cover and I couldn’t believe it might be possible to have a computer at home. My dad ordered the kit and we spent a wonderful summer soldering the boards, and bringing the computer up with just 256 bytes of memory. That computer (which I still have in the basement) was upgraded, tweaked, fixed, and programmed for hours and hours and lead directly to my love of embedded systems, digital design, and software. When I entered Washington University in 1976, it was difficult to choose my major since I really loved both software and hardware. I started as an electrical enginnering/computer science double major but found after a few years that the it was difficult to get near the hardware as a CS major. Punched cards on an IBM 360 wasn’t good enough to feed my hardware passion so I changed to full time electrical engineering and got plenty of access to microprocessors and DEC minicomputers.
After graduating with my BS/EE, I continued work at Washington University Medical School as a research assistant and specialized in digital signal processing and real time bio-medical signal acquisition. After graduating with an MS/EE, I started work at the same place my dad worked – McDonnell Douglas in St. Louis and had a choice of three different job offers. One in digital design and two others in software engineering. Another tough decision faced me. Remembering my love of 2001 A Space Odyssey, I joined the F-15 display processor software engineering group and worked on “real” avionics displays and spent another ten years developing software for a number of aircraft.
Over my career I’ve crossed the boundary from software to hardware and enjoy both – particularly in small companies. Currently I make my living as a software engineer in military command and control systems, but I feed my electrical engineering side through many projects I do as a hobby. This includes designing embedded systems on custom PC boards for various applications including radio controlled airplanes, helicopters, rockets, and now small, inexpensive autonomous aircraft. Flying autonomous fixed wing and rotary aircraft with real time video down link is my current passion.
Although we lost my dad in 2009, I will always thank him for his continuous and early support that lead me (and my brother) to pursue electrical engineering.
Although inexpensive software development tools and collaboration over the Internet have allowed me work at home for 14 years, one of my favorite jobs was working for a small engineering firm developing automated factory test systems. I had a chance on a daily basis to use oscilloscopes and logic analyzers while I also developed embedded software. Working in multiple roles seems to be easier in a small company. I was introduced to surface mount parts, FPGAs, and PC board design software which I use to this day for hobby activities. The fortunate thing is that with the availability of board fabrication services on the Internet, and with the low cost of all the necessary tools and software, developing complete embedded systems from scratch at home is a reality. The prices keep coming down so the future is bright for the home based electronics entrepreneur.
Although it would be nice to have the top of the line test equipment, the home design engineer needs to have maximum bang for the buck. I have a trusty Tektronix TAS465 analog scope for a quite a bit of my debugging and bought an old HP 1630D logic analyzer on Ebay for I2C and SPI debugging. I recently bought an Open Bench Logic Sniffer that uses a Xillinx Spartan 3E FPGA as a very inexpensive logic analyzer. It works really well and I’m using it to debug my FPGA designs. I also like the USBEE SX logic analyzer for SPI, I2C, and serial interface debugging for very long captures. Finally, I find my Aoyue hot air rework station invaluable for surface mount pcb work at home.
The Eagle PCB software design software has been my choice for pcb design due to its inexpensive licensing options and wide use on the Internet. It has an odd user interface, but does the job well once you figure it out. I’ve designed many boards with it and really appreciate the access to an inexpensive autorouter. All of my designs have used the Atmel AVR microcontroller line and I find WinAVR to be my embedded software development tool of choice along with Atmel’s free AVR Studio. Finally, I’ve recently been incorporating Xilinx FPGAs into my designs and have had good success with the free ISE Webpack software.
When I studied digital design during my undergraduate work in the 70’s, FPGAs did not exist and we learned the hardware implementation using 74xx series TTL gates and microcontrollers. My first introduction to FPGAs was in 1993 when I did embedded software work with other design engineers. I got a little taste of the power but never had to chance to really study and use them. The design tools at the time were also very expensive. I became aware of FPGAs recently in the various retro-computer projects that exist on the Internet and I finally got a chance to buy a Digilent Nexys2 development board and really play with Xilinx’s ISE Webpack. I’m now hooked on the power in modern FPGAs and grateful that the software tools are free when using the older generation parts such as the Spartan 3E. I’m now looking at the application of the parallelism inherent in FPGAs and the ability to insert multiple softcores such as Picoblaze.
We were building a VXI based automated test system for an F/A-18 color display and I was responsible for the PC based software. We used a third party vendor’s 1553 mux bus interface board to simulate avionics traffic and I could not get reasonable status words back from the interface during interrupts. After all standard software debugging techniques failed, I instrumented the VXI backplane with an HP logic analyzer and found after days of work that the card seemed to be violating the VXI spec. I called the vendor who assured me that the card was used by many defense contractors and had no issues with the VME or VXI bus specs. It did not help that the “software guy” was bringing up the problem. After a week of back and forth I finally received a call back confirming the spec violation and asking to ship our development boards back for updates. The tough part of this debug was learning the VXI specs and unfamiliar logic analyzer on the fly during a very tight schedule when there was plenty of software to develop with a staff of 3 engineers. A nice result of this experience is that I learned a bunch and was offered a contract from the vendor to develop an Windows NT device driver for his 1553 board on the side.
I recently purchased an iPad 2 and I’m placing all my PDF based development documentation on it. This includes data sheets, Webpack docs, a Verilog HDL book, xcode and ios development docs and my AVR documentation and software libraries. The iPad is a great way to have all of the docs instantly available. Of course I also have Game of Thrones on the iPad.
A few years ago we had a tough software problem related to a low probability server error on a production system. Two servers were communicating over the Internet on a problematic military network and we could not identify the problem which happened only once or twice a week. At the same time I was complaining about the interference of my home Wifi network with my Radio Shack 2.4 ghz video transmitter system. My EE side realized that this interference could also be used to simulate a really bad Internet tcp/ip link. I installed our server software on a laptop and placed it in the back yard with my Radio Shack video transmitter near the laptop. This turned out to be an excellent bad network simulator and bit error rate could be easily controlled by how far the video transmitter was located near the laptop. After a few hours of testing (with the neighbors wondering if I’d lost my mind), the magic timing issue showed up and we could identify the flaw in our network error handling software.
My favorite project is also my current hobby project for the last 2 years: inexpensive autonomous electric aircraft. There have been significant developments in battery technology, digital data links, and inertial measurement units that make very sophisticated fixed wing and rotary electric aircraft possible. Web sites such as diydrones.com have popped up offering kit autopilot systems with interchangeable Arduino based computer platforms. Sensor shields are mated to the Arduino boards depending on your platform and offer all the sensors necessary to fly autonomously. In addition, ground station platforms are being developed to plan the missions, monitor the progress, and analyze the aftermath. I started flying Easystar foam aircraft with thermopile sensors and an on board video camera and transmitter. On screen display symbology was embedded in the video and transmitted to the ground where the airplane’s progress can be monitored and also flown remotely if autonomous modes are disabled. In the last six months, multirotor aircraft kits have also been offered which allow hovering flight with the same autonomous capability. My rotary aircraft is a quadcopter with an aluminum frame in the configuration of a cross. At the end of each aluminum cross member is an electric motor and prop. The guidance electronics are mounted at the center of the cross. The quadcopter flies simply by changing the speed of the four motors to tilt or rotate the airframe. Quadcopters are very maneuverable and at the same time very easy to fly when in manual modes. However, the complexity of the computer guidance along with the limitations of the various sensors (GPS position vs intertial position) cause challenges for the software when operating in real world environments with weather. There is ample opportunity for new algorithms and continuous beta testing with bugs often resulting in crashes.
The engineering challenge in both fixed wing and rotary aircraft is in the integration of the various receivers, transmitters, and cameras in close quarters with all the associated electromagnetic interference issues. Also, the development of the hardware and software is being performed in an open source fashion with participants from all around the world volunteering their time. My contributions to the open source hardware and software have included a tracking antenna setup for receiving video from the aircraft guided by GPS navigation and software for processing of a new standard for UAV avionic data interchange – Mavlink. Groundstation software is also moving to mobile devices such as Android phones, iPhones, and iPads with each device requiring unique software processing the Mavlink messages. There are always opportunities for various hardware interface boards converting from various data interfaces such as Wifi and Bluetooth. I’m currently in the process of laying out a new shield board to mate with the existing Arduino computer platforms to create a standalone antenna tracker with mission planning display. In total this is a challenging and exciting “hobby” project.
One of my first pcb projects was a GPS flight data recorder to be used in high power hobby rocketry. The board was designed to record the received GPS position and raw pseudorange data in I2C serial EEPROMs for download on the ground after the rocket’s flight. The intent was to compare the performance of differential GPS and various other hobby rocketry altimeters to measure the relative performance. The first flight was in a six foot rocket weighing about eight pounds and used a black powder charge at apogee to deploy a parachute. Unfortunately, the first flight was the payload’s last flight as the delay charge failed to ignite the ejection charge. The rocket flew a beautiful parabola into the ground and compressed the six feet into about a foot. The board was damaged with two of the eight on-board serial EEPROMs destroyed. All was not lost. I hooked the I2C bus up to an external microcontroller and downloaded just enough data to verify the same parabola in the GPS data. I didn’t realize that my payload’s real goal was to verify Newton’s laws of motion.
The model of developing hardware and software in an open source process is really bearing fruit in the hobby UAV area. There well may be commercial opportunities that emerge from the ability to easily create new embedded systems at home.
With my current electronic design activities targeting the hobby application space with possible commercial application, I hope that distributors and manufacturers continue the support of the “hobbyist”. Open source hardware initiatives and cheap design tools are leading many individuals with varying experience to dabble into electronic design. I hope this growing user base does not overwhelm the traditional technical support mechanisms from distributors and manufacturers.