This blog is also available on Gemini (What's Gemini?)

Building OpenTX on Gentoo

2014-12-17

I just got a Turnigy 9XR radio for a new quadcopter. I had been thinking about the Parrot Beebop, but I decided that I wanted a grown-up quad, so I got the AeroQuad[1] Cyclone kit instead.

Now, the reason I bought the Turnigy 9XR is that it has an ATmega on board with fully customizable firmware. It even has the standard Atmel ISP port for programming.

I setup my laptop to build one of the major FOSS firmwares out there, OpenTX[2]. Building the firmware itself went fine. The tricky part was building Companion, which is basically a big GUI wrapper around avrdude for burning the firmware. I hit an error that I couldn't quite figure out:

$ make [ 1%] Generating /path/to/opentx/companion/src/../../radio/src/lua_exports.inc Generating a list of Lua exported constants in lua_exports.txt Parsing and generating C Lua exports in lua_exports.cpp File "../util/luaexport.py", line 28 print "WARNING: Duplicate name %s found for constant %s" % (name, CONSTANT_VALUE) ^ SyntaxError: invalid syntax

This turned out to be because my Gentoo system was setup with python3.3 to be hit by default, and the code above is still on python2.7. I still had a build of 2.7 available, though, so it was an easy matter of switching[3]:

$ eselect python list Available Python interpreters: [1] python2.7 [2] python3.2 [3] python3.3 * $ sudo eselect python set python2.7

Then follow the rest of the Companion build instructions[4], and switch it back to python3.3 when you're done.