PX4 Dev Call: April 13, 2022

April 13, 2022

Join us


  • Community Announcement
  • Community Q&A
  • Weekly Overview
  • Project Updates
  • General Discussions
  • High priority queue
  • Release

:loudspeaker: Community Announcement

Call For Proposals for Dev Summit 2022 due in 6 days!

:alarm_clock: CFP Deadline: April 19, 2022
:date: June 23-24, 2022
:round_pushpin: Austin, Texas, USA

uORB Explained Part 1 was published!

Please check it out and give your feedback! Suggestions for future topics is welcome as well!

:people_holding_hands: Community Q&A

Activating a Sensor via a custom Mission Command : Safy

  • As a ‘mission item’, any commands can be sent (like QGC)
    • There’s “User” Command
    • Or can create a custom MAVLink Dialect
    • For Camera, can use ‘Capture’ Command, etc.

Using External IMU without using it in EKF : Safy

  • Goal : Want to get IMU data via MAVLink
  • On MAVROS, there’s imu-data

Control Allocator : How to make PWM Actuator Output behave as generic PWM @cdcross

Is there an existing idiomatic way to make a PWM actuator output behave as a generic PWM output, rather than a servo-style 800-2200us-ish output? I’d like to set one of our PWM outputs to run from 0 to 100% duty cycle at a given frequency. I was able to abuse the existing parameters to force min/max values of 0 to 20,000 for the existing PWM50 hz mode, which ‘worked’, but doesn’t seem appropriate, and is limited to the 50/200/400 frequencies (a few KHz may be appropriate for certain devices). I’m guessing the right way to go about this would be to add the concept to the PWMOut class and somehow introduce a new parameter that in conjunction with PWM_MAIN_TIMX, allows you to set the desired frequency (i.e. maybe PWM_MAIN_TIMX=PWMCustom, and PWM_MAIN_FREQ=4000 for a 4KHz PWM setup on the specified timer group).

  • Customers with already soldered 3 phase wires to the motor, when the reverse direction is needed, currently it’s not so easy to configure.
  • Bi-directional ESC (1000 : Reverse, 1500 : Idle).
  • With flipped phase wire, 2000 becomes Reverse (flips the direction)

The Question is : "Why shouldn’t the reverse be disabled / not recommended for Motors?

There are propellers with asymmetrical thrust profile (Reverse thrust != Forward thrust) Would we be able to consider this in Control Allocation later on?

  • It involves pseudo-inverse.

Action Item : Define Thrust curves and these asymmetrical cases

RC_ARMSWITCH_TH definition is unclear by @chris1seto

Is there anyone that could contribute a better explanation for RC_ARMSWITCH_TH? I think the current description is very hard to understand; I can’t understand how this param works

  • Currently it’s a float type for ‘thresholds’. 0.75 means that at 3/4 range, it triggers.
  • There are comments in the code, can be improved in the Doc
  • Range is inconsistent in PX4 : Manual Control Setpoint for example, is considered [0,1] in uORB, but Control Allocator takes it as [-1, 1] ?
  • There exists a PR that would consider all user inputs in [-1, 1] consistently (not using [0,1] range for Throttle)

Action Item : Solve the [0, 1] range situation.

  • Needs change in Flight Log Visualizer as well, if we change the range to [-1, 1]

:calendar: Weekly Overview

:phone: Last Dev-Call

:computer: Slack

:mouse2: Github

:construction_worker_woman: Project Updates

SastoCube : CubeSat running PX4, launching this year! by @Abhas Maskey


SastoCube: Your Personal Satellite by SastoCube — Kickstarter
Hi guys, we just launched our SastoCube product on Kickstarter. All the fund generated will go directly to building R&D for space tech while helping PX4 development for space as well. One our satellite mission will have PX4 running on board. Launch this year:clinking_glasses:

  • Janardhan (speaker)
  • There was a PX4 Dev Summit 2021 video where the team presented the cube Sat.
  • Pixracer v1.0 and PX4 for doing mission.
  • Currently running barebone system & using MAVLink, getting data.
  • Current Issues in the CubeSat
    • MAVLink communication between PX4 and Computer
    • Code on the website is not working as expected
  • Did PX4 Space Environment Test
  • Removed unsuitable components, and created Ripped PixRacer.
    • Barometer, etc.
  • Want to make CubeSat as easy to design as possible!
  • Developed in Nepal, for educational purposes to students / learners / tinkerers
  • PX4 is mainly collecting the data.
  • Lifetime in space is around 6 mo ~ 2 years!
  • Not running GPS right now
  • Hardware reset problem
  • Will be sent as Cargo to ISS, and deployed by the Astronaut :space_invader:

Sensor calibration improvement

The Goal is to make sensor calibration much better (remove 6 point mag dance & do mag & acc calibration at the same time)

Feedback and comments are welcome!

What is the pain-point for you of using the sensor calibration?

Control Allocation improvement

The Goal is to make Control Allocation much easier / intuitive to use, by editing Docs and QGC

Please give your feedback about control allocation in this issue linked!

X500 V2 Test Flights by @mwbb

:thinking: General Discussions

rc_input protocol switching: PR proposal for option to lock parser selection - @chris1seto

  • Possible proposal to make all parsers separate modules, or break out separate modules for “next generation” protocols like CRSF

Solves the CrossFire telemetry incorrectly being identified as Ghost protocol (which can be very dangerous)

  • PX4 is currently jumping between the RC protocols.
  • We should have separate Driver for each protocols (Long Term Goal)

Action Item : In #architecture channel of PX4 Slack, continue on this development.

  • Better handling/instrumentation for RSSI/link integrity for more sophisticated protocols like CRSF - @chris1seto

Action Items

  • PR : Spectrum DSM decoding

PX4 1.13 Motor cutout issue

  • Could be a Hardware issue, currently doing long term PWM test on drone
  • Analysis
    • PID wasn’t keeping up
  • How can we verify this is Firmware related? (Not hardware)
    • Chris : Could set up HALT Setup, spin up tons of motors and run it for long time. Check the failure modes.
  • It’s either clockwise PAIR or counter-clockwise PAIR.
  • After the crash, the motor still spun up, so hardware hasn’t totally failed.

Action Item : Follow up on next dev call.

Possible issue with arm button in manual_control - @chris1seto

:exclamation: High priority queue

Discussion based on : High-Priority Queue · GitHub

:ear_of_rice: Release