Transamerica Trail 2009: Change’ll Do Ya Good Tour for Adventure Motorcycle Magazine

After writing up my tour of Jalisco blog post, I was reminded of the article my dad wrote about our journey across the country on the Transamerica Trail. Download the Adventure Motorcycle magazine article here or feel free to flip through the viewer below.

TL;DR: Between college and graduate school my dad and I rode a few thousand miles off-road between Colorado and Oregon on the Transamerica Trail. It was the experience of a lifetime that I would highly recommend to any motorcycle enthusiast.

2016-04-28 05.40.47 pm



(Almost) 1000 km through The Free and Sovereign State of Jalisco: A motorbike tour through time

For my 30th birthday, I flew down to Puerto Vallarta (all the cool kids just drop the Puerto, so I’ll follow suit) to ride the Four-day Adventure Tour with Bike Mexico. Due to a little chaos with the Site Scan launch and my dad’s recent return from Panama, the trip was planned at the absolute last minute. We had no idea what we were getting into. Fortunately, everything worked out beautifully. Jurgen Dano was a fantastic host, giving us the opportunity to ride beautiful terrain in rural Jalisco and visit historical Mexican villages.

We covered almost 1,000 km of mostly dirt roads (sadly no single track) and ran a nice little figure-eight through Jalisco. An interactive map of our GPS tracks is available here for those who would like to follow along.



The first leg (Day 1 morning)

Our first leg took us from Vallarta to El Cuale, which was once a very rich town that served as one of the silver mining capitals of Mexico. Its population once numbered in the tens of thousands and spurned the Genghis Khan approach to riches (at one point in history, Genghis was the wealthiest man on earth but left nothing behind). Rather than extract wealth and move on as happened throughout my home state of Colorado (please visit Leadville today and tell me you could recognize it as one of America’s wealthiest towns in the the late nineteenth century), the early El Cualens built a massive cathedral, beautiful cobbled streets, and a stone and brick structures that will stand the tests of time. However, this once glistening town is now inhabited by only a few hundred residents employed mostly in the agriculture whose relatively modest means starkly contrast what once was.

Vallarta to El Cuale

Google Earth’s directions from Vallarta to El Cuale should provide a general sense of context.

Dad and me riding

Google Earth’s directions from Vallarta to El Cuale should provide a general sense of context.

Barbed wire overlook

A nice view of a village we passed along the way.

old mill

The ruins of this old mill hint at El Cuale’s industrialized past.

Sierre Ocidental map

My dad and Jurgen posing in front of a map of the region. Notice the El Cuale cathedral dome in the background.

Day 1 lunch stop

The only restaurant in El Cuale resides in a nice woman’s house. She opened her door to us, made tortillas on a wood-fired stove, and served up one of the most incredible meals I had in Mexico. It’s pretty amazing to think that this village was at one point one of the wealthiest in the country.


Here we are eating lunch. I wish I could have another round right now.

Cathedral in CualeCatherdral in Cuale 2

A few more shots of the El Cuale cathedral. Due to the topography, it was difficult to get a single good shot, but the building is massive and solidly constructed. This would be a mid-eight figure construction project these days.

The second leg (Day 1 afternoon)

The second leg took us from lunch El Cuale to Talpa de Allende, another formerly very wealthy silver mining town where we would spend our first night. Unlike El Cuale, Talpa has reinvented itself as a destination for pilgrims, who flock to Talpa from all across Mexico, some on their knees, to pay their respects at the Our Lady of Talpa Church, another massive cathedral in the middle of the Jalisco mountains. Beyond the cathedral, Talpa looks and feels like any old town in Spain from the beautiful central square to the characteristic blue street signs affixed to old stone buildings.

El Cuale to Talpa

Google Earth doesn’t know about the route we took, but this map gives an approximate sense of geography. In reality, we rode a fairly nasty, ungraded mining road directly over the mountains from El Cuale to Talpa.

Superfund site

This was the only photo I took on this leg, as the riding was fairly challenging. All of the mining in the area turned many of the rivers into superfund sites that appear incapable of supporting life.

Talpa cathedral

