Skip to content

Update FlyingRC F4Wing Mini target#11131

Merged
MrD-RC merged 4 commits into
masterfrom
MrD_Modify-FlyingRC-F4wing-mini
Nov 27, 2025
Merged

Update FlyingRC F4Wing Mini target#11131
MrD-RC merged 4 commits into
masterfrom
MrD_Modify-FlyingRC-F4wing-mini

Conversation

@MrD-RC

@MrD-RC MrD-RC commented Nov 25, 2025

Copy link
Copy Markdown
Member

User description

  • Added warning to naming of the target
  • Added document listing warnings and recommendations.

PR Type

Enhancement, Documentation


Description

  • Renamed target to include "NOT_RECOMMENDED" warning in identifier

  • Updated USB product string to reflect not-recommended status

  • Added comprehensive documentation with hardware warnings and limitations

  • Migrated target directory structure with updated CMakeLists configuration


Diagram Walkthrough

flowchart LR
  A["FLYINGRCF4WINGMINI<br/>Original Target"] -->|Rename & Warn| B["FLYINGRCF4WINGMINI_NOT_RECOMMENDED<br/>Updated Target"]
  B -->|USB String| C["Product Identifier<br/>Updated"]
  B -->|Documentation| D["Board Documentation<br/>Warnings & Specs"]
Loading

File Walkthrough

Relevant files
Enhancement
target.h
Update USB product string with warning                                     

src/main/target/FLYINGRCF4WINGMINI_NOT_RECOMMENDED/target.h

  • Updated USBD_PRODUCT_STRING from "FLYINGRCF4WINGMINI" to
    "FLYINGRCF4WINGMINI_NOT_RECOMMENDED"
  • Reflects the not-recommended status in the USB device identifier
+1/-1     
Documentation
FlyingRC F4Wing Mini.md
Add board documentation with warnings                                       

docs/boards/FlyingRC F4Wing Mini.md

  • Created new documentation file with comprehensive board warnings and
    specifications
  • Documented hardware reliability issues and missing features (current
    sensor, blackbox, OSD, PINIO, ADCs, servo power rail)
  • Included detailed specifications table (MCU, gyro, baro, UARTs, PWM,
    I2C, size, weight)
  • Added comparison with Matek F405-WMO as a recommended alternative
  • Included usage recommendations limiting to small park fliers only
+42/-0   
Configuration changes
CMakeLists.txt
Remove old target CMakeLists configuration                             

src/main/target/FLYINGRCF4WINGMINI/CMakeLists.txt

  • Removed old CMakeLists.txt file from original target directory
  • Part of target directory migration to NOT_RECOMMENDED variant
+0/-1     
CMakeLists.txt
Add updated CMakeLists for renamed target                               

src/main/target/FLYINGRCF4WINGMINI_NOT_RECOMMENDED/CMakeLists.txt

  • Added new CMakeLists.txt with updated target name reference
  • Configures STM32F405XG for the NOT_RECOMMENDED variant
+1/-0     

- Added warning to naming of the target
- Added document listing warnings and recommendations.
@MrD-RC MrD-RC added this to the 9.0 milestone Nov 25, 2025
@MrD-RC
MrD-RC requested a review from sensei-hacker November 25, 2025 07:26
@qodo-code-review

qodo-code-review Bot commented Nov 25, 2025

Copy link
Copy Markdown
Contributor

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
🟢
No security concerns identified No security vulnerabilities detected by AI analysis. Human verification advised for critical code.
Ticket Compliance
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
🟢
Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status:
No auditing: The added build/target configuration and USB product string changes introduce no logging
for critical actions, and there is no evidence of audit trail additions in this PR.

Referred Code
target_stm32f405xg(FLYINGRCF4WINGMINI_NOT_RECOMMENDED)

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status:
No error paths: The changes add configuration and documentation only, with no new runtime code to handle
errors or edge cases, so robustness cannot be verified from this diff.

Referred Code
# Board - FLYINGRCF4WINGMINI_NOT_RECOMMENDED

This is a cheap flight controller (prices range from $16US to $40US) from an unknown company. Many of the components on this FC are likely to have high tollerances due to the low cost. They sold this FC as compatible with INAV without reaching out to the team or having an official target made. The target only exists thanks to a community contributor (dixi83).

