Wednesday, July 3, 2013

Open Source RC controller firmware

What's special about Open Source?

I expect most of you have heard of it, but open source software means you can get a copy of the sources and modify them to meet your own needs. An open source version of a firmware controller means - well, you can change it to add functionality to your controller. Adding a backlight to a controller is easy. Making it time out and shut off after a period of inactivity is also easy - with access to the firmware source. Without it, not so much.

What are the choices?

There are a number of choices:
th9x and descendants
th9x was one of the first open source controller firmware options. A number of other options have been branched from it for a variety of reasons. They aren't identical, but moving between them is relatively straightforward
RadioClone
RadioClone runs on the same hardware as the th9x variants, but was independently developed, and is radically different from them.
DeviationTx
An open source firmware for the Welkera Devo line of controllers.
OSRC
The Open Source RC project is not merely an open source firmware project. It includes a modular open source hardware design that the open source firmware runs on. No complete release is available yet.
XPS-3216
This controller is rumored to have open source software, but nothing has been released yet.
The only ones actually available at this point are th9x and variants, RadioClone and deviationTx.

th9x and variants

These generally run on a variety of similar radios, and include support for a fair number of hardware ugprades - most notably custom CPUs and motherboards. That's one of the reasons for some of the variants - they were created to support some specific motherboard. OpenTx seems to be the most popular now, in part because it was designed to be configurable for different hardware variants at compile time, so some of the hardware-specific variants have been abandoned in it's favor. It's what I'm most familiar with.
The variants are generally harder to configure than proprietary radios, because they don't have specific settings for popular aircraft configurations. Instead, you have to know how to configuring things for a specific type of craft. This is alleviated in part by a template system, and in part by desktop software that can read and write the model configurations, and incorporates the requisite knowledge.
On the plus side, the tools for configuring the controller - generally called mixers - are much more powerful than those found in proprietary firmware. Proprietary systems generally only allow a few custom mixes with one or two extra inputs, controlled by a small set of switches. The th9x versions let you have mixes on every output channel, have virtual channels, have input counts limited only by memory, and can be configured to be controlled by any switch on the device, including things that aren't normally switches, and virtual switches that are the result of evaluating boolean expressions involving the same set of switches - including themselves.

RadioClone

This runs on the same basic radio as the th9x software, but takes a different approach to providing flexibility. I'm not really familiar with it. If you're interested in an in-depth look, leave a comment asking for it.

deviationTx

deviationTx runs on the Walkera Devo line of controllers. These have a generally more powerful CPU than the controllers used by the th9x software. It does have a standard mode for helicopters that resembles proprietary firmware controllers, as well as an advanced mode that resembles the th9x software, but doesn't seem quite as powerful. The software is newer than the th9x software, so I'm still investigating how powerful it is, and it's adding new capabilities quite rapidly. The UI - at least on the more expensive radio with color touch screens - is much better than the th9x software.

Next time

I'll look at the hardware available to run this firmware.