Close
0%
0%

The Ball-Drone Project MK II

Single rotor, "singlecopter", selfmade drone with air vanes for position control as a full remake of the Ball-Drone Project

Similar projects worth following
This project shows a complete 3D designed and printed single rotor drone as a full remake of the previous "Ball-Drone" Projekt. The special design with only one rotor and air vanes for position control make this project particularly interesting in the area of drones. Common RC components like radio receiver, lipo battery, ESC, motor, propeller, servos were used. In addition to drastic changes to the design itself, a commercial flight controller is now also used. Setting up Betaflight is just as important as a lot of background information and links on the topic itself.

You can find more informations in the details section and project logs!

Take off with just one propeller!

This 7.4 inch drone flies with only one propeller and is controlled by 4 air vanes!

  • 1 × TATTU 1300mAh Lipo 3 Cells 11.1V 14.4Wh
  • 1 × Diatone MAMBA F405 MK2 F405 Flight Controller (Cleanflight / Betaflight / Cleanflight)
  • 1 × T-Motor F35A bl_heli32 ESC
  • 1 × Flysky fs-a8s v2 mini rc receiver with ppm i-bus sbus
  • 1 × STORM TL2306 2300kV brushless Motor

View all 12 components

  • Betaflight and the PIDs

    Benjamin Prescher11/12/2020 at 09:36 0 comments

    Betaflight has evolved over the past few years - new features are constantly being added to further improve the flight behavior of racing drones.

    To put it bluntly, turn everything off and stick to the basics!

    This is of course a bit of an exaggeration, but many of Betaflight's advanced controller functions are not needed and even make the drone's flight behavior unstable. The reason for this is relatively simple. With "normal" 4x drones, each of the rotors can intervene directly in the system. However, the ball drone requires a minimal amount of thrust in order to exert effective forces on the system through the air guide flaps. PID control of the vanes is required, based solely on the position information from the accelerometer and gyroscope. In order to generate this location information, Betaflight also offers a number of setting options, in particular for signal processing (filters), which I would like to investigate in more detail in the future.

    The test flights that I have carried out so far worked best with the displayed settings:

    Note the high percentage of P compared to a classic x-220 racer. The drone will be more stable with a good part of the D component and a small I component.

    I would also like to point out the angle limitation: Here the risk of a possible tip over of the drone can be reduced by setting an angle limitation.

    In the future I would like to look at BF's black box logging and hopefully be able to derive important information about the PID setting from it.

    PS: I look forward to your comments and messages!

  • Get your flight controller ready - with betaflight!

    Benjamin Prescher11/01/2020 at 16:45 0 comments

    Contrary to the previous ball drone, I now wanted to use a flight controller and software that is virtually freely accessible to everyone. There are a lot of open source projects, but Betaflight is currently the standard for racing drones, there are many tutorials and resources on the internet what makes me not to explain betaflight again. But how do you get from a racing quad to a single-rotor drone? Here's how:

    Resource mapping:

    Basically you need a motor and four servos to control your single-rotor copter. Most flight controls have four motors and some of them have some servo outputs as well. What I did is remapping the Betaflight servo controls to the "standard" four motor outputs. Now a connection for the motor is needed. Via the configuration of the flight controller I used, I was able to see at which connections timers are available. You often read about using the LED_strip port for a motor, but I wanted to use the LED_strip port and decided to remap the PPM input as a motor output. What resource remapping is and how to is shown for e.g. in this video.

    The CLI commands I used:

    resource MOTOR 1 NONE
    resource MOTOR 2 NONE
    resource MOTOR 3 NONE
    resource MOTOR 4 NONE
    resource PPM1 NONE
    resource SERVO 1 A03
    resource SERVO 2 B01
    resource SERVO 3 B00
    resource SERVO 4 A02
    resource MOTOR 1 C09
    save

    Mixer configuration, mmix, smix:

    Next, the flight controller must be made to send the correct signals to the servos and the motor ... For this, adjustments must be made in the so-called mixer. Select "Custom Airplane" under the configuration tab.

    Handle this via the command line:

    # smix script for singlecopter on MambaF405_MK2 (by Benjamin Prescher)
    mixer CUSTOMAIRPLANE

    # load a standard motor mix
    mmix reset
    mmix load airplane    # Motor1 as ESC output
    #mmix 0  1.000  0.000  0.000  0.000

    # smix
    smix reset
    smix 0 3 0  100 0 0 100 0
    smix 1 2 0 -100 0 0 100 0
    smix 2 4 1  100 0 0 100 0
    smix 3 5 1 -100 0 0 100 0
    smix 4 3 2 50 0 0 100 0
    smix 5 2 2 50 0 0 100 0
    smix 6 4 2 50 0 0 100 0
    smix 7 5 2 50 0 0 100 0
    save

    If you want to find out more about what is actually happening here, take a look at these links:
    https://github.com/martinbudden/betaflight/blob/master/docs/Mixer.md

    Configs on the servos:

    As you can see in the picture of mixer config, I have set a relatively low PID loop rate. The servos that control the copter can usually be operated with a servo_pwm_rate of max. ~ 333Hz (there are also servos that can certainly handle more). I have set my servo_pwm_rate to 250Hz, which corresponds to a quarter of the PID loop rate. As far as I understand the algorithms in betaflight, there is no point in setting the PID rate artificially high if the command for the actuators can only be updated a fraction of it anyway. For the PIDs (more on this later in another log) I use strong P values. The servos with the vanes then tend to swing. Betaflight has a great feature to solve the problem, this is called a servo low pass filter:

    Handle this via the command line:

    set servo_lowpass_hz = 20
    set servo_pwm_rate = 250
    save

    Time for testing:

    If you have already set up the drone, connected everything and also implemented the configuration, then your drone should behave as follows:

    • transmitter roll right makes forward and back fins move right
    • transmitter pitch forward causes left and right fins to move forward
    • transmitter yaw right causes forward fin to move left, right fin to move forward, back fin to move right, left fin to move back

    A personal note on Betaflight:

    Betaflight is just one option I used to get your drone in the air. All of the above steps can be done (not tested) using iNav as well, and I heard Ardupilot should do the job too!

  • Some notes on assembly

    Benjamin Prescher11/01/2020 at 15:33 0 comments

    Prepare:

    1. order parts
    2. print parts

    Build:

    Lower ring

    1. Assemble servos
    2. Center seros to middle position (with servo controller, or easy sketch: Arduino servo)
    3. Add servo horn when servo is aligned
    4. Mount vanes one by one . The servo horn (ES9052) fits exactly into the fitting on the wing. I used M3x12mm screws to make a positioning screw on the opposite side.

    Upper ring

    1. Mount motor first
    2. Add screws for the flight controller from "underneath"
    3. Fix the flight controller with M3 circuit board spacers

    Connection

    1. I attached (daisy chained) WS2812b lights on the inside of the drone legs and used them to connect the servo power lines on
    2. The signal lines of the servos must definitely be extended
    3. Connect Motor and receiver lines to your (betaflight) flight controller (more to betaflight comming up!)

    Battery holder

    I attached the ESC and receiver on the bottom side with cable ties (there are also the notches in the holder). A standard buzzer will fit into the round of the bat. holder.

  • Get your parts on thingiverse!

    Benjamin Prescher10/27/2020 at 18:34 0 comments

    All the parts are now available on thingiverse!

    I printed the drone from PLA, but would use PETG in the future because of its strength. The construction is designed for a layer height of 0.2mm and a nozzle diameter of 0.4mm. Support is not required. Happy printing!

  • Fewer parts - easier to print!

    Benjamin Prescher10/23/2020 at 13:45 0 comments

    In the end, The Ball Drone (MK I) had a lot of components and was correspondingly heavy. The current version shows itself with significantly fewer components, which can also be printed easily and usually without support material ...

  • Drone Pendulum Fallacy

    Benjamin Prescher10/22/2020 at 19:24 0 comments

    In the previous project The Ball-Drone Project I was faced with the challenge of building a slightly different drone. Now I don't really come from the field of flight dynamics and still had to learn a lot. In principle, the first ball drone flew. Correct maneuvering was nevertheless not possible, however, as the drone tended to "tip over". I was unable to get the problem under control by making adjustments to the flight controls. I found a very good video Drone Pendulum Fallacy by Tom Stanton that shows the subject of center of gravity of drones clearly. The leverage of the wings in relation to the center of gravity was insufficient to safely control the drone. So I threw the whole concept overboard and tried again.

    Some good information about single-rotor drones: ArduPilot

