Saturday, September 1, 2018

Converged IoT Platform Build Notes

Topics are sorted by significance. Mandatory procedures come first.

Power-Tran Setup

To prepare the motor for gear-less direct drive, first remove the setscrew(s) of the shaft and clamp the shaft down until the shaft is flush to the motor's top plane. The Wera 1.5mm hex screw driver is chosen for its tight fitting to all parts in this build to prevent stripping parts. Then, instant-glue a 3mm stainless steel rod as a pusher on the vise base. The 3mm diameter rod is cut to 7mm, slightly longer than the shaft's depth in the motor bell.

Clamp the shaft down the second time with the prepared stub rod. The shaft end surface is not always smooth and perpendicular to the shaft because the production of the shaft uses a saw to cut off the product. Use CA glue and adjust it to align the rod as straight as possible.
The 3/8 inch socket is used on the 2808 motor; the 1/2 inch socket is used on the 4004 motor.

Before using the 4004 and 2808 motor bell with the craft's main shaft, stick a layer of tape on the opposite side on the shaft wall from the set screw. This is to center the bell to the axis when the set screw is cranked in. When the main shaft is driven into the bell, friction draws the tape into the shaft hole leaving a flap of tape outside. You can feel the strong resistance when installing, and and friction should be too strong for removingt shaft by hand without using a screw driver to push out the shaft from the bottom . For this reason, the fuselage needs a 3mm hole drilled on the bottom plate beneath the shaft. The tape insert between the motor bell and the shaft can be verified unbroken after uninstalling the motor and removing the shaft. The picture below shows that the tape is inserted into the shaft hole and not merely cut by the shaft during installing the shaft and extruded out of the motor.
Trimming either 4004 motor or 4003 motor's stater base needs first preserving the outer ring as a guard against accidental rotary tool slips. In all cases, any rotary tool cuts are pre-cuts that don't go through the plate. Instead, 6-inch long nose pliers bend along the pre-cut edges and metal fatigue breaks the material. In all cases, the outer ring does not need rotary cuts, instead, the pliers bend and pull out the ring sections one by one.
Trimming the 4004 motor stater saves 36.1-34.8=1.3 gram as seen in pictures below of the 4004-300kv; trimming the 2808 motor stater saves 33.2-30.6=2.6 grams.

To start the dual ESC build, remove original wraps by using the cuticle scissors to open them from the sides of the ESC circuit board. Then shorten the tail ESC's battery wires so that they neatly reach the main ESC. Pre-tin the short battery wires and tie the battery wires with wrapping wires as in the picture for the triple-junction soldering jobs. Solder the short wires to the inner side of the main ESC's battery wires. It is OK for the short wire leads to touch the capacitor between the 2 electrical poles because the capacitor is electrically wired to the 2 poles. Tail ESC build needs desoldering the motor wires of the tail ESC and replace them with the silicone insulated patch wires, 4cm taken from the 6cm tail motor. 
The soldering iron temperature for ESC working is 350 degrees. Any lower temperature lengthens contacting time.

The newer BLHeli_S or BLHeli_32 with protruding motor poles, as seen in above crossed out picture, can not substitute the original BLHeli because the newer ESCs of any model have no RPM governor.

After soldering, the ESCs need to installed naked to the fuselage because a pre-prototype build with wrapped ESCs had tail ESC overheating in summer with wrapped ESCs. As shown in the video on the right.

The ESC and DC buck converter tap on to the power distribution point from battery output that is the scrap from the tail ESC battery wire pair. There is no added weight of solder to the dual ESC build because the factory pre-tins the leads and the soldering pads. Here the scrap battery wires join XT30 connectors and the power distribution point so to merely relocate the pre-tin solder to the power distribution point, so that power distribution point obtains tinning. That cancels out the added pre-tin solder weight at the beginning of this dual ESC build.

Picoblade 1.25mm connector is chosen because the current rating of 1A is sufficient with CC3D with power tapping by servos and RF receivers, plus the 0.25A current to the 0.2W video transmitter and 0.65A to the full HD camera system.  Notice that the vendors often mistakenly label the Molex Picoblade 1.25mm-pitch connectors as JST connectors. Here, the actual trade name is used throughout this build. In the following video, the current is measured on the power tapping of CC3D, which, in turn, has its power tapped by 3 servos and the FrSky R-XSR receiver.
When the servos are idle, the specification says each servo consume 15mA, and indeed, the current reading is 145mA with CC3D itself consuming 70mA and receiver consuming 30mA. During hard maneuvering, the reading is slightly higher than 250mA. So the math is 0.25A + 0.25A + 0.6A = 1.1A , or 1.1A x 5V = 5.5W . This power consumption is about 20% of the main motor, and about twice as that of the tail motor. This also means that the hovering time increases about 10% when video transmitter and camera are turned off. This also means that the hovering efficiency of the main motor is about 30% less than the manufacturer specified efficiency of the motor itself, which excludes all  electronics power consumption. For example, when the main motor is operating at 13g/W efficiency point, the battery mission budget needs to treat the craft as operating at 9g/W .

