This is my first post in DIY Drones. I would like to share with the comunity my last work related to UAVs. I'm currently working on my thesis for graduation as an electronic engineering at the University of Buenos Aires. My thesis is based on a embedded control system and in this post I'm presenting the Flight computer that holds the control algorithms.
My thesis is more an academic research than a hardware/software project, but I decided to do my own powerful board to test it.
Above is the FLCv2p0 (Flight computer v2.0). The first version was a homemade attempt and now this is the new version
These are the details of the board:
- LPC1769 Cortex M3 @ 120 Mhz microprocessor wtih 512KB of flash and 64 KB of RAM
- Two side PCB board with mounting holes (almost) compatible with DJI Flamewheel frame
- 4 intefaces for arms: this is a ESC output and a multipourpouse input output conector with servo pinout that serves as output or input in digital, analog, or Timer capture mode for measuring frecuencies and periods (ideal for tachometers)
- 2 other arm interface without connector for 2 extra motors
- Two power options: USB for developing and testing and an external input (the blue one) for direct battery input. Up to 40V can be input, then there is a stepdown high effiecncy switching regulator that regulates to 3.3v needed for all the board. There is no need for BEC (the +5V pin of the arms is unconnected cause it always cause problems and the DJI OPTO 30A that I'm using doesn't have a BEC anyway.
- The USB port can be programmed for any USB device application
- microSD card slot via SPI
- Indicators: 1 led power indicator, 1 small green led for status or anything else and 4 high power sideleds for beacon and directional ligths (maybe white leds would be nice)
- Sensors: The is a I2C network on the board with: MPU6050 Accelerometer and gyroscope with data fusion integrated, HMC5883 magnetometer (slave to the MPU but could be bypassed), BMP085 Barometer (can be used as an altimeter), LM60 temperature sensor, 128KB EEPROM for configuration saving,
- Xbee Radio: is it possible to fit an Xbee standard on PRO
- Programming: could be made via JTAG or with the built in serial bootloader via Radio (slower but very useful)
- SPI, I2C and UART headers for external devices, sensors, etc.
- Real time clock with calendar (implemented by the LPC1769 but there is an external crystal for clocking)
About the firmware:
I'm currently working on my thesis firmware and the simulator (on MATLAB). Cause it is not ready at all I would prefer not to publish it yet. But, I wrote a small tester firmware for all the devices that will give you an example on how to use them, and also have a very small "template" for starting. The board is perfectly capable of running FreeRTOS (which I'm using extensively) and the IDE I'm using is the LPCXpresso Free IDE (128KB flash limit now).
Some videos:
First flight: https://www.youtube.com/watch?v=YBPmafMSqKM it is a little buggy, it was my first ever flight of a RC thing (be gently :) ) and was only fliying with Gyros so no attitude controlling was made.
MPU Motion fusion testing: https://www.youtube.com/watch?v=vLnvzxnk2og
And some pictures:
http://www.flickr.com/photos/akharsa/sets/72157632740777181/
Ground station:
My ground station is now a xbee via USB and a PS3 joystick via bluetooth. The GS is not something I'm proud of it yet but is getting into shape slowly.
My idea now is to publish the schematics of the board open to everyone, and even the PCB files. Maybe later the firmware when I have a stable version (of course the small templates will be on github soon). I'm not wondering to be the responsible for quadrotors breaking (I broke my yesterday . I'm also thinking in selling this board already assembled (in china where I manufactured the PCBs) to easy the people acces to this board. I'm not sure if it is a great idea yet.
Currently the board is not intended for people looking for a Ready To Flight option, exactly the opposite But I'm sure that there are people out there that make use of this kind of stuff (Arduino for example :D) and I would like to share my work with them as they do with me.
Thank you!!
Alan
Comments
Hola Alan Kharsansky,
Tu vais comercializar la tarjeta? Ya la teneis para venta?
Saludos,
Marcel.
What is the software you are using in the video MPU Motion fusion testing? The computer one I mean.
Hey, I'm interested in porting the ArduCopter firmware over to your board this summer. Would you be able to send one over for testing? I have a hexacopter as well that I can test with.
Que lastima lo de la makerbot :(
Por supuesto Julio, cuando tenga mi tesis terminada la voy a publicar en el site tambien.
Saludos,
Alan
Hola:
Sí, el enclosure esta hecho en la Makerbot Replicator, tuve muchos problemas al imprimir en una sola pieza (puedes ver que estan pegadas).
Suerte y me gustaria ver tu tesis cuando la tengas, saludos
Hello!! Thank you for your comments. I'll try to reply everyone of you, please tell me if a miss something:
@Copter Richie: That's a really good question. I didn't have tried it very hard. Cause I'm not using the mag for navigation right now, I didn't check for radio interference or noise problems on the mag, but I will test it and get back to you with the answer.
@Julio Cesar Escudero: Hoal Julio, que tal? muchas gracias por los comentarios. Estuve viendo tu trabajo, me encanto la terminación y el hosuing!! lo hiciste en una impresora 3D, no?? de curioso, con cual?
Como bien decias, uso el F450 para las pruebas, con los motores que vienen (2212, http://wiki.dji-innovations.com/en/index.php/Motor) y las helices más pequeñas de DJI (8 x 4.5) que son con las que hice todos mis estudios para mi trabajo universitario (caracterización del actuador). Las grandes no las probe aun por que el quad esta liviano por ahora.
No sabia lo de Ardupilot respecto a la SD y la verdad que es algo interesante para probar. Por el momento la SD me vino bien para hacer datalogging de datos de sensores aunque no estuviera en vuelo. En vuelo estoy usando telemetría en tiempo real y la SD por ahora no la probe, pero cuando la pruebe te cuento si sobrevive a las vibraciones del vuelo. Gracias por el comentario y lo voy a tener en cuenta!
@Hachemi: Thank you Hachemi, I'll publish the documentation as soon as possible. Also, about the GPS, there are SPI, I2C and UART ports available for a GPS. Because my work wasn't focused in guiadance I didn't test it with a GPS but put the UART port available in case I need it. I hope in a near future to connect one an test it.
Hi Alan,
Very nice electronic concept and design :) and very nice idea for sharing an open hardware. I'm waiting all informations.
What about GPS connexion on the board ? or have you focused on another fonctionality ?
Thanks
¡Muy sorprendido! La calidad del diseño (PCB) es de gran nivel a simple vista, te felicito, yo tengo un proyecto para un UGV y no estan complicado (http://cesarescudero.me/?p=84), pero lo peor... soy de maestria! y tu de ingenieria! thumbs up!!!
Veo que usas el frame que yo tengo (F450), que motores usas y ¿qué hélices usas?
Hay muchas cosas que preguntar, pero hay un componente que salta al vista, ¿porque usas una SD? según entiendo la nueva version del Ardupilot evito tener una por las vibraciones y errores de memoria que pueda causar un falso contacto.
Saludos desde Mexico!
this is really cool!
great work!
How well does the Mag work in close proximity to the Xbee transmitter?