A stunning view of the Talpa cathedral. Not many towns of 13,000 can lay claim to a monument like this one. This cathedral anchors the local economy, which is built around hosting and serving pilgrims. Nearly everything related to the Catholic church in Mexico requires payment. One must consider what kind of development and infrastructure projects could be funded if the money went toward a broad public good rather than erecting tributes to Catholicism…

The third leg (Day 2 morning)

After spending our first night on tour, in a lovely pilgrim’s hotel in Talpa, we set out toward Mascota, a little town that was fairly unremarkable aside the fact that fact that it hosts not only a finished cathedral, but an unfinished one as well. I’m not entirely sure what the logic was behind building a second one mere blocks away, but they never got around to finishing and likely never will.

Talpa to Mascota

We ended up riding some additional loops through the mountains, but, aside from those, this Google Earth route is approximately correct.

Water crossing

A nice water crossing shot in the midst of a village we passed through.

Cactus next to me

Midmorning break at a lakeside restaurant after finishing up some of the most interesting riding of the trip. The doubletrack was driven infrequently enough that I could nearly pretend the second track didn’t exist.

Me next to cactus

Same place, same time. View through Jurgen’s lens.

Me taking a break

Taking a break in front of a magnificent vista.

Agave plants

We were not too far from the town of Tequila and stumbled upon fields and fields of agave.

Resort with orange tree

We emerged from riding a few hours through the jungle and discovered a luxury resort build by a Vallarta developer tucked away in the mountains of Jalisco. It was complete with an all-white horse-drawn carriage, a tree painted orange, a lake full of paddle-boats, and everything else you’d expect from an idyllic, WASPy, East Coast summer camp.

Mascota cathedral

Mascota cathedral #1.

cathedral ruins

cathedral ruins 2

The ruins of the unfinished cathedral several blocks away. Very little information was available about this site, but the ambitions were grand.

The fourth leg (Day 2 afternoon)

After lunch in Mascota, we rode north, to San Sebastian del Oeste, a picturesque mountain village that has been designated a Pueblo Magnifico by Mexico’s Secretary of Tourism. Even despite the nice journey to get there, the destination is quite pleasant and ranks as my favorite stop in the Jalisco mountains. A highlight that did not get captured by a photo involved riding motorcycles across the deck and through the courtyard of the little pension that hosted us for the night because the owner wanted us to keep our bikes safe behind locked doors.

Mascota to San Sebastian

This leg of the voyage was mostly on cobbled roads through the mountains.

Dad and me descending

Beautiful riding through the Jalisco hills.

Cell tower above San Sebastian del Oeste

Once we got into San Sebastian, we began exploring the environs. This cell phone tower sit atop the highest peak in the region, which received snow and hail the prior week. From the top of this peak, the high rises on the beach in Vallarta are visible.

exploring the mine

After descending the mountain, we headed up another to explore an old mine shaft. I know they tell you never to do this in Boy Scouts, but exploring the old tunnels was irresistible.

Me riding over creek

Me on the way back to town from the mine. My favorite technical challenge of the trip was riding over that little single track bridge visible at right in the photo.

alley in san sebastian

A cute little alley in San Sebastian. The entire town seemed abandoned when we got there aside from an Italian restaurant spun up to serve ex-pats and a michelada bar on the main square that consistently was devoid of more than a couple customers.

The fifth/sixth leg (Day 3)

The fifth and sixth legs took us south, back through Vallarta, and beyond to a little resort in the middle of nowhere called El Cielito. This was the best day of riding. We rode twisty highways from San Sebastian down to Vallarta and explored unmapped roads on which we say nary another internal combustion engine but a plethora of cowboys on horses. Jurgen’s typical trip takes a more standard route from just south of Vallarta to El Cielito, but we all decided to scout out a new route.

San Sebastian to El Cielito

This time Google Earth leads us quite far astray. We hugged the coast for much of this leg.


The only photo I took during the highway portion of the day was of El Progreso bridge.

Jungle riding

Over the course of the day, the flora transitioned from alpine scrub to jungle.

rooster houses

All these curious little structures out in this field are rooster houses. Apparently this farm raises cock fighters.

