Voxl2 Spektrum Receiver error
-
@Eric-Katzfey Please let me know what you or your team find. This seems to be the last hurdle to getting me to flight testing. I have a shipping deadline to make on Friday with this system.
-
@Chase-Riley Seems like ESC param issue. Alex is going to respond with some suggestions.
-
@Chase-Riley , we have discussed and the data on the PX4 side looks ok so far, which leads me to believe there may be an error in ESC params, specifically the RPM curve calibration
pwm_vs_rpm_curve_a0
,pwm_vs_rpm_curve_a1
,pwm_vs_rpm_curve_a2
.Please confirm that you performed the calibration (with propeller mounted on motor!) according to instructions here and updated the results (a0, a1, a2) params in your esc params xml file and sent it to the ESC ?
Also double check the
min_rpm
andmax_rpm
in your esc params -
Additionally, I saw that you use
THR_MDL_FAC
set to 0.8, which is what we use in our Sentinel drone. However, your propellers, if i am not mistaken, are much larger and this factor may need to be correct. I will double check how to calculate this factor correctly. -
Another suggestion: you can test your ESC response with the following command:
https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl-esc/-/blob/dev/voxl-esc-tools/calibration.md?ref_type=heads#test-esc-using-rpm-commands (at the very bottom)
(you can adjust your test command according to your motor / prop and min/max rpm, etc)
-
@Alex-Kushleyev I went and checked my .xml file and verified it was correct and re uploaded it to the ESC just to make sure. I had already run the calibration and updated the A0, A1, and A2.
I did find that my
min_rpm
andmax rpm
were different in the xml file than I had them set in px4. That may have been the issue because control seems to be working fine now. Between re flashing the xml and changing the values one or both of the solutions solved the issue. I will contnue testing and report back with any issues. Thanks for jumping in and helping out.@Eric-Katzfey you said this morning that the DX6e data I sent over did not look correct. Is there something else we want to look into there. As I said before after looking at the logs the DX8 and the DX6e seem to behave the same way.
-
@Alex-Kushleyev Do you have a rough idea of what this value should be set to? If you need to know my motor and prop combo send me an email. I would rather not disclose on the forums.
-
@Chase-Riley , i am checking. There should be a formula to calculated it.
-
@Chase-Riley Just the protocol byte being different than what we normally see. Not sure why it is doing that.
-
@Chase-Riley , based on the following documentation, https://docs.px4.io/main/en/config_mc/pid_tuning_guide_multicopter.html , this factor determines the mapping between the control command (in our case rpm) and thrust. An ideal propeller would have a quadratic relationship between thrust and rpm, such as thrust = a*rpm^2, but the propeller will lose efficiency at higher rpms, so a good compromise is the value of 0.8, which we are using on our vehicles. This parameter is actually not dependent on the specific min and max rpm, but should be considered as a general approximation to map the control input to thrust (in normalized units, which is taken care of by px4).
Please note that if you use a traditional ESC, whose control input is PWM duty cycle, the resulting mapping will be less accurate (in terms of being a perfect quadratic function). The reason is that with modalai esc, the ESC takes care of RPM control (and thrust is a function of RPM), but traditional ESCs do not RPM control, so the relationship to thrust is more complicated.
So i think you can leave
THR_MDL_FAC
parameter at 0.8 and should be OK! -
@Alex-Kushleyev and @Eric-Katzfey Thanks for your help on this. Flight testing went well. I was able to test with the Spektrum DX8 and DX6e and saw no difference between the two while running the custom Debian file that was sent over.
-
@Chase-Riley Okay, thanks for the update. I'll have to add an option to ignore the protocol byte check in the Spektrum driver then.
-