XP9303H into Pixhawk1 problems

I’ve never calibrated the esc. Does it have a governor? Also there is no way to calibrate the esc. I guess you could do it manually.

So you will need to watch the set up videos on the tradheli wiki. There is no need to set up the individual swashplate servo travels in the controller. You do need to setup the swashplate according to the set up wiki.

Yes, my ESC does have a governor. But I never used it. The reasons are: It’s a big heli, and I used it to haul a large payload (DSLR or video camera on a gimble). So I deemed it important to keep the headspeed as high as possible, in case of a problem. At least I had a chance to auto it in. So I kept the gov off, and used a flat 100% throttle curve in mode 2 on the mode switch. And it worked. I also found it to be more efficient, as it lowered the ESC and motor temps. And used less amp hours. I tracked all this using an EagleTree flight data recorder, with live feed.

So I’m not sure how to do the same setup in Ardupilot. The wiki recommends using a governor. But I would rather not. I’ll have to do some more research.

Yes. I’m going back through the wiki right now, and trying to learn everything in a new frame of mind. If that makes any sense.

Chris,
Ok. What is the weight of your heli at takeoff? What is the rotor diameter? and what rotor speed are you running it at.

Does your ESC have a separate connector that allows you to set the mode on it? From what you are saying it sounds like you change the ESC mode in flight? With the way you have it setup, have you seen rotor speed changes during flight? I would assume that since you are running a flat throttle curve at 100% that the rotor speed droops when you put a significant load on the head. The governor in my ESC limits my engine speed to 90% in order to have some overhead.

In any case, you can probably hook the ESC mode switch to a passthrough on the flight controller but the speed of the ESC has to be connected to the output that the heliRSC is set. You will set the parameter H_RSC_MODE to 2 which is the setpoint mode. Then you would set the H_RSC_SETPOINT parameter to 100. You can adjust the min and max PWM of the ESC using the SERVO8_MIN and SERVO8_MAX parameters. That should get you going with the rotor speed controller.

As for the swashplate, you’ll need to read the wiki on swashplate setup and there is also a video but it is a little outdated only for the fact that now we have swashplate type selections in ArduCopter 4.0. So you need to determine exactly what type of swashplate you have and set that type for the H_SW_TYPE parameter.

The rule of thumb for the swashplates that have elevator servo in the front (HR3) is that if the design of the washout arms is such that when the swashplate goes up it increases pitch, then automatically reverse the collective direction for a HR3 plate. Then set the servo directions to get the collective to go the right way and the cyclic will automatically “just work”.

If it is one (like Thunder Tiger Raptors) where the swashplate goes down to increase pitch, then leave the collective direction set to “normal” and reverse the servos as necessary to get everything to go the right way.

There is two types of washout arms used on the 140 swashplates.

In all cases with 3 servo plates the elevator servo is always Motor 3 regardless of whether it is H3 or HR3, and regardless of whether it is in the front or back. Going clockwise from there around the plate they are 1 and 2.

Ok, so before I answer your questions. I will point out one important thing. After reading through the wiki, I have decided not to use a flat throttle curve or passthrough, and use either the setpoint or governor mode for RSC. The main reason for this, is safety. It has been pointed out the the RSC will set the throttle to 0 if the TX link is lost, when using a flat curve. I’m leaning towards using the RSC setpoint mode.

It has been a long time since I have used this heli, so I don’t remember all of the stats. Here’s what I know right now.

All up weight varied a lot. Anywhere from 8.5 to 12.75 pounds. Depended on what flight battery and camera setup I had. Realistically I will probably be flying closer to 8.6 pounds now, due to the fact that the stock skids are back on it now. And I will only be adding a gopro camera. No gimbal.

Rotor diameter is about 5 feet, tip to tip. I don’t remember the speed. I’ll have to look that up, when I get a chance. The ESC can only be programmed on the ground. The way I was controlling the speed was using throttle and pitch mixing in the radio. Mode 1 was a liner throttle and pitch curve, to get to “idle rotor speed”. The switching to mode 2 gave a flat throttle curve at 100%, and an exponential pitch curve. I did not use mode 3. And I used the throttle hold switch for autorotations. There was very little drooping of head speed when loading. I don’t remember the numbers off hand. And since I had a heavy load, I avoided extreme stick deflections in any axis. Especially the throttle.