Yalapa paradise

This beach belongs to the town of Yelapa, which sits at the south end of the Bay of Banderas. It looks like paradise as far as I am concerned as is only accessible by boat or by the nasty dirt road we were riding. To my left is a paragliding take-off pad so tourists can fly back down to town. Sounds like something I should do next time around.

leaving Yalapa

Leaving our vantage point over paradise. Notice the wind sock for the hang gliders.

Dad and me cruising in the desert

Burning through the desert to make it to cold beers and hammocks at El Cielito.

made it to paradise

After the longest day riding, we made it to El Cielito just in time for sunset. Nothing like relaxing in a hammock with a cold beer as the sun sets over the Pacific.

beers by pool

Jurgen outdid himself with lodging on the last night. Infinity pool overlooking the beach? Yes, please. Remarkably, there was only one other party sharing the compound with us. When I return to Vallarta, I will absolutely make the trip back down here.

The seventh leg (Day 4)

After three relatively hard days of riding, Jurgen decided to give us a break. We slept in, kayaked around the inlet, lounged in the pool, and pushed off around 11 am to return to Vallarta.

last day

Before we pointed our bikes back home, we visited a little fishing village with an interesting entryway.

remote beach

And an empty sandy beach that stretched for miles in either direction. Not quite Sayulita!

Dad and me climbing with ocean in the background

Finally it was time to climb out of our hidden little bay and motor back toward Vallarta. Huge thanks to Jurgen and my dad for taking me on this amazing trip. Looking forward to the next time I can get down south.

Site Scan is out!

I was hired at 3DR around a year ago with the mandate to build our first enterprise product. A year later, we have delivered. I am proud to announce that my team and I have released Site Scan, an intuitive, tablet-based ground control station that is deeply integrated with the Autodesk software stack so familiar to enterprise users in infrastructure, transportation, and construction.

Site Scan enables a novice user to automatically inspect, survey, or scan a project with a few taps or swipes. The imagery then uploads to the Autodesk ReCap engine to seamlessly generate an ortho, mesh, and point cloud which is scaled, georeferenced, and ready to drop into any Autodesk application via the A360 Cloud.

This workflow has already driven increased efficiencies in construction in combination with BIM360, infrastructure with Infraworks, and transportation with Civil 3D. Click here to see one of my favorite Autodesk Technical Account Managers, George Hatch, walk through the Site Scan workflow at a cement plant in Texas.

While I see the power of Site Scan, it was also really incredible to see how the mainstream news media picked up on our launch. More than 13 articles were published that cumulatively generated tens of millions of impressions.

Take a look at a few of them below and check out my little Easter egg from the website in the image below.

2016-03-15 08.16.09 pm


Outlet: CIO

Link: 3D Robotics means business with its new enterprise drone system

Quote: “All the data the drone collects is stored in 3DR’s cloud and sent to the Autodesk Cloud for analysis. It can also be sent to other professional design and engineering systems, 3DR says.”


Outlet: ComputerWorld

Link: 3D Robotics means business with its new enterprise drone system

Quote: “3DR is aiming the system at telecommunications, energy, infrastructure and mapping operations in addition to construction.”


Outlet: Fast Company

Link: This Drone Can Map The World In 3-D

Quote: “The next version of 3D Robotics’s high-end Solo drone will feature Sony’s new UMC-R10C camera, which not only takes far more detailed images than ever before, but also can upload those images to the cloud right from the camera. “


Outlet: Fortune

Link: How 3D Robotics’ Souped-Up Drone Puts Aerial Surveying on the Map

Quote: “Using 3DR’s 4-pound, tablet-controlled Solo, surveyors simply trace a flight pattern on a Google Map and then keep eyes on the drone as it flies autonomously over a construction site.


Outlet: PCMag

Link: Dangerous Job? Let a 3D Robotics Drone Handle It

Quote: “If you’re worried about flying into restricted airspace, Site Scan will lets users draw geo-fences on the tablet screen with their fingers. The Site Scan app also runs 3DR’s airspace safety information software, so you’ll get an alert if you’re about to fly in restricted airspace.


Outlet: PC World