The XT30 connector needs to have a half cut in between the poles for the gardening wire to tie it to the main frame. The XT30 connector can be substituted with EC2 connectors without adding weight, but EC2 needs clamping tools.

ESCs Setup

Changing main rotor ESC from MULTI to MAIN code results in a "spool up" delay of roughly 3 seconds whenever throttle-up and resistance is detected. That means that when you descend too fast approaching an obstacle, you can't punch up the craft immediately because the ESC senses blade foil drag with throttle-up and gives small increments of torque over 3 seconds to prevent damage to the helicopter pinion/gear. In the gear-less helicopter, there is no resistance reduction gearing, so the ESC needs to apply the torque regardless of resistance, just like a multi-rotor system. The solution is shown in BLHeli ESC assembly code,

, which shows that MULTI code has many of the MAIN code functionalities, and that MULTI code is largely the same as TAIL code except the addition of RPM governor. The MAIN code does not allow additional parameters to turn off the torque detection, and hence the MULTI code must be used.

The configuration for the main rotor motor using MULTI code needs small P-Gain 0.50 to prevent oscillation (yes, motor RPM can oscillate producing audible noise), I-Gain needs to be high at 3.00 to track RPM precisely, Startup Power needs to be the lowest so that spool-up does not capsize the craft with unbalanced(blades not stretched fully) high torque. Overall as screenshot.

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.

It was discovered that the 250 gram craft hovered at 80/200 throttle, RPM 2607, 6.2 degree collective, with the 2808 660kv motor, all under 3S battery. The pre-prototype motor selection further involved testing hovering with 4.8 degree collective and 94/200 throttle for the same motor with the throttle curve on the right, all with 3S battery. The maximum punch/climb at 114+7(compensation knob added 7 points for voltage drop)/200 throttle induced oscillation on the normally stable craft indicating that RPM exceeded hovering RPM and craft PIDs needed scaling down subsequently for the pre-prototype craft. The pre-prototype motor selection further switched motor to 4004 400kv and utilized ESC capacity scaling for the same punch/climb test, equaling (114+7)x660/400=200 full throttle. That verified that both motor had sufficient, equal, power throughput for better-than-steady-RPM maximum punch/climb.

In production, with RPM PID computer, without ESC capacity scaling, the craft with the 12-node 2808 motor needs 2607RPM / ( 50000RPM / 7 ) x 200poionts = 73 points level in the 0-200 scale of the transmitter for the same RPM as the pre-protytpe. The 50,000 max RPM is seen in the above github page of ESC source code. 1/7 fraction is attributed to the 14-pole brushless motor compared to elementary 2-magnet motor. In the production model, the battery pack is further reinforced to 4S, giving 25% extra power budget for future improvements on fuel-economy/G-force-performance optimization. Incorrect RPM is the first cause of the 3 equally significant sources of craft instability and/or vibration because the flight computer PID gain is tied to rotor angular momentum and proportional to rotor RPM. For the 24-pole 4004 motor, to use the same throttle curves from transmitter, the PWM needs to be scaled from the original range of 1000us x 7 / 12 = 583us. The scaling, colloquially called calibration, Betaflight/LibrePilot configurator needs positioning the slider to the high position (2000us or 1583us) before starting ESC circuit. Here pictured is Betaflight setting for 400KV motor before powering on the craft from the craft's battery.

The simplest, one-bend throttle curve had only 5 points in a pre-prototype build, as the picture on the right. The pitch curve is super-imposed on the throttle curve. But the region between the 2 red dash lines had very steep torque collapse of the main rotor that the tail motor can't keep up(or down) with because doubling RPM quadruples an airfoil's drag, compounded by drag change of the collective pitch angle . The video of tailing swinging is coming next. In general, we have wanted to have a constant RPM, the rotor is either at the constant RPM or the rotor is stopped. But that means a extremely high torque change between turning the rotor off and on. The singlularity problem is handled with the steep climb with 9 points in the throttle curve. The 5-point curve is not to be used.

Tail ESC Setup
The Startup Power needs to be high enough, as  in TAIL software default setup, to catch up with tail lapse or the PIDs reset itself (slang terms "prop wash") frequently with large deviation of tail attitude when you make a left yaw during cruising or correcting a diving trajectory. The momentary reset twitch video after changing from TAIL to MULTI is here on the right. Notice that the heading is the same at 0:07 and at 0:12 . The tail motor spins down at 0:07 when torque suddenly lowers down or when wind blows from the side on to the tail fin/prop creating artificial counter torque. At 0:08, the tail motor can not spool up fast enough and the deviation between expected heading and actual heading is too large. At 0:09, tail PID resets allowing a 360 degree turn. At 0:12, tail spools up successfully.

