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

  • Introducing the Ball-Drone Project MK III

    Benjamin Prescher08/25/2021 at 10:13 0 comments

    This project represents my submission for the Hackaday Prize 2021!

    Now in the 3rd iteration stage, the ball drone has not only become safer and more efficient, it now also supports more features and potential areas of application.

    This design is unique, scalable and the area of application is unimaginably large! From toys to a measuring drone for fine dust to light and signal drones in the event of an accident.

    Compared to the MK II, the newly designed housing virtually eliminates touching moving parts and also increases the efficiency of the system. This is not a racing drone, but everything else!

    Come on and follow me with the latest implementation!

    The Ball-Drone Project MK III

  • The Ball-Drone on youtube!

    Benjamin Prescher08/16/2021 at 09:46 0 comments

    There are now a number of great videos on youtube about the ball drone! Here are a few of them:





    For everyone else whose links don't appear here, feel free to write them in the comments!

  • Made it into Make Magazine

    Benjamin Prescher03/08/2021 at 19:20 0 comments

    Whoop! Proud to have made it into Make Magazine (US)! https://makezine.com/

    I am very pleased about the good response, there are already some nice replicas on YouTube!

  • 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 3 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 jitter. 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 9 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

vincent wrote 11/04/2023 at 12:12 point

hi benjamin, i use FC MATECK F722HD. I've started wiring (only 2 servos for test) and I can't get just the servos to work... I did modify the CLI. For me my DUMP is ok with smix and mmix . I don't undertand. Betaflight version 4 for information.

  Are you sure? yes | no

a.uvarov wrote 06/29/2023 at 18:18 point

Diatone MAMBA F405 MK2 supports up to 4 PWM outputs. In this project uses 5 pwm signals, 4 servo and 1 motor. What pin use motor?

  Are you sure? yes | no

mh-nexus wrote 12/25/2022 at 09:21 point

Excellent design. Seems good to test indoors because of  its construction, the surrounding cage will protect it (and the walls). Seems good to test some controlling/steering algorithms without trashing things!

  Are you sure? yes | no

Thomas wrote 12/21/2022 at 17:19 point

Hello together. I am a complete newbie in 3D Printing. What kind of 3D Printer are use you for the Ball-Drone Project?
Thx
Thomas

  Are you sure? yes | no

Ali Dursun wrote 03/14/2022 at 07:49 point

Thanks Chris

Congratulations again. 

Last question. What did you use to control the ESC? I mean flight controller can control 4 parameters you have 4 servos and 1 ESC.

Thanks in advance

Ali

  Are you sure? yes | no

Benjamin Prescher wrote 03/17/2022 at 16:05 point

I reconfigured the flight controller and used another output for an ESC.

  Are you sure? yes | no

Ali Dursun wrote 02/09/2022 at 12:17 point

Could you explain how to control the speed of the motor.  As far as I understand, flight control has four control outputs and the ate being used to control of vanes. Where is the ESC of the moto connected?

  Are you sure? yes | no

Chris Drew wrote 03/10/2022 at 15:34 point

The control system uses a "custom motor mix" which provides 4x servos & 1x ESC control.
I used 4x motor signal pads for the servos & an additional PWM pad for the ESC.

  Are you sure? yes | no

Bruce Kissinger wrote 12/24/2021 at 00:29 point

I've tried to construct this project using the exact parts list that is supplied.  From Betaflight controller, i can spin up the motor, but can't get the servos to work properly.  I used a servo tester to verify that they are working correctly.  Do you have any suggestions?  I have triple checked the Betaflight CLI commands.

  Are you sure? yes | no

Bruce Kissinger wrote 12/24/2021 at 02:42 point

I made some progress - now when I use the Betaflight controller, I can use the sticks of my RC Transmitter to change the servo values.  Everything appears to work correctly in Betaflight.  However, the real servos don't do anything.  I can spin up the motor, but the servos don't respond.  I suspect that I may have wired them incorrectly

  Are you sure? yes | no

Jim Morris wrote 02/03/2022 at 12:02 point

One thing I did find, that is not mentioned, is that by default Betaflight is in Acro mode not self-levelling mode. So maybe you need to activate Angle mode which is self levelling and should make the servos react to the angle the drone is at. I also found on mine that the servos were going the wrong direction so this needs to be checked. I have not been able to get it to hover yet as it just careens off into the nearest wall as soon as it leaves the ground.

  Are you sure? yes | no

Ajay wrote 10/28/2021 at 09:48 point

Hello ,IRS SID 3D Printing files can be downloaded from here link https://www.thingiverse.com/thing:4635873 and use arduino as the flight controller and use mpu6050 as a gyro for your copter and use multiwii firmware for your arduino link https://github.com/multiwii/multiwii-firmware and use sg90 servo motor because they are cheap you can also use other servo motors but it should be lightweight

  Are you sure? yes | no

jdoutlaw16 wrote 02/07/2024 at 05:46 point

I am a bit new to building drones, but I like the idea of doing so with an arduino. Is there a schematic you recommend for this project?

  Are you sure? yes | no

IRS SID wrote 08/29/2021 at 04:41 point

Hello everyone. I want to build this project. Where can I get the 3D printing file and flight control config file? 

  Are you sure? yes | no

Benjamin Prescher wrote 08/08/2021 at 16:45 point

Hi folks! Thank you for the good feedback and the links to your YouTube videos. I am very pleased that the project is generating so much interest.

There will be another update soon - stay tuned!

  Are you sure? yes | no

didwjdrl12 wrote 08/03/2021 at 00:55 point

It works really well, awesome! I have made it with Mamba mk2 stack, not external ESC, by modifying betaflight resource configuration.

  Are you sure? yes | no