Link: 3D Robotics means business with its new enterprise drone system

Quote: “Construction is one of the uses for Site Scan, a system that drone maker 3D Robotics announced on Monday with Sony and Autodesk.”


Outlet: Civil + Structural Engineer

Link: AEC Tech News: 3DR Announces Site Scan Aerial Analytics Platform

Quote: “Site Scan makes it safer and easier than ever for people in construction, telecom, GIS, mapping energy, infrastructure and related fields to aggregate and process multiple forms of reality capture data and perform inspections, the company said.”


Outlet: Construction Dive

Link: 3D Robotics launches drone tech collaboration with Autodesk, Sony

Quote: “3D Robotics has announced a collaboration with Autodesk and Sony that enables work-site drone data collection and processing on a single platform, or “drone to cloud solution,” called Site Scan”


Outlet: Directions Magazine

Link: 3DR Announces Site Scan, The Premier Aerial Analytics Platform for Data Collection And Cloud Analysis

Quote: “3DR Announces Site Scan, The Premier Aerial Analytics Platform for Data Collection And Cloud Analysis with The Solo Smart Drone 3DR collaborates with Autodesk and Sony to deliver a best-in-class solution for collecting and analyzing aerial data.”


Outlet: Robotics Tomorrow

Link: 3DR Announces Site Scan, The Premier Aerial Analytics Platform for Data Collection And Cloud Analysis with The Solo Smart Drone

Quote: “3DR collaborates with Autodesk and Sony to deliver a best-in-class solution for collecting and analyzing aerial data.”


Outlet: socaltech

Link: 3D Robotics Ties with Autodesk On Drone Mapping APIs

Quote: “3D Robotics and CAD software maker Autodesk are teaming up to help companies better move data from 3D Robotics’ drones, to the cloud, the two companies said on Monday.”


Outlet: The Verge

Link: 3D Robotics partners with Sony on a drones that can map the world in 3D

Quote: “3D Robotics, one of the biggest US drone makers, announced this morning that it is partnering with Autodesk and Sony to create a high end version of this Solo Drone.”

Idiot’s Guide to DroneKit Android: Reskinning Tower for Fun and Profit

I had so much fun playing around with DroneKit Python over the last month or so, that I thought I would try my hand at DroneKit Android. Specifically, I was interested in building a customized version of Tower.

The DIY Drones community is probably well aware of Tower’s expansive capabilities as a mobile ground control station, specifically with regards the built in autonomous mapping and scanning modes. Some tens of thousands of users are currently leveraging Tower to control their Pixhawk-powered drones, many of these for small business or large enterprise. However, these commercial users are stuck with a multitool when all they need is a knife. Tower has so many features and functions that it can be quite overwhelming for first time users to create even simple survey. Furthermore, it is fairly easy for even advanced users to make simple mistakes like accidentally pushing the drone into ACRO using the drop down menu up top.

For my first DroneKit Android project, I set out to create an Agribotix branded GCS for Solo AGCO Edition. This isn’t any kind of official AGCO product, but just a fun project I thought would help me learn about DK-Android.

Key features I wanted to explore in DroneKit Android were how to:

  • Change styling, colors, and logos
  • Remove unnecessary flight modes
  • Fix camera settings
  • Remove hobby oriented settings
  • Force a UDP connection

While this project is obviously mostly an exercise in deletion, it served as a great introduction to what functions are available in DroneKit Android, how code is split between Tower and 3DR Services, and how a basic Android app is structured. Prior to this undertaking, I had never touched a line of Java or Kotlin or worked with an Android app, so I will assume the reader hails from a similar background.

I hope this guide inspires/enables some of you to create your own custom versions of Tower! My example apk is available here and my my source code is here.

Step 1: Get ready

If you aren’t already familiar with SITL, DroneKit, git, and the various developer tools I’ll mention here, head over to my Idiot’s Guide to DK-Python: A Journey to WHOZ CHILLIN and give it a quick read. You will be using many of the tools and concepts discussed previously to debug and test your custom version of Tower.

Note: DK-Python is fairly simple and well documented. DK-Android is not. If you are interested in an easier journey to a custom GCS, it may make sense to work in Python.

