-
Working on the frame rev 2.1
05/29/2016 at 00:34 • 0 commentsI am building the frame for the ARM board out of balsa wood. I also decided to make it an octocopter. (Originally I was planning on a hex, but then the ebay seller who I bought the motors from decided to send me 7mm ones instead of 8.5mm... I figured that with the smaller, weaker motors, that I would be more likely to have sufficient lifting power if I threw a whole lot of motors at the problem.)
I still wanted to keep things small, so I am trying for a 160mm motor to motor build. 4 motors are in the corners, 4 are in between the corner ones (think of a + and x quad copfiguration stuck on top of each other).
The motor mounts are hickory, drilled out and glued on to the balsa frame.
The frame plus 8 motor mounts and roll cage is 16g. 8 motors plus props are 34g. The control board plus sensors is about 9g. The battery is about 12g. Unless I forgot something, this should make a flight weight of about 71g (this is compared to the quad weight of 57g, including the wire roll cage). I am hoping that the 8 motors (albeit weaker) will give me enough payload capacity to put a micro camera on board.
Some pictures of my progress are below.
-
st-flash working on STM32F410
05/20/2016 at 18:02 • 0 commentsStill playing around with my ARM programming workflow. Next up was the program upload. Previously I was using Nucleo, with its USB mass storage programmer. It works, but it is clunky and not great for use with make.
I tried building https://github.com/texane/stlink, and it worked for the F411 but failed on the F410. The developer xor-gate was incredibly quick to fix the bug once I logged it; kudos to him for excellent support!
The upside is that I can now use st-flash to easily program my Chiindii board from a makefile.
-
ARM Programming Works
05/11/2016 at 18:44 • 0 commentsOver the weekend I soldered up a new ARM PCB. To start with, I just wrote a simple blinkylight program to ensure that the main chip runs, and that programming works. After a couple false starts, I got the light blinking. Yay!
This confirms that the following tasks have succeeded:
- The PCB correctly runs an ARM STM32F410 chip (it has all the needed power supply caps and such)
- Programming works (via a Nucleo with the jumpers set to program an external board)
- STM Cube software correctly configures the chip
Next step is to get the motor driving components on the board (some mosfets and such), and verify that the motors work.
After that, I can start porting the AVR Chiindii code to ARM (OK, I have started, but there is still lots of work to go).
Unfortunately my time is quite limited in May / June, so I don't know how much I will be able to get done until summer.
Cheers
-
Playing with ARM
04/25/2016 at 15:24 • 0 commentsWhile the quadcopter based on an AVR 32u4 is working (with the exception of one annoying bug that I have yet to track down), I am pushing the limits of the 8 bit microcontroller. I figured that this would be the perfect excuse to get into ARM programming.
We have designed a new flight controller board that uses an STM32F410 chip, which has tons of pins, cycles, and an FPU. The boards have just arrived on Friday, and we plan on making the Digikey order today or tomorrow.
The new boards do not have an integrated frame. They have a standard mounting hole pattern (45mm square) so they can be used with commercial frames, and I am planning on making one out of balsa wood. They support up to 8 motors (octocopter), and can drive either brushed (directly) or brushless (via ESC) motors.
The board image is below; stay tuned for updates...
-
Almost everything working
02/28/2016 at 23:23 • 0 commentsI have been horrible at updating this project page... long story short, we have most of the flight operations working now, with the exception of yaw. (From a physical POV, yaw works, but somewhere between the controller and PID it is failing). Warren is still working on his iPhone controller program, and making good progress (I will let him add updates on the details).
I have been going through far too many props (and motors) while making it and learning to fly; I thus built myself a prop guard today out of piano wire to hopefully reduce the damage done to the props when they hit something. It's a bit heavy, but seems to work quite well.
Some pictures and a video are included below; you can look on my Youtube channel for other videos.
Enjoy!
-
Complementary Filter Working
01/20/2016 at 18:29 • 0 commentsAfter a long downtime, we have started work on the code now. We have finished the main architecture, and are now working from the bottom of the control stack to the top. Motor control (9 bit PWM in hardware) is completed, status lights are working (showing armed status, battery warning, and comm warning); attitude filtering was the next task.
We decided to go for a first order complementary filter due to its simplicity and small code size. We followed the logic demonstrated in the blog post at http://robottini.altervista.org/kalman-filter-vs-complementary-filter.
This is a graph of what we have currently:
As you can see, the filtered value is nice and smooth, and follows the accelerometer quite closely without inheriting the noise from either accel or gyro.
Next step will be communications followed by rate PID.
Cheers
-
Initial Status
11/19/2015 at 22:15 • 0 commentsAlthough we have just now started this project page, we have been working on this project for close to 6 months now. The panelized design took a long time to figure out (even the requirements for what we wanted to include and how the frame was to go together was quite difficult). We went through a number of iterations before settling on this one.
Now that the boards are here, and basic operation is confirmed, the next step is to start writing software. It may take a few months to get things going, though, so don't hold your breath. ;-)
So far, I have tested the following aspects of the design:
- ATMega32u4 programming via external USB dongle, and setting clock speed in software (no ISP / setting fuses required)
- 5v Boost converter (for AVR) and 3.3v LDO (for radios)
- Status LED
- Motor1
Things I have not yet tested:
- I2C communication with IMU
- Serial communication with radio
- Motors 2, 3, and 4
I think that covers just about everything in the hardware...