Choosing Your Firmware
Understanding the differences between ArduPilot and Betaflight to make the right choice for your application.
Table of contents
- The Two Options
- Quick Decision Guide
- Detailed Comparison
- Learn More
- NDAA Compliance Considerations
- Installing Firmware
- Installing ArduPilot
- Installing Betaflight
- Troubleshooting Installation
- Next Steps
- Questions?
The Two Options
The H7-Digital supports two popular open-source flight control firmware options:
ArduPilot
Open-source autopilot system designed for autonomous vehicles. Excellent for waypoint missions, companion computer integration, and professional UAS operations.
→ Jump to ArduPilot Installation
Betaflight
High-performance flight controller firmware optimized for manual FPV flight, racing, and freestyle. Industry standard for acrobatic multirotor flight.
→ Jump to Betaflight Installation
Quick Decision Guide
Choose ArduPilot if you need:
- ✅ Autonomous flight with waypoint missions
- ✅ GPS navigation and robust return-to-home
- ✅ Companion computer integration (Raspberry Pi, Jetson)
- ✅ Mission planning software (QGroundControl, Mission Planner)
- ✅ NDAA compliance with secure signed firmware
- ✅ Professional operations requiring audit trails
- ✅ Advanced sensors (optical flow, rangefinders, RTK GPS)
- ✅ MAVLink protocol for telemetry and control
Choose Betaflight if you need:
- ✅ Manual FPV flight with precise control
- ✅ Racing and freestyle acrobatics
- ✅ Simple configuration via GUI
- ✅ Quick setup and tuning
- ✅ Blackbox logging for PID tuning
- ✅ OSD customization for FPV display
- ✅ No GPS required for operation (but useful for GPS rescue functionality)
- ✅ Active racing community and support
Detailed Comparison
| Feature | ArduPilot | Betaflight |
|---|---|---|
| Primary Use Case | Autonomous/semi-autonomous flight | Manual FPV racing/freestyle |
| GPS Requirement | Required for auto modes (except guided-no-gps) | Optional, used for GPS rescue |
| Companion Computer | Excellent (MAVLink, DroneCAN) | Limited support |
| Configuration Method | Parameter files, GCS software | Betaflight Configurator GUI |
| Learning Curve | Moderate to steep | Beginner to moderate |
| Mission Planning | Full support (QGC, MP) | Not applicable |
| Acrobatic Flight | Basic flip/roll modes | Industry-leading performance |
| Tuning Complexity | Many parameters, PIDs, auto-tune available | Streamlined |
| Failsafe Options | Extensive (RTH, land, loiter) | Basic (motor stop, GPS rescue) |
| Telemetry | MAVLink (rich data) | MSP, CRSF telemetry |
| OSD Support | Built-in (various styles) | Highly customizable |
| NDAA Compliance | Yes (secure firmware builds) | Standard open-source |
| Community | Professional/hobbyist mix | Primarily FPV racing |
| Update Frequency | Stable releases (quarterly) | Stable releases (semi-annually) |
Learn More
For detailed technical specifications and capabilities:
ArduPilot: Flight modes • Advanced features • Companion computers
Betaflight: Features overview • Flight performance • OSD setup
NDAA Compliance Considerations
If you require NDAA Section 848 compliance:
ArduPilot with Secure Firmware
- ✅ Signed firmware builds from AeroCogito repository
- ✅ Verifiable supply chain for software
- ✅ Audit logs for all operations
Betaflight Standard Builds
- ⚠️ Community builds (no official signed firmware)
- ⚠️ Limited audit trail capabilities
For federal/defense use requiring NDAA compliance, ArduPilot with secure firmware is the recommended option.
Installing Firmware
Once you’ve decided which firmware to use, follow the installation instructions below.
First Time Setup: The H7-Digital ships with Betaflight pre-installed. If you want to use ArduPilot instead, you’ll need to flash the ArduPilot firmware first.
Installing ArduPilot
Step 1: Download Firmware
Choose one of the following firmware sources:
Option A: AeroCogito Secure Firmware (NDAA Compliant)
Recommended for federal/defense use: Cryptographically signed firmware for NDAA Section 848 compliance.
- Visit the AeroCogito H7-Digital Firmware Repository
- Download the latest firmware file from Releases:
- First-time installation: Download the
*-with-bootloader-signed.hexfile (includes bootloader) - Subsequent updates: Download the
*-signed.apjfile (faster, no bootloader needed)
- First-time installation: Download the
- Optional: Verify the cryptographic signature (instructions in repository README)
Option B: Official ArduPilot Firmware
Standard open-source builds: Latest official ArduPilot firmware from the ArduPilot project.
- Visit the ArduPilot Firmware Server
- Download firmware file:
- First-time installation: Download
arducopter_with_bl.hex(includes bootloader) - Subsequent updates: Download
arducopter.apj(no bootloader needed)
- First-time installation: Download
Step 2: Install Ground Control Software
Choose one of the following ground control stations:
Mission Planner (Windows - Recommended for Windows users):
- Download: ardupilot.org/planner/
- Full-featured, mature, extensive documentation
QGroundControl (Cross-platform - Mac/Linux/Windows):
- Download: qgroundcontrol.com
- Modern interface, works on all platforms
Step 3: Flash Firmware
Installation Type:
- First-time installation (from Betaflight): Use
.hexfile with DFU mode- Updating ArduPilot: Use
.apjfile with Mission Planner/QGroundControl (easier, no DFU)
First-Time Installation (Using .hex file with bootloader)
The H7-Digital ships with Betaflight pre-installed. To switch to ArduPilot, you must use DFU mode and flash a
.hexfile that includes the ArduPilot bootloader.
- Enter DFU Mode:
- Power off the H7-Digital completely
- Hold the BOOT button (on the board)
- Connect USB cable while holding BOOT
- Release BOOT button
- The amber LED will illuminate (DFU mode active)
- Flash Using Betaflight Configurator (recommended method):
- Open Betaflight Configurator Web App
- Connect H7-Digital in DFU mode
- Click “Firmware Flasher” tab
- Click “Load Firmware [Local]”
- Select the downloaded
.hexfile (with-bootloader-signed.hexorarducopter_with_bl.hex) - Uncheck “Full Chip Erase” (not needed)
- Click “Flash Firmware”
- Wait for completion (board will reboot into ArduPilot)
- Alternative: Flash Using STM32CubeProgrammer:
- Download STM32CubeProgrammer from ST Microelectronics
- Connect H7-Digital in DFU mode
- Select USB connection, click “Connect”
- Click “Open file” and select
.hexfile - Click “Download” to flash
- Disconnect and reconnect USB (board will boot into ArduPilot)
Updating ArduPilot (Using .apj files)
Once ArduPilot is installed, future updates are much easier - no DFU mode required!
Using Mission Planner:
- Connect H7-Digital via USB
- Click “Setup” → “Install Firmware”
- Click “Load custom firmware”
- Select the
.apjfile - Wait for upload to complete
Using QGroundControl:
- Connect H7-Digital via USB
- Go to “Vehicle Setup” → “Firmware”
- Select “Advanced settings”
- Choose “Custom firmware file”
- Select the
.apjfile - Click “OK” to flash
Using SD Card (no computer required):
- See ArduPilot SD Card Firmware Loading
- Rename
.apjfile to appropriate name (see guide) - Copy to SD card root directory
- Insert SD card and power on
- Firmware flashes automatically
Step 4: Initial Configuration
After flashing ArduPilot, perform initial setup:
- Connect to Ground Station:
- Connect via USB
- Select correct COM port
- Baud rate: 115200
- Click “Connect”
- Mandatory Setup Wizard (Mission Planner / QGroundControl):
- Frame Type: Select your frame configuration (Quad X, Hexa, etc.)
- Accelerometer Calibration: Follow on-screen instructions (place board level, on each side)
- Compass Calibration: If using external compass, calibrate (rotate vehicle in all axes)
- RC Calibration: Move all sticks/switches through full range
- Flight Modes: Assign flight modes to RC switch positions
- Failsafes: Configure battery, radio, and GPS failsafes
- H7-Digital Specific Parameters (already set by default, verify if needed):
SERIAL5_PROTOCOL = 2(MAVLink2 on UART5 for companion computer)SERIAL2_PROTOCOL = 42(MSP DisplayPort on UART2 for OSD)SERIAL8_PROTOCOL = 5(GPS on UART8)SERIAL4_PROTOCOL = 23(RC Input on UART4)SERIAL3_PROTOCOL = 16(ESC Telemetry on UART3)OSD_TYPE = 5(MSP DisplayPort)BATT_MONITOR = 4(Voltage and Current)INS_GYRO_FILTER = 20(for ICM-42688-P)
For complete H7-Digital UART mapping with connector locations, see Hardware Pinout - UART Mapping.
- Motor Setup:
- Verify motor order matches your frame
- Test motor direction (props off!)
- Configure ESC protocol (DShot300/600 recommended)
- Pre-Flight Checks:
- Verify GPS lock (if installed)
- Check battery voltage reading
- Confirm RC input works correctly
- Verify failsafe triggers properly
ArduPilot Resources
Official Documentation:
- ArduPilot Copter Home
- First Time Setup Guide
- Loading Firmware Guide
- Configuration Parameters
- Companion Computers
Community & Support:
Installing Betaflight
Step 1: Open Betaflight Configurator
- Visit Betaflight Configurator Web App
- The web app runs directly in your browser (Chrome/Edge recommended)
- No installation required - works on all operating systems
Step 2: Enter DFU Mode
Pre-Installed Betaflight: If your H7-Digital ships with Betaflight pre-installed, you can skip DFU mode and flash directly from the Configurator using the “Flash Firmware” button without entering DFU.
To manually enter DFU mode:
- Power off the H7-Digital completely
- Hold the BOOT button on the board
- Connect USB cable while holding BOOT
- Release BOOT button
- The amber LED will illuminate (DFU mode active)
Step 3: Flash Firmware
- Connect in Configurator:
- Launch Betaflight Configurator
- Connect USB (in DFU mode or normal mode)
- Configurator should show “DFU” or the board name
- Select Firmware:
- Click the “Firmware Flasher” tab (on the left sidebar)
- Board: Should auto-detect as “AEROH7DIGITAL”
- Firmware Version: Select latest stable release
- Options:
- ✅ “Full Chip Erase” (recommended for clean install)
- ✅ “Flash on connect” (optional, for convenience)
- Flash:
- Click “Load Firmware [Online]” (to download latest from Betaflight)
- Alternative: Click “Load Firmware [Local]” to flash a downloaded
.hexfile - Click “Flash Firmware”
- Wait for progress bar to complete (30-60 seconds)
- Board will reboot automatically
- Verify:
- Disconnect and reconnect USB
- Configurator should now show the Setup tab
- Verify firmware version in top-right corner
Step 4: Initial Configuration
After flashing Betaflight, configure the board:
- Ports Tab (verify defaults):
- UART2: MSP (for VTX/OSD) - DisplayPort protocol
- UART4: Serial RX (for receiver input)
- UART5: (Available for telemetry/VTX control)
- UART8: GPS (if using GPS rescue)
- Configuration Tab:
- Board Alignment: Usually 0/0/0 (adjust if mounting non-standard orientation)
- Receiver: Select your receiver type (SERIAL, SBUS, CRSF, etc.)
- ESC/Motor Protocol: Select DShot300 or DShot600 (recommended)
- Motor Idle: 4-5% (adjust based on ESC)
- Features: Enable what you need:
- ✅ OSD (for on-screen display)
- ✅ TELEMETRY (if using CRSF/Crossfire)
- ✅ ESC_SENSOR (for ESC telemetry on UART3)
- Receiver Tab:
- Configure receiver type (matches Configuration tab)
- Map channels (AETR1234… default for most receivers)
- Verify stick movement in configurator (move sticks, verify bars move correctly)
- Set endpoint values (usually 1000-2000)
- Modes Tab:
- ARM: Assign to a switch (required to arm motors)
- Flight Modes: Configure Acro, Angle, Horizon modes
- GPS Rescue: If using GPS (UART8)
- Motors Tab (PROPS OFF!):
- ⚠️ REMOVE PROPELLERS BEFORE TESTING
- Enable motor test (slider at bottom)
- Test each motor spins in correct direction:
- M1 (rear-right): CW
- M2 (front-right): CCW
- M3 (rear-left): CCW
- M4 (front-left): CW
- If wrong direction: Change motor direction in BLHeli configurator or flip motor wires
- OSD Tab:
- Customize OSD elements (battery voltage, current draw, flight time, etc.)
- Position elements on screen
- Enable warnings (battery, RSSI, etc.)
- Save Configuration:
- Click “Save and Reboot” (bottom right)
- Board will reboot with new settings
Step 5: BLHeli ESC Configuration (if needed)
If using DShot and need to configure ESCs:
- Connect ESCs:
- Ensure ESCs support DShot (most modern 4-in-1 ESCs do)
- Connect via the ESC connector (8-pin JST-SH)
- BLHeli Passthrough:
- In Betaflight Configurator, go to “Motors” tab
- Scroll to bottom, click “BLHeli/Bluejay Passthrough”
- This opens BLHeli Configurator
- Configure ESC settings (motor direction, timing, etc.)
Betaflight Resources
Official Documentation:
Community Resources:
Troubleshooting Installation
Board Not Recognized (Windows)
Problem: Computer doesn’t detect H7-Digital when connected via USB
Solutions:
- Install USB Drivers:
- Download ImpulseRC Driver Fixer
- Run as Administrator
- Click “Fix” to install all necessary drivers
- Reconnect board
- Try Different USB Cable:
- Ensure cable supports data (not just charging)
- Try a different USB port (USB 3.0 ports sometimes have issues, try USB 2.0)
- Verify DFU Mode:
- Amber LED should illuminate when in DFU mode
- If not, retry entering DFU (hold BOOT before connecting USB)
Firmware Flash Failed
Problem: Flash operation fails or gets stuck
Solutions:
- Full Chip Erase: Enable “Full Chip Erase” option and try again
- Different Tool: Try flashing with STM32CubeProgrammer instead of Betaflight Configurator
- DFU Mode: Ensure you’re in DFU mode (amber LED on)
- USB Power: Use a powered USB hub or different port (some ports don’t provide enough power)
Wrong Firmware Loaded
Problem: Flashed wrong target or firmware
Solution: Re-flash correct firmware:
- For H7-Digital: Target is AEROH7DIGITAL (Betaflight) or AeroCogito-H7Digital (ArduPilot)
- Enter DFU mode and flash correct firmware
No GPS Lock (ArduPilot)
Problem: GPS not working after ArduPilot installation
Check:
- GPS module connected to GPS connector (6-pin JST-SH)
- Verify TX/RX connections are not switched
SERIAL3_PROTOCOL = 5(GPS)- GPS has clear view of sky (not indoors)
- Wait 1-2 minutes for initial lock
No OSD Display
Problem: No on-screen display on FPV goggles
Check:
- VTX connected to VTX connector (6-pin JST-SH)
- ArduPilot:
OSD_TYPE = 5,SERIAL2_PROTOCOL = 42 - Betaflight: OSD feature enabled, UART2 set to MSP
- VTX receiving power (10V BEC enabled - see VTX Power Control)
Next Steps
Now that firmware is installed, proceed to:
First Flight Checklist → Hardware Pinout Reference →
Questions?
Need help with firmware installation?
- H7-Digital Hardware Issues: support@aerocogito.com
- ArduPilot Support: ArduPilot Forum
- Betaflight Support: Betaflight Discord