Trying to compile custom px4 with CRSF/ELRS support

I’ve been trying to generate a custom PX4 firmware with CRSF and ELRS support.

I’m using a Ubuntu box, and a new account so it’s not got anything installed that shouldn’t be.

I couldn’t find a wiki for the build process, so I used Microsoft Co-Pilot to walk me through it all. It’s not hard - as long as you know what you’re doing. (like most things)

After generating custom firmware and installing it, the necessary parameters don’t appear. I tried defining them as defaults in config files - but they didn’t help.

I started poking around the version 1.16 repository - and I’m not sure CRSF support is in there.

My research indicated that there should be a directory in the repo: src/modules/rc/crsf

But it doesn’t seem to exist:

Can someone please point me in the right direction so I can generate a custom PX4 with support for CRSF and ELRS. (ELRS needs 420000 baud)

Thanks!

It’s a bit unclear in regard to RC protocols and drivers, there are 2 ways to include CSRF:

PX4-Autopilot/src/drivers/rc

or
PX4-Autopilot/src/drivers/rc_input

I think co-pilot is failing you, try Claude. Also a quick google search should have gotten you there.

You shouldn’t need a custom build, all that is required is CONFIG_COMMON_RC=y or DRIVERS_RC_CRSF_RC=y in the .px4board for the target you’re using. Also ensure RC_CRSF_PRT_CFG param is set and that nothing else is configured on that port.

I was able to get it working on v1.14.0 by changing one simple file:

PX4-Autopilot/src/drivers/rc/crsf_rc/Kconfig

This required me to change this (default y instead of default n):

menuconfig DRIVERS_RC_CRSF_RC
bool “crsf_rc”
default y
—help—
Enable support for crsf rc

After that, with a rebuild, crossfire showed up. It still required setup, but it works for us.