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

Nicola wrote 02/13/2021 at 21:46 point

  Are you sure? yes | no

Nicola wrote 02/12/2021 at 10:35 point

First flight test and I didn't break it :)

https://www.youtube.com/watch?v=ZTP3gONypgM

The only thing is that I have to correct the movement of the yaw with the sticks a lot otherwise it turns on itself. Otherwise I am very satisfied with the result. 

Thanks again for have shared this project!

  Are you sure? yes | no

Chris Drew wrote 01/23/2021 at 17:10 point

  Are you sure? yes | no

Benjamin Prescher wrote 01/23/2021 at 17:43 point

Nice one! Thanks for sharing!

  Are you sure? yes | no

Chris Drew wrote 01/23/2021 at 18:28 point

This has generated a LOT of interest on the Betaflight Official Facebook group :-)

  Are you sure? yes | no

Benjamin Prescher wrote 01/23/2021 at 20:50 point

Haven't thought of facebook and betaflight ^^ Credits are warm welcome - thanks! Would be nice to see a betaflight single copter add-on?! Thinking of something like this before?

  Are you sure? yes | no

Nicola wrote 01/22/2021 at 10:00 point

Hi, this project it's amazing and I would try to build one for myself. It's so beautiful to have one :)

There is a guide or something with all the steps I have to follow or reading here I am able to proceed with the build? For the radio setup the channel are the same as a normal FPV drone?

Thanks a lot for sharing this project!

  Are you sure? yes | no

Chris Drew wrote 01/23/2021 at 12:20 point

I did ok with the instructions here, if you have built drones before you should be OK.
Just get started & let us know how you get on :-)

  Are you sure? yes | no

Chris Drew wrote 01/20/2021 at 16:06 point

On my build the servos jitter like crazy... need to have a look at PWM rate I guess...
I never ran servos on a quad fc before, only direct from Rx.
Also I stripped one while testing so using the spare I luckily thought of getting.

A couple of them don't sit "straight"... the horn only fits on the output  shaft in set position either side of where it needs to be, because of the splines... not sure how to fix that.

  Are you sure? yes | no

Benjamin Prescher wrote 01/20/2021 at 16:47 point

Low pass on the servo might be usefull as explained in the logs! Hope to see your drone up in the air soon ;)

  Are you sure? yes | no

Chris Drew wrote 01/20/2021 at 23:28 point

I already have the low pass set up as per blog...
EDIT: Solved the servo jitter!
It was because I am using analogue not digital servos... set servo_pwm_rate=50 & not servos are super quiet & smooth.
Now I just have to sort the non-centred thing.

  Are you sure? yes | no

Chris Drew wrote 01/13/2021 at 17:04 point

Hi, this is a great project! My build is progressing well, I will be adding FPV and want to put the camera on a tilting mechanism.

For this I will have another servo... I am not sure what I can now wire that to, I asked on Betaflight Official FB group but nobody can help.

I am using the same FC as you, but I am not sure what resource I can remap for SERVO 5...

When I have finished this I want to see how small I can build one... with 16x16 FC & maybe 3" prop, 1.7g servos

  Are you sure? yes | no

Benjamin Prescher wrote 01/13/2021 at 18:49 point

Hi Chris! If you do not want to use LEDs on your drone you should still be able to use the pin for a servo (not tested). I hope we see a picture of a smaller drone version! Best Ben!

  Are you sure? yes | no

Chris Drew wrote 01/13/2021 at 22:40 point

Oh I am definitely using LED strip for LEDs, hence the question.

Also, you mention daisychaining the LEDs, I was planning on doing that, at the top of each strip... but did you then take +5v & GND for servo power from the pads at the bottom of the LED strips?

  Are you sure? yes | no

-Brian wrote 01/08/2021 at 05:06 point

  Are you sure? yes | no

Benjamin Prescher wrote 01/08/2021 at 07:31 point

This is great video documentation and enriches the course! Thanks a lot for this.

  Are you sure? yes | no

Sergey Zhushev wrote 12/17/2020 at 16:03 point

Hi! I am trying to repeat your project with my own adjustments on other details. Please, do you have a wiring diagram of all the parts? I do not understand where the receiver and esc of the motor are connected.

 Thanks!

  Are you sure? yes | no

Benjamin Prescher wrote 12/17/2020 at 16:12 point