To configure the ESC, the tail SERVO esc needs to be temporarily be recognized by the ARM computer as the MOTOR 1 , as pictured here below, because BLHeli configurator only accepts motor ESCs.

Then after saving and rebooting, BLHeli configurator can proceed.

The reason we don't tune the IoT flight computer's PIDs output is because this problem is hardware specific to 4S and 20A ESC and 4500KV motor. Our IoT platform deploys to large scale accommodating TAIL ESC hardware combinations, so hardware specific problems should be solved at hardware level.

Control System

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 .

The newer Ubuntu 18.04 is prerequisite because the 16.04 QT is not compatible. The Pitch fields gain numbers triple the numbers of Roll fields because the helicopter has very long longitudinal axis compared to its lateral radius. The configuration needs to be Import'ed then Save'ed to the CC3D's flash.

 All credit and copyright of airfoil data belong to , NACA, and Xfoil , for the following picture.

Our rotor RPM is 2607/minute = 43/s , diameter 0.49m , speed at 3/4 blade span is 0.49m x 3.14 x 43/s x 3/4 = 50m/s . Our Reynolds number is 50m/s x 18mm / 1.46 x 100000 = 61,643 . So, between the aqua and green curves are our curves for attitude mode.

For simplicity of collective pitch angle calculation, we choose servo arm length identical to blade pitch lever length, 12 mm measured in pictures below. The substitute Oxy2 Sport grips have the congruent geometry as the Align 250 Pro grips. 

When all 3 pillars of the swash plate are raised evenly, the blade lever and angle are congruent to the servo arm and angle.  So, for optimal lift-to-drag ratio blade pitch 6.2 degrees,  servo arms also rotate 6.2 degrees. Servo PWM is 6.2 degrees x 1000us / 83.1 degrees = 74.6 us .


To fit the PWM with our swash plate setup here,
, we convert the PWM to OpenTX's 200 point system,
74.6us x 200points / 1000us = 14.92 points

Double the points because CC3D allocates 50% swash travel for collective,
14.92 points x 2 = 29.84 points

So, we set a straight line for the collective pitch curve from 0 to 30 points at mid throttle stick as the  picture on the right. We stipulate collective pitch to 3/4 of throttle stick avoiding extreme conditions.

Endurance for the optimal fuel economy lift-to-drag ratio is 28 minutes in the video on the right, compared to 23 minutes of DJI Mavic Mini test at .
The Roll/Pitch PIDs of the attitude mode bases off high/terminal velocity application PIDs on the right to allow the maximum movement speed/range the craft can physically offer. (This screenshot is in the adrenaline proximity diving mode)

To achieve the maximum velocity goal, the I gain is set to an very high value and tuned down to a threshold when the tracking aborts are about to occur. The single rotor mechanics produce persistent up or down craft pitch in high velocity. The P gain is an error-based feedback, which, regardless of high value, allows the persistent attitude error to accumulate unchecked until PIDs reset and abort the movement. The I term is limited to the threshold to give room for P term because I term is time accumulation based, which delays corrections after the craft attitude error already takes place, resulting in swinging motions. The P term corrects small, non-specific errors instantly before the single rotor physics amplifies the small error by sheer velocity. The good result is here in the video. The good result has highly vertical attitude initiated by the pilot. The good PIDs still produce oscillations if the positioning is not highly vertical.

The lower RPM of attitude mode, 2607 versus 3107, 2607/3107=0.84 requires higher of  PIDs to compensate the lowered lift of corrective pitch angle changes. According to NASA education page on the right, which says that lift depends on speed squared ratio. But, the lower RPM itself also lowers the rotor's angular inertia, requiring linearly less force of correction. The result is that the PIDs for the 2607 RPM need inverse linear compensation from 3107 RPM. So, for the craft pitch axis for attitude mode, P is 17x3107/2607=20 , I is 340x3107/2607=400. For roll axis, it was discovered that rolling oscillation during diving is suppressed when gains are lowered to 1/3 of pitch axis values. 6.66,20,133,400 is what's in attitude mode page.

The FD411 board needs to pitch up 180 degrees for the parallel bus to face the rear and for the bus socket to provide a flat surface for mounting.

And the bottom side of the FD411 needs to have the soldering scheme when flipped upside down 180 degrees.

The iFlight F405 mini with black box recorder is used for pre-prototype flight characteristics tuning. And it needs to yaw rotate 180 degrees for the parallel bus to face the rear. 

In either case, the original M1-M4 signal socket faces rearward and signal wires points out for easy soldering jobs, and so that the flat socket provides an even mounting surface.
The front of the board needs 3 layers of clear mounting tape with either iFlight or HGLRC board. The rear needs 1 layer on the signal socket flat surface. Mounting needs temporary  foam mounting tapes as spacer to align the board in the electronics bay. 