View all 6 project logs

  • 1
    Prepare
    1. order parts
    2. print parts
  • 2
    Build

    Lower ring

    1. Assemble servos
    2. Center servos to middle position (with servo controller, or easy sketch: Arduino servo)
    3. Add servo horn when servo is aligned
    4. Mount vanes one by one . The servo horn (ES9051) fits exactly into the fitting on the wing. I used M3x12mm screws to make a positioning screw on the opposite side.

    Upper ring

    1. Mount motor first
    2. Add screws for the flight controller from "underneath" Fix the flight controller with M3 circuit board spacers

    Connection

    1. I attached (daisy chained) WS2812b lights on the inside of the drone legs and used them to connect the servo power lines on
    2. The signal lines of the servos must definitely be extended
    3. Connect Motor and receiver lines to your (betaflight) flight controller (more to betaflight comming up!)

    Battery holder

    I attached the ESC and receiver on the bottom side with cable ties (there are also the notches in the holder). A standard buzzer will fit into the round of the battery holder.

  • 3

View all 4 instructions

Enjoy this project?

Share

Discussions

brian wrote 4 days ago point

This is fantastic! Awesome work!! Do you have any videos of it flying beyond the animated gif? I’m off to start printing the frame. 

  Are you sure? yes | no

bobgreenwade wrote 11/01/2020 at 17:59 point

