# Garbage attitude control

Source: https://forum.modalai.com/topic/1490/garbage-attitude-control
Category: General Questions (https://forum.modalai.com/category/2/general-questions)
Posted: 2022-10-28 04:42:01 UTC by Patrick Hinchey
Replies: 26 · Views: 8216

## Patrick Hinchey · 2022-10-28 04:42:01 UTC

Hi,

I have integrated the VOXL2 onto a standard carbon-fibre drone frame, roughly 400mm between diagonal motor mounts. This frame has been flown many times with Betaflight and Pixhawk flight controllers and always flies beautifully.

The VOXL2 is performing awfully. I initially loaded on m500 PIDs and it couldn't even take off without shaking violently. I detuned the gains down to almost nothing before it would stop oscillating. I can coax the thing into the air now, but the gains are so low that disturbance rejection is terrible and it's just sloppy. It's impossible to tighten the gains without it shaking itself apart.

I originally had the VOXL2 hard-mounted, but then I tired mounting it with 2 different levels of foam. Neither worked. Here's the kicker - I set it up to use a Pixhawk 4 as external controller and it flew b-e-a-utifully straight away on default PIDs.

I have tried two different VOXLs and they both perform the same. The oscillations are present in both Stabilize and Acro mode, so the Rate loop is to blame.

For context, I have 10 years of experience tuning PX4, Ardupilot and Betaflight controllers on aircraft from 20g to 200kg, so this isn't 'how do I tune the PIDs?', rather 'what am I missing?'.

Normally when I see this kind of behaviour, it's caused by vibration, but looking at the 'vibe' meter on QGC, X and Y vibe is non-existant, and Z vibe about 5% of the clipping threshold.

So what am I missing?

We just completed a remote flight with telemetry controlled by the VOXL2 over VPN, I controlled it from 20km away so I'm pretty happy right now, but it would be even better if we could eliminate the external flight controller.

Thanks,
Patrick

## Reply by Chad Sweet (ModalAI staff) · 2022-10-28 04:53:02 UTC

Which ESCs are you using? The ModalAI ESC is closed loop RPM control for efficiency and requires its own calibration to the motors and propellers

https://docs.modalai.com/modal-esc-v2-manual/#calibration
https://gitlab.com/voxl-public/flight-core-px4/voxl-esc/-/blob/master/tools/calibration.md

## Reply by Patrick Hinchey · 2022-10-28 14:11:42 UTC

Thanks for the quick reply, Chad!
We're using a standard 4-in-1 racing ESC on PWM. We have a 6S battery so we couldn't use the ModalAI ESC but I've just ordered some of your new T-motor F55As.

## Reply by Chad Sweet (ModalAI staff) · 2022-10-28 17:50:12 UTC

Then it sounds like you're using the M0065 VOXL 2 I/O board with it to generate PWM? If so, have you tried calibrating those ESC? https://docs.modalai.com/voxl2-io-user-guide/#pwm-esc-calibration

Otherwise, it still sounds like platform tuning... Can you copy the working parameters from your Pixhawk over?

## Reply by Patrick Hinchey · 2022-10-28 20:47:54 UTC (in reply to Chad Sweet)

@Chad-Sweet yep, we're using the I/O expander. We calibrated the ESC and and tried with the pixhawk's gains too, and it was still unflyable. Again, I have plenty of experience tuning PIDs, and nothing I could do could make this stable. Would it help if I uploaded some logs?

## Reply by Chad Sweet (ModalAI staff) · 2022-10-28 20:52:44 UTC

Yes, of course. logs.px4.io is a good way

## Reply by Chad Sweet (ModalAI staff) · 2022-10-29 17:08:54 UTC

Another thought... Did you configure the mixer using these docs: https://docs.modalai.com/voxl2-io-user-guide/#supported-mixers-and-airframe-setup

And then did you disable the modal_esc driver?

## Reply by Tamas Pal 0 · 2022-10-30 07:22:04 UTC (in reply to Chad Sweet)

@Chad-Sweet I am also having same issue. Can you please tell what is  modal_esc driver? How to disable it ?

## Reply by Patrick Hinchey · 2022-10-31 17:43:53 UTC (in reply to Tamas Pal 0)

Hmm, that's really interesting. Looking back at the parameters from those tests, the UART_ESC_CONFIG was set to 1. I'll set it to 0 and see what happens.
@Tamas-Pal-0 go into qgroudcontrol parameters and set UART_ESC_CONFIG to 0. please post your results!

## Reply by modaltb (ModalAI staff) · 2022-10-31 19:16:10 UTC

Guys, I'm actively looking at this and will report what I find, it's my top priority.

## Reply by Patrick Hinchey · 2022-11-01 05:37:47 UTC

Thank you @modaltb , much appreciated. I look forward to your findings. I disabled the modal_esc driver and it didn't help. Here is a log of the VOXL as flight controller, and one with a Pixhawk 4 as flight controller, with identical parameters. Both were mounted to the aircraft the whole time, all we did was swap wires around between flights.
Obviously there's still room for improvement with the Pixhawk 4 but for the most part it flew really well with default PID gains, whereas we couldn't even get the VOXL2 stable.

VOXL2:
https://logs.px4.io/plot_app?log=25afc87c-37cd-4693-9318-df62be99e4bd

Pixhawk 4:
https://logs.px4.io/plot_app?log=4b8a4762-8f59-49ca-a7fc-af41d38c466b

## Reply by Tamas Pal 0 · 2022-11-01 06:31:25 UTC (in reply to Patrick Hinchey)

@Patrick-Hinchey I also have same experience like you. After disabling modalai_esc driver. I set UART_ESC_CONFIG to 0 also. It didn't help.

## Reply by modaltb (ModalAI staff) · 2022-11-03 17:00:43 UTC

@Patrick-Hinchey ,

I'm still actively looking into this!  One area that caught my eye is here:

https://github.com/modalai/px4-firmware/blob/voxl-dev/boards/modalai/rb5-flight/voxl-px4.config#L187

Out testing has been on a Sentinel setup and am wondering if there's some settings not propagating correctly.

This file can be edited on target to adjust, I'm going through some testing now.

## Reply by m1baldwin · 2022-11-03 18:14:21 UTC

I saw something similar with PX4 version 1.13.1; I don't have a VOXL2, but I had an issue where with VOXL 1 Flight Deck with PX4 1.13.1 did not work well for me on a standard airframe.

I downgraded to 1.11.3 sub-version 0.2.3 - I think this is a Modal AI sub-version? - and had better luck, maybe try an earlier version of px4

## Reply by modaltb (ModalAI staff) · 2022-11-04 00:01:24 UTC

No smoking gun, but here's a commit I have going that uses params instead of hard coded values that we could give a try.

https://github.com/modalai/px4-firmware/commit/a0317b59e72eeb90126788e71093726dafe70708

File changed is here: https://github.com/modalai/px4-firmware/blob/pr-m0065-mr1/boards/modalai/rb5-flight/voxl-px4.config

On monday, I did fly the default Sentinel params with this VOXL2 IO board, it oscillated like crazy and we did a quick dirty tune and got it reasonable.

I'm going to request that we do a full tune on our Sentinel here to ensure we can get same perf as expected with this setup so we have a ground truth.  Will report back when I have info.

## Reply by modaltb (ModalAI staff) · 2022-11-04 01:19:09 UTC

Also, any chance you could post a link to a video of a flight to help us understand the failure mode even more?

## Reply by Patrick Hinchey · 2022-11-04 17:14:59 UTC

Thank you for looking into this.
Here is a video
https://drive.google.com/file/d/1qPXFrxluE-MyOOpnfHQJ5eT4XOLYvGNu/view?usp=share_link
I'll try with the new config file tonight. However the Pixhawk4 parameters are very similar - min=1075, maz=1950 so I would be surprised if that mad all that much difference.
Also, regarding tuning the VOXL2, I'm curious to hear your opinion on why the same gains on the same machine would work great on the Pixhawk4 but not on the VOXL2. The Pixhawk4 is running the latest stable release

## Reply by modaltb (ModalAI staff) · 2022-11-06 20:27:13 UTC

Hey @Patrick-Hinchey ,

Thanks for the video, I'm gonna get some teammates to help early this week who are much more versed in this area.

Here's my setup, it's VOXL2 with VOXL2 IO, as you can see it's flyable but a little rough, I too initially had a wobble that prevented me from flying and changed params a bit from our default Sentinel settings to get it airborne:
  https://www.youtube.com/watch?v=1INto92k-v0

I'll get some members of the team early this week to better answer your second question and we'll keep cranking away.

## Reply by Daniel Mellinger (ModalAI staff) · 2022-11-07 00:20:25 UTC

Hi @Patrick-Hinchey, we are actively working on figuring out the answer your question about "why the same gains on the same machine would work great on the Pixhawk4 but not on the VOXL2."  There are several differences between the PX4 code running on VOXL2 compared to Pixhawk4.  Specifically, the path of the PWM commands to the motors including the px4io setup is different on VOXL2 compared to Pixhawk4.  Additionally, VOXL2 uses a different IMU than Pixhawk4 and that IMU is configured differently.  We will keep you posted on what we are able to figure out.

## Reply by Guest · 2022-11-08 02:05:48 UTC

@Patrick-Hinchey 

I hope all is well! 

I'm sorry you're dealing with this - I know it can be frustrating. 

I'm jumping here a little late and may have missed something. I was wondering, can you confirm that you have the correct [motor mapping](https://dev.px4.io/v1.10/en/airframes/airframe_reference.html#quadrotor-x): 
![f58f9527-186f-40ab-8c76-a389971eebc1-image.png](https://forum.modalai.com/assets/uploads/files/1667873035666-f58f9527-186f-40ab-8c76-a389971eebc1-image.png) 

Also, were you able to successfully run through a PWM ESC calibration using these [Instructions](https://docs.modalai.com/voxl2-io-user-guide/#pwm-esc-calibration)? Which specific ESCs are you using? Did you hear the expected chimes (maybe firmware not accepting)?

## Reply by Patrick Hinchey · 2022-11-11 15:27:35 UTC

Thank you for your insight everyone,

We have an important milestone coming up in 2 weeks so we're going to use the external flight controller until then and then resume troubleshooting this issue after that - trying all the suggestions above.

Thanks, see you in 2 weeks!

## Reply by xav04 · 2022-12-10 00:14:25 UTC

Hi, I have the same problem. I have VOXL 2 I/O and every time I try to take it off it wobbles and crashes. I have a quad x, I have done the ESC calibration and I have followed all the instructions. Is there any solution to this problem?

## Reply by Patrick Hinchey · 2023-01-17 22:39:14 UTC (in reply to xav04)

@Chad-Sweet  @xav04 I have had a chance to get our new ModalAI x T-motor F55A ESCs out of the box and plug them in. I can communicate with them over FTDI converter on my laptop, but the VOXL2 doesn't recognise them.
There's not much troubleshooting I can do as the tutorial just says to plug it in and set the correct PX parameters. Do I remember correctly that I read somewhere the MAVLink console doesn't work on VOXL2? It certainly doesn't work on mine.
The motors don't spin when I arm, and I'm not getting any telemetry info from them.
I followed the tutorial for VOXL EXC V2. IS there anything special I need for the F55A?

## Reply by modaltb (ModalAI staff) · 2023-01-18 00:22:50 UTC

Hey @Patrick-Hinchey I can get on the phone with you tomorrow if easier just let me know. 

It's likely the baud rate on the VOXL2 side that needs to be updated.  There's a param `UART_ESC_BAUD` that by default is 250kbit

https://github.com/modalai/px4-firmware/blob/voxl-dev/src/drivers/uart_esc/modalai_esc/modalai_esc_params.c#L57

I believe the default baud on this F55A config is going to be 2Mbit (`2000000` as the param). 

When you mentioned you are talkin' to them over FTDI, is this through the voxl-esc python tools?

As for the MAVLink console, we don't have the plumbing going for some of the commands over the UDP link from QGC to VOXL2.

That said, you can get to the nuttx like shell via command line if you SSH onto target or adb (captured [here](https://docs.modalai.com/voxl-px4-developer-guide/#how-to-access-the-px4-shell-pxh), as a work around )

## Reply by Patrick Hinchey · 2023-01-25 17:46:48 UTC (in reply to modaltb)

@modaltb Sorry for not replying. Is there an option to set up email notifications?
Yep I was talking to the ESC with voxl-esc python tools. And I believe it was indeed at 2Mbaud.

We've decided to use the FlightCore V2 as the flight controller going forward, with VOXL2 acting only as companion computer. We may revisit this sometime in the future as a weight-reduction exercise, but not any time soon

## Reply by modaltb (ModalAI staff) · 2023-01-25 18:31:15 UTC

OK thanks for the info, we are still looking at the main issue at hand in this thread still....  it's slow progress right now, but we will update here when I have positive movement to share.

## Reply by bensusana · 2023-08-24 12:02:46 UTC

@Patrick-Hinchey 
hi patrick 
did you manage to solve the tune problem ?
we king of facing same problem with our drone 
any help will be appreciate