Alternateve CC3D computer needs 3 layers of clear mounting tape at the front and 1 layer on the back, and another strip on the craft's electronics bay floor rear edge.
Fold the frame edge strip inward to affirm the attachment.

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 at this time 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. 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 and remove the other 2 strip's backing films. The premise of being able to remove the sticker backing in very tight gaps is that the backings are partially lifted at the corners during preparation.
The PIDs in attitude mode allows precise, tight spot hovering.

Main Rotor Setup

The screw driver needed to fasten main shaft cage is a 2mm slot driver, in stead of the official Philips #1. This is because Philips #1 drivers with 1/8 inch shaft to go in the small boar holes is very rare in the market. The screws go in from the left side of the craft on the BSR main frame. The front 2 screws of the cage on the 230S main frame go in from the right side of the craft because the frame tries to avoid the front servo tabs, which are on the right side of the craft, blocking the fastening job.

The 4004 motor and 2808 motor are interchangeable providing that the 4004 has 2.8mm shaft protrusion while the 2808 motor has 0.5mm shaft protrusion at the bottom of the motor. The difference of 2.8-0.5=2.3 mm matches the motor height difference of 21.3-19=2.3 mm. The shaft is inserted up-side-down from the original Microheli Blade 230 Carbon Main Shaft's intended orientation.

The bottom side of the shaft has larger distance from the end of the rod to the retaining hole for the original rotor hub. The larger distance ensures that the said hole is placed in between the motor's 2 bearings to re-enforce the weakened shaft due to the hollowed structure. The collar is flipped up-side-down so that the flange of the collar faces down in contact with the main bearing's inner tube so that the outer tube of the bearing does not scratch the collar adding resistance. Use delicate strength to crank the collar with Philips #00 screw driver to prevent stripping thread. 
The alternative shaft is WLToys v950 titanium shaft, which has the exact same length as the 230 shaft and weighs 4.8g . All other steel hollow shafts weigh 5.5g and above. The v950's pre-drill hole is 9mm from the end, so the excess 2mm needs to be trimmed. 

The hub retainer hole is 1.6mm in diameter, 7mm from the top. The smaller than the original hole preserves the integrity and strength of the shaft material.

The screw retainers design 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.

The swashplate fits the 230 main frame unmodified. For the BSR frame, trim the antirotation bar, first grind the top to form a flat surface. Use the cutting disk/wheel with the slowest rotary tool speed for this job. Then slice the 2 sides 45 degrees from the top to form a rough final shape.

Once the rough final shape is formed, draw a mental line vertical from the upper left corner down. The plastic material on the left side of the line needs to be preserved. Grind out the lower right corner material to finalized the trim. 

After the trimming, shorten the bar so that it can escape the antirotation bracket in the event of crash.

Shortening the anti-rotation bar is done for both BSR and 230 frame.

For the DFC swash control rods, The original Blade 180CFX hub has 2 swash-driving arms that need to be removed to make way for DFC links.
A set of servo links includes 1 long steel rod and 2 short steel rods. The long rod, after cutting out the center, non-threaded area, has 2 short segments, each for 1 rear servo link. One of the original short rod is used for a DFC link. The second short link, unmodified is used as the front servo link. The extra ball socket pair from a second purchase of servo link set has 1 rod for another DFC link. The extra ball socket pair from the second purchase has 2 ball sockets for the 2 DFC links.

The short rods are still too long for the DFC link and needs trimming out 2mm with the rotary cutting wheel. Once trimmed, the DFC link and the ball socket join tightly giving a uniform length, and no swash tracking needed. The alternative Align DFC arm needs the EFLH 1151 ball socket and M1.2 threaded rod, such as the rod in the Lynx Blade 180 CFX DFC arm kit. It also needs the 2mm flange ring, such as the ones in Align 250 pro grip kit, and it also needs a 1mm nylon spacer and 2 M2 0.3mm thickness washers.

When using the 1.2mm rod of Lynx kit, 2-3mm of the rods need to be trimmed out. The flange ring is needed so that the spacer does not rub on the DFC arm itself. The metal washers are needed to sandwich the nylon washer-spacer to prevent deforming the nylon and also to add 0.6mm spacing. When the alternative arm is used, the arm is about 2mm longer, and either the main shaft needs to be adjusted upward or the swash server arm need to be lowered. 

Rotor Stabilization

Balance rotor to stop vibration from acculating I term error of PID process. As seen in the video explanation on the right, vibration can have accumulated net force on a certain axis. The I term twitches with a 1-2 second period with the vibration, which is the second cause of craft instability. 2 pre-prototype crafts with own rotor heads are built without the rubber dampener washers. To stabilize the flights, one craft requires tugging the grip toward the side of the blade grip with scratch marks, and the opened gap is visibly larger than the other side of the hub.

