I am confused on how and what languages are used to communicate between GPS module and CPU
Does the CPU read the GPS information in NMEA, SIRF binary or both?
Is there a section in your firmware where the NEMA language or SIRF language is converted into C or does C recognize the NEMA or SIRF language without conversion?
I am not proficient in C hence all the questions
Is there a specific page in your firmware i should look at where the GPS and CPU communicate
The firmware for my previous board used NMEA to communicate with the GPS. The firmware for my latest board uses SIRF binary, which is definitely the better way to do it, there is more information available through the binary interface, and it is easier to implement a more efficient parser.
The parser is based on compiler parsing theory, and uses a state machine to do on-the-fly parsing of the GPS messages as they arrive, byte by byte, without the need for a full message buffer. Basically, you just need to figure out where to put the bytes.
Your roll-pitch-yaw demo is absolutely excellent!! I was wondering if might be able to post a video showing the board moving in conjunction with the servo output? Do you have an estimate of when the paper discussing the theory and math will be available?
Thank you. The roll-pitch-yaw demo is impressive. Anyone who has my board should try it out.
In your comment about a video, you left out a pronoun. Were you asking for permission for you to post a video, or were you asking me if I was going to?
My project is totally open. Open hardware design, open source, open everything. Anyone has permission to do anything they want. So if you want to post a video, please be my guest. If you are asking me to post one, it might be a while until I get around to it, so if you want to do it instead, I would be very grateful.
I hope to have a paper written on the theory of operation available here in about a month.
My mistake, I certainly did leave out the pronoun. I meant to ask if you would be able to post a video of your board showing the roll-pitch-yaw demo. I would post a video myself but I don't have a board at the moment to work with. I think you mentioned you are planning to do a writeup of the theory and math you and Paul have developed. Are you still planning to do this? I would be very interested if you have it in your que.
Actually, it is not out of the question to use this to stabilize a Heli. Lately, I have been wondering the same thing, because the roll-pitch-yaw demo demonstrated incredible performance. I knew that the roll-pitch performance would be great, but the yaw performance was better than I expected, even when there was no forward motion.
So, yes, I definitely think it could be done. I would be happy to work with someone who would like to try to do it.
I am considering buying the board to stabilize and control an RC heli. Controlling a heli requires at least 4 pwm inputs (collective, pitch+roll cyclic, and yaw) and 4 pwm outputs (collective, pitch, roll, and yaw). However, the board comes with only 3 pwm outputs, so one could use the 3 outputs to the CCPM swashplate and use a conventional heli gyro unit for the yaw axis to keep it stable enough.
With 4 outputs that covers the Cartesian 3-axis (3 outputs) and the rotor power (1 output), this unit could have been perfect for VTOL type of UAVs...sniff.
I am so sorry, when I was designing the board I was not thinking about helis. I will add the design of a 5 pwm input (collective, pitch+roll cyclic, yaw, and control mode) and 4 pwm output board to my list of things to do, but it will probably not be right away.
In the meantime, if you want to use the board, you do have these options:
1. Connect the collective of the heli directly to your Rx and use the board for stabilization only. I do a similar thing with my electric sailplane: I control the motor myself.
2. You could use one of the spare digital outputs on the board for a 4th pwm output. It would be a little bit of a stretch, but it could be done. If you are interested, I could explain what would be involved.
I would be very interested in the mod for 4th PWM output as well. Would it be worthwhile to start a thread just on CCPM Heli applications? As you have seen from my previous posts, this is my main interest.
BTW, Bill your explanation of the math behind the code was excellent. This can be more than just making flying more interesting, but some education as well.
I'm not sure you can separate the collective from the pitch+roll. For a 120 degree swash with three servos you get roll by asymmetric motion of the two forward servos acting together, pitch has the two forward servos acting together opposite to the rear servo, and throttle/blade pitch has all three acting in unison.
So basically, the UAV board would have to do all the mixing to drive all three servos together.
I think the fall back of using the rudder gyro as is, is a good one to stabilize yaw. It already does a fine job of this and takes care of "Stick Priority" to change headings from the Tx. Pitch and roll is where you need the stabilization from the UAV Board...but means three channels of control in addition to the MUX control channel (AP/manual etc).