pat@moreproductive.org
908 458 6675
My big project right now is Paparazzi Autopilot for Linux. It is a port of the microcontroller-based Paparazzi open source autopilot system to a single board linux computer. I selected hardware to replace the microcontroller I/O functionality, and ported much of the bare-metal microcontroller code to use Linux system calls and pthreads.
I'm also doing an independent study with Professor Chung-chieh Shan, building a better C preprocessor with Ocaml. The goal is to improve code generation and transformation to make it easier to write constant-space and constant-time code for embedded systems. I have a fork of the frontc Ocaml C parsing library available.
I work on robots:
Which has involved work in:
And have real experience in:
I'm finishing my degree in Electrical Engineering
at Rutgers University in New Brunswick, NJ.
I expect to graduate in May 2010.
The courses I've gotten the most out of:
Electronics Design Team Leader, Rutgers Autonomous Aircraft Team - Septemper 2008 - Present
I've been working on building autonomous aircraft with some friends at Rutgers for the last two years. Last year we didn't make it to the AUVSI UAS Competition because our aircraft crashed, but this year things are looking good. I've been writing software based on the Paparazzi Project for a Linux based autopilot system. Check out the page about that project here.
Undergraduate Research, Prof. Dario Pompili - August 2009 - January 2010
I helped build a network simulator for acoustic wireless networking, such as in autonomous underwater vehicles. It's unique because it uses real underwater modems and audio processing to simulate the underwater medium. I built a module that uses the Bellhop ray-tracing model to determine the arrival time and amplitude of the transmitted signal, and simulate those arrivals using audio processing.
I made heavy use of Ruby and the existing ONR Acoustic Toolbox written in Fortran. I worked with several Python programs as well. The modems each have a Gumstix computer attached that runs OpenEmbedded Linux, which I built packages and images for.
Undergraduate Research, WINLAB - December 2008 - June 2009
At WINLAB, I designed a circuit board that interfaces a Xilinx FPGA module with a custom wideband digital radio. I used Orcad Design Entry and Orcad Layout software. I implemented switching power supply circuits that would meet the stability requirments of the FPGA and wireless circuits, and sourced a BOM of about 300 components.
Junior Engineer, SeaBotix, San Diego CA - June 2007 - August 2008
I completed two summer internships at SeaBotix, and in the year between did contract work on a attitude-heading reference sensor. For both of my internships I worked on test fixtures that were used for research, development, and life cycle testing of underwater thrusters. This involved building power, communication, and measurment circuits. I worked with the low-level circuits on motor controllers, debugged and modified code for PIC microcontrollers, and built software for data aquisition and test automation in Visual Basic. I even did a lot of mechanical design on the test fixtures. Working at SeaBotix was exciting because the team was small and I was given real responsibilities.
One of the first big coding projects I worked on was building an attitude and heading reference sensor (AHRS) that used three-axis accellerometer, magnetometer, and rate gyro sensors. I researched and prototyped a Kalman filtered algorithm in Matlab, and translated the algorithm to C for the PIC24. The computation was floating-point intensive, and I found the PIC wasn't going to perform well enough, so I rebuilt the sensor using an ARM microcontroller.
Languages
Platforms