This project is not maintained any more. Please visit the new project page: Firmament Autopilot.
A lightweight and powerful autopilot software, which focus on research and development of state-of-the-art software for UAVs. One of the project’s primary goals is to provide an open and flexible platform making it easy to be applied to a broad range of domains.
- RT-Thread RTOS, Fatfs file system, System components, such as IPC, Msh shell system, file manager, parameter system, log system, etc.
- Completely support with Pixhawk hardware
- ADRC control & PID control
- Support with Mavlink(QGround Control)
- Support with Gazebo hardware-in-the-loop (HITL) simulation
- Calibration software (magnetometer and accelerometer calibration)
- Logger checker
The project is developed on Pixhawk (autopilot hardware). To download firmware into Pixhawk, please follow these steps:
- First compile the starry_fmu and generate bin file.
- Use QGroundControl (QGC) to download the bin file into fmu. To download custom firmware, choose the following choice.
- Now the firmware of starry_fmu should be correctly downloaded (If failed, please try again, or use the newer version of QGC). Connect Radio-telemetry to the TELEM 2 port of Pixhawk, then you should see the Msh shell system output via serial terminal (default baudrate is 57600).
- If you didn't format the SD card before, please type
mkfscommand to format the SD card.
- Then you should download the starry_io firmware. To do so, first compile starry_io project to get the bin file and name it as starryio.bin. Copy the starryio.bin to the root directory of SD card, then open Msh shell system and type
uploader, which is shown below.
- Choose file system option to start download. Notice that if it's the first time that you download starry_io, after you type uploader, you should push reset button of io (in the side of Pixhawk) to let io enter the bootloader.
- Congratulation, now the download is finished!
- IDE: The compile environment is based on Keil MDK5.
- GNU GCC: For more instructions, please refer to README.md