Android / iOS

Balsa Wood Airplanes With Motors

Posted: August 21, 2009
Updated: June 20, 2013


A few years ago (looks like summer 2009 by the date on this page) I put together a balsa wood airplane project. It wasn't really to get a plane to be controllable or fly, but more just to be funny. This time I decided to see if I can get one of these planes to fly and be controllable with a Syma S107 helicopter remote control. My chip of choice for this project is the ATtiny85 for two reasons: 1) An 8 pin, small, lightweight chip like this is so perfect for this project 2) I recently added AVR8 support to naken_asm and I needed an excuse to test it. I decided to put this newer project on this page since it was already indexed by Google and move the older version of the project to the bottom of this page.

Related Projects

Motors: Linksys Copter, Brushless Controller, IR Toy Car, Balsa Airplane


So the chip is programmed simply to understand Syma S107 IR data. I have a receiver that filters out the 38kHz so the chip just counts how long the pulses are: 2ms on / 2ms off = header, 0.3ms on / 0.3ms off = 0, and 0.3ms on / 0.6ms off = 1. When 32 bits are read in, the thrust value is used to change the PWM value to the motor. I pretty much copied what I did on the MSP430 version I did for my IR toy car project. I added code for control of "elevons" on PB1 and PB2. If the controller is turned left PB1 will turn on, turned right PB2 turns on, and pulled back both PB1 and PB2 are turned on. I was going to hook these up to muscle wire but for now I just wanted to get the plane to fly. For a saftey feature, if the plane doesn't get any IR commands for about a second it will shut off the motor and flatten the elevons. As for a battery, I tried a 9v akaline battery first. Directly hooked to the motor I measured it was pulling 3.7A or so. Never knew that kind of battery could do that. When I hooked up the full circuit with the micro it kept resetting the chip when the motor was running and an oscilloscope was showing major battery sag. I tried one of these Energizer Advanced Lithium 9v which did work a lot better, but there was still major battery sag. I finally ended up with a HobbyZone 7.4v 330mAh battery. The weight of the entire system with this battery and the Pololu 5:1 Micro Metal Gearmotor HP is around 50 grams.

I used my homemade ATtiny2313 tachometer on both the motor and the rubberband and different batteries and ended up with the following results:

Propeller Motor Power RPM Thrust
Balsa default rubberband rubberband 2500
APC 6x5.5 1.5-3v RadioShack Energizer Advanced Lithium 9v 3120 19.9 grams
APC 6x5.5 1.5-3v RadioShack HobbyZone 7.4v 300mAh LiPo 3600 27 grams
APC 6x5.5 Pololu 5:1 Micro Metal Gearmotor HP HobbyZone 7.4v 300mAh LiPo 4020 34 grams
APC 6x5.5 Pololu 5:1 Micro Metal Gearmotor HP E-Flite 11.1v 430 mAh LiPo 4860 51 grams
Syma S107 Helicopter default Motor default LiPo 4900

The RadioShack motor definitely doesn't like the load/voltage. It gets pretty hot :). Interesting to see the little LiPo at a lower voltage can get the propeller to spin at a higher RPM. With the new motor from Pololu the RPM is around 4020 but slowly drops. Probably something is heating up badly and causing resistance to go up. Another interesting note: I was trying to save weight by leaving off bypass capacitors. I noticed with the new motor/battery that the propeller would spin up and stop and then start up again. It seemed to me when the motor was starting up that the IR would stop working so I put a 0.1uF capacitor on the IR Vcc/Gnd and the problem went away. Another thing I did to decrease weight was instead of using a proper metal propeller/shaft adaptor, I slipped a rubber ring on the inside of the propeller which makes it tightly fit on the shaft. Hopefully it holds.


Coming Soon...

Balsa wood plane with motor and IR controller Here's a picture of the whole plane. If anyone is interested in purchasing the same plane the one here is a Stratostreak from Hobby Lobby.
Balsa wood plane with motor circuit This is a close-up of the circuit. I used an 8 pin socket for the ATtiny85 which is epoxied to the body. The rest of the components are freely soldered together. The motor is connected with masking tape so it can be easily swapped out. After this picture was taken, I added a bypass capacitor on the ATtiny85 and reversed the polarity on the motor (oops).
Electric motors This is the original RadioShack motor next to the newer Pololu geared motor.
Balsa wood plane with motor and IR controller schematic

Here's the schematic...

Source code

To set fuses for 16MHz (assuming STK500 at /dev/ttyUSB0):

avrdude -c stk500v2 -p t85 -P /dev/ttyUSB0 -U lfuse:w:0xe1:m

To assemble, first download Atmel's include files for AVR chips (included with the Atmel IDE) and put them in /opt/atmel, then do:

naken_asm -l -I/opt/atmel -o airplane_ir.hex airplane_ir.asm

And then to program the chip:
avrdude -c stk500v2 -p t85 -P /dev/ttyUSB0 -U flash:w:airplane_ir.hex

Original Project

This is a project to take balsa wood airplanes with propellers powered by rubberbands and replace the rubberbands with electric motors. My original idea was to build a circuit with a proximity detector and 2 LED's so that when someone steps close to the plane, the two lights turn on like a terroritoral animal warning of an attack. If someone gets even closer the motor will turn on (moving the plane forward towards the person) until it doesn't detect them anymore. So I epoxied a 1.5-3v Metal Gear DC motor from RadioShack to the front of the plane and to the shaft of the propeller. The glue kind of got in the part of the plane that holds the shaft to the body, so I cut it off. This causes a bit of wobble :(. So I had an infrared proximity detector from Spark Fun which had a REALLY clean signal on the scope, but it only detected things maybe 30cm infront of it, so I ordered an ultrasonic one. I couldn't get it to keep a stable signal (I also plugged it in backwards when I first put it on the scope, so maybe I blew it :( ), so I went to Radio Shack and got a PIR motion sensor. Kinda sucks cause this is only an on/off deal. The proximity detectors would say if there is an object directly infront and how far away. So I changed the firmware so it turns the LED's on when it detects motion and if it still detection motion a time later it will start the motor until motion stops. Boring :(.

Anyway, this is a pretty simple motor control circuit. For a more complex one (multispeed) take a look at my Atmel Motor Control project and the Linksys Copter project that uses it.

Balsa wood plane with motor Here is the small test circuit from the schematic below.
Balsa wood plane with motor schematic

Update (September 3, 2010): I replaced the 2N2222 transistor with ZTA1049A. When I first made this I didn't bother to measure the current through the motor. It appears that it wants to pull 1.29A and the 2N2222 isn't made to do it. The ZTX1049A is :).

Source code

Copyright 1997-2015 - Michael Kohn