Sunday, April 4, 2021

Build and Operation Alternatives

CC3D Flight Computer

CC3D has a helicopter graphical configuration interface, and we use its default servo sequence,
  1. first servo on the front
  2. second on the right
  3. the third on the left
, when looking down on the craft from above. This sequence, as well as the default 50/50 sharing of servo travel between collective and cylic controll, are also used in our FD411 configuration.
The common alternative "3D" hobby helicopter collective pitch curve is shown as picure-in-picture here. This common alterative pitch curve can be used with F411 as well.
The entire CC3D configuration UAV file is downloadable here.

CC3D can have different PIDs for all 3 different modes, as illustrated in the diagram on the right in comparison to Betaflight.  Betaflight has a single set of PIDs permeating all flights, and the 3 modes tuns on/off/mix the sensor/control inputs. 
The actual PWM width (microsecond) side-by-side comparison as received and interpreted by the flight computer are
FD411       CC3D   
(-100.0+100)/200*(2011-989)+989 = 989
(   0.0+100)/200*(2011-989)+989 = 1500
( 100.0+100)/200*(2011-989)+989 = 2011
   (-100.0+100)/200*(1810-174)+174 = 174   
   (   0.0+100)/200*(1810-174)+174 = 992
   ( 100.0+100)/200*(1810-174)+174 = 1810

CC3D versions higher(exclusive) than 16.09 has an alternative configuration to give stabilization precedence by arming the craft. But, we should not use it because we should not rely on transmitter disarming the craft to go into passthru-manual mode for swashplate maintenance. Remember, checking swashplate leveling is needed after each hard landing and servo arm clutch slipping/re-positioning. Also, 16.09 should be used because higher versions are underdevelopment. It is downloadable here, and it requires Windows10. 

The craft is created by human and is equal to human, and it should be able to have a working mode that does not rely on human operated transmitter. The transmitter should be able to lose power at any time, and the passthru-manual mode should be fully functional. You may be tempted to workaround this problem by setting the craft to disarm itself whenever the transmitter loses signal, but this endangers the flight recovery after a brief signal loss because the disarmed craft will need re-arming midair to regain motor power, and re-arming loses the precious time in the middle of a crash landing. Humans created machines, but that doesn't mean that humans are superior to machine, and neither does it mean that machines are superior to human. 

In the case of using arming to enter stabilization mode, the craft can not have swashplate maintenance once the craft has been armed after bootup; in the case of using independent aux channel to enter stabilization mode, the swashplate can be centered for checks and adjustments any time when transmitter is powered off. It is better when humans and machines can be independent of one another. And that is the setup of both the build note's betaflight dump and CC3D UAV configuration.

The terminal speed diving with CC3D with PIDs conversion for CC3D is here in the video. 

It is well known that servos accept PWM range 1ms to 2ms, or 1000us to 2000us. But, the consensus is that manufactures specify margin of error of 250us, while the signal differs less than 115us , typically below 50us, between CC3D and ESC when viewed in BLHeli configurator. 

CC3D flight computer also needs 3 layers of clear mounting tape at the front and 1 layer on the back, and another temporary scaffold strip on the craft's electronics bay floor rear edge. Fold the frame edge strip inward to affirm the attachment. 1 square inch of the mounting material is enough for either CC3D or F7Nano. 

There is no jig with CC3D because the CC3D Atom board is quite narrow, giving a large gap between the board and the frame wall. The first stage of the mounting only sticks the adhesive of the rear mount. Only peel off the backing of this adhesion at the first stage. The actual mounting pushes the USB plug against the inner wall of the main frame cavity while lowering the board gliding on the servo leads pressed onto the frame edge strip. The vertical strip's backing should stay on the mounting tape so that it allows slide freely until the rear mounting strip touches down on the cavity floor. The front mounting strip's backing film is not yet removed at this time, as pictured on the left. If the CC3D board is not aligned properly, abort the operation to replace the rear strip to start over. If all is aligned properly, continue on to the second stage of removing the backing film and mounting the front.

