I am creating this blog to document the design and development of my quadcopter. This is going to be my first attempt at designing a quadcopter and I am really excited about it.
"Is this Yet An Other Quadcopter? Is there anything interesting, new, different about this quacopter? What is he doing differently that has not been done before?" All these questions are valid, after all there are thousand of blogs about quadcopters not just in this community but all over the net... So what I am bringing to the table that is new?
Well what I am trying to do differently is to use an FPGA rather than a microcontroller as the core of the quadcopter. I am sure this has been done before but it is my belief that there is a lot less material and support out there for people who want to take this approach. And I want to share my efforts with this community.
Well some might ask, Why FPGAs, after all, microcontrollers work perfectly fine. They are good enough to get all kinds of flying machines airborne and they are dirt cheap, easy to program and they work well... So why bother with FPGAs?
Well the honest answer for me is that, it will be more fun. Of course, FPGAs have a number of advantages over the microcontroller, (flexibility in logic implementation, parallelism....) but whether these advantages are really useful and help an airborne machine fly better is a question I really cannot answer at this stage, but it is something that I will really enjoy exploring.
Additionally, some FPGAs are reasonably cheap nowadays, and in my opinion, comparably as cheap as some of the microcontrollers out there, so it makes sense to me to try and use them in some of the applications that microcontrollers are used for in the RC community, maybe some advantages can be gained from down that route. And I want to share my experience with this community.
So why DIYDrones? Well to be honest, I think it is one of the best communities out there for hobbyist and RC geeks :p I have been doing some research for quite sometime around this area and I have always found DIYDrones to be a great source of information and support. The people in this community seem to be really enthusiastic and really knowledgeable. Also it seem to have a lot of members from the UK as well which is a plus for me.
As I am developing this project, I am willing to share EVERYTHING with anyone that is vaguely interested. If anyone has any questions, interests and ideas for collaboration, feel free to get in touch with me.
I am really looking forward to sharing my work with this group.
P.S. I chose the project name Colossus not because the quadcopter is going to be a huge machine, but because I realise how big the task ahead of me is. It should be a fun journey though.
Comments
@Synesthesia
Nice project. Did you say you already did the maiden flight/s? BTW what quad frame is it( source) ?
I am a new member to this forum, but have been getting started on a SoC FPGA board for the hobby arena. I am laying this out in Diptrace to use the Altera Cyclone V SoC. I believe the cost will remain low. I have used both the Altera and Xilinx devices over the past 15 years. At the moment I prefer to work with the Altera software. I am hoping to provide a board and a website with tutorials to get people started.
But just as a taster, the main bits of the system are the the DE0-nano FPGA board and the MPU6050 6degree of freedom IMU (gyro and accel). The FPGA board was reasonably cheap.... about £55 in the UK... so much to say about this work I jsut don't know where to start.
Is there anyone interested in collaborating on this project, I think it will definitely help speed things up, I have some ideas and we can discuss in which direction to take this project, so many ideas, so little time.
Almost done with the 1st stage of the project which is to get the machine to fly with a stabilisation algorithm.
I am tuning the PID gains to get the best response. I must admit it has been really hard finding time to work on this because there are just not enough hours in the day to work on this... but nevertheless, I have almost achieved my first goal.
I've got more photos which I will put up later.
Once I have finished this first stage, I will make a few videos.... create the group and start working on the documentation... (I wish I was getting paid to do this so I could dedicate all my time on it lol)
for people who do not know what FPGA is like me http://en.wikipedia.org/wiki/Field-programmable_gate_array
A big part of the work is in selecting the right FPGA : a good balance between chip price, computing power, platform opening and programming tools price.
Because an FPGA add a layer of complexity, the programming tools need to be easy to learn. This is specially important when working with a community.
A special care need to be taken in this choice for easy interfacing with sensors and other I/O. This is were an AVR or similar processor is very attractive. A FPGA could ask for more interfacing circuits, rising the cost and complexity of the board.
In this regard i think that it is mandatory to ask for an FPGA manufacturer application engineer some help to select the right chip.
I had an FPGA experience about 10 years ago, and i did select an Altera chip because at this time the programming tools where easier to learn (at least for me). Things have certainly changed today.
Monroe Lee King Jr, I will probably do so. I would be the best way aggregate all the information associated to this project.
Morli, thanks for the support. You are right, I think it could be of interest to some people, once the basic platform is up and running, that is why I want to share everything, it will be nice to have a community rolling around this idea...
Amilcar Lucas, well, Zynq will be great because of the how closely coupled the reconfigurable fabric of the FPGA is to the processing core. However, I am holding off Zynq at the moment, because I think Xilinx still has a bit of work to do to mature up its vivado software suite... also, I think going down to FPGA route, I want to insure that the cost of the system is comparable to what people who cash out for on a microcontroller based system.... abnd Zynq is relatively more expensive... in time I believe that my change I would would give it a serious consideration for the second revision of this project. At the moment, I am using the relatively low cost DE0-nano from terasic. She is a beauty and at about $60 it is a good trade off between cost a performance (it has a cyclone IV FPGA ....) But i think cost is very important, it is really important to keep cost as low as possible but of course without compromising on performance.
I checked out your profile and you seem to have some experience with FPGAs as well, I will definitely take up your offer of getting in touch with you to discuss some ideas.
Thanks for the support by.charly
Oliver Adler, these are very good points and I was thinking along those lines. I have a basic system architecture that I have documented which I will share very shortly, I am still putting everything together (Most of it is on scrap paper lol) but it will be good to get some feedback of what people think.
Just as a taster, some of the tasks I wanted to offload from CPU utilisation was reading sensor values and PPM encoding... But I will disclose a lot more with the documents that I will provide.
Thanks for the suggestions and you are right, it is no small task going down the FPGA route, however, if someone starts somewhere, then others can build on top of what is shared with the community, a bit like what we have with the current generation of controller boards.
Joe Frazier, thanks for the support. You are a lucky man for having more time to work on you interests and hobbies.
Fellow FPGA enthusiast Magnus Pettersson; I think the DE0-nano is a little gem amongst all the FPGA development platforms out there. It is really unique interms of form factors (the board), the chip being used, very minimalist in terms of the peripheral provided on the platform.... most other boards either cost too much or have a too big form factor... I love it and it is almost perfect for what I want to do. I wish the FPGA had a bit more capacity though, but this might not be a problem for the second iteration of this project, as I am considering designing my own board with as an integrated little unit, abit like what is done with the current generation of navigation controllers (It's not too crazy of an idea because I am an electronic engineer and I deal a lot with FPGAs in my day job).
I will definitely keep you in mind as I am doing things, the support would be great...