Hardware Support OMNIBUSF4SD

Hopeing someone can help me, I have a FC which I bought from banggood
Eachine Wizard X220S FPV Racer Customized Version Omnibus F4 V3-S Betaflight 3.0.1 Flight Controller
I am getting the following error
02 Jun 2022 11:57:04 : Config Error: INS: unable to initialise driver
02 Jun 2022 11:57:04 : Config Error: fix problem then reboot

Here is an output from BetaFLight
MCU F40X Clock=168MHz (PLLP-HSE), Vref=3.26V, Core temp=38degC
Stack size: 2048, Stack address: 0x1000fff0
Configuration: CONFIGURED, size: 4096, max available: 16384
Devices detected: SPI:1, I2C:0
Gyros detected: gyro 1 locked dma
GYRO=BMI270, ACC=BMI270
OSD: MAX7456

I have flashed omnibusf4 Plane 4.2.1 as i noted support for the BMI270 which this board has.
These boards have always working in the past when they had MCU6000 but now with the BMI270 I can’t get it working. I am not sure how to proceed here or how I can assist in getting this supported


I think you will have to change the hardware definition of the board and compile the firmware.

Check this link to see how they did it for Beast F7

You’d have to change this file:

thanks @Lanza, this is unfortunaly beyond me I know how to flash, compliing is a little too complicated for,
Maybe someone can comnpile it for me ?

Can anyone help me, I have tried compiling my own frimware by cloining the onminbus4pro and editing the hwdef.dat by replacing

PA4 MPU6000_CS CS
with
PA4 BMI270_CS CS

SPIDEV mpu6000 SPI1 DEVID1 MPU6000_CS MODE3 1MHZ 8MHZ
with
SPIDEV bmi270 SPI1 DEVID1 BMI270_CS MODE3 10MHZ 10MHZ

and adding
IMU BMI270 SPI:bmi270 ROTATION_ROLL_180_YAW_225

I compile it, but only get a bin file and no hex files

I would appreciate any help possialbe
Thanks

Ok just a little more persistance and I have got it working

1 Like

Great!
If you are compiling in Linux or MacOS these instructions work well.

The binary and hex should appear in the build/<board-name>/bin directory.

I could use some help

I have created a folder omnibusf4sd copied from omnibusf4
My hwdef.dat looks like this

include ../omnibusf4pro/hwdef.dat

undef APJ_BOARD_ID
undef PC8
undef PC9
undef PA4
undef IMU

#board ID for firmware load
APJ_BOARD_ID 1002

#Omnibus F4 SD and later had hw inverter on UART6
#Overide it to use as GPS UART port
PC8 SBUS_INVERT_RX OUTPUT LOW
PC9 SBUS_INVERT_TX OUTPUT LOW

#Overside for BMI270
PA4 BMI270_CS CS
SPIDEV mpu6000 SPI1 DEVID1 BMI270_CS MODE3 1*MHZ 4*MHZ
SPIDEV bmi270 SPI1 DEVID1 BMI270_CS MODE3 10*MHZ 10*MHZ
IMU BMI270 SPI:bmi270 ROTATION_ROLL_180_YAW_225

I am getting a error when I run the ./waf
Writing hwdef setup in /home/rolf/ardupilot/build/omnibusf4sd/hwdef.h
Error: Bad CS pin in SPIDEV line [‘mpu6000’, ‘SPI1’, ‘DEVID1’, ‘MPU6000_CS’, ‘MODE3’, ‘1MHZ’, '8MHZ’]

The only way I can get the run to complete is if I # out the line 110 in the …/omnibusf4pro/hwdef.dat
SPIDEV mpu6000 SPI1 DEVID1 MPU6000_CS MODE3 1*MHZ 8*MHZ

But then I am changing the omnibusf4pro hwdef.
How do i do a override ? if this is not possialbe then I would need to copy the omnibusf4pro and just edit that as the new omnibusf4sd

I know very little about the code but I would try to remove this line:
include ../omnibusf4pro/hwdef.dat
And replace it by the contents of that file then edit all in there. So that you don’t have to use any undef.
If you are successful you might get memory errors and you’d have to use https://custom.ardupilot.org/ obtain extra_hwdef.dat which you can integrade in the same file.

here is an example:
https://custom.ardupilot.org/builds/plane:omnibusf4:54a5bd007df3521f6652cf20038b719fd353119a:b67b260c2a625abaf90d3d27a5a31752/extra_hwdef.dat

@ rolfbartels

im having similar problem, would you be able to share the firmware file