description: Arm physical flight controller via MSP and download blackbox logs triggers:
- arm fc
- arm physical fc
- download blackbox
- blackbox from fc
arm-fc-physical
Arm a physical flight controller via MSP and download blackbox logs for analysis
When to Use This Skill
- Generate blackbox logs from physical FC for debugging
- Test firmware behavior without actual flight
- Capture sensor data for analysis
- Validate blackbox logging is working correctly
Quick Start
1. Configure FC (One-Time Setup)
# Check FC status
~/.claude/skills/flash-firmware-dfu/fc-cli.py status /dev/ttyACM0
# Configure MSP receiver and arming
cd claude/developer/scripts/testing/inav/gps
python3 configure_fc_for_msp_arming.py /dev/ttyACM0
python3 configure_fc_blackbox.py /dev/ttyACM0
# Calibrate accelerometer via INAV Configurator (if needed)
2. Generate Blackbox Log
SAFETY: Remove propellers before arming!
cd claude/developer/scripts/testing/inav/gps
# Arm for 30 seconds (default)
python3 continuous_msp_rc_sender.py /dev/ttyACM0
# Arm for custom duration
python3 continuous_msp_rc_sender.py /dev/ttyACM0 --duration 60
3. Download Log
cd claude/developer/scripts/testing/inav/gps
# Download to default filename
python3 download_blackbox_from_fc.py /dev/ttyACM0
# Download to specific file
python3 download_blackbox_from_fc.py /dev/ttyACM0 test_log.TXT
4. Decode and Analyze
# Decode log to CSV
blackbox_decode test_log.TXT
# Creates: test_log.01.csv, test_log.01.gps.csv
# View data
head -50 test_log.01.csv
Prerequisites
Hardware:
- Flight controller with USB connection
- FC appears as
/dev/ttyACM0(or similar) - Propellers removed!
Software:
pip3 install pyserial
pip3 install git+https://github.com/xznhj8129/mspapi2
FC Configuration:
- Accelerometer calibrated (via Configurator)
- MSP receiver configured (
rx_spi_protocol = MSP) - ARM mode on AUX1 (range 1700-2100)
- Blackbox enabled (
blackbox_device = SPIFLASH)
Common Issues
FC Won't Arm
Check arming flags:
~/.claude/skills/flash-firmware-dfu/fc-cli.py status /dev/ttyACM0
Common blockers:
- ACC - Calibrate accelerometer via Configurator
- CAL - Wait 5+ seconds after boot
- ANGLE - Level FC or disable small_angle check
- SETTINGFAIL - Fix RX settings with configure script
No Blackbox Data (0 bytes)
- HITL mode was used - Use
continuous_msp_rc_sender.pyinstead - FC not armed - Check arming flags
- Blackbox not configured - Run
configure_fc_blackbox.py - Flash full - Erase via Configurator
Serial Port Permission Denied
sudo usermod -a -G dialout $USER
# Log out and back in
Key Scripts
All located in: claude/developer/scripts/testing/inav/gps/
- continuous_msp_rc_sender.py - Arm FC and send RC frames
- download_blackbox_from_fc.py - Download log via MSP
- configure_fc_for_msp_arming.py - Configure MSP receiver
- configure_fc_blackbox.py - Configure blackbox settings
Technical Details
RC Frame Rate: 50 Hz (matches CRSF standard) Download Speed: ~2.5 KB/s (~20s for 50KB log) MSP Commands Used:
- MSP_SET_RAW_RC (200) - Send RC channels
- MSP_DATAFLASH_SUMMARY (70) - Query flash status
- MSP_DATAFLASH_READ (71) - Download data
RC Channel Mapping (AETR):
- Channel 3: Throttle (1000=low, 1600=mid)
- Channel 5: AUX1 ARM (1000=disarm, 1800=arm)
See Also
- Detailed Guide:
.claude/skills/arm-fc-physical/REFERENCE.md - Flash Firmware:
/flash-firmware-dfu - Build Firmware:
/build-inav-target - Arm SITL:
/sitl-arm - MSP Protocol:
/msp-protocol