Some setup confusion

Hello again. I figured it was better to start a new topic instead of mixing this in the old one.

I have tried to set up this Pixhawk 4 anyway, but it gets very confusing at times, and there seem to be missing information regarding some procedures. I have yet to find a simple list with all of the required steps that one needs to go through to get going… perhaps I should make one if I ever get through this.

Anyway, I’ve been using QGroundControl, as suggested, and going by what I can find in the documentation. The most important parts that I currently can’t figure out are:

  1. Where can I (easily) see if Motor interlock is enabled or not?
    Such a basic thing should be right at the main screen, but I can’t find it anywhere.

  2. When armed, the FC keeps beeping at random intervals, sometimes even continuously which is just plain annoying. Why does it do that and how do I turn it off?
    The tone is 3 short beeps like “lo, med, hi” and reverse.

  3. There is a red LED in the middle of the FC, labeled B/E. Cant find any description of this. It is flashing non-stop every time I power on, and has always been like that. What is this?

  4. I can apparently set the GPS position offset, by using GPS_POS1_X/Y/Z. However the description says “from the vehicle’s IMU or center-of-gravity”.
    Well, it can’t be both, so which is it? Or do I define that somewhere else?

  5. At what point in the setup procedure do I connect the tail servo? And where is the tail servo configuration? Another really basic thing that should be covered but no one even mentions it, only the swash servos.

I can see the “tail & gyros” part but there is no settings for tail servo or its behavior (“gyro”). I assume that the end points can be set in “servo setup”, but that is it?

  1. The other part of “servo setup” (that isn’t motor4), what do I use this for? What should I set it at? It is not covered in any setup procedure as far as I can see?
    I have already set up the collective and cyclic under the swashplate section, as described, it is working fine so I just cannot understand what I should do with the servo setup.

  2. Documentation seem to suggest that I should connect the ESC to the FC. Why is that needed? I wouldn’t feel comfortable with the FC having full control over the ESC. Before pixhawk, I have always been connecting the ESC directly to the receiver and that has been working wonderfully. Could someone explain why that wouldn’t work here? I’m not intending to use any autonomous flying.

If I connect it to the FC, then it locks up or the s/w crashes, how would I cut the throttle? It could theoretically fly away and never come back, or kill someone.

@kitchen_faucet I’m sorry to hear of your difficulty in setting up trad heli on your flight controller. We have made some changes over the past month or two to improve it. But I’m not sure they specifically address your concerns.

You can see this appear as a message. I think you can click on what looks like a bull horn at the top of the screen.

Sounds like you haven’t setup the controller properly. Such as not completing all of the calibrations. Are you getting any pre-arm messages? If you know how to set the log_disarmed parameter to enable, you can set that and then restart the controller. If you can arm then arm the aircraft and then just disarm and power off the vehicle. Pull the log file from the pixhawk and post it so I can look at it. I will try to answer your other questions soon.
I just want to make sure you have completed all of the basic hardware setup for the controller (ie accel cal, radio cal, compass cal etc). If we can get the controller to a point that it is happy then we can start talking about the tail and settings for that.

I did these calibrations before mounting the unit, as suggested. Outdoors.

Then the rc input calibration later on, when mounted.

I enabled “log_disarmed”, however, I can’t find anything that looks useful. Which file do you want?

This is what I get in qgroundcontrol

@kitchen_faucet I am sorry for not responding sooner. I sometimes get side tracked and forget about those I may be helping with an issue.

By looking at your messages, it appears that you may have a hardware switch. Not sure if you are familiar with this. It is a switch that is separate from the controller. It is plugged into an I2c port and blinks red. You depress the switch until you get a solid red light and that will allow you to arm the controller. Now if you don’t want to deal with that then there is a setting that will not require the switch to arm. Disable it by setting BRD_SAFETYENABLE to zero.
As for the compass inconsistent message, perform a compass calibration with the system installed in the heli. If it doesn’t go away after that the you can chose to only use the external compass. I would have to look up how to do that. You could probably beat me to it by looking at compass set up on the wiki.

The tail servo is designated as Motor 4. So in the heli setup page chose the output (servo number) you want your tail servo connected to and assign it Motor 4. I typically leave them at the defaults and do a mechanical adjustment of the tail blade pitch so that neutral servo position (1500 PWM) is the tail blade pitch for hover. The only other thing to ensure is working correctly is that when you swing the tail in one direction or the other that the tail blade pitch changes to oppose the tail swing. for example, if you rotate the helicopter body so the nose swings to the left and the tail to the right, the tail rotor blades should change to increase thrust to the left, thus opposing the tail swinging to the right. Lastly make sure that your rudder control on your transmitter commands the proper blade pitch on the tail rotor. you will want to be in stabilize or acro mode to test all of this.

