I want to integrate this liquid flow sensor , https://posifatech.com/plf2000/, into my cube black and I have a few questions:
1-From what I have seen so far, it seems there is no driver for this sensor , in any protocol, within arducopter. Can someone confirm me this?
2- If confirmed there is no driver for this sensor, the solutions I thought are:
a- Write myself the driver
b-Connect the sensor to a companion computer, like a RPI,and send the data to my cube black.This part I don’t fully comprehend how would I do it, if I could simply send the data through the telemetry cable between cube and rpi and then follow the instructions here:https://ardupilot.org/copter/docs/common-fuel-sensors.html . Can someone give some guidance in this point?
The simplest would be to use the analog output, and set it up like a current sensor.
Assuming I wouldn’t use analog output from the sensor, can you confirm or deny my assumptions?
I can confirm and deny the following:
This particular sensor device can be used as I2C and analog output.
A. As an analog output device, it can be used straight forward using the Ardupilot wiki.
Thus, we can deny all the rest assumptions.
B. As I2C device and your assumptions:
b. Usually we connect a sensor to the companion if we want all the processing to taken care of by the CC. Or you could make a custom mavlink message and stream it through the rest telemetry by merging it with the main that you collect from the AP. So, IMHO it’s too much hassle for just a flow that is already implemented.
Thank you for your answer.I understand your points.
If it’s not much trouble, could you explain the whole process you described in 3b? I understand it can be a hassle, but there isn’t guides about a specific topic of “Create a custom mavlink message for a sensor to send to the stream”. Well, if there is I couldn’t find yet
This how far my knowledge goes : https://ardupilot.org/dev/docs/code-overview-adding-a-new-mavlink-message.html
You can request for more specific help in the forums once you start your project.
You could create a small driver for the analog or i2c using Lua scripting bindings.