Next, download Android Studio. Google has built an incredible Integrated Development Environment (IDE) for building Android apps and you will be using it to do all of your work on Tower.

The Tower source code comes next. Because Tower is open source, all of its source code can be downloaded from the DroidPlanner GitHub account. Run

git clone

from the terminal in the directory where you’d like to work on your version of Tower. Git will automatically download all of the files you will need.

Next open Tower in Android Studio. Alternatively you can use the VCS ⇒ Checkout from Version Control ⇒ GitHub flow to automatically import Tower into Android Studio.

Android Studio will then attempt to build the Gradle, which must succeed before you can do anything. If you just installed Android Studio, it will fail because you will need to install both the latest Android SDK and BuildTools. Wait for the Gradle build to fail and follow Android Studio’s instructions to get both of these items installed.

Finally, it’s possible to test your app on either a simulated device or a real one. On my computer, the simulated device runs very slowly, so I prefer to debug using a real tablet. To do this, you must plug your tablet into your computer’s USB and set it to developer mode. Briefly, find the Android Build Number section in settings and tap it seven times. After the seventh tap, you will see Developer Mode enabled and you will be able to run your code on the connected tablet.

Step 2: Build Tower

Now that you’re ready to roll, try building Tower yourself. First, click Run ‘Android’ under the Run menu. Assuming you’ve followed all the instructions in Step 1 successfully, Android Studio should compile the Tower source code and spin up a copy of Tower on your connected device. Cool! Now you never need to download compiled .apks of open source projects. You can just compile them yourself.

Go ahead and start up an instance of SITL and connect your compiled version of Tower, which should be called Tower debug on your tablet. You should be able to control your virtual copter just like the you can using the production version of Tower available in the app store.

Running your program is great for quickly testing your changes, but you will need to compile your own .apk for distribution. Try clicking Build APK under the Build menu, building your own version of Tower, and installing it on an Android device. Easy!

Step 3: Android app basics

I am definitely not the most qualified person to write this section and likely will have some errors in my assumptions, but I think my basic understanding is generally sound. If any of the Android wizards out here have improvements or corrections, I would love to roll them in. However, having spent some time bumbling through Tower’s structure without any background in Android applications, I hope I can provide a more accessible view into how to start digging in.

When you open Tower in Android Studio, you’ll notice two high level menus: Android and Gradle Scripts. Android is where most of the meat lives, but some of the files found within Gradle Scripts are responsible for very high level functions like the app name.

2016-01-18 06.40.01 pm

Within Android, you’ll see manifests, java, and res. manifests dictates what types of devices are compatible with our app. When you open the xml file within manifests, you’ll notice most of the file is concerned with various hardware configurations. For this project, we don’t care about hardware, but you might imagine that for your custom version of Tower, you might want to restrict users to connecting over Bluetooth and thus would like to throw up an error if a user tried to run your app on a tablet that did not have Bluetooth capability.

The java folder contains, not surprisingly, all of the java files that provide the structure of the app. However, in an Android application, the java files in many cases only serve as a general framework into which content is populated from the xml files found in the res folder. This will become abundantly clear as we walk through the tutorial, but Tower is a delicate dance between the java files in the java folder and the xml files in the res folder.

Take a minute to scan through the java and res folders with Tower open by your side and see what you recognize. I certainly was pretty amazed by how much I was able to understand by just generally scanning the code while poking through Tower. If there is a specific feature you are interested in, try Find in Path, Shift+Command+F on a Mac, and you generally can see where in the code base a specific feature resides.

Step 4: Let’s try some easy stuff

So you think Tower is a boring name? Me, too. Within Android Studio, open the Gradle Scripts/build.gradle (Module Android) file. Head down to lines 140, 148, and 154. You’ll notice that you can replace Tower with a name of your choosing. I used Agribotix for my example, but let your creative juices flow.


Don’t like the Tower logo? Replace the ic_launcher.png logos found in res/drawable/ic_launcher with your own. The different files are for different resolution icons that are displayed on different size devices. If you want to be really fancy, you can use an online tool like this one to automatically generate all of these files from a vector image.

