A bit of background: in late 2016 Hangar acquired Autoflight Logic, maker of Autopilot, the most robust ground control station for DJI drones, with tens of thousands of active users. We were always fascinated by Jim’s story, how exactly does one become a successful entrepreneur and app developer in the very nascent drone space?
How did you get into app development?
My first experience with app development was actually in 2004 while working for a defense contractor. We were developing a Windows CE app that could read RFID tags on wounded Marines in forward triage centers. After that experience I shifted my focus to desktop, web, and server-side development for the next ten years. During that period I gravitated to the startup scene where I spent time at a series of companies that were profitable, but none that were a breakout success. These were the kind of companies that would be classified as “Night of the Living Dead” in the parlance of Something Ventured. By the end of 2014, I was the Director of Machine learning for Advanced Search Labs, where my primary responsibility was to classify the entire internet. This was also right after Apple released iOS 8, Swift, and the Apple Health app. I vividly remember reading the announcement from Fitbit’s CEO stating that Fitbit would not support Apple Health. Being a long-time Fitbit and iPhone user, I quickly directed my frustration to a side project to solve the sync issue. I challenged myself to go out and buy a MacBook Pro, download Xcode, teach myself Swift, and create an iPhone app in a weekend. Once I had a working app for my personal use, I decided to make it available on the App Store to help other people. With a bit of luck and a few well directed tweets from my wife, several popular sites picked up the story (9to5 Mac, MacRumors, Mashable, etc), Sync Solver quickly shot to the top of the App Store charts, and I had my first breakout success.
I remember Sync Solver when it came out, it was quite popular, how did you engineer its success?
The pattern for Sync Solver (and later, Autopilot) was pretty straight-forward:
- Find a popular hardware product with a lack of software support in some key area
- Create an app to address the lack of software support, and make sure to only focus on functionality related to the key area
- Offer the app at a relatively low price compared to the cost of the hardware
- Get one or more publications with a large audience to talk about the release (it helps if it continues a story like the Apple-Fitbit feud which is was click-bait)
- Ride the resulting wave of downloads to the top of the App Store charts
- Maintain App Store ranking by providing top-notch custom support where every dissatisfied customer eventually converts into a 5-star, written review
- Release free updates to reward early adopters and froster loyalty, which encourages users to tell other people about the app
When did you know you had to develop your own software and apps full time? How did you start developing for drones?
When Sync Solver went viral, I decided to leave my current job and take a few months to enjoy the success. During that time I bought a drone for Christmas (a DJI Phantom 2 Vision+) and started using it for personal aerial cinematography projects. From a hardware perspective, the P2 Vision+ was incredible. It included a 1080p camera, a fully stabilized 3-axis gimbal, and a realtime HD video feed. The problem was my skill level as a pilot and gimbal operator. I had ideas for aerial sequences that were beyond my ability, and there was no software for the DJI platform to solve the problem. After doing some digging, I realized that DJI had just released v1 of their mobile SDK in November 2014, and no one had created an app for it yet. I remember sending in my SDK application on Christmas Eve, and DJI approved it in 30 minutes, so I immediately started coding. The result of this passion project eventually became Autopilot, which was released just a few months later on March 23, 2015.
In retrospect it was perfect timing as I had just returned to app development with Sync Solver, and the income stream from that app allowed me to create Autoflight Logic without involving investors. Instead, I was free to focus purely on product development without making short-term compromises to maximize revenue or achieve other business goals that investors typically prioritize. Needless to say, this turned out to be a big hit with the drone community, which was craving a product built by enthusiasts for enthusiasts.
What separated Autoflight from its competitors? You have significantly more users and flights than any of the other GCS options for DJI out there.
When I first started writing code for Autopilot, the DJI SDK provided very limited functionality compared to where it is now. Today, you have robust control over their entire drone product lineup, and they quickly respond to feature requests and user needs. In the early days, apps had no choice but to send “virtual stick” commands directly to the aircraft in real-time, at least ten times per second. This meant that every single pitch, roll, and yaw movement on both the aircraft and the gimbal had to be calculated in a real-time control loop, written by the app developer. In the industry, these loops are generally known as flight controllers, and they perform guidance, navigation, and control (GNC) using a combination of trigonometry, vector arithmetic, and other advanced calculus. Creating a custom flight controller was a high barrier entry for competitors, and this gave Autopilot an advantage for many months.
Eventually, DJI released an updated version of the SDK that included higher level APIs to access the DJI flight controller on the aircraft, and this lowered the barrier to entry for new apps. However, using the DJI flight controller is a double edged sword because, by definition, the GNC is occurring on the aircraft, which has severe limitations both in processing power and connectivity compared modern mobile devices. At this point, Autopilot was able to differentiate itself from the competition by offering features such as Airspace and dynamic Waypoint missions (including real-time flight path modification) because it was built on my custom flight controller running on a powerful, connected mobile device. Most new apps coming out are built on the DJI flight controller because creating a custom flight controller is such a large investment of time and resources, but this places an upper bound on the possible functionality. Even now there are many features that are still unique to Autopilot.