Hi Sergey. The wiring depends mainly on your flight controller. I don't know which one you are using. Wiring diagrams for various flight controllers can usually be found on the Internet. I didn't create a diagram myself. Thanks for asking!

  Are you sure? yes | no

Sergey Zhushev wrote 12/18/2020 at 15:30 point

Hi Benjamin! Thank you for your quick response! I think i understand your scheme. The output of the receiver goes to SBUS, and the output to ESC with PPM. Right?

  Are you sure? yes | no

Benjamin Prescher wrote 12/18/2020 at 15:45 point

Hey Sergey. Since the request for a schematic has already come in several times, I'll likely submit it later. First again: Receiver -> SBUS / IBUS. The servos are attached to motor 1 to motor 4, respectively. What is behind this is also listed again in the project log "resource mapping". The wiring of your flight controller should be clear? https://www.rctech.de/media/catalog/product/optimized/d/b/db289e85b895ee26ac1444721c4f5dd1/5020_1779x1221.jpg

  Are you sure? yes | no

Sergey Zhushev wrote 12/20/2020 at 07:47 point

Hi Benjamin! With your help, I figured out the connection. I'm using a MAMBA F405 mini MK2 controller. I hope to provide a photo or video of my design soon)

  Are you sure? yes | no

Benjamin Prescher wrote 12/21/2020 at 09:05 point

Perfect! I am glad to hear that! I'm looking forward to videos or something similar!

  Are you sure? yes | no

Rollingframe wrote 12/12/2020 at 13:38 point

Hi excellent project I'm building it myself for work we work with drone acoustic technology and this would be exciting to see how it would perform.  Do you have schematic for wiring, vit confusing with servo and which is connected to what motor port 

  Are you sure? yes | no

Benjamin Prescher wrote 12/18/2020 at 15:47 point

Since the request for a schematic has already come in several times, I'll likely submit it later. Thanks for asking! Is there a link to your work and the "acoustic thing"? Sounds interessting ;)

  Are you sure? yes | no

Alberto wrote 12/07/2020 at 10:43 point

Hi! Very nice Project!
I'd like to make one but I'm new to the RC world.
I've searched for the  STORM TL2306 but I can't find it, can you provide an alternative?
With your setup, how's the flight time?

Thanks a lot!

  Are you sure? yes | no

Benjamin Prescher wrote 12/18/2020 at 15:40 point

A "Racerstar 2306 BR2306S" should work fine for e.g. Many comparable models can be found on the market. The speed and the diameter (affects the torque) should be similar.

  Are you sure? yes | no

-Brian wrote 12/04/2020 at 17:05 point

I have printed the files, assembled the frame, centered and installed the servos, mounted motor & prop, and getting ready to install some LEDs and the ESC. Still waiting on my Flight Controller to arrive. Is the buzzer the front or back of the drone? Any chance you could describe or post a picture of the servo motor order? Trying to figure out which servo/motor signal wire goes to which servo and corresponds to which signal wire on the flight controller, so when my FC shows up I can make the final connections. Does E1 on the FC go to the back servo or the right servo? Also do I solder a wire to the 'T' pad on the ESC? Guessing that is the ESC telemetry....   Thanks for any help you can provide on clarifying the connections/wiring. Can't wait to fly this Ball-Drone!  

  Are you sure? yes | no

Benjamin Prescher wrote 12/05/2020 at 08:29 point

Hi Brian!

Q: Is the buzzer the front or back of the drone?
A: Orientation depends on how you position your flight controller on the frame. In most cases there is an arrow on the PCB silkscreen which defines "front". The alignment could certainly also be changed in the Betaflight configurator.

Q: Does E1 on the FC go to the back servo or the right servo?
A: The servos can be attached to the FC in any order. The assignment can be adjusted via "CLI Commands" and resource mapping. In the end, the drone must show the following behavior: 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.

Q: Also do I solder a wire to the 'T' pad on the ESC?
A: Yes, this seems to be the ESC telemetry. This is not needed but gives some extra features in betaflight.

Hope this helps! Check out some betaflight videos on youtube and have a look at the videos I linked in some projekt logs! Best - Benjamin

  Are you sure? yes | no

brian wrote 11/23/2020 at 01:03 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

Benjamin Prescher wrote 11/29/2020 at 10:43 point

Hi. I don't have any more videos. I've already thought about YouTube, but I'm not there yet. ;)

  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

Alberto wrote 12/08/2020 at 12:50 point

Do you think PP could support the weight?
I'm asking because PP it's indistructable.

  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