Juan de Dios Yáñez wrote 08/02/2021 at 16:26 point

Running with an F4 Omnibus PRO https://www.youtube.com/watch?v=gdKQeTG6P9M

  Are you sure? yes | no

Christian Seifert wrote 06/16/2021 at 18:43 point

Hi, i built the drone with the same above mentioned components but i have some issues, during take off the drone flips over. Is there anybody able to publish the Betaflight Config File to restore my config or some screenshots additional to the above ones? 

thanks for your help

  Are you sure? yes | no

Siddharth Kothari wrote 06/06/2021 at 11:05 point

For anyone looking for a version that uses SG90 Servos, here's a remix- https://www.thingiverse.com/thing:4879274

  Are you sure? yes | no

Benjamin Prescher wrote 06/06/2021 at 11:07 point

Thanks for this! This is certainly helpful!

  Are you sure? yes | no

Juan de Dios Yáñez wrote 05/31/2021 at 09:36 point

Hello Benjamin, I would like to replicate your project but that it works with Ardupilot and not with Betafligth, since from Ardupilot with an SBC or an Arduino you can do very cool things. This is the thread on the Ardupilot forum

https://discuss.ardupilot.org/t/singlecopter-of-benjamin-prescher-on-ardupilot/71860

It would be very top to get it to work.

  Are you sure? yes | no

Siddharth Kothari wrote 05/26/2021 at 07:41 point

Firstly, thank you so much Benjamin for sharing this project!

Has anyone redesigned the frame to work with SG90 or SG92 servos or any other models?

ES9051 isn't available in my country, and I'm struggling to tweak the design to work with SG92 servos using FreeCAD. If anyone has any pointers, please let me know!

  Are you sure? yes | no

CastleSeven wrote 04/17/2021 at 15:45 point

It's hard to tell for sue, but in your photos it looks like you've added a wire to your ESC's  'T' terminal? Can't tell where the connections to the Mamba's PPM and RX3 terminals are going.

  Are you sure? yes | no

MoneyBags-XIV wrote 03/28/2021 at 15:21 point

Hello! I've just finished the construction phase of my ball drone MK II project! (Yay!) I am working on getting everything configured in Betaflight, and I'm running into the problem that my servos are not centered even when I am not touching the controls. It's worst on one servo in particular. I can't move the horn on the servo because then the problem is even worse on the other side. Is this a problem with my servos, or with my Betaflight configuration? Is there a way I can calibrate the servos to be centered? Thanks.

  Are you sure? yes | no

Benjamin Prescher wrote 03/29/2021 at 06:03 point

Hi! When assembling the servos, they should be aligned with a centered servo pulse, as described in the build instructions: "Center servos to middle position (with servo controller, or easy sketch: Arduino servo)". When the servos are centered, mount the servo horn. Did you do it like that?

  Are you sure? yes | no

MoneyBags-XIV wrote 03/29/2021 at 23:29 point

Thanks for replying. I did do the servo centering thing while I was setting up my lower ring. The problem seems to be that when I center the servo, the horn will not attach perfectly straight. It attaches pretty crooked on one side, or even more so on the other. Just to be sure I centered it again, but still no luck. Luckily (well actually unluckily) I fried two of my servos with too much voltage, so I have replacements on the way. Like I say only one of the servos poses a real problem. If it is a problem with the servo, I'll just replace it too. Is there any way to re-calibrate the servo within Betaflight, or should I just replace it? Thanks.

  Are you sure? yes | no

Benjamin Prescher wrote 03/30/2021 at 13:14 point

In practice, you can't really calibrate the servo. The main thing is to mount the servo horn in a position that roughly corresponds to the servo's mean travel. It is okay that the servo horn is not completely vertical. Use a 1.5ms servo pulse to center the servo and then mount the servo horn. The rest is done by the control algorithm when flying.

  Are you sure? yes | no

MoneyBags-XIV wrote 03/30/2021 at 22:38 point

Thanks. I didn't know the algorithm would correct for this problem. This is the first drone I've ever built. By the way, it is a really cool design, so nice job. Thanks again. Maybe I'll post a video of my first flight.

  Are you sure? yes | no

tkahou wrote 03/20/2021 at 04:10 point

Hi, thx for such a great sharing at first! When i follow the instruction of mixer modification, i met a problem of coupling:

While i increase RC throttle with disconnected motor (no anti torque, so pid should not correct the yaw rate, thus no yaw actuation)  , yet all 4 rudders output an undesired YAW movement , their swing angles are proportional to RC throttle . BTY  My mixer  and pid are working correctly - roll pitch yaw input with correct direction of rudder output, but with throttle coupling above.  need help thx!

  Are you sure? yes | no

Benjamin Prescher wrote 03/21/2021 at 18:11 point

Hello and thanks for this post. I have also observed this behavior and attributed it to a coupling between Throttle and Yaw in Betaflight software. The drone still regulates itself, currently I haven't paid much attention to the phenomenon. Have you set the PID values and the PID functions as shown in the instructions and on the pictures? I am happy to exchange more details via PN.

  Are you sure? yes | no

tkahou wrote 04/08/2021 at 03:37 point

ya ,thx for replying. My ball drone can fly well  actually  with this phenomenon, as long as i need to be careful on yaw control during take-off , having so much fun with my friends with this ball drone design. thx so much for sharing again!

  Are you sure? yes | no

Chris Drew wrote 02/22/2021 at 16:58 point

Is there a preferred max angle limit for "angle mode"... to prevent tipping over during flight?

  Are you sure? yes | no

Benjamin Prescher wrote 02/22/2021 at 18:04 point

Never checked...

  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