For those following this saga, version 6.1 of the AutoQuad board is complete and has passed initial testing. I have taken the 5.0 design and added features that should make it more flexible and expandable while increasing performance. Here is a summary of specifications:
Hardware:
- 2" x 2.5" main board with MK mounting hole pattern
- Input voltage: 6.5v => 18v
- High efficiency DC/DC converters
- STM32F215 32bit Cortex M3 microcontroller @ 120Mhz (1MB flash)
- Standard Arm 10 pin 0.05" pitch SWD connector
- 14 general purpose PWM controllers / receivers (powered or un-powered)
- Dedicated Spektrum satellite (remote receiver) 2.4Ghz R/C radio connector
- uSD card slot driven by 4bit SDIO capable of 100Mb/s transfer (up to 32GB storage)
- optional onboard uBlox LEA-XX GPS module with battery backup and timepulse capture
- optional u.FL active GPS antenna connector
- optional external GPS via standard 6 pin connector (EM406, EM401, uBlox, MTK)
- optional external bi-directional telemetry radio via standard 6 pin FTDI connector - powered up to 1A
- I2C bus connector for I2C ESC's (or other I2C devices)
- onboard IMU options:
+ optional 9 DOF analog sensors (3x RATE, 3x ACC, 3x MAG) w/EMI hardening
+ optional VectorNav VN100
- daughter board options:
+ 9 DOF analog sensor board
+ VectorNav VN100
+ High performance SOM (Sytem on Module)
+ Any combination of the above
- Two barometric pressure sensors
- Battery voltage monitor
Software:
- Fully threaded RTOS design written in C - 75% idle in flight
- All (15) analog sensors read up to a rate of 276.8KHz (~4.2M sps total)
- 100Hz => 800Hz PWM motor update rate (requires custom ESC's at rates >450Hz)
- 200Hz attitude, 3D velocity / position solutions
- Full downlink telemetry
- Detailed system state dumps @200Hz => uSD card w/FAT32 FS
- Quaternion based attitude filter additionally producing rotation matrix and Euler angle outputs
- All math in single precision floating point
- Temperature compensated and calibrated sensor suite
- Custom ground station software w/bi-directional command and control API
- MavLink protocol support
- Cascading PID control system, velocity based for smooth transitions
- Auto land / takeoff
- Hover position / altitude hold
- Autonomous waypoint mission navigation
- Precise altitude hold indoors
What I call the general purpose PWM controllers are 14 connectors which can be used for PWM (or any other digital) signaling. Each one can be optionally unpowered or powered with 5.0v or 6.5v (depending on the RECOM part used.) Since each port is connected to a dedicated timer line on the uController they can be used for input or output. This means you can have any combination of motors / servos / acoustic range finders / LED's, etc. that you can image with power up to ~1.2A. With the input capture capability, you could also use them to connect a traditional multi-channel R/C receiver.
I have included two pressure sensors (2nd one optional) so that fixed wing users can monitor airspeed. Or, you could use one as a failover or combine the two to get smoother altitude measurements.
There is a lot of flexibility when it comes to the IMU. First there is the option of using the onboard analog sensors:
+ 3 axis acc (ADXL335)
+ 3 axis mag (HMC6042 & HMC1041Z)
+ 3 axis gyro (IDG500 & ISZ500)
+ 3 temperature sensors
These must be calibrated by the user which can take a lot of time and aggravation. For the person who would rather pay someone to handle this calibration for them, a VectorNav VN100 can be soldered directly to the main board and used as an IMU.
With the 2x20 pin connectors a daughter board can be connected which can accommodate an analog or digital IMU as well. In fact, you could have combinations of onboard and external IMUs used simultaneously for failover or co-witness configurations. Since these connectors contain many analog and multiple high speed digital communications channels, a SoM can be connected such as a GumStix Overo with a 720Mhz Arm Coretex A8 processor with Vector Floating Point hardware running Linux with gobs of RAM and flash storage and optional bluetooth and WiFi radios. This will allow easy experimentation with complex navigation filtering and the exploration of vision based navigation algorithms.
Here is a picture of an external VN100 attached as a second IMU:
I have received a lot of positive feedback on my past designs as well as a lot of requests for hardware that I could not fulfill so I have decided to try to find ways to make this board available to those who want to build a machine around it. I can't say exactly when, but I hope to be able to announce hardware availability through various sources in the not too distant future.
Comments
Hi Bill,I have been concerned about your BLOG since I first saw this AQV5. I like it and want to join your team, but i don't konw how to join this. I also layout a IMU board, I do not know you can use this IMU board as your daughter IMU board.The IMU board and can be redesigned for interface-compatible your system. Gyro:L3G4200, ACC:ADXL345, MAG:HMC5883L, PRESSURE:BMP085
A well calibrated IMU compensated for temperature changes is a prerequisite for the autonomous flight that I've shown in prior blog entries. I cannot emphasis enough how important this is. To do it properly requires procedures and equipment that your average person does not have access to. Having said that, I have developed techniques and software algorithms which allow you to do a fairly good job with only household items, time and effort. It used to take me a week to calibrate a single IMU, but I've got that down to less than a day of computer time and maybe half an hour of work. Of course you can avoid all of this by purchasing a professionally calibrated IMU like the VN100.
Im still very impressed. How much time do you spend in this?
I know doing pcb layouts take a lot of time. But doing a good layout and write good software all together in one person is quite impressive. If this become available I will defenitly buy one.
Hi Bill, how many people do you think, will ask you for purchasing this green card ? :)
Give us this version, we cannot wait for an other version !!!
Great job again
Maximus
My math is still not good enough to understand your code, but I will start with some easier code and will try to improve my knowledge month by month (bought some new math books 2 weeks ago :)
ThomasB: I still don't have a replacement that I like. If it came down to it, a replacement IMU could be made on a daughter board.