Flight Controller Setup¶
Note
This page contains instructions for flashing pre-built firmware binaries. For instructions on building and flashing from source, see Building and Flashing in the Developer Guide.
Compatible Hardware¶
Currently, the ROSflight firmware supports:
- An in-development board from AeroVironment, the Varmint. This board has an integrated Jetson Orin, but is not yet commercially available.
- MRO's Pixracer Pro, which has the same H7 processor.
Supporting your own board
It is possible to write your own board support package (BSP). If you do create your own support package for the ROSflight firmware, please contribute back!
Serial Port Configuration¶
Tip
You can see which groups you are a member of by running groups $USER
on the command line.
The following bullet point is necessary:
- Be sure your user is in the
dialout
andplugdev
groups so you have access to the serial ports. You will need to log out and back in for these changes to take effect.sudo usermod -aG dialout,plugdev $USER
If you experience issues, you may need one or both of the next two bullet points:
-
Temporarily stop the modem-manager (Sometimes, Linux thinks the device is a modem -- this command will be effective until next boot, or until you run the command again with
start
in place ofstop
)sudo systemctl stop ModemManager.service
-
Add the custom udev rule so Linux handles the flight controller properly (copy the following as
/etc/udev/rules.d/45-stm32dfu.rules
)# DFU (Internal bootloader for STM32 MCUs) SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="0664", GROUP="plugdev"
Tip
You can permanently disable the ModemManager if you do not need it, then you won't have to disable it every time you reboot:
sudo systemctl disable ModemManager.service
disable
with enable
to revert (i.e. if you find some other program you use needs access to it).
Or you can uninstall it entirely from your system:
sudo apt purge modemmanager
Flashing Firmware¶
Needed tools
You will need an ST-Link STM programmer to flash the firmware. You can find one on Mouser.
Building the firmware¶
- To build the firmware, first clone the firmware repository:
git clone https://github.com/rosflight/rosflight_firmware
- Create build directory:
cd rosflight_firmware && mkdir build && cd build
- Build using: (
board_name
should be eithervarmint
orpixracer_pro
)cmake .. -DBOARD_TO_BUILD=<board_name> && make -j
Install STM32CubeProgrammer¶
We use the STM32CubeProgrammer to flash the flight controller.
- Download the programmer here. You may have to enter your email to download the software.
- Install the software by following the instructions in the downloaded package.
Flashing the Varmint¶
TODO
This section is still under development. Please check back soon.
- Connect the board to the ST-Link.
- Open STM32CubeProgrammer.
-
Plug the end of the ribbon cable into the 6-pin slot on the Varmint. You may have to make your own cable that connects the ST-Link to the 6-pin connector.
Danger
The Varmint has 2 6-pin connectors. Do not connect the ribbon cable to the port closest to the power wires.
-
Power on the Varmint by connecting a battery to the board.
-
Plug in the USB connector from the ST-Link to the computer. Select "Connect" in the STM Programmer.
-
Navigate to the programming page.
-
Select the hex file that was just built and click "Open".
/path/to/rosflight_firmware/build/boards/varmint_h7/varmint_10X/varmint10X.hex
-
Select the appropriate options:
-
Press "Start Programming".
Flashing the Pixracer Pro¶
Flashing the Pixracer Pro is a very similar process to flashing the Varmint. The only differences are noted below:
-
The PixRacer Pro does not use the same 6-pin connector to connect to the ST-Link. Instead, it uses TODO!
-
Power on the Pixracer Pro using a USB-C port.
LEDs¶
The meaning of the various LEDs is summarized in the following table. The colors of the LEDs may change depending on your specific board:
LED | On | Off | Slow Blink | Fast Blink |
---|---|---|---|---|
Power (Blue) | Board powered | - | - | - |
Info (Green) | RC control | Offboard control | - | - |
Warning (Red) | Armed | Disarmed | Error (disarmed) | Failsafe (armed) |