Introducing Solo Toolkit

2016-07-28

Solo Toolkit is a desktop application providing useful utilities for your 3DR Solo drone.

Motivation for making Solo Toolkit

The 3DR Solo is a great drone for development. However, changing firmware versions, pulling logs, and performing other tasks on Solo typically involves using SSH and tedious command line tools. Solo Toolkit exposes functionality to perform these tasks in a cross-plaform desktop application. This enables both developers and casual users to modify and maintain their Solo.

Solo is used internally at 3D Robotics by project managers and developers to quickly get information about a particular Solo, make changes to that Solo as needed or to conveniently pull logs. The project is open source and BSD-licensed.

Benefits of Using Electron

Electron started as Atom, an open-source text editor produced by Github. The underlying framework was eventually separated out into its own project, becoming Electron. Electron provides developers a way to build desktop apps using web technologies. This is faciliated by the bundling of a browser-Chromium–with node.js in a single runtime.

The UI of the application is essentially a webpage. However, instead of being limited to browser APIs, JavaScript being executed in Electron has access to everything that node.js apps do. This means the app can easily access local storage, for example, without the limitations imposted on web applications.

A primary feature of Electron is that it enables relatively easy cross-platform development. Solo developers and users use Mac, Windows, and Linux computers, and it would be ideal to support all of these platforms. System APIs for any operating system are abstracted into simple, well-documented interfaces in Electron. This provides very similar experiences across different environments. While Solo Toolkit currently works best on Mac and has minimal support for Linux, I’ve started the process of porting it to Windows (the main limitations of using it on Windows are explored under the Feature Roadmap section below).

Current Features

System Information

This view shows version information for various system components.

Log Collection

The /var/log folder on Solo contains a ton of useful information for evaluating system issues. For more on what information is stored in Solo logs, see the Solo Dev Guide. Solo Toolkit can easily collect all logs from both Solo and the Controller, or collect only a limited number of logs. Another option will conveniently zip the transferred log files for easy sharing.

System Settings

The System Settings view provides several options for changing settings on Solo:

  • Stick Calibration - Easily recalibrate the sticks on the Solo controller.
  • Factory Reset - Quickly reset Solo to factory settings.
  • Settings Reset - Quickly reset any custom settings applied to Solo.
  • Firmware update - Update firmware on Solo, the controller, or both.

Feature Roadmap

A number of additional features are planned for Solo Toolkit. The include the ability to use Mavlink to control APM parameters on the vehicle and integratino with 3DR’s firmware server to make firmware updating a fully integrated experience. See more roadmap items in the project readme.

Another major goal is to get Solo Toolkit running on Windows systems. While getting Electron running has been simple

Want to help develop Solo Toolkit? Check out the project on Github and don’t hesitate to reach out if you’d like to contribute.