Hello, when I read the att_control.cpp file, I found that it publishs actuator_controls. But I want to know where the pwm value(900-2100 ? ) generates, so which file converts actuator_controls to pwm value ?
px4io.cpp and px4fmu.cpp seems to do this work, but I cannt find which function do it specifically. Any suggestions will be appreciate!
px4io.cpp in driver is a driver of io board.
It’s regarded as a device of fmu board.
If you want understand how Io board to output pwm,you should read the code in src/modules/px4iofirmware.
Hello,
i am considering about this problem. I can not find any link between them. Now, i have actuator control and we need get pwm though mixer. Could you told to us the diagram that it shows how to understand this problem?
Thanks.
That is px4io firmware. It runs on the failsafe processor so it doesn’t get linked to fmu at all. It is built as an image and uploaded to the failsafe.
Fmu has its own output scaling:
This isn’t particularly tidy since you get different behavior depending on the driver. One of my goals is to pull this function into a library instead of having it spread over the drivers.
This implementation also limits the maximum servo output range which sucks if you need more servo travel.
Thanks Crashmatt. Now it is clearly with me. I have another question. What is meaning of /drivers/px4io? It seems running as a thread after rcS is performed.