Skip to content

Add new target DAKEFPVF405WING - #11525

Open
engineer-dakefpv wants to merge 6 commits into
iNavFlight:maintenance-10.xfrom
engineer-dakefpv:DAKEFPVF405WING
Open

Add new target DAKEFPVF405WING#11525
engineer-dakefpv wants to merge 6 commits into
iNavFlight:maintenance-10.xfrom
engineer-dakefpv:DAKEFPVF405WING

Conversation

@engineer-dakefpv

Copy link
Copy Markdown
Contributor

No description provided.

@qodo-code-review

Copy link
Copy Markdown
Contributor
ⓘ You've reached your Qodo monthly free-tier limit. Reviews pause until next month — upgrade your plan to continue now, or link your paid account if you already have one.

@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

github-actions Bot commented Apr 29, 2026

Copy link
Copy Markdown

Test firmware build ready — commit ecca02a

Download firmware for PR #11525

245 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.

@sensei-hacker sensei-hacker added Testing Required New target This PR adds a new target hardware needed Blocked by lack of hardware to reproduce issue labels May 23, 2026
@sensei-hacker

Copy link
Copy Markdown
Member

Looking forward to testing this hardware when it arrives.

@sensei-hacker sensei-hacker added this to the 9.1 milestone Jul 4, 2026
@sensei-hacker
sensei-hacker changed the base branch from master to release/9.1 July 4, 2026 23:52
@sensei-hacker
sensei-hacker changed the base branch from release/9.1 to maintenance-10.x August 1, 2026 17:48
@sensei-hacker sensei-hacker removed the hardware needed Blocked by lack of hardware to reproduce issue label Aug 1, 2026
@sensei-hacker

sensei-hacker commented Aug 1, 2026

Copy link
Copy Markdown
Member
  • Samples received
  • Flash firmware
  • Calibrate
  • Orientation matches
  • Gyro working
  • Accel working
  • Baro working
  • I2C Bus
  • Blackbox
  • UART1
  • UART2
  • UART3
  • UART4
  • UART5
  • UART6
  • Buzzer working
  • DShot support on m1-4
  • Additional motor / servo outputs
  • Voltage sensor
  • Current sensor
  • Analog Camera working
  • Video Out working
  • OSD working
  • LEDs working
  • PINIO1
  • PINIO2

@sensei-hacker

Copy link
Copy Markdown
Member

Note one problem with this layout:
With S2 and S3 on TIM3, the S2/S3 pair can't do Dshot without breaking the LED strip. That because S3 and LED both use DMA1 Stream2 . So S3 has to be an empty slot if S2 is a motor.

So a user can either have two motors on S1 and S3, or have LED strip, but not both.
I will document this in a docs file for the board.

- S4/S5 (TIM12): force servo-only. TIM12 has no DMA on F405, so
  TIM_USE_OUTPUT_AUTO left a silent dead motor slot if selected as motors.
- S8/S9/S10 (TIM1): all three defaulted to DMA2 Stream6 via the shared
  TIM1_CH1/CH2/CH3 request line, colliding silently when 2+ are live.
  Move S8/S9 to their dedicated-stream alternates; S10 has no other
  stream, so it switches to Stream6's dedicated CH3 request line instead
  of the shared one (dmavar 0 gave no signal on hardware).
- S6 (TIM8_CH3): moved off its default stream, which is S9's only
  non-colliding alternate, freeing it for the S8/S9/S10 fix above.
- target.h: correct board identifier (DAK4 -> DK4W) and fix swapped
  UART3 TX/RX pins.

All fixes verified on hardware: 6 motors + LED strip working, including
S10 which previously produced no signal.

Adds docs/boards/DAKEFPVF405WING.md covering motor-count recipes with
and without the LED strip, and which outputs must switch together.
target.h was a "both added" conflict (author's force-push has no common
ancestor with our history). Resolved by keeping our hardware-verified
fixes and taking their new content:

- Kept: TARGET_BOARD_IDENTIFIER "DK4W", UART3 TX/RX on PB10/PB11
  (their side reverted both to the pre-fix values).
- Took: BMI270/LSM6DXX gyro support, and the SERIALRX_UART/GPS_UART
  reassignment off UART1/UART3 onto UART2/UART4 (receiver/GPS on
  UART1/UART3 interferes with flashing).

Updated docs/boards/DAKEFPVF405WING.md to match the new UART1->UART2,
UART3->UART4 receiver/GPS assignment.
@sensei-hacker

sensei-hacker commented Aug 15, 2026

Copy link
Copy Markdown
Member

I fixed up some DMA issues, took care of inverted uart rx vs tx, and documentation the issues regarding S2/S3/S4.

See:
7fee91a

Please let me know if you see any issues with any of that.

Also please note, rewriting history and force pushing after making a public PR is highly discouraged. PLEASE add a commit to make a change, rather than deleting history. By re-writing history, it ruins MY copy of the branch that I am working from and fixing. It also forces the review and testing process to start all over because there is no longer any way to know what was changed, and therefore what was tested.

Suppose I've already tested all of the motor and PWM outputs and the UARTs. Then you force push. Well now I have to wire everything back up again and start testing all over again, because I have no way of knowing if you made changes affecting PWM and UARTs. Maybe all you did is add a comment, or maybe changed the beeper, so re-testing everything is a waste of time. But there's no way for me to know that once the history is deleted.

Not knowing what you changed, I also have to go back to square one and start all of my fixes over again, because for example where I have already fixed a DMA conflict, suddenly I don't know whether you made a change to the DMA assignments that turns my fixes into breaks. The entire process takes a lot longer when we have to throw out the work so far and start all over again because someone rewrote history and force pushed it into the public.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

New target This PR adds a new target Testing Required

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants