Ada-SPARK is the reference programming language used for the AdaPilot project. Ada has a set of unique technical features that make it highly effective for use in large, complex and safety-critical projects. The advantages of SPARK, a subset of Ada, for remotely piloted-related software are obvious: by using SPARK, you can ensure that no runtime errors can occur when the drone is flying.
Firmware Code language
The Primary Flight Control Computer (PFCC) and AHRS will be coded entirely in Ada-SPARK, the Mission Management Computer (MMC) will also be coded in Ada, but are open to any other languages, processors and OS. This allows the integration of a wide range of available and future sensors and technologies, like ROS, Linux, ECHORD++ operating systems and COTS CPUs such as Intel, AMD, ARM-A, NVIDIA and more. Global wide communities and projects are encouraged to participate in order to integrate and combine its new technologies and solutions with the AdaPilot environment.
Programming & Compiler Environment
Ada GNAT GPL Edition for Bare Board ARM is the required software development environment. Preferred OS are Linux and Mac OS X, however the Bare Board ARM version is not yet natively supported by AdaCore. This website will help to guide you how to use the Mac OS X for Bare Board ARM. Read more about Ada-ARM and Mac OS X under the "Developers" menu. We hope to increase the Ada-ARM-Mac community soon.
FlightOS-M4 source-code are free to download from the AdaPilot repository under the GPLv3 licensing model. AdaPilot will provide a ready-to-use stable and a developer experimental variant of the code. This should satisify both code developers, and users and supporters as well.
No compiled executable will be made available to the public. This decision was made to encourage all AdaPilot community members to download and to play with the Ada GNAT GPL Edition and to encourage discussions, the sharing experience and to win new Ada developers on the AdaPilot community website.
To bring a reliable and robust aviation bus standard into the AdaPilot concept, the CANaerospace bus protocol was selected. This will be the only supported protocol to communicate with the flight control computer. All external sensors, AHRS and mission management computers must support this protocol, this will create a real "Plug & Play" environment. The CANaerospace definition is kept widely open to allow implementation of user-defined message types and protocols.
To best interface the AdaPilot environment with the development hosts, a CANflight adapter could be used. The CANflight adapter is a CANaerospace Protocol Compliant Network Interface providing a 1000/100/10 BaseT Ethernet interface for communication with the powerful eXtended CAN Tool (XCT) software for Windows, MacOS, and Linux.
XCT provides all necessary functions for CANaerospace network compatibility verification, CANaerospace end system testing, CAN network analysis, flight data recording and CANaerospace communication profile generation and analysis.
eXtended CAN Tool (XTC)