There are safety concerns with not running the ESC control through the flight controller. The code ensures all of the systems are working before allowing the user to arm the controller and start the motors. If you bypass these checks by connecting it directly to the receiver, then you could start the motor without the flight controller being fully functional. That is just as dangerous because the state of the vehicle (arm/disarmed, motor interlock enabled/disabled) changes the control algorithms which hugely impacts your ability to safely control the vehicle. I understand your concern and I remember having that same concern when I first got into ardupilot. however please abide by the setup guide and connect the esc to the flight controller.


Is this good enough? I can’t get it any better

Should I have a higher priority on one of them or do they behave the same?

The B/E LED is still flashing.

So I assume that there are no tail settings then?

As an example what they usually look like:

I know it’s motor 4 but the setup does not say when it is safe to connect the tail servo. Every other setup I’ve been through mentions this, in some way.

By hardware switch I assume you mean the small button on the GPS? It’s not an on/off switch, it’s just something that signals the software (as far as I can see). I don’t think I have had any problems with it.

they are both in the green so I would assume everything is good.

I don’t know. If you start getting compasses inconsistent or another message like that then deselect “use Compass” for the internal compass and just use the external only.

First you need to make sure you have the min max and trim settings correct for the type of servo. The software assumes that you are using a servo with min at 1000, max at 2000 and trim at 1500. if you are using another servo that has min at 500, max at 1000 and trim at 760, then you need to change the default settings before you connect the servo. other than that, you need to be careful when using the manual servo setting (H_SV_MAN) because it controls the setting of the tail servo as well. So be sure that the min and max settings are set appropriately before connecting and using the manual servo setting.

Yes that is probably it. sometimes they may not be on the GPS but what you describe sounds right.
So this switch will restrict the controller from arming until it is depressed. It is an extra step that you may not want to deal with. If it was me, I would disable it like I described.

Yes there are tail settings but not necessarily the same. the ones that are in the picture you show are mainly in the attitude controller settings. They are not as user friendly as you probably would like.
The control rate is based on ACRO_YAW_P. The calculation of the max rate that you can command is Max Rate = ACRO_YAW_P * 45
ACRO_YAW_P is defaulted to 4.5 which gives you a default max control rate of 202.5 deg/s

Control expo is given by ACRO_Y_EXPO. If you look up the parameter in QGC it will give you the different options for this. Personally I have never used it so I don’t have any advice for you. Sorry

We don’t have any cyclic mix. There is a collective mix, but I am still figuring out how best to set it. I would recommend leaving it zero for now.

I am not sure what start and stop accel is. We do have settings for the tuning and feel of the tail
ATC_ACCEL_Y_MAX is the maximum acceleration in centidegrees. I’ve been finding that the default for this is set super low. You could probably make it 110000 and have no problems

ATC_RATE_Y_MAX is the maximum allowable yaw rate in deg. It limits the max commanded rate by the flight controller to include the pilot command.

The rest are attitude and rate controller PID and filter settings. There is some directions for setting these in the wiki

Every time I instruct a servo to move (for testing) or if any of my body parts comes within approx 30cm, the GPS does the three tone beep and this comes up in the software:
[20:09:40.232] Critical: PreArm: Compasses inconsistent

Which is more or less non stop while at the workbench. Are both of my compasses broken at this point?

The software does not allow for a setting above 72000

Change it in full parameter list.

There is only one list and these are the options I get:

I guess I could use “force save” but apparently, it’s dangerous. However I’ll just leave it at 72000, the servo works so it’s not a real problem right now. There are tons of other issues that needs to be sorted out.

Yeah, sorry. that can be set higher. The yaw axis parameters are probably originally based on multicopters. Slowly working to understand what can be standard values for heli’s.

unfortunately it is not good to work with the compasses indoors. If your compasses inconsistent error continues then deselect the “use Compass” for the internal compass. That should fix the issue

Any ideas here?


When at ‘ready to fly’, the “Critical: PreArm: Motor Interlock Enabled” pops up again. How is that a problem? I assumed it needs to be enabled to allow the motor to run?

Edit: I have connected the ESC to try getting the motor to run, but no, nothing happens. This stuff is indeed very confusing.

Before you arm, motor interlock must be disabled. That is why you are getting the error. So disable motor interlock then arm and then enable motor interlock to start the motor

It was already armed, with the switch (red LED is on constantly, QGC saying ready to fly), before I enabled motor interlock

Sorry for bumping, but apparently I cannot edit and update my previous post.

I have verified, with a servo, that the PX is not outputting anything useful on the CH8. However, the ‘RC_CHANNELS’ part in the mavlink inspector shows that the unit correctly receives the CH8 signal from the receiver.

With the help of a servo tester (pwm generator) I have verified that the ESC and motor is working just fine. So the problem is in the FC somewhere, it doesn’t pass on the signal.

Please save your parameters to a file and post here. I would like to see your complete setup which that file will give me.

Maybe it is very simple? If you do not arm the PX, the signal will not passthrough to the output.