Co-processor firmware

Hi,

What is the firmware on the F103 co-processor? And where can I find a pre-built one?

Thanks.

The source code is here: https://github.com/ArduPilot/ardupilot/tree/master/libraries/AP_IOMCU

I don’t know how the binary is packaged or flashed to the F103.

The binary is embedded into the main firmware (only on target using iomcu)
On initialisation, there is a request of the iomcu version, if it doesn’t match, the main firmware update it.

On normal build, WAF will get the precompiled iomcu binary. You can manually build th iomcu binary by changing the target to board iomcu and than waf iofirmware or something like that (check on waf help). Then you need to copy the output into Tools/IO_Firmware.
There is a script to automate this task here https://github.com/ArduPilot/ardupilot/blob/master/Tools/scripts/build_iofirmware.py

1 Like

I am working on clone of CUAV v5 + board, where I facing some problems with IO mcu. IO mcu is not showing any motor outputs on both px4 and ardupilot firmware, px4 firmware able to read ppm input but ardupilot is not able to read rc receiver ppm signal. Now I am want to debug IO mcu firmware and look insit whats going on. Is there any guid for setup development enviornment on eclipse for iomcu firmware?

Good day…me ive build the iomcu firmware under ubuntu with these params
./waf configure --board iomcu and then ./waf iofirmware

Inside the folder ardupilot build ive found two file names … iofirmware_highpolh and iofirmware_lowpolh…, whats the difference?

2 Likes

ok… but there are advantages for the iofirmware_highpolh?

The two binaries differ in the polarity of the IMU heater control.
The polarity is probably specified in the board’s hwdef file.

4 Likes

thank you so much bro it is helpful