Yet, another pre-prototype has no difference in stability either tugging the grips left or right. So, the tugging diagnosed the weight imbalance between the 2 blades. And the permanent fix is to trim the blade tip of the heavier blade to match the chipping of the other blade. As little as a grain of oat's volume of plastic is enough up upset the balance. Such weigh difference is less than 1/30 of a gram and can not be detected reliably with common scales. And even if a scale can detect the 0.03g weight discrapency, it doesn't tell whether the far end or the near end of the blades are out of balance.

After all visual corrections, swap blades to pick the smoother orientation. When you hold the craft for hovering in attitude mode, if you feel deliberate vibration on the fingers, and you hear the air beating sound when it is in the less balanced orientation due to margin of errors in the root hole drilling positions and grip manufacturing. This error on the grips can not be detected with blade balancing instruments. 

The third source of craft instability is blade pitch trapping  , which manifests as frequent listings and altitude drops occurring at about 5 second intervals. Fix it by inserting packaging tape slips in between linkage balls and sockets at the swashplate.

The tape slips can be easily cut and destroyed by the tight edge of the ball socket. Remember, even if the socket fitting is loose, the socket edge diameter is still smaller than the ball's diameter. That is why the sockets do not fall off during flights even when they are loose. When installing the tape strip, the swashplate needs to tilt to a large angle, then the socket needs to be pressed on on the opposite side of the tape strip, as pictured on the right.

Servo Setup

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. So, it is safe to give servos PWM between 1000-250+115=865 and 2000+250-115=2135. In the following example, servo 2 happens to have PWM range 1ms to 2ms, purely by chance. 
The spline count of the servo arm is 15, the servo arm travels 90 degrees for 1010us. So, each spline change is equivalent of  270us PWM change. That means that when attempting to set the high PWM to larger than 2135us, you might as well dial the arm position up 1 spline and increase PWM on top of 2135-270=1865us, which will settle the high PWM in the safe zone. 

When dialing the spline position, there is no need to loosen the arm's fastener screw with the following servo saver mod. 

This servo arm modification, combined with the un-geared main rotor, give the craft crash resilience , as see in this video,
, which the craft is totally undamaged. Only the splines need to be dialed back. No repairing of rotor hub or any part. Not even a screw driver to re-tighten the hub is needed. 

The technique to level the swash plate is to put the craft on manual mode cyclic control and keep the transmitter off so that all servos are at neutral positions, then use a zip tie to check the 3 points of swash plate pillars. The first stage of the procedure is to modify the F4 computer center points and modify the direction of servo2 and servo3 from factory setting that assumes the custom servo bracket is used. 

In the second stage, the technique to check the swash plate center is to hang the blades vertically, then grab and move the DFC links up and down in the craft's perspective. The scissoring action of the blades needs to be evened on the 2 direction of movement. In the following video, the swash plate is overly high because the far end blade is pitching up more than pitching down, which means that all 3 servo PWM center value needs to be lowered. 

Once the center values of servo PWM are adjusted to level the swash plate, in the third stage,  the extreme ends of the PWM range are +- 500 of the center values. For the alternative servo of Spektrum 2070 tail servo, the PWM range from the center is 500 x 12mm / 13mm x 83.5deg / 83.8deg = 460.

Input s-bus PWM signal does not need calibration because it is calibrated in transmitter with stick calibration to ensure high precision.

Tail Build

Pinion gear has a very tight fit on the motor shaft, and you need to place the gear on a surface then press on the motor. CA glue is applied to prop's lip before attaching it to the motor bell.

Use the right corner of a acrylic sheet to start the cutting. The first cut goes from (0 , 8) coordinate up to the (17.4 , 38.1) coordinate. Then turn 90 degrees for the second cut of 7mm long. Before performing the 3rd cut, draw the attachment square, which is 60 degrees tilted, between coordinate (3.4 , 8) and (17 , 11.6) . Once you have the square drawn, extend the right edge up-right for 4mm, and this is the point where the 3rd cut and the 4th cut joins. Make the 3rd cut then the 4th cut from coordinate (90 , 0) . Use rotary cutting tool with 1mm drill to drill 1x3mm holes on the 4 corners of the attachment square. Use zip tie with compressing force on the near 2 attachment holes. Use soft retaining force on the far attachment holes. Use CA glue sipped between the ties and the carbon tube to secure the tail. 

The PVC insulated, low-voltage wires is not used because the low-voltage, 30V, light wires are not available for retail from and other vendors. Above picture has 60cm of it cut from a Picoblade 3-pin connector set. It is the lightest in the market but still weighs 0.88 grams extra for 111cm. 0.8x(111/60) - 0.6 = 0.88.
After soldering and testing tail motor direction with CC3D output page, tie the wires to the vent windows. 

