Pcf8583 params not showing up in QGC

Hy,

I got a pcf8583 tachometer and wanted to connect it to my Holybro pixhawk 4. I noticed the parameters as listed here were not found in QGC. As the site suggested, i added rpm/pcf8583 to the cmake file for the board and builded it. after uploading the latest version to the pixhawk 4, it still not showed up in QGC. I looked into the parameter.xml file in the build folder, it had the specified parameters. when looking in the ParameterFactMetaData in from QGC, it also has those parameters, but still it is not showing up in the GUI of QGC.

I also tried installing the latest stable version of PX4 onto the board, but that didn’t change anything.

anybody knows what i could do? I installed the developer toolchain so i can edit files and make custom firmware.

thnx in advance,
RayanR

Hi @RayanR, thanks for your question,

Driver was tested with our TFRPM01 sensor board. With what hardware/sensor are you testing it?

The latest stable version of PX4 should contain that driver. The driver is not automatically started. here we are working on updating the sensor documentation. (we will create a PR into the official documentation on docs.px4 in a few days). Our working version is here:

In the current airframes, the driver does not start automatically. This is mainly due to some missing features in the driver.

So, please, try:

  • start driver - How it starts is described in the sent document.
  • restart QGC (to reload parameters) and autopilot
  • set right parameter value.

Hy, tanks for the fast response.

I got it working. i have a reverse engineered RPM counter based on the TFRPM01 sensor. it uses the same RTC but a different reading setup.

i got the driver started using the console. i then used put pcf8583 start -X -b 1 in a etc/extra.txt to launch it on the i2cA port of the pixhawk 4.

because of that, the driver starts on boot and i can see the parameters in QGC. However, when going to mavlink Console and typing listener rpm -n 50 i can see the rpm value and it changes accorting to the irl rpm of the motor. However, i can’t seem to find it in the Mavlink Inspector tab of QGC

Thanks,

RayanR

2 Likes

Hello @RayanR ,
I am also facing the same issue, I managed to autostart the RPM sensor but the topic is not published in Mavlink inspector, Did you happened to close this issue ?

Hi @N_J,

What version of FW do you use?
Is the sensor driver running? You can check it in console by command pcf8583 status.

Hi @roman-dvorak I was using v1.12.3, i was able to read through the mavlink console but the uorb topic was not published, hence mavlink inspector was not showing up corresponding message.
BTW do you know whether the driver pcf858 is implemented in v1.10.1 ?

I dont understand. What you are able to read trough mavlink console? Can you send some screenshot?

Yes, that’s quite likely. At the same time, several modifications/improvements were made later to the PCF8583 driver, which introduced, for example, support for multiple sensors at the same time or fixed some bugs.

In mavlink console i can see the driver running in i2c port with the polling freq.
Upon giving listener rpm in mavlink console i can see the rpm values.
Couple of observations,

  1. The address given in PCF8583_ADDR is 80 (corresponds to 0X50) but, this is not shown on mavlink console while i type in pcf8583 status It shows 0x00.

  2. No RAW_RPM message in Analyze tools > Mavlink Inspector

How did you reach the condition that you have 3 instances running? Do you have a startup script on your SD card? What does he look like? I think the problem is caused by wrong I2C address in driver.

Are you able to see I2C device (PCF8583) on the bus?

Otherwise, you need to look for a message in the mavlink analyzer RAW_RPM

I have given pcf8583 start as the start up script in PX4 firmware itself without defining the bus, hence its running in 3 buses. Will that cause a problem ?

Okay, so I would suggest finding out if the sensor is visible on the bus - command i2cdetect -b <bus number and possibly try another bus.

1 Like