# Can't start PX4 PCA9685 Driver

Source: https://forum.modalai.com/topic/5037/can-t-start-px4-pca9685-driver
Category: VOXL SDK and Software (https://forum.modalai.com/category/47/voxl-sdk-and-software)
Tags: voxl-sdk
Posted: 2026-02-06 16:17:10 UTC by cbay
Replies: 10 · Views: 4536

## cbay · 2026-02-06 16:17:10 UTC

Hey hope yall are well,

I am trying to interface a PCA9685 onto J19 of the VOXL2 (and ultimately the VOXL 2 Mini). I have connected the chip to QUP0 (Magnetometer I2C) and am trying to start the px4 driver for the PCA9685 found here: https://github.com/modalai/px4-firmware/tree/main/src/drivers/pca9685_pwm_out

I have started PX4 outside of daemon mode and am running the command: px4-qshell pca9685_pwm_out start -a 0x40 -b $ (have tried multiple busses). Everytime I get the error in qshell: Command pca9685_pwm_out not found. I can't seem to find the documentation on how to load this driver onto the VOXL2. Any support would be helpful. I am running on the newest SDK.

## Reply by Eric Katzfey (ModalAI staff) · 2026-02-06 16:26:48 UTC

@cbay That driver is not part of the build nor has it ever been tested on VOXL 2. You would have to add it to the build (e.g. in https://github.com/modalai/px4-firmware/blob/voxl-dev/boards/modalai/voxl2-slpi/default.px4board)

## Reply by cbay · 2026-02-06 17:40:23 UTC (in reply to Eric Katzfey)

@Eric-Katzfey Sounds good, any tips or steps on how to add to the build and to upload to the board?

## Reply by cbay · 2026-02-06 18:42:29 UTC (in reply to cbay)

@cbay Most of the way through the build process, was able to sort it out including the necessary edits to the PCA driver. Issue I am running into is both the dev and master branches of voxl-px4 require a newer version of libfc-sensor (1.0.9 and 1.0.10 respectively) then what is included in 1.6.2 of the SDK.

I am not sure how to upgrade this library

## Reply by cbay · 2026-02-06 20:08:20 UTC (in reply to cbay)

@cbay Checked out a older tag on voxl-px4 and was able to build and install. 

When I run the driver I get an error revolving around its Freq, I understand you dont work with the driver so I doubt yall will have info about it. 

What I am looking for is how to get the necessary Px4 parameters to show up, as they dont seem to be included properly

## Reply by cbay · 2026-02-06 20:09:25 UTC (in reply to cbay)

@cbay https://github.com/modalai/px4-firmware/blob/main/src/drivers/pca9685_pwm_out/module.yaml here is where I think the params are

## Reply by Alex Kushleyev (ModalAI staff) · 2026-02-06 20:15:34 UTC (in reply to cbay)

@cbay , you can run `voxl-px4` in foreground mode : `voxl-px4 -d` , -d to disable the daemon mode (which is used in systemd service mode).

Then you will get the px4 console. You can use the console to add new params and save them

Alex

## Reply by cbay · 2026-02-06 20:50:16 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev My issue is the params arent loaded from the YAML file of the driver, so I can't set and save them. I get errors whenever I try to run param set. 

Any help on making sure this drivers module.yaml file gets loaded properly

## Reply by Alex Kushleyev (ModalAI staff) · 2026-02-06 20:55:57 UTC (in reply to cbay)

@cbay , I am not an expert at this, but i think it is probably related to a additional .c param file, which our custom drivers use, for example : https://github.com/modalai/px4-firmware/blob/voxl-dev/src/drivers/actuators/voxl_esc/voxl_esc_params.c 

You may need to add one.

Alex

## Reply by Alex Kushleyev (ModalAI staff) · 2026-02-06 21:05:48 UTC (in reply to Alex Kushleyev)

if you need the latest packages (libfc-sensor), you can find them here : http://voxl-packages.modalai.com/dists/qrb5165/dev/binary-arm64/

## Reply by cbay · 2026-02-06 21:50:25 UTC (in reply to Alex Kushleyev)

@Alex-Kushleyev Found the reason why it was skipping. In /px4-firmware/src/lib/parameters/CMakeLists.txt there is a line that skips all modules that match 'pwm_out'. I was able to disable that for PCA9685. Once I disabled the module.yaml file being skipped it worked. No need for the .c file (which makes sense, that is just the old way to do the .yaml)
