bat7312
(kevin cho)
May 1, 2023, 1:09pm
1
Hello!
I am using XUWING VTBIRD 4+1 and cuav x7 plus , cuav neo 3 pro GPS
I installed every arduplane firmware
Only stable 4.1.7 below can detect 4 motors in setup- manditory- servo output
and working well
I flight test in arduplane stable 4.1.7 firmware.
But above stable 4.1.7 firmware can not detect 4 motors vt bird in setup- manditory- servo output
I cannot getting servo output in MP for VTOL (QuadPlane) vertical 4 motors
Above stable 4.1.7 firmware BRD_PWM_COUNT removed
I guess this is the only difference.
How do i solve this problem?
Electronic devices
4PCS Brushless Motor X4112S KV 485
1PCS Brushless MotorSunnysky X3520 III KV 560
4PCS ESC 40A 2-6S, Customized 300mm 16AWG Power wires
1PCS 60A ESC (no BEC)
2023-05-01 μ€ν 8:24:06 : EKF3 IMU1 MAG0 initial yaw alignment complete
2023-05-01 μ€ν 8:24:06 : EKF3 IMU0 MAG0 initial yaw alignment complete
2023-05-01 μ€ν 8:24:06 : EKF3 IMU1 tilt alignment complete
2023-05-01 μ€ν 8:24:06 : EKF3 IMU0 tilt alignment complete
2023-05-01 μ€ν 8:24:04 : EKF3 IMU1 initialised
2023-05-01 μ€ν 8:24:04 : EKF3 IMU0 initialised
2023-05-01 μ€ν 8:24:04 : Airspeed 1 calibrated
2023-05-01 μ€ν 8:24:02 : GPS 1: specified as UAVCAN1-125
2023-05-01 μ€ν 8:24:02 : Quicktune for quadplane loaded
2023-05-01 μ€ν 8:24:02 : RCOut: PWM:1-14
2023-05-01 μ€ν 8:24:02 : AHRS: DCM active
2023-05-01 μ€ν 8:24:02 : ArduPilot Ready
2023-05-01 μ€ν 8:24:02 : Airspeed 1 calibration started
2023-05-01 μ€ν 8:24:02 : MS4525[0]: Found bus 3 addr 0x28
2023-05-01 μ€ν 8:24:02 : Barometer 2 calibration complete
2023-05-01 μ€ν 8:24:02 : Barometer 1 calibration complete
2023-05-01 μ€ν 8:24:00 : Calibrating barometer
2023-05-01 μ€ν 8:22:59 : IMU2: fast sampling enabled 8.0kHz/2.0kHz
2023-05-01 μ€ν 8:22:59 : IMU0: fast sampling enabled 2.0kHz
2023-05-01 μ€ν 8:22:59 : RCOut: PWM:1-14
2023-05-01 μ€ν 8:22:59 : CUAV-X7 001D002F 31305113 32303437
2023-05-01 μ€ν 8:22:59 : ChibiOS: 66e5de0d
2023-05-01 μ€ν 8:22:59 : ArduPlane V4.3.5 (3bf6d7ac)
Brd pwm count is gone, you just select each chanel now rather than choosing a number of pwm, the information is in the docs
1 Like
dkemxr
(Dave)
May 1, 2023, 4:46pm
3
And the handy SERVO_GPIO_MASK
bat7312
(kevin cho)
May 2, 2023, 1:41pm
4
Thank you for your reply
RC7_OPTION (28) for relay 1
RELAY_PIN (50) for AUX 1
SERVO9_FUNCTION (-1) for GPIO on Aux 1
GPIO can relay mapping AUX(50-55) and OMCU MAIN (101-108)
For example, the Pixhawk default defines set up AUX OUT 5 (pin 54) and AUX OUT 6 (pin 55) as the βFirstβ (or #0 ) and βSecondβ (or #1 ) Relays respectively.
IOMCU βMAINβ output 1 thru 8 are mapped to GPIO pin numbers 101 to 108, respectively.
SERVO_GPIO_MASK will help
But arduplane 4.17 firmware show correct servo
arduplane 4.17 above show only three
Why this happen when i installed arduplane 4.17 firmware above
SERVO_OUTPU is Only 3
Is this the normal or arduplane firmware problem
how do i solve this problem
Please help me .
Is it because of this? Maybe with the later fw you can re-designate using the servx function param as the doc suggests
bat7312
(kevin cho)
May 3, 2023, 12:56am
6
Thank you for your detail reply.
I install FMU3V board,It work fine in any arduplane firmware version
In FMU3V board, everything work fine
In CUAV X7+ , Only 3 SERVO_OUTPU is appear (VTOL 4 motors missing)
when i installed arduplane 4.17 firmware above
In FMU3V hwdef.dat also define BOARD_PWM_COUNT_DEFAULT 4 removed in arduplane 4.17 above version
WHy 3 SERVO_OUTPU is appear and VTOL 4 motors missing in CUAV x7+
Could this difference be due to the characterristics of the board ?
dkemxr
(Dave)
May 3, 2023, 1:48am
7
Iβm not sure what you are asking but that Flight Controller does not have a IOMCU. Itβs nothing like a board using fmuv3.
bat7312
(kevin cho)
May 3, 2023, 5:41am
8
arduplane firmware 4.17
/*
write to an output channel
*/
void AP_Motors::rc_write(uint8_t chan, uint16_t pwm)
{
SRV_Channel::Aux_servo_function_t function = SRV_Channels::get_motor_function(chan);
SRV_Channels::set_output_pwm(function, pwm);
arduplane firmware 4.17 Above
write to an output channel
*/
void AP_Motors::rc_write(uint8_t chan, uint16_t pwm)
{
SRV_Channel::Aux_servo_function_t function = SRV_Channels::get_motor_function(chan);
if ((1U<<chan) & _motor_pwm_range_mask) {
// note that PWM_MIN/MAX has been forced to 1000/2000
SRV_Channels::set_output_scaled(function, pwm - 1000);
} else {
SRV_Channels::set_output_pwm(function, pwm);
}
}
Iβm not a programmer
Would differnt source code lead to the same result ?
If there is no solution, Should I return to primitive times downgrade firmware ?