Take off with just one propeller!
This 7.4 inch drone flies with only one propeller and is controlled by 4 air vanes!
Single rotor, "singlecopter", selfmade drone with air vanes for position control as a full remake of the Ball-Drone Project
To make the experience fit your profile, pick a username and tell us what interests you.
We found and based on your interests.
This 7.4 inch drone flies with only one propeller and is controlled by 4 air vanes!
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!
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!
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 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!
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:
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
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
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
If you have already set up the drone, connected everything and also implemented the configuration, then your drone should behave as follows:
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!
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.
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!
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 ...
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
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.
Create an account to leave a comment. Already have an account? Log In.
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?
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!
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
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
I reconfigured the flight controller and used another output for an ESC.
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?
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.
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.
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
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.
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
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?
Hello everyone. I want to build this project. Where can I get the 3D printing file and flight control config file?
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!
It works really well, awesome! I have made it with Mamba mk2 stack, not external ESC, by modifying betaflight resource configuration.
Running with an F4 Omnibus PRO https://www.youtube.com/watch?v=gdKQeTG6P9M
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
For anyone looking for a version that uses SG90 Servos, here's a remix- https://www.thingiverse.com/thing:4879274
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.
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!
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.
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.
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?
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.
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.
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.
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!
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.
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!
Is there a preferred max angle limit for "angle mode"... to prevent tipping over during flight?
Become a member to follow this project and never miss any updates
By using our website and services, you expressly agree to the placement of our performance, functionality, and advertising cookies. Learn More
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.