To configure the ESC, we use Omnibus F4 computer's passthrough USB-to-UART connection. And we use BLHeli configurator on Chrome browser. The configurator is not listed in chrome web store, instead, google it "chrome web store blheli" and add it. To access USB tty device, chrome needs to be restarted as root user with command "google-chrome --no-sandbox", then browse chrome://apps to start the app. Alternatively, run chrome as regular user and
# chmod 777 /dev/ttyACM0
Safety precaution dictates that ESC battery power should be applied last after all connection/software are set up, and ESC battery power should be first one to be torn down after any configuration/software flashing. With that in mind, power on Omnibus computer by connecting micro USB cable, connect only the tail ESC's signal cable to a PWM out header of computer, which is on the 2nd to 5th rows. Start the app and click "Connect" with default baut rate and auto-detected tty port. The computer now goes into USB-to-UART adapter program. But, wait, there is sometimes a 1-minute delay for the program switch to occur. Now connect ESC's craft battery power, then click "Read Settings" to actually connect to the ESC computer. If the "Read Settings" button is not available, it is still in the 1-minute period. After flashing ESC, tear away ESC's craft battery power plug first, as the safety precaution. Then tear down software/other connections. If you don't tear away the power, when the program switches back to Beta Flight computer, the motor will spin up to compensate craft attitude orientation as a quadcopter motor.

And, the difference between factory uav file and operating uav file is the 3 lines of 3 servo PWM ranges, plus 1 line difference of CC3D serial number. Example,
test@galliumos:~/Downloads$ diff Converged-IoT.uav /home/test/dive.uav
<         <hardware serial="000000000000000000000000" type="3c" revision="a5"/>
>         <hardware serial="54ff6b064883545328241887" revision="2" type="4"/>
<             <field values="2000,1000,2000,1000,2000,2000,1000,1000,1000,1000,1000,1000" name="ChannelMax"/>
<             <field values="1500,1500,1500,1000,1000,1000,1000,1000,1000,1000,1000,1000" name="ChannelNeutral"/>
<             <field values="1000,2000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000" name="ChannelMin"/>
>             <field values="2057,1075,2000,1000,2000,2000,1000,1000,1000,1000,1000,1000" name="ChannelMax"/>
>             <field values="1565,1575,1500,1000,1000,1000,1000,1000,1000,1000,1000,1000" name="ChannelNeutral"/>
>             <field values="1057,2075,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000" name="ChannelMin"/>

And the PIDs, already configured with our production Converged-IoT.uav is as the following screenshot. CC3D setting attitude mode response at 180 degrees, which is the maximum, means that full elevator stick will pitch the craft 90 degree vertical relative to the ground. Rate and acro+ modes response 1000 degrees/s is the maximum in the "Insane" responsiveness region. All those mean that CC3D has full unlimited control of the craft, and the transmitter needs to scale it down or stipulate it for human piloting, like the  exponent setting in the following picture.

We have to keep the CC3D internal arming signal high during failsafe, just like betaflight.

Transmitter Setup Wizard 

Betaflight does not have a wizard for transmitter setup, and the throttle low limit is the same as other channel's low limit. We manually set all channels' low PWM to 989us even though they can produce 988us PWM because arming code dictates that throttle needs to be lower than the channel's low limit. In LibrePilot wizard, the Collective input value is not isolated when the wizard collects Throttle input value, resulting in a mix-up of the 2 inputs. Our production Converged-IoT.uav has the fix. It was fixed by manual entering channel numbers after wizard finished its work. The arming dictates that throttle channel needs to be no higher than, neutral level PWM, but low limit needs to be lower than neutral. Librepilot has individual channels' low limits, so, we set low limit to 0 to satisfy the second condition. And we set the neutral to 174 because the throttle output to ESC is scaled from neutral to high. In either case, setting the throttle point closest to actual TX signal's low point gives most precise RPM output.

Flywoo F745 Nano Flight Computer

The F745 flight software fixes the "twitch" problem of F411 software at bootup. Due to some difficulties, the fix in the F745 software has not been merged into F411 software from version 4.2.0 through version 4.2.5, so each hardware behaves in its own unique way. The source code of 4.2.5 may show the branching between F411 and F745 of the difficulties.
When fixating the wires, avoid anchoring into the crevasses between the components because the stiff wires can easily damage the components as illustrated in the picture above on the right. Each wire should be anchored by 2 points on the board to prevent ripping the solder pads. The first anchor is the threading through the tight exit holes.  For GPS and RF receiver wires, the front wholes are the second anchor. Camera, VTX, Main M1, VBAT-, and S4 wires are glued to a chip flat surface as the second anchor. VBAT+ solder pad is too close to the fixture hole for effective glue anchoring, so its wire uses one extra loop-around on the exit hole as the second anchor. 

As pictured on the right, each board fixture whole is capable of allowing seven 1A (26 AWG) wires through, or five 1A wires plus 3 thin servo signal wires. As pictured above, the F745 does not have the flat surface of JST 1mm socket like that in the F411 board. So the rear mount is 3 layers of the clear mounting tape perforated by the array of signal output, with an extra layer of narrow strips front and aft the array of pins. The front mount has a piece of paper to cushion the barometer hole to prevent air sealing. The rear 3 servo signal points are soldered in-place after the board is mounted.
Use the F745 software version 4.2.5 with this configuration .
The Main M1 signal wire appears inadequately short in the pictures due to the alternative fixating of the wire through the bottom side of the board. It should have been on the top side, and there is a good anchoring area on the OSD chip on the top side. Also this alternative fixating makes eight 1A wires through the fixture hole, which is exceedingly tight and a difficult work.

Spoolup collective pitch angle can be tuned to a smaller angle 

But, wait, during spoolup, the flight mode is manual, the tail motor does not spin, so some negative collective, say -15 points, is required to produce friction between landing skid and the ground to prevent tail spinning. Remember, zero collective pitch doesn't mean zero torque. 
Also, if you tune it to very close to 0 points (0 degrees), say -1 point, betaflight min_check=1386 configuration needs to be raised to min_check=1500 , so that the craft can arm. Remember, whenever RF transmitter is turned on, the -23 points, or, the new -1 point, is activated. And you need to arm the craft at this -23 points or -1 points that is lower than min_check . However, if you actually set min_check to 1500, any slight touch of ANY stick toward low position triggers the stick command(s) as the first picture below because min_check applies to all sticks.
One possible solution for allowing near-zero-collective-pitch-spoolup is to enable computer stabilization during spoolup and disable stick functions all together. But disabling stick functions requires modifying source code of betaflight, and enabling computer stabilization on the ground defeats the purpose of the spoolup-manual mode. Another possibility is to set up the throttle channel 1 as the main motor PWM RF signal, but the flight stabilization features that are based on throttle channel 1's variation, such as "TPA" and "TPS", can not be used because the helicopter's main rotor RPM is a constant during the flight. 
From safety stand point of view, the negative spoolup pitch should be as far from the stick center as possible; from the operation stand point of view, the stick should be as close to the neutral collective pitch as possible.
The only viable possibility is to physically dial up the servo clutch so that PWM 1385 is the neutral position with zero collective pitch. And such alternative needs the collective pitch curve shifted down as above second and third pictures, but still the near-zero-collective-pitch-spoolup's tail spinning problem is not solved.

It is possible to have complete motor shutdown with disarming.

The RPM mixer at channel 5 can have another mix that sets channel 5 to zero with arming switch down. We may think that this is an advantage of a single switch stopping motor. But, remember we are trying to prevent disarming by requiring switch C to be low to disarm. So, there is no such advantage of a single switch stopping motor. But how about split the concept of disarming from the concept of zeroing channel 5 output? That will require logical switch, which complicates things when the pilot can't even distinguish disarming from engaging acro mode, which is why we need a guard against disarming in the first place.

With all this pain, why not remove all guards against disarming

The answer is the progressive mixer setup. Remember we start out with only 1 mixer page that has no guards of any kind, and the craft needs to be hand launched. To allow taking off from ground, switch C is added to channel 6, channel 1 gets one more page and becomes sensitive to switch C so that craft can't lift off without flipping switch C, and channel 5 gets one more page for constant RPM flying. The disarm guard doesn't have to be added at all. 

So, how to quickly stop motor power in emergency

There is only one way to do it that is flipping switch C to up and lowering throttle stick to bottom, 2 steps. What is the point of making emergency stop 1 step harder and disarm also harder? Remember, disarm mid-flight for helicopter is unrecoverable emergency. Emergency stop is not a guaranteed bonus when damage is already likely.

Reexamining unrecoverable emergency statement

