This is an update on two topics.1. A minor revision to GentleNAV RTL firmware.2. Progress to date on an algorithm to combine 3 axes gyro, accelerometer, and GPS information.1. While working on my next project, I discovered a minor error in the GentleNAV RTL firmware that runs on the UAV DevBoard.There are adjustments in the GentleNAV firmware to the pitch and yaw gyro signals to compensate for variation in A/D conversion of the gyro signals due to changes in battery voltage. Unfortunately, in doing the port from my previous board to the new board, I added the correction instead of subtracting. I did not notice the error during testing because I supply my board with regulated 5 volts from my electronic speed control.Anyway, I have revised both the code and the documentation.2. In case you are wondering what my next project is, I am presently working with Paul Bizard on a simple, fast, accurate algorithm for combining gyro, accelerometer, and GPS information into an estimate of the orientation of a plane. We do not have all of the details worked out, but we are making good progress.Today I implemented one of the components of the algorithm. Paul and I refer to it as update and normalization. It is a routine that uses gyro information only to update a matrix of direction cosine factors and maintains the orthogonality conditions. It works quite well, the drift is extremely low, on the order of a degree per minute. I can spin the board 10 revolutions forward and then 10 back, and the orientation estimate returns to the starting point.The bulk of the implementation uses vector and matrix library routines furnished by MicroChip that they tailored to the dsPIC30 hardware. Execution is very fast. Total execution time so far is 200 microseconds every 20 milliseconds using the 16 MHz clock.The next step is to adjust roll and pitch drift with accelerometer information. When I get that done, I will make that firmware available here as a demo.After that we will adjust yaw drift, and make adaptive gyro gain adjustments. We do not have all of the details worked out, but because of the astounding precision of the unadjusted algorithm, I do not think it will be very difficult.Bill Premerlani
David,
There is a servo raw power bus on the board. The ground and power pins of the PWM input and output channels are all tied together, on the theory that there will be power coming from somewhere and going everywhere. This is the same way that most receivers are set up, there is a ground bus and a power bus, so you can furnish power on any channel.
The CPU on the board has a 5 volt regulated supply that is fed from the raw power bus. Since the raw power bus voltage is generally around 5 volts anyway, the regulator does not really do anything except provide reverse polarity protection. The gyros and accelerometers are supplied by an onboard 3.3 volt regulator.
During flight with an electronic speed control, the electronic speed control furnishes power to whatever it is connected to for PWM, generally the radio. The radio then furnishes power to the UAV DevBoard raw power bus from the channel connections, and then the power bus feeds the servos.
During flight with a fueled engine, there is generally a battery connected to the radio, and then the radio backfeeds the board.
During debugging, there are a couple of ways you can power the board. Sometimes I use an electronic speed control, sometimes I use a battery, sometimes I use a power supply. What I do is to connect the power to the power and ground pins of any of the PWM input or output channels. Ground is closest to the edge of the board, positive is the next pin in (center pin).
If I am using all of the channels on the board, I will connect the servos to the PWM output channels using the servo cables, but then I will connect the PWM input channels to the radio using individual jumper wires that I buy from SparkFun, so that I can keep the power and ground pins free for power.
Comments
There is a servo raw power bus on the board. The ground and power pins of the PWM input and output channels are all tied together, on the theory that there will be power coming from somewhere and going everywhere. This is the same way that most receivers are set up, there is a ground bus and a power bus, so you can furnish power on any channel.
The CPU on the board has a 5 volt regulated supply that is fed from the raw power bus. Since the raw power bus voltage is generally around 5 volts anyway, the regulator does not really do anything except provide reverse polarity protection. The gyros and accelerometers are supplied by an onboard 3.3 volt regulator.
During flight with an electronic speed control, the electronic speed control furnishes power to whatever it is connected to for PWM, generally the radio. The radio then furnishes power to the UAV DevBoard raw power bus from the channel connections, and then the power bus feeds the servos.
During flight with a fueled engine, there is generally a battery connected to the radio, and then the radio backfeeds the board.
During debugging, there are a couple of ways you can power the board. Sometimes I use an electronic speed control, sometimes I use a battery, sometimes I use a power supply. What I do is to connect the power to the power and ground pins of any of the PWM input or output channels. Ground is closest to the edge of the board, positive is the next pin in (center pin).
If I am using all of the channels on the board, I will connect the servos to the PWM output channels using the servo cables, but then I will connect the PWM input channels to the radio using individual jumper wires that I buy from SparkFun, so that I can keep the power and ground pins free for power.
Best regards,
Bill
How does the board (UAV v2 Dev) get the power during flight and in debugging with PC?
Thanks
David