PX4 Dev Call: October 2, 2019


Call notes:

(missed first 10 minutes)

David / Daniel - Mixed model allocator.

  • do we want custom allocator

    • 36% CPU which is high compared to F7
    • Saw this when DTCM is removed from the HEAP. Makes sense since they are running at highest rate.
      ○ David 2x clock factor should see benefit???


    • DSHOT PR is outstanding
      David - what are the impacts on the resources? Document channels and streams and ensure we are not putting something such that we are opening a device and impacting the system overall.
    • PR changed to update internal resources to use NuttX labels/methods (opposed to direct register access)

BEAT - will refactor to NuttX methods.
Impact on ??? DMA on

  • Regular GPS - holybro puck? - GPS
    • Can we merge? - Not running DSHOT module - what else is changed?
    • Uses static buffers -more RAM
    • Not active by default.
    • This version direct to registers - Should the PR come in and then experiment.
      ○ Document - BEAT to post.
    • Effects all boards? - where should this be located.
  • David: F7 DMA mapping, not on all F7’s (DMA mapping)

From documentation standpoint - Spec should be Not by chip but application. FMUv5 is different. Doc should be added to PR to get the documentation . (Conflicts will show in the table.)
*** Needs dedicated call to get through the details.
David, Beat, Daniel - call to get it into the right format.
(David - V5X only four DMA channels possible? If not what are the impacts?)
Need Igor’s involvement - will ask on Slack to coordinate a call soon.
Dnaiel - Lets get this on V5 and then work on getting others in good state.

How does it work for multiple output groups?

  • Dshot, UACAN etc.

  • just a replacement for the startup.

    • Creates a device,turn on a MODE at CLI. Startup script same?
    • Telemetry? Yes it is working
    • Method for taking in serial data - PWM pins and UART -

    Added option to reverse motors. (QGC)
    Parameters on ESC - send DSHOT command. - motor test GUI interface on QGC would be nice.

Other PRs

Daniel - Any blocking issues for release?
MARK - PR for remove attitude timestamp validity check - Adding that check can allow person to fly in ACRO mode without a valid ?? This is an actual bug. PR restores previous logic
UAVCAN battery support - that can come in.
EKF2 optical flow innovation preflight check - ? PR-13336? Is this need to go in this release? Is paul aware of this? (mathieu) Call on Thursday - will ask to review.

Work queue status command and shutdown empty work queer PR 12853
- Julian
- Prtint tree view of work queues
- Empty Q will shut down auto so it saves memory on systems.
- Fragmentation standpoint? (Unknown) How to check (look at free and Max available = Available) is that the case? David - yes if you bring it up in orderly way.
- Julian - should be good to go in. Needs to get it into log
○ Is this risky for a release - no, overall free memory has gone up.
○ Important to have visibiliy into work queues
§ New command workqueue status (Prints tree, status and rate interval)
§ Can these Q be stopped at the command line, for divide and conquer debugging

Stack of workQ in static table. That thread runs schedule. How to check ? Currently monitor
HRT - fixed ISR stack 750 bytes. LPWork, Hpwork,.
David do we have a way out figuring out the worst case budget for memory.
Daniel - Libmon stackmon - still monitor the same way.
- As we get drivers into common form…

PR 13060 - EKF2 moving multicopter position controller to work Q. To save memory. Save 7Kb ram on Pixracer.
- Nice , can we do after large position controller PR? (matthias grob)
- Can hold, but should merge cleanly. Will check (matthias)
- Serialize the estimator then position controller in same thread. Make sense as they have to run this way. They are tasks now which is less jumping back and forth and more mem.
- Potential downside? _ if anything happened in Pos controller - blocked etc, could prevent the estimator from running. What would you see - estimator timeslip in flight review. (now - you don’t get any new setpoints.) It’s not like it was ok before. These things could now more directly interfere with each other. Both are flight critical. “lateral move” but little flaster and saves memory.
- Quasi-release: release branch tagged, but are we confident in stable release? Prefer not to drag it out. One idea is to announce 1:10-beta is available to test → would that get us more testing to get a release out sooner?
- Running out of memory is a real issue. Doesn’t present itself nicely.


  • Daniel - partial Changed the scheduling between the Bosch BMI and Mro control 0. FiFo and Data ready Int fo rgyro and accel. If debugging and pause it would not resume. Console dead. Redid the scheduling - single thread for sampling both gyro and accel. Can this get in on this branch for further testing?
    • Not just Pixhawk 4.

(new fmu - didn’t catch the name)
Case on? Aluminum case. Invensense IMU - 20689 digital temp sensor on board 1.25 deg C on SPI Aux mem CS.

Daniel - (
Flash on V2 - Method to save memory??
Tested part that provides sensor correction. Haven’t run onboard calibration
Some one askign about how to control the LED to indicate process of temperature calibration (Carl?) Lets go back to this

Download activity monitoring? Not recently - could indicate V2 requirements
Bloaty may be skewing the monitoring count.

Q Julian Kent - Estimator and Pos Controller in same thread . Rate controller and Gyro aggrication in singel thread (rate control work queue)
Have we tested on delay from software - hit with hammer and measure time to motor update.
Perf counter = control latency - any other tests ?
- Compare with Betaflight -
- Trigger on scope and capture outputs on motor control
- Hit mech switch with hammer to trigger scope - physical vibration source and capture how long it takes to get to the motors.
- Now- timestamp on transfer to get IMU data, goes copy through rate controller, sand store output to actuator output topic. Perf- counter. Think it is “couple hundred uSEC”)

Integration work out of that loop. Be able to run multiple estimators
Is IO chip significantly higher?

Business as usual - try to get more testing to move to release. Bring in PRs that have been tested.
Different configs of Px4 - go through your particular setup and start from scratch.

-End of call-

1 Like