If split the concept of disarming from the concept of zeroing channel 5 output, unrecoverable emergency becomes recoverable, right? Right and wrong at best, and wrong in any practical sense. The disarm opens the can of worms of stick commands, and stick commands can not be disabled in current software market. The unrecoverable can only become unpredictable at best, not become recoverable. Now, to re-arm after disarm will put the craft in a truely unrecoverable situation: to re-arm, switch C needs to be up to keep throttle channel 1 low and collective pitch negative 23, and at this point the negative collective pushes the craft to the ground and tumbling due to disengaged computer stabilization with tail spinning. The best after an accidental disarm is to remember, if recalling any thing is possible at all in that situation, stick commands are less likely engaged with touching only one stick at a time. All these discussion highlights the importance of the guard against accidental disarm.

It is possible to automatically disengage pilot's RPM spoolup

We can use a logical switch in the RF controller to automatically switch on the accelerameter(attitude) mode as soon as the throttle goes higher than -26 (74 out of the 200 points) of 1/4 throttle stick position. But this means that accelerameter(attitude) mode can be downgraded to manual spoolup mode during flight when throttle stick is lower than the 1/4 position. This is due to the fact that logical switches don't have direction awareness whether a craft is taking off or landing. So, pilot needs to be trained to avoid lowering stick to lower than 1/4 position when the craft is in the air in attitude mode in this alternative setup, which can be difficult. One possibility is to use a manual mode throttle curve that reaches spoolup at 1/8 stick. But, still, pilots needs the extra training to avoid lowering stick to 1/8 position. And, the 1/8 position spoolup makes the stick very sensitive to the touch during spoolup. 

It is possible to tune the spoolup sensitivity

The 1/6 position full spool up can be changed to 1/8 position with the 9-point throttle curve, which the rotor RPM becomes very touchy and sensitive. The 1/6 position can be reverted to original 1/4 position to lower the sensitivity. But, if you combine this 1/4 position configuration with automatically disengage pilot's RPM spool up, the pilot needs to be trained to always hover the craft with higher than 1/4 throttle stick position, which can be difficult. 

Kalman Filter

Neither HGLRC FD411 nor CC3D has the main development branch with Kalman filter. Frequency domain analysis is still the mainstay in the foreseeable future. This is false alternative.

Battery Pack Alternatives

The crazepony batteries are lighter, so the bottom pack is pushed forward aligned to the top pack to balance the CG. One charging terminal has the inner end ground to narrow the width to allow combining the 2 terminals for charging. Another charging terminal has one lead taken out of the terminal before grinding the terminal. The 2 packs are joined by the trimmed powering wires, not the charging wires. 

The GNB packs are heavier, and the bottom pack is pulled back. Also the GNB's power wires are shorter, so the top pack needs to have the joining red wire preserved to length to match the lower pack's ground wire.
The GNB packs are 1mm taller. And the lower jaw of the battery cage needs to be ground 45 degrees at the opening. When the back is installed into the battery compartment, the upper pack is stopped at the wall stud on the inside of the main frame. The pack build uses 18cm of clear tape.

 The XT30 connector can be substituted with EC2 connectors

 without adding weight, but EC2 needs clamping tools. 

For the FrSky XM Plus receiver with a repairing replacement antenna, 

the replacement is about 1 inch longer and it coils around the boom stick for 1 turn. 

The screw retainers design

This should not be used because the loose screw retainer results in the following crash video. The punch-up was unusually weak, the shaft was free-spinning in the rotor hub's hub when the dive has a sudden elevator-down indicating the hub shifted. 

After the crash with the screw-on retainer, the hub is found to be free rotating, and the shaft has been ground thinner by the retainer screws. The following picture's green line is the original retainer screw's position. The red line marks the new elevation of the retainer screws after the crash
The repairing requires that the shaft be evenly thinned around the fault point as shown in red circle in above picture so that the retainer screws will not slips to the thinned area by previous damages. Failure to smooth out the repair surface results in more slips and failures in the following video.

All in all, screw-on retaining hub is not to be trusted. Bolted-in hub is the way to go.

Using Servos With High I-Gain

The high I-gain of the E-Fligh S-60 slows servo response time to gain precision.
For terminal speed divings that need fast PID loops adjustments, the solution is to use 194% P gains in CC3D to buy time for the servo in a dedicated, special "dive mode", which should be meticulously applied before the diving or during the long dive by turning the the switch lever to the middle position. The diving with the S-60 servos is the video below. The pilot needs to be trained to flip the mode switch all the way down back to normal acro mode between 0:28 and 0:30 to produce a seamless video. Because this switching has a very small window time, the normal acro mode is set up to be at the low extreme end of the 3 position switch in the Converged-IoT.uav , so that the switching back action can be swift.