It has been tested and shown that, without D gain, at the the bottom of the dives or whenever main rotor torque has rapid, sudden increases, the direct drive tail lapses while spinning up with finite acceleration. The high integral gives overly large force to counter the lapse resulting in "collision with thin air" bounces at 0:57 , 1:16 , and 1:41 of the following video.

The solution is to use high D gain 60.

The P gain for acrobatic modes is doubled from attitude mode because the punching throttle is not stipulated in acrobatic modes. 

Main Frame Modification

The main frame is modified to hold the battery at the lower position to allow FPV camera installation. At the same time, it trims and carves 4.5 grams out from the Blade 230s V2 frame and 0.9 grams out of the BSR frame.

In this example, the frame starts out at 26.1 grams. Rotary wheel cutting front protrusion for both BSR and 230 V2 frame saves 0.4 grames. And carving side walls on the 230 V2 saves another 0.5 grams. Carving uses the 1/16 cutter through out the entire build because it has smaller contact area with the material and needs smaller force and thus more precise work. Also highlighted in the picture is the subtle bump of the wall stud of the servo concave. It needs to be identified and pencil marked to be avoided when installing fixtures for electronics or further carving.

Cutting the corner curve requires a small diameter of the cutting disk. For BSR, the vent window for the receiver plug is slightly higher than 230 V2's. Carve out a dent on the lower edge to allow easy access.

Cutting out rear pedestal on 230 V2 saves 0.5 grams.

Cutting the thick rear corner needs the middle speed setting on the rotary tool with a cutting disc, which often splatters hot plastic lava. To ease the work, the middle speed should be only used half way from the rear on the sides, and use middle lower speed to just score the rest of the cut, and then use pliers to tear the the plastic, as the following picture,

Cutting the enforcement extension plate of electronic bay on the 230 V2 needs the cutter disk axis to be mounted with spacing as the above picture to allow a clearance between the bay and the rotary tool chuck nut. And the cutting needs the axis sinking into the hollow part of the electronics bay plate.

Cutting out side enforcement and electronics plate extension saves another 0.6 grams.

Cutting out front lateral stubs on both BSR and 230 V2 saves 0.3 grams.

Carving the shaft cage sides saves another 0.7 grams. The carving avoids wall studs along the pencil marking before carving. Residual pencil lead is shown in the following picture.

But, first the studs for the original canopy peg needs to be drilled out with a 5mm drill bit. It can be done manually without electrical drill with a chuck holder as in the following picture.

Carving the shaft cage front needs a small diameter cutting disk as in the above picture. The small diameter is obtained after a disk is worn out or trimmed.

Cutting the middle panel and shaft cage front saves another 0.7 grams.

Cutting the bottom panel extensions saves another 0.3 grams.

Cutting the front servo mount extension and rear servo cage enforcement double saves another 0.3 grams.

Cutting out the lips of the lower main shaft holder and final cleaning saves another 0.2 grams, including caving a dent on the vent window of BSR, for both BSR and 230 V2,

The bottom plate has a sharp join that is often the very first fracture the build encounters with a crash. The sharp join can be smoothed with the rotary sanding drum as the lower example. The broken join is repaired with a scrap patch from carving the main frame.

Battery Pack Build

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.

Custom Servo Brackets

The alternative parts use blade 230's landing skid set for struts.

Before any drilling, the bumps along the seam lines need to be smoothed as the following picture.

Amazon item Plastruct MS-160 Square Rod has 4mm sides, same diameter as the blade landing skids.

The upper rod is cornered to the anti-rotation base of the Blade 230 frame. For the Blade BSR frame, there is no anchoring corners, and the location of the half-holes on the anti-rotation bracket is 12mm from the front wall of the bracket. This distance is chosen so that the original servo cage becomes stoppers so that the servos can not be pressed and twisted into the cage. Coincidentally, this distance is chosen so that both BSR and 230 builds have congruent servo geometry. The following 2 pictures show this arrangement. The first picture also shows the bracket marked at the based of the servo tab.

. The ruler in the above picture of the BSR frame shows 10 mm from the wall to the said mark with servo tab. The holes on the bracket rod are drilled at the center of the 4mm diameter/width rod. So the distance from the wall to the holes is 10mm+2mm = 12mm.  This is because the BSR servo cage's upper wall has the 4mm thickness while the lower wall has 1.2mm thickness that is the width of the original servo fastener hole's diameter. 4mm/2 - 1.2mm/2 = 1.4mm extra space. 12mm+1.4mm=13.4mm . For the BSR frame the holes on the anti-rotation bracket are actually half-moon dents of 1.25 mm depth because the screw we use is 1.5mm in diameter, and the bracket's width is 6mm. So, the center of the 2 half moons are 0.5mm from the bracket's side edges. 0.5mm+(1.5mm/2)=0.5mm+0.75mm=1.25mm .

