Meet the Contributor

Jacob Crabill is the embedded / robotics lead at Volansi. You can find him on Github and Linkedin.

Mark West

I’m an avid mountain biker specializing in creating epic XC rides so tough that they scare away most of my friends.


Can you tell us the story of how you got into PX4?

I got into PX4 at my current job at Volansi. We needed to add some features and drivers to ArduPilot originally, then later switched to PX4. One of my first projects in PX4 was adding drivers for controlling and monitoring a fuel-injected gas engine.

What company do you work for and what’s your “day role”?

I work for Volansi, which aims to revolutionize logistics through automated aerial delivery solutions – a.k.a. “drone delivery at enterprise scale”. My role is essentially the resident PX4 expert for all the miscellaneous issues that pop up, and the go-to engineer for integrating new sensors and actuators that need to work with our avionics.

What is your current project based on PX4?

One area I’ve been pursuing is adding support for more devices via (UAV)CAN. I’m really looking forward to the day our aircraft operate on a 100% UAVCAN v1 CAN-FD bus! That kind of capability is one of the features that will take PX4 beyond just a platform for hobbyist hardware to a robust, aviation-grade product.

What is your professional and educational background?

A little bit of everything, really. I earned bachelor’s degrees in Mechanical Engineering and Engineering Physics from Kettering University, while working as a manufacturing engineer at Pratt & Whitney as my co-op job. I then earned my Masters and PhD in Aeronautics and Astronautics at Stanford, where I did my research in computational fluid dynamics (CFD). My research is really where I got into the software side of things, as implementing numerical algorithms for CFD to do useful things takes *a lot* of programming, and implementing them well enough to get a useful result out – in a reasonable amount of time! – requires a deep understanding of computer hardware and good software design principles. Also, debugging a massive overset-grid CFD simulation across 64 GPUs provided great debugging experience that carried over surprisingly well to embedded systems. You can see some video clips of the golf ball simulation I ran on my old website.

What is your “area of expertise” within PX4?

Mostly drivers, and other system architecture details, such as the low-level details of CAN, I2C, etc. The motivation for me digging into PX4 has been adding (and debugging) support for various sensors and actuators, so that’s what I’ve become most familiar with.

What is the most unique thing you have done in drones/robotics?

In addition to working on autopilots at Volansi, I’ve also worked on our communications infrastructure. I actually got to implement our satellite communications system from nearly scratch, and we’ve flown complete missions with it (following all appropriate regulations, of course). Going from testing a box of blinking lights on the roof of a parking garage to watching telemetry come in via satellite to a GCS from a flying drone was very gratifying.

I also did all of the aerodynamic design for the first iteration of Volansi’s VOLY M20 platform; I’ve designed other airplanes in the past for various competitions and classes, but this is the largest by far.

What is your current favourite setup for development kit?

Believe it or not, I don’t own a multicopter, and haven’t flown an RC plane in years – I leave that to our highly skilled flight test engineers. For general development, I have a bunch of Cubes and carrier boards, and peripherals like a Zubax Babel, a Dronecode Probe, and a few FTDI adapters. For more hardware-specific development I have a mostly-complete avionics suite from our VOLY M20 platform that fits on my desk. As far as software, I use standard PX4 dev tools: desktop running Ubuntu 18.04, Visual Studio Code, Vim, etc.

Do you have a “remote” work setup?

I do, although with just a 1-bedroom apartment it’s not as great as it could be. I have a desk that I use for my desktop, soldering & rework station, and parts bins of cables and electronics, but I also spend a lot of time just working from the couch, the dining room table, and even a folding chair out on my porch.

What languages do you speak?

English, C/C++, Python, and even Fortran!

Where are you from and where did you grow up?

I’m from Swartz Creek, Michigan, USA. I earned my undergraduate degrees at Kettering University in Flint, MI, then moved west to attend Stanford, and I think I’m here to stay. West coast best coast!

What advice would you give to fellow drone developers who just joined the PX4 community?

Don’t get discouraged! PX4 is a huge ecosystem of tools and components, and no one is going to be an expert in all of them. First off, read the documentation on the general system architecture of PX4 and MAVLink. Then pick just one topic to focus on, and read all of the documentation available on it (and depending on the topic, finding academic papers or alternative implementations can provide additional background and perspective). Then when you can’t absorb any more documentation or can’t make sense of it anymore, dive into the code to see how it’s implemented. Once you’re more familiar with the code, then pick a small project, like adding or modifying a feature, or re-implementing something your own way, to get the final piece of understanding and accomplishment. Seeing your own code flying on a drone is incredibly satisfying!