PX4 / PX4-Autopilot

PX4 Autopilot Software
https://px4.io
BSD 3-Clause "New" or "Revised" License
8.09k stars 13.33k forks source link

MATEK H743 Mini V3 Overheating (70 ~ 80 deg C) - Possibly due to Multi EKF2 #21925

Open junwoo091400 opened 1 year ago

junwoo091400 commented 1 year ago

Describe the bug

When a MATEK H743 Mini V3 is flashed, the board seems to be heating up excessively (70 ~ 80 degrees C).

To Reproduce

Flash Matek H743 mini:

# Build
make matek_h743-mini_default

# Upload with specified baud rate, since default 57600 doesn't work with bootloader
python3 Tools/px_uploader.py --port /dev/ttyACM0 --baud-flightstack 115200 build/matek_h743-mini_default/matek_h743-mini_default.px4 

Then wait for around 1 minute, until the board temperature stabilizes, and check the temperature in topics like sensor_baro, or sensor_gyro.

Expected behavior

Board shouldn't be as hot as 70~80 degrees C, it should rather be 40 degrees C max

Screenshot / Media

image

As you can observe (log attached below), the board reaches easily starting from 40 deg C (latent heat from previous tests), up to 90 degrees C!

CPU load is around 30%, and the dip in temperature at 4:10 mark was because I turned off the ekf2 module, so I think I can also say that EKF2 is causing this overheating (but quite puzzling, because CPU usage itself doesn't really decrease)

I should note that I had Multi EKF2 enabled, and there were 2 instances running for this test (by default).

I have also tried to adjust the clock speed by porting https://github.com/PX4/PX4-Autopilot/pull/19163, but that didn't really change the resulting temperature.

Flight Log

https://logs.px4.io/plot_app?log=1395a014-1397-4e84-91f2-c8227785a315

Software Version

main branch, with some edits in board sensor startup scripts, since the revision of IMU sensors for the V3 was not applied in the board configuration.

Flight controller

MATEK H743 Mini V3

Vehicle type

None

How are the different components wired up (including port information)

No response

Additional context

No response

dagar commented 1 year ago

You can lower the clock if it's actually a problem. For example on the cube orange (a similar STM32H7) it's running at 400 MHz instead of the 480 MHz max.

junwoo091400 commented 1 year ago

I have also tried to adjust the clock speed by porting #19163, but that didn't really change the resulting temperature.

@dagar it didn't help unfortunately

dagar commented 1 year ago

I have also tried to adjust the clock speed by porting #19163, but that didn't really change the resulting temperature.

@dagar it didn't help unfortunately

First I would verify it's even working (the PR was closed unmerged after all).

Then do some comparisons, how much did the temperature change and what's the idle cpu percentage? Lowering the cube orange from 480 -> 400 MHz made a small difference, but it was enough to alleviate some concern when using it in a sealed vehicle next to other hot components. As long as you've still got some idle cpu you keep lowering the speed substantially.

junwoo091400 commented 1 year ago

First I would verify it's even working (the PR was closed unmerged after all).

I have tried reducing CPU clock speed by changing the divider for 'PLL1P' from 2 to 8 (therefore making it 480 -> 120 MHz), but that ended up breaking the UART connection with the GPS, so I need to investigate why that happened :shrug: