SingleCopter of Benjamin Prescher on Ardupilot

Hi everyone, I am trying to make the singlecopter featured by Benjamin Prescher on Hackaday https://hackaday.io/project/175512-the-ball-drone-project-mk-ii but working with Ardupilot.

I never made a singlecopter and I still have a lot to learn to make it work, so I share data so that more members of the forum are encouraged to assemble it and try to make this work.

My progress so far is as follows, watch the video: https://www.youtube.com/watch?v=Q6_lkOrbY-g


It still does not respond as it should, the thrust motor seems uncontrollable, it maintains a high speed that does not respond to the transmitter, and the blades do not know if they work as fast as they should, parameters will have to be checked. I have followed the documentation at https://ardupilot.org/copter/docs/singlecopter-and-coaxcopter.html

Components for Ardupilot compatibility:

I await your answers, advice, and if you dare to carry out the same project, GREAT, a more detailed guide to the process could be carried out later, and improve the design, where a server has more control.

2 Likes

Cool, a new single copter friend ! ^^

Canā€™t help you much more than basic advice for your main motor (calibration, pin 5, stabilize flight mode ā€¦ ?). You seem to have some experience so I assume youā€™ve already done that and checked the logs.

For the flaps some of them could be reversed (ones pointing at the camera), not sure though. The response when rotating the copter doesnā€™t seem that wrong, test the yaw first because itā€™s obvious when something is wrong with it. (from memory) Most of the Pitch/Roll correction from the flaps will be visible when the copter has a rotational speed. Also the copter sits on the table armed for quite a while, so some of the I from the PIDs could make interpreting the movement difficult, you can set I to 0 and test without.

Hello,

I donā€™t know how well Motor test will work since the motor is on Servo5 and not in its usual pinout, due to it being in SingleCopter, but can you try and use motor test to send different throttle (5% or 10%) to the motor?

More info here: https://ardupilot.org/copter/docs/connect-escs-and-motors.html?highlight=motor%20test

Also, have you calibrated ESC?
https://ardupilot.org/copter/docs/esc-calibration.html?highlight=motor%20test

Now that you mention it, it is possible that I miscalibrated the ESC. At first it worked correctly even when it was connected to pin 5, in that aspect there was no problem.

This weekend I will try to correctly calibrate the ESC, and verify the movement of the blades. I will attach video in case someone wants to replicate the project.

Every question gives new ideas, thanks friends.

1 Like

Hello everyone again, i think iā€™m starting to see the problem, i comment:

Indeed the ESC was poorly calibrated, it is a T-Motor F35A BLHeli32 Dshot1200, the curious thing begins now. In singlecopter the ailerons are configured as motors, but they are servos, so if the protocol is PWM everything is fine, but if it is Dshot they no longer work, and the thrust motor does.

I donā€™t know if it is possible to choose a separate protocol for the motors inside ArduPilot, servo_protocol for the thrust motor in Dshot and servo_protocol for PWM ailerons. That would be a solution to implement.

The alternative is to use an ESC that runs under PWM. Iā€™ll see if I can find one, and check if that would be a solution.

On the other hand, could someone give a more concise explanation about what should be the movement of the ailerons according to pitch, roll and yaw?

You can have different protocols on outputs but within timing groups they have to be the same. So, here is the ouput info from the Omni F4 Pro Hwdef file. Note the outputs and timers:

Put Dshot on one timing group and PWM on another. Read thru this Wiki for how to configure that with available parameters:
https://ardupilot.org/copter/docs/common-dshot.html

Hello everyone, after not a few tries and tests the drone pot flies! The next step will be to implement it in ArduPilot already with an appropriate ESC and a specific design to be able to incorporate GPS and other systems. At the moment working with Betaflight on the Omnibus F4 PRO. I donā€™t like that this board doesnā€™t have a magnetometer.

Itā€™s so exciting to see it finally behave like something weā€™re used to, Iā€™ll keep updating this thread.

Youtube video list: https://www.youtube.com/playlist?list=PL1e9DDIthgkMxpniqtz04Y2d9gApxDn4O

Youtube video flies: https://www.youtube.com/watch?v=OAWIOHJ7dGU

4 Likes

Congratulations! Very cool!

Running an F4 Omnibus PRO, the next step will be something new with ArduPilot.

The conclusions for new ones who want to make this model is that it is very unstable in the wind, the center of mass is too high. But itā€™s a lot of fun! thatā€™s true.

Use a T-Motor VELOX V2306 at 2400kv, otherwise I am sure it will burn it out. I burned the first engine, the latter is doing very well.

With Betaflight I have achieved 7 minutes of real flight with a 1300mAh 3S LiPo battery. Here is the last video of this design:

3 Likes

Great job ! Iā€™m excited to see what will happen with Ardupilot on it.

The conclusions for new ones who want to make this model is that it is very unstable in the wind, the center of mass is too high.

Be careful to not fall for the pendulum fallacy by saying that. The height of the CoM does not impact stability much, and higher (further from the flaps) is better for the single copter frame (creates higher torque). If you had something else in mind, Iā€™d be interested to here what causes the higher instability.

1 Like

I have also built one of these Benjamin Prescher mono copters. I initially used betaflight but due to my really bad flying skills I needed to add althold mode so switched to ardupilot. I just completed my first flight using ardupilot, and it went pretty well. Although due to the wind it kept getting blown off course and I was unable to correct it so had to dump it several times in the long grass. I am working on improving my flying skills by using a simulator and I bought a small quad which uses the same transmitter to learn on. I think the Alt hold will help me a lot once I get it working properly as then I can just concentrate on hovering in one place using pitch and roll and not have to also control the throttle.

I have certainly learnt a lot and am now fully addicted to this hobby. Building this monodrone as my first experience probably wasnā€™t the smartest idea, and now I realize there is so much to learn (motors, props FCs, ESCs etc etc).

I 3D printed initially with PLA, but every time I crashed, the top frame snapped around the motor. I then tried PLA+ and super tough PLA, but it always snaps at the weak spot where the spars join the center motor mount. I am currently redesigning this top frame to beef up that area. (Iā€™ll stick it on thingiverse if it works).

I used a recommended motor eventually after failing to get it to work with some cheap 2212 2240Kv motors, I ended up using Racerstar Racing Edition 2306 BR2306S 2700KV and gemfan 6042-3 props, this seems to allow it to hover at about mid throttle with 3S 1300mAH batteries.

As I was trying to do this on a budget I used an Olimex STM32F405 board I had lying around and made some PCBs to handle the connections to the servos and external sensors. As I am an experienced micro programmer I had no trouble building Ardupliot for this custom platform. (although if I ever get it to fly reliably I may splash out on a real FC).

Iā€™m hoping the next flight, when there is no wind, may stay in the air for more than a few seconds :slight_smile: I did notice that when I tried to roll away from the wind it got unstable, probably was saturating the servos, I have a log recorder so I need to analyze those logs. It does like to drift in various directions even without wind.

I used 2lian PIDs to start with, but would certainly like to see if anyone has well tuned pids for this model of monocopter. I canā€™t keep it in the air long enough at the moment to reliably tune them.

Anyone else using arducopter for this monocopter?