A home brew tricopter control as a UAV by a FEZ Panda II

I am not an RC enthusiast which in some ways has made this project more interesting. For my part I am interested in control systems and if it all goes well i will have a UAV. Its been interesting learning about the hobby world side of the project.

After looking around I saw a couple of Bi-copters and went with a dual pivot design.
Here is the frame I came up with mostly carbon fiber tube, so stiff and light. I wasn’t sure about the width and the roll response so I can adjust the spacing of the front rotors, which are currently set on a equilateral triangle.

I already had a Netduino Plus now I have a Panda II which is faster and has more memory. The initial challenge is the get the gyro stability code working before it can progress. http://kiwitricopter.blogspot.co.nz

What I want to do is use an Xbee to do then coms between the controller and the UAV as normal WiFI has too much latency.

@ nickatredbox - Welcome to the community!

There are several of us working on the same type thing. You may want to follow this thread:
http://www.tinyclr.com/forum/topic?id=881&page=17

You don’t really pose any specific question, so I’m not sure what help you’re actually seeking.

I’m just reaching out to see who else is spending their time tinkering with projects like this out in the world. One question is any one finding they have to run native code on the Panda II to get around performance issues?

A few years back I was involved in a project with lost’s of Maxon PWM position controllers, they have a 1Khz update on the position loop.

I have around 100Hz on my stability loop now and it looks in like it works about as well and any I have seen. One concern is when the Garbage Collector runs possibly causing a big gap in the update cycle.

Also has anyone else used native code on the Panda II ?

GC is certainly the biggest concern when doing this on a NETMF controller. If you’re getting 100Hz update loop then you’re certainly getting very close. From what I’ve read you need 150Hz minimum and the best quads are doing 400Hz. It’s going to depend on just how agile and fast you want your copter to be. I bet you can achieve decent flight with 100Hz. I haven’t touched mine in months but getting the update speed up is by far the biggest challenge.

Would I be right to assume that a garbage collection cycle might see your UAV simply fall out of the sky? In which case it would either need to be very tightly controlled or use a different controller as a brain, maybe use Gadgeteer via serial or something as a secondary control to issue instructions to a dedicated IMU - the primary controller surely has to be real time and without risk of some other process unexpectedly taking control away from the ‘pilot’.

BTW I’ve just recently got some Xbees as mentioned by Nick, I’ve seen recent posts about competing 3rd party libraries and I posted there asking what those libraries were hoping to achieve, in the end I found the AT commands setup of the Xbees via PC serial wasn’t very taxing, after which they operated as being instantly magically paired endpoints passing serial data I could encode and decode as I saw fit, no trouble at all.

That’s good news about the Xbee’s RorschachUK I was hoping they would be reasonable to setup :slight_smile:

I have to get a decent test setup for the controller testing so I can do some sustained hover tests even if they are tethered with a big lead acid battery for juice like before.

Regarding a dedicated flight controller the setup I am playing with is a Panda II for the real-time ish control and a Netduino Plus which has ether net currently connected to WiFI via a Vonets Ethernet to WiFI adapter which I had in stock.

The plan being to have the Netduino do all the navigation and comms with the host controller. The Netduino and FEZ currently communicate via serial at 115,200 baud reliably to pass commands ect.

I have some Raztec hall effect sensors which I want to connect to the Netduino for some sort battery life prediction

Regarding the secondary controller I already have a HobbyKing Multi-Rotor Control Board V2.1 (Atmega168PA) Radio Control Planes, Drones, Cars, FPV, Quadcopters and more - Hobbyking which can be reprogrammed. I have a Code Vision Licence http://www.hpinfotech.ro/html/cvavr.htm too which supports Atmel and a JTAG thingy so push comes to shove I could probably break out the Kernighan & Ritchie and do a C routine for the Atmega 168 in C for my Tee bone dual swivel layout. All takes time and I have been doing lots for C# this year, I t may take a while to get my head around the Atmel again. If I do I will share it as source an binary for any who are interested.

Note: I have had a stable looking hover for a minute by tapping the laptop keyboard to compensate for X Y drift. It looked Pitch Roll Yaw so Gyro stable to me. Further testing needed I think.