Introduction: Electric (non-) Pullcopter With Hard Drive Motor

This was a weekend project I was inspired to do for the Make It Fly contest. I'm currently a Bachelors Industrial Design student at the Eindhoven University of Technology, continuing my studies after the summer break. This was a great exercise to get back to playing with Arduino, motor control, and a bit of soldering again.

I wanted to make a proper electric tribute to those ubiquitous hand-operated pullcopters. Taking away the childhood fun of ripping pullcopter cords, this chrome-topped upgrade allows you to prime the propeller and launch it anytime you want, annoying your friends with the press of a button.

Supplies

My goal when making this project was to do something creative with stuff from my parts bin. The brushless motor was salvaged quite a while ago from an old hard drive, and I wanted to avoided covering it to show its nice finish. The LiPo battery powering everything is a cell salvaged from a "disposable" vapor device I found in a park, well-suited to this higher-discharge application.

The off-the-shelf electronic components I used were:

  • a small power switch,
  • a keyboard keyswitch,
  • a generic Anoel-branded 45a brushless speed controller (ESC),
  • an Attiny88 microcontroller,
  • and an MT3608 boost converter.

Just as a note, the 45A rated ESC is greatly overspec'd. I simply had this one on-hand, but a much lower rated one around 5-10A should do the job just as well.

All plastic elements, such as the propellers and the supporting 3-piece shell, were designed in Fusion 360 and 3D-printed in white PETG filament. And to round off the materials, two M3 screws and corresponding heat-set inserts were also used.

Step 1: Breadboard Testing and Programming

Although wiring this circuit was very simple, breadboarding is always a good idea! Doing so also made it easier to probe the circuit with my oscilloscope.

PWM is a bit finicky sometimes with speed controllers. I've always been a bit lazy on the programming side- I simply used trial-and-error with the default servo library and a pocket oscilloscope to find the corresponding servo values for 5-10% duty cycle.

/*Simple code for the electric brushless pullcopter, running on an MH-ET Attiny88 
 * and outputting to a 45a Anoel brushless ESC. 
 */


#include <Servo.h>


Servo esc;  


int pos = 0;    // variable to store the esc position
int buttonPin = 3;
int escPin = 4;
int escLimLower = 35; //5% duty cycle
int escLimUpper = 155; //10% duty cycle


void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
  esc.attach(escPin);
}


void loop() {


  //slowly ramp up speed, break loop and return to 
  //off position immediately if button released.

  if (digitalRead(buttonPin) == LOW) {
    for (pos = escLimLower; pos <= escLimUpper; pos += 1) { 
      esc.write(pos);
      delay(10); //delay for determining ramp-up time
      if (digitalRead(buttonPin) != LOW) break;
    }
    while(digitalRead(buttonPin) == LOW) esc.write(escLimUpper);
  }
  else {
    esc.write(escLimLower);
  } 
}


I needed to test the scavenged motor myself to find some optimal operating parameters. I started at the default 12V for hard drives, but found that it could run with up to 22V without it getting too warm. The final operating voltage was, however, set at 15V after the boost converter (boosting from the LiPo's nominal 3.7V) was revealed to be struggling at much higher voltages.

For the ESC control, I decided to do a ramp up from 0 to 100 instead jumping straight to the max value. If this was not done, the ESC exhibited some unintentional behavior like unpredictable sudden jerks, or even going into calibration mode. Once the motor is spinning, the value can be dropped down immediately. This ESC has a braking function, allowing the propeller to be flung off quite well.

Step 2: Propeller and Motor Interfacing

The motor adapter and propeller were designed to fit using a spiral/double-helical keyed design, commonly used for pullcopters. The push-side of the key has a shallow twist angle, ensuring that the propeller is hooked onto the motor as long as it doesn't decelerate. Once this happens, the propeller's momentum carries it along the deeper angled sides of the key, twisting off and releasing on its own.

Step 3: Assembly

The assembly required is relatively straightforward, though I soldered the components so that took some time. Regarding how everything comes together, the motor mount fits in between the two side handle pieces and is clamped in place (with keyed flanges) to prevent it from slipping. Heat set inserts were used in the left side to have a better interface with the screws in the right side.

The handle was designed so that each of the electronic module boards is held in place by purpose-built brackets. This keeps everything nice and tidy.

Step 4: Choose Your Propeller

I designed a couple of propellers to have fun with, ranging from 2-5 blades. The ideal propeller for this setup at 15V was the three-bladed one, which weighed in at around 6g; it allowed the motor to get to the highest RPM out of all the propellers and also flew the highest.

Step 5: Final Iteration: Ergonomics and Aesthetics

From left to right in the first picture, the leftmost piece is the first test jig for figuring out module board placement; next to it is the intermediate design for the handle, and the final design is on the right.

Final changes were made to the handle to improve tactility and appearance, adding some chamfers, fillets, and little elements here and there. A bottom lip lets you stand the handle up, and the tapered shape feels nicer in the hand. The rounded button edges also matches the aesthetics better.

I wanted to reprint all the plastic parts anyways since drying my PETG, and the results look so much better!

Step 6: Build Your Own!

That's it! Check out the video above to hear the satisfying mechanical keyswitch click, and the surprising volume of the propeller.

Here are all the Fusion 360 files to build your own if you like. Have fun, and feel free to ask any questions if you need help!

Make it Fly Student Design Challenge

First Prize in the
Make it Fly Student Design Challenge