After a very busy holiday period the Paparazzi developer team are pleased to announce the initial release the Mac OSX port of Paparazzi.
Although this release is a couple of weeks later than expected, the team is satisfied that this port will be easy to install and run. This first release still retains the look and feel of its Linux sibling as currently it uses X Windows for rendering. This is due to change, as the graphics library used by Paparazzi (GTK+) is improving its support for the native quartz engine found in Mac OSX. This improved version of GTK+ is due for release at the beginning of March. The team is tracking this and expect a more native look and feel version of Paparazzi to follow this release.
The porting team has taken particular care to implement the packages as Macport ports thus giving a user the opportunity to install source versions or binary versions. Ensuring that every feature of paparazzi is available as it becomes available.
Again I am pleased to see the depth of talent in the Paparazzi team. Bernard Davison a relative newcomer to Paparazzi development made a huge contribution to the packaging of this port. Enough of the waffle though! The download install page for Paparazzi on OSX can be found at http://wiki.paparazziuav.org/wiki/InstallationMacOSX
Many Paparazzi followers will be familiar with the popular TINY and TWOG fixed wing autopilot boards that have allowed so many UAV pilots their first taste of autonomous flight. A few will even have had the pleasure of using the Booz multicopter autopilot board. All three of these designs are based on the Phillips LPC2148 microcontroller, which has proven to be a solid performer in this role. Antoine Drouin, the genius behind the Booz board, has once again outdone himself with a completely new series of autopilot boards based on the STM32 ARM Cortex-M3 microcontroller, which has the umbrella name Lisa. The first available is the Lisa/L and it is this board that will be explored in coming articles.
In the case of Lisa/L the 64 pin STM32F103RE processor has 64k of RAM, 512k of FLASH and runs at 72Mhz. To ensure that future autopilot features are not restricted by board design, Antoine has ensured that all of the processor’s pins are exposed on Molex PicoBlade connectors. This allows access to all of the available peripherals, which include 3 USARTS, 2 SPI, 2 I2C, 1 CAN and 3 ADC channels and many more.
The board also provides an interface which is both electronically and mechanically compatible with that of the Gumstix Overo, providing the option of running autopilot code (and any other applcations) under Embedded Linux on an Overo with the STM32 acting as an I/O processor.
The board is equipped with a pair of pressure sensors, one absolute to measure altitude and one differential to measure airspeed. Additionally, Lisa/L is fully compatible with the BOOZ IMU module which can be conveniently mounted above the Lisa/L board.
The addition of further sensors and external peripherals like modems, servos, USB webcams or wifi sticks is facilitated through the inclusion of three different power supplies (5V for external peripherals, 3V3 for avionics and a linear supply to provide clean power to sensitive sensors).
For the first time in a Paparazzi autopilot board, a USB based JTAG interface to the STM32 has been incorporated. This high speed interface allows for both fast programming and run time debugging using GDB. Debugging doesn’t get any easier :). If the Gumstix module is mounted, this USB interface also provides the serial console.
Even from these few short paragraphs, it should be apparent that Lisa/L has been designed with power and flexibility in mind. This has already demonstrated with the flight of both quadrocopters, hexacopters and fixed wing aircraft utilising very different sensor suites (such as the Paparazzi Booz IMU and Paparazzi IR sensors ).
For those that can’t wait until next time the Lisa/L Gallery is a must see.
In the upcoming articles we will explore the features of Lisa/L further.
This is a brief note to keep everyone updated on progress towards supporting Paparazzi on OSX. Currently Paparazzi is supported only on Linux. With the growing base of Paparazzi developers it has become possible for us to consider supporting multiple operating systems.
Mac OSX was chosen for attention ahead of Windows 7 due to the its similarity to Linux. We hope that the experience gained in supporting this operating system will give an indication of what form a combined build system for all three platforms will take.
The GUI used by the Paparazzi ground segment is based on GTK, this provides a transparent way of building X Windows based applications for OSX. To date all the components of the ground segment have been built in this way and function as intended. Unfortunately this currently requires hand building some packages, attention is now being given to simplifying the process by wherever possible submitting patches to the package maintainers.
Once the machinery is in place for installing Paparazzi on OSX without hand building some packages, only a few extra changes will be required to produce a version that uses the gtk-quartz-engines. This will then provide the look and feel of a native OSX application.
A number of interesting facts have surfaced during this process.
The first is that the Paparazzi development team have over the years have been very careful to adhere to the Posix standard. This has meant that very few code changes have been required to make Paparazzi run on OSX. This portability is something the team should be very proud of.
The second is the amazing depth of talent in the Paparazzi development team. I provide only one example of this but there are many more. A central component required in the ground segment is the build system used by Paparazzi to create firmware for the autopilot. This consists of a cross compiler and related utilities. In this case Esden had already done much of the work required to produce such a toolchain with his summon-arm-toolchain script. Thanks to that with only a few “clicks” we ended up with a toolchain that we could use for both of our arm targets, lpc21 and stm32.