I think the swashplate is good now. But I will be checking function very carefully. My swashplate moves up to increase collective. The servos are 1= right rear, 2= left rear and 3= front.

I hope I explained all of that adequately. I might post some pics later as well.

So the only mode that will cause the throttle to go to zero is the pass through mode and that is only if your transmitter/RC receiver failsafe is not set to hold last value on channel 8. All other RSC modes will work with out RC transmitter link. I’m wondering why you’d even consider using the RSC governor when your ESC has a built in governor. Your choice but if you use the RSC governor then you have to tune the throttle curve or at least get it close. It relies on the throttle curve especially if you lose your rpm sensor.

Ok. you were just using the Idle up switch in your transmitter to set different throttle curves. That makes sense. I would really just suggest you use the built in ESC governor with the RSC Setpoint mode. It makes things a lot easier, you know your headspeed, and from what you are anticipating for your weight, it doesn’t look like you need to be running the motor at 100%.

Just my thoughts.

I agree with your suggestion. I will use the gov built into the esc, and RSC setpoint. One thing I don’t quite understand is where/how to get two different modes of headspeed. In other words, like idle up. A way to keep the headspeed low while on the ground, and then spool up faster for take-off and maneuvering.

Unfortunately, ardupilot doesn’t have idle ups. when you are on the ground you have motor interlock disabled (throttle hold on). When you are ready to takeoff, enable motor interlock (throttle hold off), let the rotor spool up and then take off. I guess if you are adamant about having multiple rotor speeds then you would use the RSC passthrough mode but need to ensure that your RC receiver sends a signal on channel 8 to ensure your motor doesn’t quit if you lose transmitter link

This can be done with the throttle curve that it built into ardupilot. Set the bottom of the throttle curve to a level you like for flight idle, such as maybe 50% throttle. Set the rest of the curve to 100% power. So you might have a throttle curve of:
50-100-100-100-100

This way, when you land, or before you take off, it will reduce power and headspeed when the collective is lowered. This will only work if you are using a normal UAV pitch range, such as -2.5 to maybe +10 degrees of pitch.

If you use a significant amount of negative pitch range, as is common in 3D for inverted hovering or aerobatics, then it’s a bit more tricky as the center of the throttle curve would have to be set to your flight idle instead.

To use this feature you would set the RSC_MODE to 3 and adjust the five throttle curve points accordingly. And you still need the throttle hold switch (motor interlock in ardupilot).

I have flown electrics with no governor with this setup and it works very well.

1 Like

I’m trying to experiment with both of these modes, but I cant get ANY output to my ESC from CH8. What did I miss? I have Arming check set to 0, and the safety switch solid red. If I set position 8 function to RCIN1, it works. But I get nothing on HeliRSC.

Ensure these settings are correct
RC8_Option set to 32
Servo8_function set to 31
H_RSC_MODE set to 2
H_RSC_SETPOINT set to 80 or some percent throttle.
Arming check enabled to verify the motor interlock is disabled (throttle hold on)

Arm the aircraft. Then enable motor interlock with your transmitter switch (throttle hold off). It is likely that you don’t have the switch output correct. Or it is not calibrated correctly in the Pixhawk.
One way to check the output of the transmitter is to Connect your aircraft to mission planner. Then go to the flight data tab and in the screen below the HUD you’ll see some tabs. Click on the status tab and scroll to the right until you see ch8in. You’ll see the PWM value from the transmitter. With the transmitter switch in the motor interlock disabled position it should read a low value like 1000 or 1100.
This is a good way to check your transmitter outputs and verify that they are correct.

I think the problem might be that I have the interlock assigned to CH9 on my transmitter. I can’t assign the T-Hold switch to CH8. But the interlock was working on CH9.

Then make the RC channel in the pixhawk for motor interlock on channel 9. Which set the channel 9 option to 32 and remove it from channel 8.
You may have to do that in the full parameter list if channel 9 through 16 aren’t shown on the RC input page

Yes, I already had option 32 set on CH9, and CH8 set to 0. It seems to not like the fact that Servo8 is set to 31. When I check the servo output on CH8 in mission planner, there’s no movement when moving the stick. Unless I change it to RCIN1.