2016-01-18 06.41.27 pm
Want to establish some branding within the app? The sidebar seems like a good place to start. Head to res/layout/nav_header_main.xml. You’ll see something like the image below. The screen is split between Android Studio’s best guess as to how nav_header_main.xml will appear on an device and the actual .xml file. If you CMD + click on some of the elements, you can see how they are linked to the rest of the code. Try it and see. After playing around for a few minutes, it should be fairly obvious what’s going on inside this .xml file.

2016-01-18 06.43.02 pm
Now, let’s get to your custom branding. You can either do things the hard way or the easy way. The hard way is scan through the text and identify which lines of code likely correspond to which design element. Here, is is fairly obvious that android:text= specifies what the text in the header will say, but that’s not always to case. However, Android Studio is pretty amazing. You can simply click on the item of interest, say the text, and Android Studio will highlight what code is responsible for that element. Go ahead and change the background color, logo, and text to match your branding.

2016-01-18 06.43.59 pm

Great, now you should understand the basics of how Tower, and Android apps in general for that matter, is structured from a design perspective. I just identified a few specific touch points here, but with some pretty straightforward digging, you should now be able to completely own the style and design of Tower.

After you’ve tinkered to your heart’s content, go ahead and Run ‘Android’ or build an APK and see how it looks.

Step 5: Let’s dive a little deeper

Now that you own the design, let’s start to own the functionality. One of my biggest issues with Tower, especially when showing it off to a commercial user interested in mapping, is the 15 flight modes available from the telemetry bar. It is far too easy for a user interested in autonomous flight to accidentally kick the copter into ACRO mode and cause a crash. Let’s fix that.

2016-01-18 06.45.50 pm

This is the first time where we will be working at the intersection of Tower and 3DR Services. You’ll notice that if you navigate res/layout/fragment_action_bar_telem.xml, you’ll find the design responsible for this feature. However, what you will not find is the ability to add or remove menu items using a simple .xml file. Rather, you will see a reference to android:id=”@+id/bar_flight_mode” when you click on the flight mode piece of the telemetry bar. If you search your app for that string, you will find a java file called

If you stare at this file for long enough, you will realize that the menu of options in the telemetry drop down is populated by FlightModeAdapter.

2016-01-18 06.47.26 pm

If you CMD + click on FlightModeAdapter, Android Studio will take you to a file called FlightModeAdapter.kt, which is written in a language called Kotlin, which is similar to Java. It may be worthwhile to stop at this point and download the Kotlin plugin for Android Studio to make your code look a little more beautiful. Inside FlightModeAdapter.kt, you will see that there is another layer to the onion.
2016-01-18 06.46.33 pmTower is pulling the flightModes from a variable called VehicleMode. CMD + click on VehicleMode and you’ll notice that Android Studio takes you to the locked This file is locked because it is not actually part of Tower, but rather 3DR Services, which provides many of the functions called by Tower and DroneKit-Android apps. While you certainly could modify that file and compile a new version of 3DR Services, it is easier to step out a layer and try to address all of our changes from the Tower level.

To do this, reopen FlightModeAdapter.kt and put on your Java hat. flightModes is simply an array populated by 3DR Service’s VehicleMode variable. To remove elements from the array, we use the Java remove command. For example, to remove ACRO from your version of Tower, include  


underneath flightModes. For my app, I removed every flight mode aside from RTL, Auto, and Guided.

2016-01-18 06.48.13 pmGreat. Now build your app and make sure everything still works.

2016-01-18 06.48.56 pm

Step 6: Like Solo? Let’s make Tower connect automatically over WiFi (UDP).

Solo AGCO Edition users obviously are only interested in flying Solo. Bluetooth, USB, and TCP connections are painful for the uninitiated to understand and totally unnecessary. To force a UDP connection, open java/ You can see that this file handles all kinds of connectivity-related functionality.

Around line 300, you’ll see

final int connectionType = dpPrefs.getConnectionParameterType();