The screw driver to install and service the upper custom rod needs to be inserted from the bottom of the craft through the middle plate. So, a conduit is drilled on the middle plate beneath the custom rod.


Use the Wiha Philips #1 screwdriver for this job, or another driver with 3.5 inch shaft or longer.

The conduit to allow the long screw driver is about 5mm in diameter as seen in the first picture row of this chapter. In the second picture below, the same pre-treatment of smoothing the seam line bump is shown. The drill bit for the holes on the craft is 1.3mm as seen in below picture, and the drilling does not need tool, instead there is room to use finger to pinch and twist the drill bit,


The servo cage geometry of the 230 frame is congruent to the servo cage geometry of the BSR frame. And the mentioned 13.4mm distance of the BSR frame is equivalent to having 14.6mm on the 230 frame from the wall to the fastener holes. This distance has 14.6-13.4=1.2mm increase because the new 230 frame moves the wall forward 1.2mm, which is the diameter of the servo fastener hole's diameter. In the 230 frame, the wall is aligned tangent to the original servo fastener hole while the BSR frame's wall is aligned to the center of the original fastener hole. The 14.6mm, or 14mm from axis to hole, distance coincides with the distance from wall to the cornered upper rod's fastening holes.

For verification of the BSR-230-servo-geometry-congruent theory, the 14mm distance is indeed 13.4mm+0.6mm=14mm, the distance from the BSR frame's lower rod hole to servo hole axis. And the 14mm axis-to-axis distance is indeed the same distance from the BSR frame's upper rod hole to the servo hole, 12mm+1.4mm+0.6mm=14mm.

The 1.3mm bore holes on the brackets should be drilled from both end surfaces progressively to the center in the material. Drilling from one surface through often results in mis-aligned servos, which are hard to gauge the play.
Before final assembly, the screw splinters of the lower bracket prevents snug fitting of servos. The screws need to be removed from the test installation and trimmed. For the Blade 230 main frame, file and carve the upper rod 1mm along the contact surface with the cage roof wall. Conversely, the upper bracket for the BSR frame needs the saddle groove, also 1mm deep.

The final assembly uses the same Phillips #1 screw driver to fasten the bottom custom rod from underneath the craft. Then use M1.7 screw, or the landing skid's fastener screw, as the stopper to prevent the servo from sinking into the servo cage. The servos are fastened without washers to allow self-centering by the screws. The M1.5 fasteners on the servo tabs need to be tightened evenly and progressively, checking the play in the process by shifting the servos up and down and probing for a snug fit.

The alternative landing skid rods weighs exactly the same as ABS struts.

The custom bracket at the front lower mount is a scrap from trimming the main frame's lower front protrusion. Use CA glue and double layer wall to reinforce the thread.

The substitute Spektrum 2070t servos add  6.5 grams even though the scale shows extra 7.5 grams. The calculation is 7.5g + 0.2g untrimmed left side servo rod - 0.6g brackets - 0.6g screws(3 on the servo arms and 4 on brackets) = 6.5g.

When using 2070t servos, the servo-swash links has an arm length of 13mm and 1000us servo travel of 83.3 degrees, both exaggerate the servo PWM signal. To compensate it, the servo travel per direction needs to be attenuated to 500us x 12mm/13mm x 83.1degree/83.3degree =  460us . 


Summary of the torques used in the build.

Mounting Radio Receiver For Reduced Interference

The spacing between main motor and the receiver is as the following pictures.

The rear half of the antenna of R9M Mini receiver is bent to the side perpendicular to the first half to create receiving diversity.

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 2 antennas are encased by the mounting tape square.

The last photo shows the original antennas without coiling around the boom.

. Without proper spacing between main motor and radio receiver, the interference can disconnect the radio locking with Flysky XM+ when the craft is well within the expected range, such as in this video, happened when the receiver was mounted on the rear pedestal of the main frame, 

The spacing is sufficient with the wire that comes with the CC3D. If the receiver is further extended to the rear, the receiver is struck and destroyed by tail strike in a crash, as occurred multiple times on the 2 tail booms pictured here,

, and the 3rd case,

. In the last picture of the 3rd case, the tail strike also detached the receiver's antenna but no damages, which means that the mounting tape should be placed as far as the last picture's, at 85mm or less from the front end of the boom.

Mounting Camera

The maximum mounting holes spacing is 15mm from axis to axis. The holes on the main frame are placed on the original location of wall stud that has been carved away. Drill the holes to the 15mm maximum spacing so that the bracket's tension reinforces the main frame.