Hardware issues have been reported on these flight controllers. They are also missing many features. Unlike most other _wing_ flight controllers. This is not an all in one solution. It rerequires an external power source for servos. So is not as small as it first appears.

> [!WARNING]
> Therefore, we recommend you only use this flight controller on very light aircraft that you will keep within line-of-sight distances. Reliability of the hardware can be far from guaranteed. So fitting to a larger, heavier aircraft adds unneccesary safety risks. Also, there are essential features missing for other types of flights. Please keep this for small park fliers only, if used at all.
>
> Also, if you insist on buying one of these. Make sure it's from a somewhere selling it at $16US. Spending $40US on this is a waste of money. You can get better FCs for that money.

## Specifications
| | |
|-----|-----|
| MCU | STM32F405RTG6 |
| Gyro | ICM-42605 |
| Baro | SPL06 |
| UARTS | 1, 2 (RX only - SBUS), 4 (DJI), 5 |
| PWM | Six + One (S12 used for LED control) |
| I<sup>2</sup>C | 1 |
| Size | 27.9 x 20.3 x 11.2 mm |


 ... (clipped 21 lines)

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Security-First Input Validation and Data Handling

Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities

Status:
No input validation: The added macro for USB product string and target config do not introduce input handling,
so security validation implications cannot be assessed from this diff.

Referred Code
#define USBD_PRODUCT_STRING  "FLYINGRCF4WINGMINI_NOT_RECOMMENDED"

Learn more about managing compliance generic rules or creating your own custom rules

  • Update
Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label

@qodo-code-review

qodo-code-review Bot commented Nov 25, 2025

Copy link
Copy Markdown
Contributor

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
Possible issue
Update board identifier for safety

Update the TARGET_BOARD_IDENTIFIER to a new unique value to prevent restoring
old configurations, which might be unsafe given the board's known issues.

src/main/target/FLYINGRCF4WINGMINI_NOT_RECOMMENDED/target.h [21-22]

-#define TARGET_BOARD_IDENTIFIER "FRF4WM"
+#define TARGET_BOARD_IDENTIFIER "FRF4NR"
 #define USBD_PRODUCT_STRING  "FLYINGRCF4WINGMINI_NOT_RECOMMENDED"
  • Apply / Chat
Suggestion importance[1-10]: 9

__

Why: The suggestion addresses a critical safety concern by preventing the restoration of potentially unsafe configurations from the old target, which is a significant oversight in the PR.

High
Learned
best practice
Clarify non-speculative power limits

Clarify the supported input voltage range explicitly and avoid implying 1S–6S
operation unless verified; cross-reference the target's power definitions or
remove speculative wording.

docs/boards/FlyingRC F4Wing Mini.md [25-31]

-> There is conflicting information for the power this FC can handle. There are 2 specs providied:
-> | | |
-> |---|---| 
-> | Voltmeter | 2.5-30V |
-> | Power input | 5v |
-> 
-> There is no ADC for "voltmeter" input. So potentially this FC can run at 1S to 6S. However there are only 2 LDO regulators on the FC itself.
+> Power input: 5V regulated (no onboard battery voltage ADC). External BEC required for higher pack voltages; do not connect pack voltage directly. The 2.5–30V "voltmeter" spec is not applicable due to missing ADC.
  • Apply / Chat
Suggestion importance[1-10]: 6

__

Why:
Relevant best practice - Use accurate, validated specifications and avoid conflicting ranges; when ambiguity exists, state constraints clearly and reference enums/limits used in code.

Low
Ensure consistent target naming

Match the board title to the exact target/USB product string to avoid confusion
and ensure consistent naming across code and docs.

docs/boards/FlyingRC F4Wing Mini.md [1]

-# Board - FLYINGRCF4WINGMINI_NOT_RECOMMENDED
+# Board - FLYINGRCF4WINGMINI_NOT_RECOMMENDED (USBD_PRODUCT_STRING: FLYINGRCF4WINGMINI_NOT_RECOMMENDED)
  • Apply / Chat
Suggestion importance[1-10]: 5

__

Why:
Relevant best practice - Align terminology and names across code and documentation to keep a single source of truth for targets and identifiers.

Low
  • Update

@MrD-RC
MrD-RC merged commit 83b921a into master Nov 27, 2025
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant