As Jordi continues testing and improving the ArduPilot boards, I've been integrating his cool binary-mode GPS parser and otherwise improving our pre-alpha code. So I think we're now a proper alpha, which is to say that although this hasn't been tested in the air yet, it does have most of the ingredients of a basic autopilot. The Arduino code is here.
Improvements include:
--Binary mode GPS parser with checksum error checking and high-speed (56k) throughput
--Hardware-driven servo control (using the Arduino Servo Timer library), which means less processor overhead, tighter response and no jitters.
--Now samples the rudder at autopilot initiation, so if the rudder is trimmed a bit one way or another that will be retained
--Autopilot board LEDs now show GPS status
We're going to do a few more alphas as we test the code on the latest versions of the hardware and against the simulator. Then, once we've tested it in the air, we'll move to beta. So consider this version just instructive and don't fly anything with it!
Can you explain more what the advantage would be? I think our current timer-driven servo system is very efficient in terms of CPU overhead and we've got plenty of spare I/O pins. We used dedicated servo driver chips in the Basic Stamp autopilot, and they worked fine, but the Arduino is so good at that function that we didn't see the point for ArduPilot.
Basically the V3 is just a code test platform for me anyway.
Another topic (possibly another thread)
Have you thought of using a small ATtiny to drive each servo.
This could allow you to create a "servo drive bus" with an aTTiny decoder for each servo (or one for each pair of servos)
The Attiny could handle the 20mS pulses and you may only need to
issue updates say 10X per second across the bus.
This is like the openservo project but not so complex and it retains the current servo
controller.
The failsafe would need a rethink as well with this system but I like the idea of a bus for the servo drives. It could save the individual servo wires.
We'll probably release the schematic of the V4 board this week, along with a list of all the changes (there are a lot, and it's best to think of the V3 boards as a test platform rather than a working autopilot board). We're working with our manufacturing partner on the PCB layout, so I don't want to release that until the product is out, but perhaps we can create a generic version of that for hardcore DIYers who want to start moving earlier.
Comments
Can you explain more what the advantage would be? I think our current timer-driven servo system is very efficient in terms of CPU overhead and we've got plenty of spare I/O pins. We used dedicated servo driver chips in the Basic Stamp autopilot, and they worked fine, but the Arduino is so good at that function that we didn't see the point for ArduPilot.
Another topic (possibly another thread)
Have you thought of using a small ATtiny to drive each servo.
This could allow you to create a "servo drive bus" with an aTTiny decoder for each servo (or one for each pair of servos)
The Attiny could handle the 20mS pulses and you may only need to
issue updates say 10X per second across the bus.
This is like the openservo project but not so complex and it retains the current servo
controller.
The failsafe would need a rethink as well with this system but I like the idea of a bus for the servo drives. It could save the individual servo wires.
Just dreaming
Phil WIlshire
You beat me to it . I just noticed the servotimer 1 lib last night and was going to take a look at it.
Any chance of a summary of hardware changes.
I have built a board to the V3 spec but not tested it yet.
regards
Phil