Skip to content

Add target CoreWingF405WMiniV2 - #11723

Open
MakeSomeFakeNews wants to merge 293 commits into
iNavFlight:release/9.1from
MakeSomeFakeNews:add-corewing-f405-wing-mini-v2
Open

Add target CoreWingF405WMiniV2#11723
MakeSomeFakeNews wants to merge 293 commits into
iNavFlight:release/9.1from
MakeSomeFakeNews:add-corewing-f405-wing-mini-v2

Conversation

@MakeSomeFakeNews

@MakeSomeFakeNews MakeSomeFakeNews commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

CoreWing F405 Wing Mini V2

Summary

Adds support for the CoreWing F405 Wing Mini V2 flight controller board — the compact variant of the CoreWing F405 Wing V2 (COREWINGF405WINGV2, merged in #11291).

Hardware Specifications

Component Specification
MCU STM32F405RGT6
Gyro ICM42688P (ICM42605 driver, CW270) or BMI270 (CW180), depending on board variant, on SPI1 with EXTI on PC4
OSD MAX7456 on SPI2
Blackbox SD Card on SPI3
Barometer SPA06-003 on I2C1 (SPL06/DPS310 drivers)
Magnetometer All supported via I2C1
Motor/Servo Outputs S1-S11 with DMA (full DSHOT support)
UARTs 6 (UART1-6) + USB VCP + 1 Softserial = 8 ports
LEDs PA14 (Blue), PA13 (Green)
Beeper PC15 (Inverted)
LED Strip PA8
ADC Vbat (PC0), Current (PC1), Airspeed (PC5)
PINIO PC13 (USER1, VTX/CAM power switch)
Default RX CRSF on UART6

Default Port Configuration

Port Function
UART1 MSP (internally tied to the onboard BLE/WiFi wireless module)
UART5 GPS
UART6 CRSF RX

Pin Mapping

Motor/Servo Outputs

Output Pin Timer
S1 PB7 TIM4 CH2
S2 PB6 TIM4 CH1
S3 PB0 TIM3 CH3
S4 PB1 TIM3 CH4
S5 PC8 TIM8 CH3
S6 PC9 TIM8 CH4
S7 PB14 TIM8 CH2N
S8 PA15 TIM2 CH1
S9 PB10 TIM2 CH3
S10 PB11 TIM2 CH4
S11 PB15 TIM12 CH2

SPI Bus Assignment

Bus Pins (SCK/MISO/MOSI) Device
SPI1 PA5/PA6/PA7 ICM42688P or BMI270 Gyro (CS: PA4, EXTI: PC4)
SPI2 PB13/PC2/PC3 MAX7456 OSD (CS: PB12)
SPI3 PB3/PB4/PB5 SD Card (CS: PC14)

I2C Bus Assignment

Bus Pins (SCL/SDA) Devices
I2C1 PB8/PB9 Barometer, Magnetometer, Rangefinder, Pitot

UART Pin Mapping

UART TX RX
UART1 PA9 PA10
UART2 PA2 PA3
UART3 PC10 PC11
UART4 PA0 PA1
UART5 PC12 PD2
UART6 PC6 PC7
Softserial1 PA2 PA2

Differences from CoreWing F405 Wing V2 (#11291)

  • PC4 is the gyro data-ready (EXTI) input instead of analog RSSI, so the gyros are registered with explicit target hardware descriptors and the RSSI ADC channel is not available on this board
  • BMI270 IMU variant supported in addition to ICM42688P (board variant dependent), aligned CW180
  • Current meter scale 195 (vs 158) to match the Mini's integrated PDB
  • Explicit VBAT_SCALE_DEFAULT 1100
  • Same outputs, OSD, SD card, PINIO (PC13) VTX power switch, and port layout as the Wing V2

Notes

  • Designed for fixed-wing aircraft with 11 servo/motor outputs
  • Supports rangefinder (US42) and pitot tube via I2C1
  • SD card blackbox logging enabled by default
  • 2S-6S LiPo input with onboard voltage/current sensing

PR Type

Enhancement

Description

  • Adds support for CoreWing F405 Wing Mini V2 flight controller board
  • Configures ICM42688P (CW270) / BMI270 (CW180) gyro on SPI1 with EXTI on PC4
  • Enables 11 motor/servo outputs with full DMA/DSHOT support
  • Includes 6 UARTs, OSD, SD card blackbox, barometer, magnetometer, LED strip, and PINIO features

Block Diagram

flowchart LR
  MCU["STM32F405RGT6"]
  SPI1["SPI1: ICM42688P / BMI270 Gyro"]
  SPI2["SPI2: MAX7456 OSD"]
  SPI3["SPI3: SD Card"]
  I2C["I2C1: SPA06-003 Baro + Mag"]
  OUTPUTS["11 Servo/Motor Outputs"]
  UART["6 UARTs + USB VCP"]
  PINIO["PINIO: USER1 (VTX power)"]

  MCU --> SPI1
  MCU --> SPI2
  MCU --> SPI3
  MCU --> I2C
  MCU --> OUTPUTS
  MCU --> UART
  MCU --> PINIO
Loading

Build Verification

Built successfully against both maintenance-9.x (inav_9.0.1_COREWINGF405WMINIV2.hex) and master (inav_9.1.0_COREWINGF405WMINIV2.hex) with arm-gnu-toolchain 13.2.rel1.

daijoubu and others added 30 commits February 5, 2026 06:39
… the MATEKF765SE. Allocate memory for the bxCan write and read messages.
…dle to the CAN instance to avoid a dangling pointer.
…fer and the task reads from the ring buffer.

Fix missing include for math.h
Expand dronecan_messages_unittest.cc from 5 to 14 tests covering
NodeStatus, Fix v1, Auxiliary, boundary values, and data type
verification. Create canard_unittest.cc with 30 tests for the
libcanard core: init/node ID, memory pool, CRC-16/CCITT, float16
conversion, transfer ID logic, DLC conversion, single/multi-frame
TX, RX frame processing, and pool statistics.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The BatteryInfo message already contains current data which was being
stored in dronecanBattSensorGetAmperage(), but this wasn't integrated
with INAV's battery metering system.

Changes:
- Add CURRENT_SENSOR_CAN enum value in battery_config_structs.h
- Add case handler in battery.c to read current from DroneCAN
- Update settings.yaml to expose CAN option for current_meter_type

Users can now select 'CAN' as the current_meter_type in CLI when using
DroneCAN-compatible battery sensors.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This reverts commit 10343b4, reversing
changes made to bb61218.
…-merge

Revert accidental merge of maintenance-10.x into maintenance-9.x
Removed redundant phrases and clarified manufacturer information.
…e-ordering-stdperiph

drivers: fix DMA request disable ordering in timer IRQ handlers and stop functions
Add support for XTX XT25F128F nor flash chip
…WINGMINI

Add FlyingRC F4Wing Mini target updates
@qodo-code-review

Copy link
Copy Markdown
Contributor

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@github-actions

Copy link
Copy Markdown

Branch Targeting Suggestion

You've targeted the master branch with this PR. Please consider if a version branch might be more appropriate:

  • maintenance-9.x - If your change is backward-compatible and won't create compatibility issues between INAV firmware and Configurator 9.x versions. This will allow your PR to be included in the next 9.x release.

  • maintenance-10.x - If your change introduces compatibility requirements between firmware and configurator that would break 9.x compatibility. This is for PRs which will be included in INAV 10.x

If master is the correct target for this change, no action is needed.


This is an automated suggestion to help route contributions to the appropriate branch.

@github-actions

Copy link
Copy Markdown

Test firmware build ready — commit de0c56d

Download firmware for PR #11723

1 targets built. Find your board's .hex file by name on that page (e.g. MATEKF405SE.hex). Files are individually downloadable — no GitHub login required.

Development build for testing only. Use Full Chip Erase when flashing.

@MakeSomeFakeNews
MakeSomeFakeNews force-pushed the add-corewing-f405-wing-mini-v2 branch from de0c56d to 3781241 Compare July 15, 2026 06:59
@MakeSomeFakeNews
MakeSomeFakeNews changed the base branch from master to maintenance-9.x July 15, 2026 06:59
@MakeSomeFakeNews MakeSomeFakeNews changed the title Add COREWINGF405WMINIV2 target Add target CoreWingF405WMiniV2 Jul 15, 2026
@MakeSomeFakeNews

Copy link
Copy Markdown
Contributor Author

The build-SITL-Mac failure is unrelated to this target: maintenance-9.x is missing the log.c VLA fix that is already on master (87ed42b), so that job currently fails for any PR against this base. Backport submitted as #11724 — once it merges, a rebase here will turn this PR green. All other jobs pass, including build-single-target for COREWINGF405WMINIV2.

@sensei-hacker
sensei-hacker changed the base branch from maintenance-9.x to release/9.1 July 15, 2026 22:54
@sensei-hacker
sensei-hacker changed the base branch from release/9.1 to maintenance-10.x July 15, 2026 22:54
@sensei-hacker sensei-hacker added Testing Required Don't merge New target This PR adds a new target hardware needed Blocked by lack of hardware to reproduce issue Fix needed - don't merge Not ready for merge because issues remain after testing labels Jul 15, 2026
@sensei-hacker

Copy link
Copy Markdown
Member

Hello. Are you a representative of the manufacturer?

@MakeSomeFakeNews

Copy link
Copy Markdown
Contributor Author

Hello. Are you a representative of the manufacturer?

yes

@sensei-hacker

Copy link
Copy Markdown
Member

Excellent.

Can you please get in touch with me on Discord? https://discord.gg/peg2hhbYwN

INAV New Hardware Policy:
https://github.com/iNavFlight/inav/blob/master/docs/policies/NEW_HARDWARE_POLICY.md

@MakeSomeFakeNews

Copy link
Copy Markdown
Contributor Author

Excellent.

Can you please get in touch with me on Discord? https://discord.gg/peg2hhbYwN

INAV New Hardware Policy: https://github.com/iNavFlight/inav/blob/master/docs/policies/NEW_HARDWARE_POLICY.md

image The link https://discord.gg/peg2hhbYwN has expired.

@daijoubu

Copy link
Copy Markdown
Contributor

This is trying to merge 3000 build files, make files and other generated products. It should be trimmed down to just the target files for the CoreWingV2 board and no binaries.

@sensei-hacker
sensei-hacker changed the base branch from maintenance-10.x to release/9.1 August 22, 2026 05:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Don't merge Fix needed - don't merge Not ready for merge because issues remain after testing hardware needed Blocked by lack of hardware to reproduce issue New target This PR adds a new target Testing Required

Projects

None yet

Development

Successfully merging this pull request may close these issues.