Alternatively, the video with extra 94% gain with vibrations can be edited out post-production, as the following, 

The option Spektrum H2070T servo does not have the high-I-gain problem and is fully compatible with Emax 9051 servo, as shown in the video here,

High wind landing is often risky. 

In the above landing approach, I first tilted the head of the craft down so that I could see obstacles around the landing patch on the ground. I continued to keep the head down so that the camera points toward the ground from 0:12 to 0:22 while descending. I ended up facing wind and away from the landing patch because the wind is blowing toward the fence. I flew blindly because I was facing away from the fence and landing patch from 0:22 to 0:30 during final approach. I ripped off the FPV goggles at 0:32 to try to land line-of-sight, but I didn't have the training to fly LOS when the craft flies toward me at the landing target. I was disoriented at 0:37. It crashed.
The appropriate approach planning should be exercised to reduce the risk of landing in high wind as the following table.
This is the most favorable condition. Same with landing an airplane. The head wind slows down the craft. The craft elevator tilts downward to resist the wind. At the same time, the FPV camera points toward the ground for clear view of obstacles.

With crosswind, unlike an airplane, the drone does not need to change approach heading because the drone flies side ways just as fast as flying forward. So, the craft tilts side ways and forward at the same time  FPV camera points toward the ground for clear view of obstacles.

With tailwind, without changing approach heading, the craft needs to tilt its head up, pointing FPV camera toward the sky resulting in blind landing. If the pilot heads toward the wind to tilt the FPV camera down to see the ground, he is facing away from the landing patch flying backward blindly as seen in previous crash landing video. The solution is to change heading and convert the tailwind to cross wind. The field of view of the camera only approaches 180 degrees and less, so the side way approach needs a slight forward movement, and the craft lands slightly off the landing target.

With tailwind and slight crosswind, the heading should be perpendicular to the wind and heading toward the crosswind component of the wind. The landing target is with in the field of view of the camera. The craft tilts toward the ground to resist the crosswind at the same time the FPV camera points toward the ground for clear view of obstacles.

When crosswind mixed with headwind, no heading changes needed because there is no tailwind component to force the pilot to tilt the craft and the FPV camera toward the sky. This is the first and second condition combined. And not heading change needed for either component of the wind.

Voltage Monitoring Alternatives 

It can be inferred in the following video that Caddx Turtle's voltage OSD shows the voltage is floored to the nearest 0.5 volt. The 10+ second dive starts at 3:59 , and the on-board HD video here,
  However, either Caddx Turtle or Runcam Split's voltage range is 10-13V. There is no 4S voltage monitoring.

Terminal Speed Diving And High-G Pull-Up With 3S

On pull-up, with pre-prototype build of 3S battery and diving at RPM 2607, pull-up with maximum 1666us PWM on ESC and full pitch, airfoil operates as the following diagram.
The 34 degree effective collective pitch has extremely high drag results in collapsed RPM. The airfoil operating point moves towards the wrong corner of the lift curve never to recover the RPM. Crash experiments below with 2 incidences, the first dive starts at 1:00 mark.  In either case, full throttle is applied at the same time of leveling the craft by virtue of high-velocity pitch-up mechanism.

A workaround for the weak power plant is to maintain the diving collective pitch for a few seconds,  after angling the craft for pull-out. as the following airfoil operation diagram.

In such a self-imposed flight-envelope, at 23 degrees effective angle of attack, the lift slows down the descent enough that the airfoil operating moves to the normal operation region, as the following video, which holds back throttle for 3 seconds at the bottom of the dive after leveling the craft to horizontal. This dive still used RPM 2607.

And with RPM 2607, I can only eliminate the swinging motion by diving with 20 degrees off the vertical line. Terminal vertical speed is 20m/s, as seen in urban diving video, which is significant to the rotor head wind speed, at 42%, 20 to 48 m/s that is calculated in build notes.

The comprehensive solution is a 3-part solution, 
  1. 4S battery pack for diving. This eliminates most problems between power plant and the operating curve of airfoil.
  2. Use cyclic to level the craft, not collective. Collective leveling just means to prop wash the PID loops, which the resetting in video looks ugly. Cyclic-then-collective sequencing gives craft a chance to slow down before the next move.
  3. Use RPM 3125, as implicated in build note, to reserve more kinetic energy against the effective pitch resistance. The higher RPM also beats down the terminal vertical speed slightly better, 56 to 20 m/s . And you got highly vertical and high precision dives.

