How to upgrade Matek F-405 and Matek F-765 FW?

I have both F-405 and F-765 wing FC from Matek Systems.
Both are flashed with Ardupilot FW 4.0.5, and connect to MP without any problem; however, I want to flash them with 4.1.0. FW

So far I had no luck upgrading F-765. I disconnected all the peripherals before flashing. Before connecting to the PC, I press and hold boot button, plugs in and than release the boot button.
When I use load custom FW it goes into reading mode and than fails.

Are there any tricks, or could be my driver issue?



I finally got back to try upgrading F405 with 4.1.0 but no matter what I try, I cannot flash the latest FW on F405.

Here is the process I have tried on iNAV
1.Press boot button, plug usb
2. Download FW, and flash
3. message: failed to open serial port.

This message is miss leading in DFU mode because if I don’t press boot button and just simply plug in usb, it recognizes the com port but won’t connect since it is running Arduplane FW 4.0.5. So I don’t think I need Zadic.

The FC connects with Mission Planner but even in MP, I cannot load the latest FW.

Not sure what to do?

you need to do the DFU-procedure just once to get ArduPilot bootloader and firmware onto your board for the first time. see for reference.
as you already have done that successfully, you can upgrade your ardupilot firmware using missionplanner only, keeping your stored settings. however, it is recommended to backup your params to a file before tackling the upgrade procedure.
connect your board to MP via USB in the usual way, click the “SETUP” tab and choose “Install Firmware”.
MP will ask you to hit the disconnect button eventually. do that to enable the firmware loading screen. pick your desired firmware version and follow the instructions from there.

mind there’s three basic three types of boot:
1.: system boot (DFU) uses the MCU’s hardcoded internal bootloader. this boot type is required to flash ArduPilot firmware AND bootloader for the first time onto fresh hardware using the Arduxxx_with_bl.hex file, usually downloaded from
2.: ArduPilot bootloader is loaded on every boot (fast blinking LEDs) and tells the board how and where to boot actual firmware. this boot phase allows firmware upgrade handling through MP while keeping your previously stored param settings.
3. runtime is your actual ardupilot firmware running with full functionality.

in a nutshell, windows driver handling uses specific com-port assignments for each of those boot types. so being able to connect your board to MP with ArduPilot running doesn’t necessarily mean your DFU drivers are setup correctly. check your device manager for “STM32 BOOTLOADER” for correct DFU device handling.

fwiw, the wiki page linked above has been updated to suggest using a generic tool for DFU flash handling (STM32CubeProgrammer).

Isn’t 4.0.5 the latest already?

yes, its 4.0.5 runs on ardupilot, connects with mission planner, and fly. But one it comes to installing 4.1.0, it just does not want to upgrade.
Basti pointed out potential issue with the driver, and I am looking into it.
Does anyone have link to stm32 driver? Driver on my pc at the moment is stmicroelectronics and I think this is the problem. My PC is running windows 7

4.1 is a Dev version, is that what you want? If so and Arduplane of any version is on the FC now, select Cntrl-Q from MP update screen and the dev version will populate. Pick the craft style you want. Don’t press the DFU button, as stated that only has to be done to move between Flight stacks (BF, Inav, Ardupilot)

Cntrl-Q…seriously! (lol). Thanks Dave.
I am trying to setup f.port that’s why I am installing latest FW.
How do I go back to the stable FW version, any other short cuts, I should know?

You can flash back with the default versions that show up on the. MP install page. Those will be the Stable version. All parameters that are shared will be kept.

I got the 4.1.0 dev FW on the F405 and it is connecting now. However, there seems to be a bug that might worth looking into, when connecting to MP, it will hang up at this stage of the parameter read “Got param STAT_RunTime”. I waited for ~5min before canceling. Once canceled board is connecting and reporting all values as far as I can tell.

Next I will hookup GPS, and R9 Rx with F.Port.

Which R9 Rx do you have? Read this?

I am using FrSky R9 mini OTA.
Yes, I did read few months back the link you send which got me started on the F.port and that is exactly the reason I was trying to flash F405 with 4.1.0.

My ultimate goal is to have f.port telemetry on Taranis and have Taranis linked to MP thus eliminating the need for 3DR type radio. I have seen people talking about it (Painless360) but I am certainly not there yet.

I don’t have any electronics background and don’t quite understand the term “inverted F.port”.

On my other Pixhawk based plane I am using Yaapu cable to get telemetry.

So I got the GPS and receiver R9 connected and working on Matek F405-wing using f.port protocol. I can see all the channels and flight modes moving in mission planner. I am also getting receiver battery voltage on the Taranis. But I cannot get Yaapu to work or any of the sensors to discover. The screen is displaying “No telemetry”.

I have setup parameters as follows:


Configure SERIAL7 as above for F4 autopilots

F4 based autopilots using an “inverted FPort” output from the receiver can connect it to any UART’s TX pin with the configuration:

** SERIALx_OPTIONS = 4 (Half Duplex)*
** RSSI_TYPE =3*

I have also tried Serial7_Option = 160 with no results.

I deleted all sensors and rediscover but it seems I am not getting the flight controller data, such as lipo battery voltage etc.

Any thoughts?

You don’t have an inverted Fport with that Rx. This one does:

I miss typed earlier. I have the R9 MM-OTA Receiver that should work.

What output are you using?

R2, right next to Sbus

I have not tried Fport with an F4 but you might try the Inverted output instead. It would connect to a UART Tx pin with the parameters shown in the wiki for this config.

I tried Tx pin each setting as described in wiki. No effect with Tx pin no RC control either.

Switched back to Rx.