Tim: So Ned, you’ve got a booth here at Maker Faire. You have a copter down here but it’s mounted on this thin piece of metal here. Can you talk about the software, and why is it mounted like that?
Ned: Yeah. So what I am trying to do is develop a quad copter development platform that will be affordable to students and hobbyists. And the reason why it is not modeled like that because it is still in development. So what I’m trying to do is I am working on the stability algorithms, so how do you transfer the coordinates like its orientation and translate that into actually stabilizing the quad copter—so how do you control the different motors, change the thrust of each individual motor and get it to stabilize. So this rig here actually allows me to stabilize it, in just a single action, I can isolate just the pitch. From that I can tune the different control loops and get it so it gets a stable flight and then I will be able to translate that to a flying model. This avoids me having to deal with it crashing all the time.
Tim: Now the hardware of this little helicopter, it has got some things that we now see in toys, but specifically you are not creating a toy, you want it for a certain purpose.
Ned: Exactly. Yeah. I want to create a quad copter that can be hacked. In order to I thought the best way to do that was to develop the quad copter from the ground up. So that involved designing my own controller with its own processor, all the sensors necessary, all of the power electronics that would be needed to drive this quad copter. That not only allowed me to make sure that a developer would be able to change whatever aspect they want about it, but also it would allow me to control the costs, and bring the cost down to be comparable to that of one of those $50 toys.
Tim: Now as you make the prototype, can you talk about some of the hardware that you are actually employing at this point? Let’s look at some of things down here and you can point out what you are using them for.
Ned: Yeah. So actually on the bottom here is just a LiPo battery so this is actually just a 400 milliamp power battery—that’s where it gets all of its power. And on top you have the radio, so this is a 2.4 ghz nRF24 radio. It is a networkable radio, so in the future if someone wanted to, you can have even most of the quad copters talking to each other. And maybe experiment with something like swarm robotics. And underneath the radio, if you can remove it, you have in the center there is the sensor. So that is a chip, it is a 9-axis sensor. So it has a gyroscope, magnetometer, and an accelerometer all in the same package—that’s where I get all of my orientation information. So I can tell how far it is tilted forward or backwards. And on the bottom of the board—you can actually see it better here—is an ATmega328. So that is the same chip that is used on the Arduino Uno, it is just an 8-bit microcontroller. Even though it is not that powerful, it turns out it is powerful enough to stabilize a quad copter. In the end, I actually will be moving away from this AVR chip, and the reason is because it is just powerful enough to stabilize, but since I want this for developers, I don’t want them to have to worry about their code breaking their stabilization software. So I will be moving to an ARM based technology and that will give them more headroom to actually experiment with their own algorithms.
Tim: Would that also save you any weight?
Ned: It probably wouldn’t save me that much weight, but it would remove some of the programming pins necessary for an AVR. So I would be able to replace the charging pins and the programming pins with probably just a micro USB since I can interface directly with the computer. It would also even save me cost. Because ARM chips are very inexpensive and even if they are more powerful than the ATmega variant because ARM chips are used in a lot of cell phone technologies—it is incredibly cheap.
Tim: Now not many people are making this kind of project, even students at Stanford. So how is it that you have enough electronics experience at your tender age to create on these recent platforms?
Ned: Yeah, so in high school I was actually lucky enough to work in electronics lab. I went to Thomas Jefferson High School and we had a microelectronics research lab. So in there I got to get my hands dirty with all of these different circuits, learn how to design circuits and lay out circuit boards. I basically carried on that passion for electronics with my going into Stanford. And so I wanted some project that I could work outside of class, and I decided that what I wanted to do was try and make this quad copter. It seemed like a very challenging problem and something that a lot of people hadn’t really looked at, at least in the low cost development area. So that’s kind of my motivation. I’ve been learning a lot of stuff as I go. So I am constantly reading stuff on how to control these quad copters online, looking at previous code that people have written, trying to adapt my code off of that.
Tim: Speaking of your code, the openness of your code is one thing that people have different approaches to, let’s say—how open is your code?
Ned: Yeah, so my code will be completely open. I am posting it all on burnttransistors.com which is my blog. I will probably set up a Git repository so at least my latest edition of the code will be put there. But I want to go with the idea that since this is for developers, I don’t want to hide anything for someone who is trying to write their own stabilization code. I want them to be able to take the same advantages that I have for looking at this code online, and adapt it from it. Or if you think I might have done something wrong, you can do it better— then you don’t have to start from scratch, you just go ahead and add it on top.
Tim: Now do you think of it as open hardware as well as open software?
Ned: Yes, I do. I think that what I want to do is provide this platform for people to explore the software with. I think a big issue is: People tend to be more comfortable with working in software than they are with hardware. So I want to provide the hardware so that way that won’t scare them away. But I want to make the design completely available, because a lot of times, in order to write very good code, you need to have an innate knowledge of the hardware that goes along with it. And I think the best way is just providing all this information.