Are Xaircraft ESC's compatible to the ARDUCOPTER system? If so, I am open to suggestions. the xaircraft esc's use a different pulse-length range than regular esc's.
"Pulse width between 200us and 1200us can be used for power tuning. "
If you can set your range for the esc's in the firmware then you should be able to use them. this was also a problem with the OpenPilot?? CopterControl?? board but it was overcome by using the 200-1200 range.
Does this mean that we can now set the pulse width for the Xaircraft 4in1 esc from within the APM planner in the configuration > parameter list under the RC1_Max - RC1_Min etc ?
I have the standard Arducopter 2.5 firmware/software
Afraid at the moment the only way to get UltraPWM working is to modify the code. It's a very small modification, though. I think those parameters are added on to a minimum pulsewidth of 900, which standard PWM uses, before being output. At 900, the xaircraft escs will be spinning the motors quite quickly. Are you able to compile and upload the code? I attached .diffs showing the changes I made to get it to work, so just make those changes, compile it, and you should be good to go.
Many thanks Aaron
No I'm not a coder, think I'd best fit some standard esc's then
Aaron you tell me if you funcinaron the ultra speed pwm?. and work with apm 1.
I appreciate your response.
Another thing the two diff uploaded the changes to make.
I replied to this last night but for some reason it didn't post. Here it is again:
No, not yet. These are only the hack patches we've discussed in this thread at the moment. I've discussed these basic patches with the Dev team and they want something more sophisticated before they will accept it into the standard distribution. So I've proposed a more generalized fix for this that will allow us to set whatever Pwm range we need using the planner. That way it'll be useful for any ESC or servo and you'll be able to do it on a channel by channel basis. So, that is being worked on and should be available soon.
One issue already identified is that it's apparent that the XAircraft ESC's are getting calibrated to the transmitter with the XA controller. The evidence of this is in the discussion below that Aaron and I had a while back about what the correct minimum value for the PWM should be. The value he recommends doesn't work on my ESC's and apparently visa versa. So, to make it truly universal we are going to have to allow you to put in the range of PWM's (or click a check box for UltraPWM) and then provide a means to calibrate the ESC's so it will all work properly.
Bottom line is we have a hack that will get you flying if you can apply it and recompile but a production worthy modification so it works for everyone is a bit more complex and that will take a bit longer and is in progress now.
Friend I could say that sometimes a flight mode active with my apm 1 and the entireteam loses control and crashes. It is therefore not receive any order of the radius and isaccelerated. This has puzzled me since the system arducopter
Can you help me with the PID settings of alt hold, ue the active and begins to rise and fall
The changes to the code to make Xaircraft ESCs work turned out to be trivial. They are at:
this code is untested except on a single motor. By the way, I don't see why this "ultrapwm" is "ultra" since it's only 10Hz faster than ardupilot standard (I didn't even bother to make that change in the code) and has the same resolution...
Funny, I was working on the same thing and made virtually the same modification over the weekend and have been flying it since yesterday and just saw this thread today! One thing that makes it just a tad more complex then what you have done is that you only want to convert to UltraPWM for the first 8 channels. Channel 9 and above are used for other things - like stabilized camera mount - so you'll want to leave them alone. ALl it takes is a compare but it'll require your definitions to be modified somewhat. Also, I think you want the max output for UltraPWM to be 1200 - not 2000. Also, you need to subtract around 900 or 950 otherwise the motors will keep running. I found they need to be around 150 to stop with a bit of margin and most radios are putting out like 1095 so if you subtract 950 it works out just about right Anyhow, nice job! Amazing how people can be working on exactly the same stuff without knowing it.
I've built three other ArduPilot APM2.0 multi's and they flew beautifully after tuning PID's via the "hand" method. My x650v8 flew perfectly with the XA FC but it's having yaw and stability problems with APM2.0. I'm starting to think vibration due to the way I've mounted it. Got to change that. I'm pretty excited to get this going. My other multi's are great but I really like the x650V8 airframe and compared to the cost of the XA FC and XA "Autopilot", APM2.0 is amazing.
Oh, and I forgot to mention, to do this in a truly flexible and integrated fashion so that it would work well with any RC transmitter rather than subtracting a constant that is an estimate we should use the low values derived from the calibration of the transmitter to normalize the PWM request and then add 100 to scale it to UltraPWM. We should do this in the "motors" section rather than at this bottom level. This has been a quick way to get flying but I've been looking at how to make it truly integrated and flexible. The actual modification isn't difficult it just takes a while to get familiar with the code and how it's architected.
Hi Ron. Glad I'm not alone here! I had some great flights with my x650v8 today and yesterday. It sure is wonderful not to have to deal with the dodgy xaircraft flight controller any more. Sonar alt hold seems to be working, loiter at least seems to try.
Agreed that this code should be generalized to make the APM more flexible rather than hacking the PWM library. I think changes to AP_RC_Channel.cpp are appropriate. Currently this is where PWM scaling happens, and there are two different types of channels dealt with in there, "RANGE" (ESCs) and servo channels. More types of channels should be added here, if I am grokking the code correctly. Possibly more motor types could be added too, so that motor matrix definitions like those in AP_MotorsOctaQuad.cpp could have what ESC type is in use, and set up the correct RC channel.
By the way, subtracting 800 is working for me. The motors do stop on disarming. You're right that the max output does not need to be 2000, I just figured it didn't do any harm to overshoot, since that max value appears only to constrain the output pulse width, not scale it. By the way, I wonder if we can "overclock" these guys past 500hz. Would be cool if there was actually something "ultra" about these xaircraft ESCs. I do like the LEDs on them!
Attached are my logs from the last couple of days in case anyone is interested. The default PIDs seem to work pretty well except I think the loiter rate P needs to be increased a little and the roll / pitch P needs to be brought down possibly since I've had a little oscillation. Sorry about the big file, I just threw everything in there. Uploading videos to youtube now.
I've been working with the Turnigy 10 amp and xaircraf series engines, highly recommend them very well balanced, I'm esc 490Hz in the response is very smooth withv2.5.4 new code, I tried to use the XAircraft unsuccessfully I prefer the Turnigy 10 amp.