This is awesome! All I want to know is: How loud is it, and can it be disguised as Skeets (Booster Gold's sidekick)?

  Are you sure? yes | no

Benjamin Prescher wrote 11/12/2020 at 08:56 point

You can of course hear the drone clearly. Unfortunately I cannot offer a dB measurement or something similar. As for the design: a lot is possible here, as long as the center of gratity is right!

  Are you sure? yes | no

robomaniac wrote 10/31/2020 at 17:08 point

nice work! This mean in near future in betaflight mixer dropdown menu I will see "flying ball"? I might give it a try this winter. I am into fpv drone so might try to do FPV with it. Will have to try PETG or ABS since PLA won't last when I tune this in the basement. Keep it up!!

  Are you sure? yes | no

Benjamin Prescher wrote 11/12/2020 at 08:59 point

Oh, if this project could / would actually have an impact on BF - that would of course make me proud. Maybe I should really look into it and propose the drone / settings.

  Are you sure? yes | no

frank.toorenburg wrote 10/31/2020 at 15:07 point

Printing one in PETG  at the moment. Ordered some stuff and can't wait to see it fly. I am all in to Single and Coax copter. See here my flying stick: https://youtu.be/W8ynR-MvQH4

  Are you sure? yes | no

Benjamin Prescher wrote 11/01/2020 at 15:50 point

Nice! I'm looking forward to the pictures! (E.g. via a "make" on thingiverse)

  Are you sure? yes | no

Benjamin Prescher wrote 11/03/2020 at 09:51 point

Hey! Thanks for the "make" on thingiverse. https://www.thingiverse.com/make:862583 Looks pretty nice in transparent. I have now ordered new PETG (black) myself, as I have broken my PLA build several times during tests ...

  Are you sure? yes | no

Danie Conradie wrote 10/31/2020 at 07:10 point

Very interesting project, really looking forward to seeing how it progresses. Why didn't you keep the custom flight controller from Mk1? Betaflight compatibility?

  Are you sure? yes | no

Benjamin Prescher wrote 10/31/2020 at 07:15 point

Betaflight / iNav compatibility is the point. I was looking for a way to make the project accessible to many. Because BF is already widespread and there are various controllers for it. Illustrated updates on this are coming soon!

  Are you sure? yes | no

Jacques wrote 10/28/2020 at 16:39 point

What forbid the body to contra-rotate to the rotor?

The center of mass is likely above the propeller, isn't it harder to stabilize this way?

  Are you sure? yes | no

Benjamin Prescher wrote 10/28/2020 at 20:13 point

The control system adjusts the air flaps so that the counter-torque is generated and the drone does not turn. Between the center of gravity and the effective force of the air flaps there is about 10cm and offers sufficient "leverage". I am convinced that this is an essential point for optimization. Should someone have the skills and be able to calculate the optimal point depending on the air flow, a message is very welcome!

  Are you sure? yes | no

leonard.bell83 wrote 10/27/2020 at 23:03 point

I'm in the process of ordering the parts to build this. Have you thought about using Arducopter?

  Are you sure? yes | no

Benjamin Prescher wrote 10/28/2020 at 06:04 point

Hello Leonard and thank you for your inquiry. I haven't looked at Ardupilot yet. So far I've built my own controller and only recently worked intensively with Betaflight and iNav.

  Are you sure? yes | no

Uzair Patel wrote 10/23/2020 at 14:21 point

This project looks awesome! quick question, how did you modify beta flight in order to support this new kind of drone? are their prebuilt versions or did you write a algorithm?

  Are you sure? yes | no

Benjamin Prescher wrote 10/24/2020 at 07:00 point

I will be presenting the modifications to Betaflight in the coming days. Some changes to the system are necessary, but everything can be done in the "normal" way.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates