I've been working on an ARM based quadcopter over the past several weeks. It utilizes a custom sensor pcb that is essentially a break-out board of break-out boards from Sparkfun. The custom pcb also serves as power distribution to the motors. The MCU is an NXP LPC1768. It utilizes the NGX "Blueboard" development board. I've made all the firmware and hardware design available on sourceforge. The source includes NXP peripheral drivers modified to compile in library form. It also includes my implementation of CDC EEM Ethernet Emulation over USB. EEM only works on Linux right now. I would really appreciate it someone could help me get that working on Windows and Mac. The firmware also includes compatibility with my 50-channel frequency hopping radio designs for long-range Mavlink support over RF and Ethernet. I have a large part of the Mavlink protocol implemented, but still need to add waypoint storage support. The firmware also serves as an example of interfacing NXP with gyros, accelerometers, magnetometer, ultrasonic, GPS, motor controllers, RC control input. Currently, I'm using the Madgwick DCM algorithm for attitude. I'm still trying to get my head around the Kalman filter. I'm starting a new job next week, so I won't have as much time to play with this thing.
Some videos capturing the development of the quad here:
https://www.youtube.com/channel/UCSiWjf5sNuUIE5q7Ymw0ZqQ
Here is the sourceforge project page:
http://sourceforge.net/projects/armquadvwr/
SVN access to code only (no zip file downloads)
svn checkout svn://svn.code.sf.net/p/armquadvwr/code/trunk armquadvwr-code
Then, assuming you have a gcc arm toolchain configured edit armquadvwr-code/makedefs PREFIX to point to your toolchain. Then:
cd armquadvwr-code
make clean
make
That should build the peripheral driver library and project code. If anyone wants to add a nice Kalman filter / quaternion attitude implementation to the project, I would appreciate it :)
Comments