Alternatively we tie the SC switch up position to the spool-up throttle setting with the channel 6 SC switch as the picture below using a logical switch to stipulate the maximum spool-up throttle setting of -27. The -27 point gives the accelerameter-attitude mode RPM.

The to automatically changing from passthru mode to gyro-accelerometer mode during takeoff is to make the pilot do the change. This means to add the following 4 OpenTX mixer configurations, 
  1. Collective pitch suppression in passthru mode This is what prevents a takeoff at passthru mode This is not used in the automatic programming because the automatic swithcing happens at very small collective pitch
  2. Tail power proportional to throttle in passthru mode This is not used with automatic programming with multiple betaflight profiles. But this is used also with single betaflight profile.
  3. Fixed RPM for accelerometer-attitude mode This is not used in automatic programming because the same swith C position is used for both spool-up and acc-att mode, which means that as soon as throttle position is below 1/8 , rotor spools down.
  4. Arming guard This is also used with automatic programming
The problem with non-automatic programming is the point 3 configuration. Point 3 configuration allows accidental RPM jump when the pilot learns that the switch C needs to go up for the craft to takeoff, but he/she can flip the switch C before the spool up, resulting in tip-over. We may argue that the pilot may just as well accidentally pushes the throttle up so quickly that the craft also tips over. But the human brain is customed to analog control, meaning that it hard to form habit of flipping the switch C just before takeoff than to form the habit of pushing the throttle slowly. 

We may wonder if the accidental RPM jump can be prevented by checking if RPM is already full speed before accelerometer-attitude mode can enter, but the OpenTX logical switch has no such condition of changing switch position to middle. Instead, the condition can only be the middle position itself. Now, if middle position means to have accelerometer-attitude stabilization only after spool up, and at the same time collective pitch becomes curve-defined, this entire manual programming becomes tuning in the field because the throttle point at which the stabilization is engaged determines the amount of tail wag and rotor wobbling.  Is it desireable to have field tuning? Or have a optimized build for consistent operations? 

We may argue that we can program point 3 to have a curve from zero throttle to fixed RPM when switch C is flipped on. But then this is becoming an quasi automatic programming. Further more, if this quasi automatic programming does not allow acc-att mode in craft during the rise of throttle to prevent the capsizing problem, this quasi automatic programming becomes fully automatic. But, if this quasi programming allows acc-att mode, the capsizing problem of other helicopters becomes the problem of this craft, meaning that our helicopter has the same ubiquitous problems as others.

Re-examine Statements About Engaging Stabilization

"So, the OpenTX transmitter should engage a stabilization mode before the takeoff." - Operating Notes
Is that statement true? What if I spool up the rotor but keep the craft on the ground just to go through some check lists by keeping the collective pitch very low or zero? 
The answer is that you are adding manual controls that the programming can't handle without requiring 4, 5 modes. For example, you may want to disable just the I-term , but that becomes the 4th mode. And you may want to enhance the tail I-gain while loitering, and that becomes 5th mode. 
The core of the problem is whether engaging the full PID while the collective pitch is so low, nearly zero, can capsize the heli. If the answer is no, the statement is very true, and the solution is very simple. If the answer is yes and no, meaning the wobbling sometimes ends in capsizing, then the very low pitch or the spool up curve needs to be tuned and landing characteristics (sudden torque loss) suffers. The core problem is finding the optimum tuning and curving. 

The alternative answer is that, once we have a good tuning, you can spool the rotor up without taking off and performs your checklist with relatively minor wobbling.  

We need to separate the definitions of capsize and tip-over. Capsize means the forceful, erratic I-term winding, over correcting the craft. This can damage the rotor.

Tip-over refers to the forceful rotor starting torque from standing still. The unbalanced rotor knocks the heli over. This does not damage the rotor because the rotor is just starting up with a very small momentum.

Deep down, ultimately, the problem is the difference between CC3D and FD411 flight software. CC3D has a integral reset mechanism that is used by many manufacturers. The integral reset cancels integral term on the cyclic control momentarily when the attitude deviates from the set point to some threshold, and it is always active. FD411 allows this optional configuration as "I-term relax".  When tuning is off and the craft is capsizing, CC3D allows the pilot to reset the integral by simply yanking the roll stick to the opposite extreme. FD411 without I-term relax, needs the extreme stick roll to accumulate to the exact amount of the deviation, which is not possible to achieve by hand.  