If you look at the code carefully, you’ll see that we can cheat and short circuit the whole connection type selection process by just hard coding in a UDP connection. You’ll notice that the connectionType variable in an integer. If you do a little CMD + click digging, you’ll learn that that integer is 0 for USB, 1 for UDP, 2 for TCP, and 3 for Bluetooth. To force a UDP connection, we can just go behind all of the logic and menus and replace





2016-01-18 06.50.28 pm

This cheat will not remove any of the UI, but no matter what connection type you specific, Tower will look for a vehicle over UDP. Which brings us to…

Step 7: Remove unnecessary menus

Now that we’ve hardcoded a UDP connection, we should remove all of the connectivity menus. And, while we’re at it, let’s get rid of everything else we find distracting. Personally, I don’t like the Flight History or Checklist top level menus and think the user is exposed to way too many settings.

Go ahead and open up res/menu/navigation_drawer_items.xml to clean up the navigation drawer and res/xml/preferences.xml to get rid of the preferences you don’t like.

You may find that with some of the xml items that you remove, you may have to find the associated Java reference and comment it out as well. This should be fairly straightforward to work through, but feel free to look to the Agribotix app for specific examples.

In this general vein, I also removed Dronie, Follow, and Land from the top level menus and everything aside from Spline Survey from the Editor screen, because the Solo AGCO Edition owners are essentially only interested in building maps. You can see how I did this by looking at what I commented out in java/ and /res/layout/fragment_editor_tools.xml

Step 8: Simplify the Editor screen for the optimal survey

Solo AGCO Edition customers use the editor screen to do only one thing: spline survey. They also user only one camera, GoPro, and should never have to play with sidelap or overlap. The mapping workflow can be dramatically simplified by hardcoding all of these values in, which is possible in java/

I started to get a little sloppy here (you’ll notice that I didn’t change the camera UI, although the camera is hardcoded to GoPro in the backend), but I hardcoded the camera to Hero 4 Black, the sidelap to 70%, and the overlap to 85%.

2016-01-18 06.51.55 pm

Step 9: Profit?

Whew! That was a lot of work, but in the end we created a custom version of Tower that is built to address specific user needs and reinforce a platform partner’s branding. Tower is a very extensible base for a huge variety of custom mobile GCSs, so I hope this guide makes modification a little more accessible for all of the 3DR platform partners, like Agribotix, out there doing great things with Pixhawk.

The drones of CES in pictures

When I stepped into the Drone Zone at CES, I was greeted by not three (DJI, Yuneec, and 3DR), as seen at AUVSI and NAB, but probably more than a dozen very high quality, professional looking drone booths. AEE, Hubsan, and other toy companies have moved seriously upmarket and new entrants like Xiro and Ehang had seemingly very high quality products on display. Without further ado, here are some of my favorites.

IMG_0224For those of you who didn’t see it in the mainstream news cycle, the Ehang flying car stole the show. Yes, the company that Kickstarted its way to the fairly pathetic Ghost had the most impressive presence in the drone area.


Phantom, Bepop, and Inspire clones for days. There were literally hundreds of these on display. It’s not clear if the drone industry has converged on several basic designs because they are best, similar to the auto industry, or, more likely, fast following is winning over true innovation.IMG_0242The Yuneec H920 integrated with a Pansonic GH4. This is the first time I’ve seen one in real life and it seems far too large to be practical. I would far rather lug around Inspire, assuming the X5 RAW matches the GH4 quality, for professional aerial video capture.


The new collision avoiding Yuneec Typhoon H. This hex feels much, much higher quality than the Typhoon 4K (my Typhoon 4K fell out of the sky, likely due to an ESU failure within 5 minutes of pulling it out of the box), but still shares the same chintzy gimbal. Yuneec has made some huge strides with this product.


Black Inspire 1 Pro with X5R looks mean.

IMG_0247Gimbaled FLIR Vue for Inspire enables easy aerial thermal imaging.
IMG_02536 months after release, Xiro has already revved the Xplorer. Xplorer 2 appears to have a spinning LIDAR collision avoidance system. The fit and finish is great and they upgraded to an integrated 4K camera. I have an original Xplorer and was generally impressed with the performance until the cheap battery latch failed on my third flight and I was permanently grounded due to a $0.10 part failing.