It is required to drill the bolt holes to 1.8mm, no larger, for the bolts to stay in place when installing the bracket with one hand on the screw driver and another holding the bolt with long nose pliers.  The last step before actually fastening the camera on the bracket is to strip the thread of the M2 standoffs with 2mm high speed steel drill bit. Hold the standoff with piler and turn the drill bit with a chuck. Don't use tungsten drill bits because it is too brittle and breaks easily during turning or even during retrieving the drill bit.

For the Goqotomo camera, the camera is CA glued to the bracket. Add a slight roll during gluing/fastening of the camera to compensate helicopter hover tilt angle.

The front hole for the circuit board is placed at the front edge of original main gear cage. Use a pointy tool to punch the axis for precision drill. Use the 1.9mm drill bit to drill the hole for the m2 screws.

The fixture hole on the main frame is drilled with 1mm-2mm drilling/carving bit. 

Do not drill holes on the other side of the main frame wall for screw driver shaft to go through because that will weaken the structure and damage the camera wire connectors during crash.  Experiment shows a complete break off of the upper main frame when the left side wall is weakened with the extra conduit for screw driver. You have 2 options with the 10mm bolts, Philips or hex cap, 3mm height standoffs or 2mm standoffs that come with the non-Baby Turtle. 

Use gardening wire, stripped of plastic wrap, to tie the fixture arm. 

The last step before plugging in the camera wire plug to the socket is to chip away the lower left corner of the plug using a wire cutter. The corner gets in the way of the fastener as seen in above picture. You have 2 options for the fixture material, carbon fiber or acrylic. You have 3 options for the camera, rectangular 19mm board, rectangular 20mm board, or shifted 19mm board. The rear thru hole position is farest behind for the rectangular 19mm board, forward most for the shifted 19mm board because the board hole is shifted 2.5mm rearward, and in the middle with the rectangular 20mm board. 

The FPV transmitter is attached with a 1cm width Velcro strip, and the camera taps its power on the transmitter's 5V output or directly on the battery as seen in previous post . FPV feed has slightly more interference when tapping the 5V on the buck converter's output, though not as bad as tapping directly on the battery. The transmitter taps its power on the buck converter output with the Picoblade connector socket.

Before the first flight with the camera, adjust the HD camera focus by twisting and loosening the lens retaining ring with finger. No tools needed. Then turn the lens wile monitoring the video feed on FPV goggles.

Tie the fixture onto BSR frame needs first making the gardening wire into a 135 degree hook, then insert and lay the wire on the anti-rotation column to thread the hook.

A pencil marks the stud location of the servo concave curve. The pencil also marks around the right face of main shaft cage. And the front tie hole is drilled right in front of the pencil mark after the rear tie is installed.

Substituting Caddx Baby Turtle with Runcam Split 3 nano saves 1.7 grams on camera itself. But the Split series needs additional, dedicated power ripple filter to prevent video freeze with high G maneuver power surges/dips. Incident of such video freeze here during punching, which the drone is lost from a considerable altitude.

Runcam Split 3 Nano manual
VTX03 manual
Notice that this is not the only incident of video freeze. If you search "250-gram helicopter cloud surfing", you will see another video freeze at the very end.

Canted Tail Rotor Solving Punch Pullback 

The helicopter's tail rotor is not centered up on the rotation plane of the main rotor. It creates a small right-roll torque the craft, and the gyroscopic precession makes the craft tilt backward and fly backward. The parasistic torque increase as the throttle increases. The result is craft fly-away when high throttle is used without other corrective measures. The actual fly-away video footage shows craft flying over roads, people, which is illegal. It is only resolved when throttle is lowered. In a high-wind day, the throttle may need to be kept high through out the flight, and that causes the fly-away.

The solution is the canted angle same as the Seahawk helicopter's design,

The pullback problem can be discovered in rate mode flight with sudden maximum throttle,
, the tilt backward happens between 0:31 and 0:33. Just 2 seconds of pullback already sends the craft away  from the car where it hovers initially. Then a forceful pitch down is applied in a panic at 0:33. At the end of second 33, the car is seen in front of the craft, compared to it is on the side of the craft at the beginning of the punch-up. Please notice that the tilt angle is barely perceived, lowering horizon for about half an inch when viewing this video on computer monitor. That means FPV pilot can not notice the problem is occurring.

The fix can be verified line-of-sight,
, and the maximum throttle punch-up at 0:30-0:33 happens rather uneventfully, straight up.

Tail Repairing/Replacement

The original Lynx Blade 230 tail boom is 255 mm long. The replacement 8x7x500mm carbon fiber tube from ebay xzw791 can produce 2 250mm booms. The weight of the replacement is expected to be 4.8g x 250mm / 255mm = 4.7 grams. But the actual weighing has 17.6g / 4 = 4.4 grams. So, the replacement has 0.4 grams weight reduction.


Raspberry Pi Wiring

Power is tapped from servo power row similar to CC3D build tapping but on the opposite side of the board.

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.

No comments:

Post a Comment