solution,either the I term or all the 3 PID terms needs to be canceled during spoolup time. CC3D readily allows an additional mode to cancel the I term while FD411 has github branches of switching PID profiles. But canceling the entire PID process is the simplest, straightforward solution, which is the chosen solution. Tail still needs counter torque proportional to rotor RPM with such solution in the spoolup state.

The racing drone flight computer software is modified to allow changing flight characteristics mid-flight for utility use, downloadable here betaflight_4.2.5_STM32F411_.hex . After the software is flashed onto the flight computer, the manufacturer default configuration, dump2.txt,  needs to be applied before adding our specific configuration. Our Betaflight diff config file for Betaflight Configurator 10.7.0 is download able here Converged-IoT.txt .  The configurator needs to have PID profile switching feature and it is downloadable here betaflight-configurator.pid_profile.tar.gz .

Our conclusion is that there is really no alternatives. 
The question is whether such a stringent criteria will force us to use power tools to build it?
Yes, power tool is required. The rotary cutter is required.

How about a 10 pond vise?
No, not a vise needed. All tools weigh under 1 pond.

Soldering required? 

Binary compiler required?


1. 50-gram motors powerful enough for 250 gram helicopter direct drive acrobatics is available from multiple vendors.

2. Single rotor does have slightly better fuel economy and endurance than quadcopters, as calculated according to mechanical physics.

3. Main rotor cage and servo cage geometry is congruent between Blade 230S V2 and BSR helicopter frames. Interchangeable parts are readily off the shelf.

4. Sub-6 gram servos for acrobatics is available, but only 1 brand has integrated fast response fast enough for comprehensive acrobatics and terminal speed diving .
    The servos are compatible from different vendors. Needed physical hacks already done.

5. Blade 180 and Oxy 210 rotor head parts are compatible with Blade 230, exception DFC link that needs hacking.

6. Receiver needs anti-noise arrangement for the direct drive motor system.

7. 1105 low rpm motors are sufficient for this 250 gram heli with clever prop selection.

8. Servo saver mod suffices for craft durability comparable to quadcopters.

9. Blade 230S V2 body suffices for craft durability comparable to quadcopters.

10. Blade balancing and stabilization tricks enables unprecedented FPV maneuverability for helicopter. All it takes is 2-3 times on-field training for a person to hear the difference between the fine dynamic balance and the coarse balance in an outdoor setting. However, this balancing process can not be further abridged to fully match quadcopter's build/operating simplicity.

11. At least 2 very good radio TX/RX combinations are available.

12. PID for longitudinal pitch is 3 times larger than craft rolling PID. I gain needs to be very large for cyclic control. D gain is not appropriate for cyclic control, but large D gain is needed for yaw control.
      Cyclic PIDs are inversely proportional to rotor RPM.

13. The elevated RPM for video presentation trades off flight endurance and flight time.

14. Clever TX curves and setups allows pleasant landing, approaching the ease of use of quadcopters.

15. Extreme light weight FPV transmission for urban adrenaline stunts is quite affordable.

16. Conventional rotor hub setup suffices and trumps tricky retaining mechanisms.

17. Conventional ESC suffices and trumps bleeding edge development products.

Alternative Insta360 Go action camera

The battery is a 49-gram 4S 450mAh. The problem with Insta360 is that it has in-frame stabilization, as opposed to open-source between-frame stabilization. In-frame stabilization looks great during the first 2 minutes of video footage but produces jello with 3140RPM and twitches with 2640RPM with minute timing/synchronization aliasing.

We cope with the minute synchronization error of the Insta360 Go with special PID tuning (P=48, I=120, D=9, in the first video of the extreme acrobatic setup) for intentional oscillation that can compensate for the aliasing. But the coping strategy has no consistent outcome. One such PID benefits one craft but makes worse another craft. As we all know that collective-pitch helicopters should normally have D=0. Changing the camera mounting to the following doesn't help.

Runcam Thumb Pro

The weight of the unit is 16.4g; an ND filter weighs 1.55g. Taking out back covers and lens protector reduces the weight to 14.4g (with ND filter), 4.5g heavier than original Thumb camera. Trimming the casing can reduce the unit down to 13g, 3.1g heavier than original Thumb camera.

No comments:

Post a Comment