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
Good idea/project due to diversity. Good luck and keep blogging/sharing. we Diy guys appreciate it very much. Who knows how many will jump in the FPGA band wagon once you done the hard part :)). cheers
Great!
What are your plans: Zynq or cyclone V SoC ?
I've been working with both Xilinx and Altera, and with VHDL and SystemVerilog, so maybe I can help.
It will be nice to help you out.
Cool project, I also have one of those de0 nano boards. In lack of better things, it currently run a vhdl implementation of tetris I wrote. If you ever want to elaborate on ideas send me a PM, I will gladly try to help.
Awesome idea - I look forward to seeing how this project progresses and hopefully learning a bit about FPGA's. I've been programming microcontrollers on-and-off for 20 years but I've never had the chance to work with an FPGA. Hopefully now that I'm retired I'll have a chance to learn more as that's what I *really* enjoy. Of course flying is in there as a close second!
Keep us informed, please!
The FPGA will give you an incredible power thanks to parallelism and logic block helpers. You will be able to get perfectly clean jitter free inputs and outputs as well as a better safety thanks to the possibility to have many embedded CPU running inside for redundancy and design logic watchdogs for even better reliability.
Some commercial UAV projects are using FPGAs.
The drawback is the relative complexity and price of dev kits and programming tools.
If you only embed an AVR or ARM core in the FPGA, then the work will be reduced to hardware design and basic FPGA programming to embed the core and add some I/O.
But the interesting part is to transform some parts of the actual C++ code so that parts of the program will run on logic blocks helpers instead of inside a CPU core, for more speed and reliability.
For example the PPM encoder is a part of the Ardupilot C++ code that could be advantageously ported to logic programming for jitter free performances. Motor control is another one.
I did suggest to go this way a couple years ago for the APM board, but nobody was enthusiastic about this idea. It's certainly something not so easy for a DIY community.
Anyway this is a good idea, it will ask quite a lot of work, but it is definitely an interesting project.
Olivier
Nice project! I was asking my self why FPGA.... and your answer is really good! Have fun!!!