Wednesday, June 17, 2020

RC Groups - View Single Post - FRSKY Taranis "How to" Thread


Capturing a double-pull of a momentary switch


Thought I'd share this snippet for capturing a double-pull of a momentary switch. Applications include anywhere a 'safe' switch is required, for example for arming a motor or u/c operation.

Operation:

Pull SH twice within a 1.5 second window. The second pull is captured as an edge in L3.

Code

L1 Edge(L02, [0:instant]) Duration(1.5s)
L2 ( Edge(SH-down, [0:instant]) )
L3 L01 AND L02

How it works
  • Pulling SH generates an edge in L2, which cascades to L1 a clock tick later.
  • Because an edge is true for just a single clock tick, L3 is true only from the second pull. This must be within the time period set in L1.Duration (1.5 secs).

Simple demo - each double-pull toggles a sticky switch:

L4 Sticky(L03, L03)

Tuesday, June 16, 2020

Sunday, June 14, 2020

FrSky SxR Gains

Mike Blandford confirms:
In auto-level mode, the individual gains set using the script affect the amount of servo movement output to get to level. The channel 9 gain affects the speed of the servo response..

Tuesday, June 9, 2020

Viewing Wyze Cam on Computer

tl;dr: Wyze supports RTSP with a bit of effort.

Directions and download here:
https://support.wyzecam.com/hc/en-us/articles/360026245231-Wyze-Cam-RTSP


  • Download the firmware
  • Boot Cam with firmware on SD card.  It will take 3-4 minutes to install.
  • In your phone app, Settings / Advanced Settings / RTSP
  • Turn on RTSP toggle
  • Set name and password, click Generate URL
  • Watch with VLC

Sunday, June 7, 2020

Reference: Geekcreit® 375pcs 3MM 5MM LED

https://www.banggood.com/Geekcreit-375pcs-3MM-5MM-LED-Light-Emitting-Diode-Beads-Resistance-Lights-Kits-Bulb-Lamp-p-1027601.html

Current : 20mA
Voltage: 3V
Color: RED, BLUE, YELLOW, GREEN, WHITE
Total Quantity: 375pcs
Packed in a box
             375pcs Five Colors 3mm,5mm Round Bright Light LED Assortment Kit
Color
Size
Wavelength
       (nm)
Voltage
    (V)
Current
    (mA)
Intensity
  (mcd)
Lens Color
Quantity
Red
3mm
620-630
1.9-2.1
20
3000-4000
red
50pcs
Red
5mm
620-630
2.8-3.1
20
4000-5000
red
25pcs
Yellow
3mm
580-590
1.9-2.1
20
5000-6000
yellow
50pcs
Yellow
5mm
580-590
2.8-3.1
20
4000-5000
yellow
25pcs
Green
3mm
570-573
3.2-3.4
20
10000-12000
green
50pcs
Green
5mm
570-573
3.0-3.4
20
12000-14000
green
25pcs
White
3mm
610-620
1.8-2.2
20
3000-4000
clear
50pcs
White
5mm
500-620
3.0-3.2
20
12000-14000
clear
25pcs
Blue
3mm
460-470
3.2-3.4
20
3000-4000
blue
50pcs
Blue
5mm
460-470
3.0-3.4
20
5000-6000
blue
25pcs

Reference: TTGO ESP32 1.14 Inch LCD LILYGO

On Banggood.
Demo: https://github.com/Xinyuan-LilyGO/TTGO-T-Display








Random notes for the BG page:

IPS ST7789V 1.14 Inch has 135x240 pixel
Display has 340x240 pixel resolution
LCD resolution 240x135

Driver ST7789 (uncomment #define ST7789_DRIVER in User_Setup.h)
Color order Blue-Green-Red (uncomment #define TFT_RGB_ORDER TFT_BGR in User_Setup.h)
Device TTGO_T_Display (uncomment #include in User_Setup_Select.h)


the display seems to require its own graphic library, on github:
github.com/Xinyuan-LilyGO/TTGO-T-Display
github.com/Bodmer/TFT_eSPI

Q:Is the SPI bus accessible for other sensors (other than the display)?
A :  VSPI default pins are connected to display and are not available on the headers. HSPI by default uses GPIO 12 to 15. Unfortunately GPIO14 (CLK) is apparently also used by the display BL function. So I assume you will need to remap 14 to another pin to get CLK. (I have not tried this).

Seems to be a difference in this regard between version 1.0 and 1.1. The board I received says V1.1 in silkscreen. According to the pin-out for this version on GitHub GPIO4 (not GPIO14 as indicated above) is used for BL.

Battery-Molex-Pico-1_25mm

Use this library for the display: github Bodmer TFT_eSPI
Look on github for Tetris Clock and "TTGO_example", you will find a library and example I wrote for this board. It has an explanation page that shows how the board looks when running it.

What pins provide me with access to the serial port? TX / RX?
A: A "standard" ESP32 has more pins, the default pins are 3 (Rx) and 1 (Tx) for Serial(0), 9 (Rx) and 10 (Tx) for Serial1, and 16 (Rx) and 17 (Tx) for Serial2. As you can see, with the limited number of pins on this TTGO board, none of them are there. But the good news is that the "Serial.begin" function has an option to change the pins! By using "Serial2.begin(9600, SERIAL_8N1, 25, 26);" you have the Serial2 port on pins 25 (Rx) and 26 (Tx). I tested this today, it's working like a charm!. It's NOT working on pins 37 and 38 (and maybe other pins), but it IS working on pins 25, 26, 27 !!!

This board is an 'ESP32 dev board' and it can be used with the arduino IDE but because it isn't an arduino you'll need to configure the IDE with the new board by adding an 'additional board manager url' to arduino preferences.
Some details of how to do this are here:  youtube mBaS3YnqDaU

The board comes loaded with the arduino sketch from here:
Search github Xinyuan-LilyGO TTGO-T-Display

There is a good youtube vid explaining it a little here: youtube qj9dN-Ginxc
The above is a great intro into how to use the 320x240 display and even makes use of the two buttons near the usb port to show voltage and scan for wifi networks.

https ://github.com/Xinyuan-LilyGO/TTGO-T-Display/blob/master/schematic/ESP32-TFT(6-26).pdf

Using the Tiltmeter

Setup
  • Be sure you have run the self-test to set level and stick travel.
  • Depending on servo installation, pitch may be reversed.  That's indicated in parentheses below.
  • Set gain to maximum, it will make for largest pitch variation.


  • Ailerons
  • Moving stick to left is correction for roll right.  Left aileron moves up.
  • Move stick to left.   Note audio-pitch goes up (or down).
  • Hold plane, twitch right wing down. You should hear audio-pitch up (or down).
  • Twitch left wing down.  You should hear audio-pitch down (or up).

  • Rudder
  • Moving stick to left is correction for yaw right.  Rudder moves left.
  • Move stick to left.   Note audio-pitch goes up (or down).
  • Hold plane, twitch noseto right. You should hear audio-pitch up (or down).
  • Twitch nose to left.  You should hear pitch down (or up).

  • Elevator
  • Moving stick back is correction for pitch up.  Elevator moves down.
  • Move stick down.   Note audio-pitch goes up (or down).
  • Hold plane, twitch nose down. You should hear audio-pitch up (or down).
  • Twitch nose up.  You should hear audio-pitch down (or up).
  • (note) I typed the above because my brain gets confused when I tune planes with servos reversed.  Maybe I should add a reversing button to the tiltmeter so that I can match my brain thinking, which is
  • Pitch up = Left aileron up
  • Pitch up = Elevator up
  • Pitch up = Rudder left
  • Friday, June 5, 2020

    OctoPrint: Turning on an LED during printhead heating

    I do this so I can more easily inspect the printhead for ooze, etc.

    Install OctoPrint plugin "GCODE System Commands"

    Configure Plugin

    OCTO 21 /home/pi/scripts/led-on
    OCTO 22 /home/pi/scripts/led-off

    Use This Code


    $ cd /home/pi/scripts
    $ cat led-on.c
    void main()
    {
      system("echo 23 >/sys/class/gpio/export");
      system("echo out >/sys/class/gpio/gpio23/direction");
      system("echo 1 >/sys/class/gpio/gpio23/value");
    }
    $ cat led-off.c
    void main()
    {
      system("echo 0 >/sys/class/gpio/gpio23/value");
      system("echo 23 >/sys/class/gpio/unexport");
    }

    $ make led-on led-off
    (ignore warnings)

    $ sudo chown pi.gpio led-off led-on
    $ls -l led-on led-off
    -rwxr-xr-x 1 pi gpio 7984 Jun  5 20:33 led-off
    -rwxr-xr-x 1 pi gpio 7984 Jun  5 20:33 led-on

    Add OCTO commands to to your slicer gcode template

    (for Prusa-Slicer, in Printer Settings/Custom Gcode/Start GCode).
    Mine looks like this:

    G28 W ; home all without mesh bed level
    OCTO21 ; turn on external light
    G1 Z30 ; raise printhead for visual inspection
    M109 S[first_layer_temperature] ; wait for extruder temp
    M190 S[first_layer_bed_temperature] ; wait for bed temp
    OCTO22 ; turn off external light


    Thursday, June 4, 2020

    Raspberry Pi Blink in shell



    #!/bin/sh

    # release the pin on exit
    trap 'echo 0 >/sys/class/gpio/gpio23/value;echo 23 >/sys/class/gpio/unexport' 0

    echo 23 >/sys/class/gpio/export
    echo out >/sys/class/gpio/gpio23/direction

    while true; do
      echo 1 >/sys/class/gpio/gpio23/value
      sleep 1
      echo 0 >/sys/class/gpio/gpio23/value
      sleep 1
    done


    # for input:
    #  echo 23 >/sys/class/gpio/export
    #  echo in >/sys/class/gpio/gpio23/direction
    # read value:
    #  cat /sys/class/gpio/gpio23/value
    # release a pin
    #  echo 23 >/sys/class/gpio/unexport

    Troubleshooting SiLabs Driver on Mac notes

    tl;dr:

    • 99% chance it's a USB cable problem.
    • If you're a manufacturer, blah blah major and minor device numbers

    Looking for this device;

    • /dev/SLAB_USBtoUART

    Do you have the driver software installed?

    • find /Library/Extensions/SiLabsUSBDriver.kext

    Is the driver loaded?

    • kextstat | grep -i silabs

    Loadin the driver:

    • sudo kextload /Library/Extensions/SiLabsUSBDriver.kext

    This does something:

    • ioreg -p IOUSB -l

    watch console.app and plug device in.

    Sunday, May 24, 2020

    Kilrah's Excellent Banggood Post

     Really BG is basic. They've got a product on the site, you place an order, you'll eventually get it when they have some, end of story.  
    If you expect any kind of handholding, estimate or "reassuring" from your dealer or believe the "customer is king" mentality you don't go there, period.
    RC Groups - View Single Post - RadioMaster - TX16S 16Ch 2.4ghz Multi-Protocol OpenTX Radio System

    Primitive DIY Tx

    Attach to an Arduino:

    •  two gimbals (4 pots)
    • two switches
    • external Tx module
    Write control loop
    • read values from pots and switches
    • send PPM signal to module
    • done!
    Refs




    Arduino based SmartPort voltage meter

    LiPo Voltage metering with Arduino

    DIY lipo voltage checker (arduino) - YouTube
    1S-6S Battery Voltage Monitor (ROS) : 7 Steps (with Pictures) - Instructables
    www.iforce2d.net/sketches/VoltageChecker.ino

    Building & Testing the Circuit


    Programming the Arduino

    Arduino SmartPort

    marhar/arduino-frskysp: FrSky SmartPort protocol library for Arduino
    arduino-frskysp/FrskySP_sensor_demo.ino at master · marhar/arduino-frskysp
    FrskySP: Main Page
    FrSky S-Port telemetry library - easy to use and configurable - RC Groups
    Google Code Archive - Long-term storage for Google Code Project Hosting.

    This seems the best one:
    Dakkaron/MinimalSPORTVoltmeter: Arduino Voltmeter compatible to FrSky SPort Telemetry with minimal additional hardware

    Install Notes for Dakkaron FrSkySportTelemetry

    #install FrSkySportTelemetry
    cd arduino lib directory
    git@github.com:marhar/FrSkySportTelemetry.git

    # install Dakkaron
    cd github place
    git clone git@github.com:marhar/MinimalSPORTVoltmeter.git

    Details on Maximum Current

    Mike Blandford responds to my query:
    I'd use 5V as the maximum for the SPort signal, assuming you are using standard FrSky hardware. The SPort input is via a transistor buffer with a 1K resistor in series with the base.
    The SPort output is driven by a SN74LVC1G126 powered from 3.3V. When not driving the SPort signal, this has an absolute maximum voltage rating of 6.5V. 
    When driving the bus, the voltage rating is (VCC+0.5) so 3.8V. 
    However, the output signal passes through a 51 ohm resistor, so as long as the current is limited to 50mA the device is safe. 50mA through 51 ohms is 2.55V, so the limit is 3.8+2.55 = 6.35V. 
    All values taken from the TI datasheet for the SN74LVC1G126.
    RC Groups - View Single Post - FRSKY Taranis "How to" Thread

    Battery Charger protection circuit





    - Designed for 18650 batteries
    - Up to 1,000 mA charging current
    - Based on TP4056 Chipset
    - Battery protection circuit
    - Charging status LED's

    - Input voltage : 4.35 - 6 V, 5 V recommended
    - Charge cut-off voltage: 4.2 V + / - 1%
    - Maximum charging current output: 1000 ma
    - The battery overcharge protection voltage: 4.28 V
    - Battery overcharge lifting voltage: 4.00 V
    - Battery discharge protection voltage: 3.0 V
    - Battery discharge termination voltage: 3.2 V
    - Battery: over-current protection current 3 a
    - Board size: about 2.5 * 1.65 CM
    - Status LED
    - Standby : Dimly lit, Charging : Red and Charge Complete : Green





























    Wednesday, May 20, 2020

    My Moderation Philosopy

    Here's a note I wrote for the Moderators' group at DIY drones. The nice words are at the beginning are by Chris Anderson who founded the site.

    Our Culture and Values:
    Mark Harrison, one of our star moderators, articulated our culture and policies best with this post, which I'll just quote verbatim:

    Here's my general feeling about a lot of things on this site; in fact, it's pretty much my general philosophy for large parts of my life:

    "It's more important to enable good things than prevent bad things"
    For diydrones, this generally means:

    -- Be generous in accepting blog posts. We're not at a point where there are more submissions than can be confortably digested in a day. Likewise, the term "drone" is evolving at such a fast rate it's hard to pin down exactly what it means for everyone. So, I'm happy to lump in quadcopters, FPV, gimbals, RC, artistic aerial videos, electronics, radios... all kinds of stuff that meets my nebulous criterion of "generally interesting to the diy drone community."

    Now of course it can be protested, "what if we're flooded by dozens or hundreds of posts on marginally related topic X?" And my response would be, "let's wait until that happens; we'll have tons more context and it will be easier to make a specific decision then than make some globally encompassing set of rules now. We may all even be a little bit smarter and a little bit wiser!"

    -- Be generous in approving users. Lots of people aren't comfortable with revealing too much information about themselves, or may not have a particularly cogent reason for joining a site. I'm somewhat of an exception to this case... "Are you asking what I'm interested in? Let's talk about me, it's one of the most interesting topics we can discuss, don't you agree?" But for a lot of people, they may interested in the topic, but not interested in telling you why.

    -- Feel free to make mistakes, and be nice when other people are making mistakes. Sometimes the most interesting things happen when things go awry. For better or worse, sometimes the most education things as well!

    I think this is pretty much in agreement with how the site has been run historically. It's a site for amateurs, by amateurs (keeping in mind the defintion of "amateur"... from the French "lover of"), and as such has had a pretty wide-ranging scope of what's acceptable. That's served the site well, enabling it to be as relevant (or even more!) in 2013 as it was when it was founded.

    Of course there are big exceptions to this "don't sweat the bad stuff" philosophy -- brain surgery, rocket launches, and skydiving come to mind -- but I think it's a useful guideline for a site such as ours.

    Saturday, May 16, 2020

    Part Tester

    Lcr-t4 12864 lcd graphical transistor tester resistance capacitance esr scr meter Sale - Banggood.com
    Case for LCR-T4 (12864LCD ESR SCR Meter Transistor Tester) by HarryCayne - Thingiverse

    FrSky Wireless USB Connection

    e.g. for flight simulators

    Notes


    Arduino-based SmartPort monitors

    I've got some extra Arduino Minis sitting around.  Can I make them into SmartPort sensors?

    Random docs:















    Saturday, March 14, 2020

    OpenTx Settings for DSM-X receivers

    Mixer Screen

    Ch1, Ch2, Ch3, Ch4: (THR, AIL, ELE, RUD): Normal default mixes, but different order than FrSky default.  Be sure you're set the input properly for each channel.
    Ch5: AS3X/SAFE:  Set to any 3-position switch you like.
    Ch6: Emergency: Bind to momentary switch.  SAFE Panic Button when switch is pulled.

    Outputs Screen

    • All Channels: Set limits, Min=-77.7, Max=77.7.
      This compensates for fact that OpenTx 100% = Spektrum 80%.
    • Ch2, Ch4 (AIL, RUD): Set Direction=INV to reverse  inputs.


    Set throttle range by usual procedure:  Power on radio, throttle stick max, power on plane, after beep lower throttle stick to min.


    Tech note:
    https://www.spektrumrc.com/ProdInfo/Files/Remote%20Receiver%20Interfacing%20Rev%20A.pdf

    At ±100% travel, the data range is equivalent to a “Servo Position” data range of approximately 341 to 1707 which translated to PWM equals 1102µs to 1898 µs.

    Note: Limits and channel order don't apply if you have a DIY-Multimodule, which performs these translations automatically.  use AETR channel order and 100% limits.
    https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/Protocols_Details.md#DSM---6

    Thursday, November 28, 2019

    Cheap and cheerful current sensor for Rx with an analog port

    https://www.rcgroups.com/forums/showpost.php?p=43266005&postcount=33970
    https://www.rcgroups.com/forums/showpost.php?p=43273903&postcount=33973

    this might be useful for people wanting a very lightweight and compact readout of current on the receivers that have A1 and/or A2.

    It's one of these things.

    https://www.banggood.com/FullSpeed-FSD-AMASS-XT60-Current-Sensor-Current-Meter-2-6S-80A-For-RC-Drone-FPV-Racing-Multi-Rotor-p-1302133.html

    It replaces the XT60 connector on the speed controller so adds virtually no additional weight or bulk. Not bad for about US$8. The sense resistor appears to have an opamp to amplify the sense voltage. It puts out about 1.3V at 80 Amps which is well within. the 3.3V limit of the A1/A2 ports.

    In answer to the questions:

    1) The display resolution when displaying current values up to 80 Amps appears to be +/-0.2Amps. There is a bit of fluctuation at all values of about +/-0.4 Amps around the reading. I suspect there might be a bit of drift at constant high current caused by heating in the sense resistor.

    2) The actual shunt resistor is 0.5mOhm so the dissipation at 80 Amps is 3.2 watts which is well within its 5W rating.

    Attached is a calibration test.

    Currents from 5 to 80 Amps at 5 Amp intervals were created using an adjustable 220Amp constant current load and a 12V 100Watt power supply.

    The discharger was calibrated against a Medusa wattmeter at 10A using an accurate 10A FSD digital meter and then used the Medusa to calibrate the discharger up to 100A. The maximum observed error in the discharger was about 0.3% error. In practice the current values on the x axis are probably better than 0.5%.
    ------------
    It looks like this little sensor will give you a reasonable result for mAh consumed as well as the current.

    I did a calculated consumption field in Companion but used A2 as the sensor source instead of the usual Curr.

    I have attached a picture of the Taranis screen. At this particular instant, the load was a nominal 50 Amps but the Taranis and EmeterII were in close agreement at 48.3A and 2167mAh consumed.

    I have also added a plot of the Taranis display vs. EmeterII measurement over the range 0-80Amps.

    I suspect consumption is fairly sensitive to the Offset Value you chose when setting up the A2 telemetry field. With a bit of patience and mucking about with Ratio and Offset I think you would be able to get it even more accurate than this as the sensor seems quite linear. The secret I suspect is that once you have found a value of Scale that gives the correct slope you adjust Offset for a zero reading when there is no load. And of course you can set up a Logical Switch to have a Special Function play an alarm or track when the consumption exceeds a certain value.

    On most of my models I have a voice reminder every 10% of pack capacity below 50% and then am brusquely reminded "It is time for you to land" when I have used 80% of the pack. 
    -----------------
    XT60 sensor update 2

    It looks like this little sensor is a bit more sophisticated than I gave it credit for. It doesn't just use a simple Op Amp to amplify the 0.5mOhm shunt resistor voltage.

    The Package is hard to read but it is marked "B38" and it will be a Texas Instruments INA 138 current shunt monitor. I have attached the data sheet if anyone is interested.

    The only question I have is whether the input impedance of the FrSky A2 analog pin is sufficiently high to avoid any need for buffering. I'm guessing by the linearity in the graphs that I plotted that it is.

    Sunday, February 3, 2019

    DeoxIT Notes

    Everything you need to know about cleaning and maintaining tiny linear servos from RCGroups:

    Questions:

    1) CAIG Laboratories, Inc. make DeoxIT in a number of formulations. I've seen mention of D-series and Fader F-series on RCG. Can somebody please tell me what to buy, exactly?

    2) Other than cost, is there any down side to using DeoxIT of any formulation? Will it attract and hold dust?

    3) Will any formulation of DeoxIT attack foam?

    4) How careful must I be with DeoxIT of any formulation regarding the servo motor? Will it soak into the motor housing and strip lubricant from the shaft?

    5) Does it evaporate or must it be wiped away?

    6) I saw an old video (2015) wherein the gentleman removed the actuator from the PCB to perform a thorough cleaning. Is it necessary to remove the actuator if I use the correct formulation of DeoxIT?

    Answers:

    1. D5 to clean. F5 to lubricate. 
    2. Nope
    3. Nope
    4. Spray it on there liberally
    5. Put a paper towel around the servo to catch the black gunk that comes out
    6. Not necessary
    • Yes, I spray the D5 and work the servo back and forth a bunch. I usually don't do so with the F5, just when every other servo's cleaned up, I give each a quick shot of F5 and place the plane back on its rack.
    • That's how I discovered it! Spent 40 years in the music industry as an audio engineer - both live mixing & studio recording. Hundreds of sliders & pots....
    • After using regular old "TV tuner cleaner" & finding that the noise soon returned & the stuff actually caused more problems - I stumbled upon DeoxIT products. For decades, D5 & F5 are the only things I've used for cleaning pots & sliders, sliding contacts, commutators, etc.  Back when the first UMs came out, I tried it on a jittery UM linear actuator & it worked perfectly! I've been spreading the news ever since! 

    Thursday, December 20, 2018

    Horizon UMX Servo Range

    tl;dr: For Horizon UMX planes and an OpenTX transmitter, set output channel to 80%.

    From RCGroups:

    All Horizon Hobby Ultra Micro (UMX) models, from the very first Vapor nearly ten years ago, use linear servos. This includes the Champ.

    These servos are not designed to go beyond limits corresponding to 100% in a Spektrum transmitter (1100-1900uS pulse width). If driven much beyond this range, they may suffer mechanical or electrical damage as their travel is physically restricted. Horizon issue strict warnings not to set the transmitter travel beyond 100%.

    For the Taranis and other transmitters that use OpenTX or ER9X, 100% corresponds to 988 to 2022 uS. Thus, it’s essential to restrict the travel to about 80% (actually it’s 78%, but the servos have enough leeway that 80% is close enough).

    You can do this by setting the weight on channels 1-4 to 80% in Mixers. A better way, however, is to set the output on those channels to +/- 80 on the Outputs page.

    If you have more than one UMX model, set up one model this way, then copy it as many times as needed, changing just the name.

    The arithmetic is as follows:
    Spektrum_Transmitter: 1500 - 1100 = 400uS for full travel.
    Taranis: 1500 - 988 = 512uS for full travel.
    400 / 512 = 0.78125 I.e., 78.1%.

    Sunday, December 16, 2018

    Using the FrSky S6R and S8R Stabilizing Receivers

    (update) One-page checklist is here. If you've been through the setup before, it's a nice summarized quick reference.

    Here's my notes on setting up and using the SxR receivers. This is a Work in Progress.

    Key Points:
    • There are quite a few steps, but most of them are pretty simple.
    • Don't skip any steps, especially the one called "Self Test".  It actually sets your plane's leveling and stick controls.
    • These notes use the Lua programs on the receiver, and not the USB link.  They also revolve around setting up "simple" mode.
    • If you have a voltage sensor, disconnect it from the receiver.  It can overwhelm the telemetry channel and interfere with the procedures below.
    Jargon:
    • Manual mode:  The SxR doesn't do anything special, it works just like a normal receiver.
    • Stabilized mode: The SxR corrects for wind buffeting, allowing a plane to fly more smoothly in gusty or heavy winds.
    • Level mode:  The SxR will bring the plane to a flat and level flying position.
    • Recovery mode:  In any of the above modes, you flip a switch and the plane recovers to level flight.
    Prerequisites:
    • A flyable model plane.  It's probably good if it's one you've successfully flown before.
    • Ensure your transmitter is running at least OpenTX 2.2.
    • Ensure your receiver has been updated to the latest firmware.  Sadly there's no way of determining the firmware version, so this means you need to update it yourself or trust your vendor has done it for you.
    • We'll assume you know some basics about binding, setting up a model in OpenTX, etc.
    Both of these tasks are big enough to have their own blog post.  I'll do that as I go along.

    The Big Picture

    The step below are a breakdown of this plan:
    • Initial Benchtop SxR configuration
    • Initial OpenTX configuration
    • Model customization, SxR in plane
    • First flights and SxR Tuning
    • Finalizing SxR configuration.
    1. Binding and Failsafe.
    • Binding is standard D16-style binding.
    • Be sure that you specify Channels 1-16 are available.
    • Set failsafe as normal.
    • Do other non-flying bindings (landing gear, prop safety, etc) as per your model.

    2. Calibration using SxR_Calibrate program.

    This is a one-time step that tells the receiver which way is up and down. Run SxR_Calibrate program to do this. Sticking some servies on channels 1-4 isn't required, but will help you see that you're getting thing right.
    • Long-press to get to radio setup menu.
    • Page to get to SD card.
    • Scroll down to SxR folder and click to open.
    • Scroll to SxR_Calibrate.lua
    • Long-press and select "execute".
    • Now you're on a screen with some instructions to follow.

    There's six steps in calibrating.
    • The program will tell you something like "lay receiver flat, facing up."
    • Lay the receiver as told and hold it still.
    • The position data is stored in the receiver, and you are told to press enter to confirm.
    Repeat this for all six directions the software tells you, and you're finished.  The receiver has determined which was is up and down and stored this configuration information in the receiver's memory.  You won't have to do this again.


    3a. Set up initial transmitter bindings.

    We'll change these up in a bit when we're ready to fly.  This is for setup.
    • Channels 1-4 are AETR: Aileron, Elevator, Throttle, Rudder.
    • Channel 9 is stabilization gain.  Set it to Input:S1, Scale:50 Offset:50
    • Channel 10 is flight mode: manual, stabilized, level.  Set it to Input: SC, no modifiers.
    • Channel 11 is unused in simple mode.
    • Channel 12 is for self-test mode. Set it to input SD, no modifiers. We will change this binding before we fly.
    3b.  Set up audio announcing of the gain value.

    Add this line to the Special Functions menu to play CH9 (the gain) every 5 seconds when switch A is down.

    • SA↓  Play Val     CH9     5


    4. Initial Setup using SxR program.

    • Long-press to get to radio setup menu.
    • Page to get to SD card.
    • Scroll down to SxR folder and click to open.
    • Scroll to SxR.lua
    • Long-press and select "execute".
    • There are two screens of configuration information.  Use the page button to switch between the pages.
    The first screen specifies the airplane type (normal, v-tail, delta a.k.a. wing) and receiver orientation, how it's mounted in the plane.
    • Set the airplane type.
    • Set the receiver orientation.  There's help at the bottom of the screen
    The second screen specifies a lot of parameters.  At this time we only care about a couple of them:

    • SxR functions:
    • Quick Mode:
    • CH5, CH6 mode


    5a. Bench Self-test (part 1)


    Note that "self test" is a bit misleading.  The procedure also sets the level position of your plane and measures the endpoints of your control sticks.
    • Hook up some spare servos to channels 1 (AIL), 2 (ELE), and 4 (RUD). Hook up channels 5 and 6 if they're going to control AIL2 and ELE2.
    • Make sure your trims are centered.
    • Power on the receiver.
    • Flip switch D three times within 3 seconds to activate self  test.
    • You will see the blue Rx LED flash, and the output channels will be exercised.  You should see all three servos move.  This is commonly called the "servo dance."
    • Now move the AIL, ELE, and RUD sticks through their full range of motion.  This is important, it sets the endpoints.  It will also show you something is wrong if the servos don't move.
    • Disconnect and reconnect the power.
    5b. Bench Self-test (part 2)


    • Put switch C (channel 10) in the down (manual) position.  This is manual mode, just like a regular receiver.  Move your Tx sticks and observe that the appropriate servos are moving.
    • Put switch C in the middle (stabilize) position and rotate S1 (gain) clockwise to the max position.   Jiggle your Rx, and you will see the servos jiggle and return to neutral.  Rotate S1 counterclockwise to zero gain.  You will see jiggling has less and less effect, until at the zero position there is no effect at all.  Make sure  your sticks move the servos as well.
    • Put switch C in the top (auto level) position and rotate S1 (gain) to max.  Rotate your Rx in several directions.  You will see the servos respond and hold their positions.  Again, rotate S1 to zero gain and you will see less and less effect, and make sure your sticks move the servos.


    6. Install into Model
    • Remove or disable props and any other potentially hazardous parts of your model.
    • Attach your servos, etc to the receiver.
    • Using the supplied double-sided sticky foam tape, mount the model along the center line and near the center of gravity.  You can be off a bit with no worries.
    • Make sure the Rx matches the orientation set in step 4.
    • For wings, AIL = left wing, ELE = right wing.

    7a. In-model Self-test

    (WARNING: self-test will exercise channels 5 and 6 even if they are set to AUX.  If you have landing gear on one of these channels find some way to support your plane.)


    This is mostly a repeat of section 5, only attached to the plane.
    • Position your plane as it will be in flat and level flight.  Some models like wings need a couple degrees of up-nose.  Do what's right for your model.
    • Power on the model and triple-flip switch D to start the self test.  You'll see the blue lights flash and the servo dance.
    • Fully exercise the sticks to set the endpoints, and reboot.
    At this point, your level-point and stick endpoints have been set, so we need to switch channel 12 to be the momentary H switch.
    • Go to channel 12 on the mix menu and set  the input as momentary stick H.
    • If you leave channel 12 on a 3-position switch, you can accidentally trigger the self test while in the air which will be a disaster.
    7b. Initial Model Setup
    • Switch to manual mode and reverse any channels needed in the usual way (e.g. stick input menu).
    • Set the gain high, hold the plane level, and switch to auto level mode.  Rotate your plane around the three axes and test if the control surface motions are in the correct directions.
    • If any of the control surfaces need reversing for auto level, run the SxR program and set the direction to INV on the second screen.  Reversing takes effect immediately.  Test your sticks through their full range of motion while moving the plane around.
    • Switch to stabilize mode and repeat the stick tests.  Jiggle the model and you will see the control surfaces respond to counteract.
    • Flip switch H (recovery) in all modes.  Ensure that when the H switch is held the plane is in auto level mode.
    • Experiment with the gain knob, and see how it goes from no effect to maximum effect as you move the plane around.  You can flip switch A down to hear the gain values announced.
    [insert video 6/7 here]

    8. Initial Flight


    • Take off in manual mode and adjust your trims, etc, as usual.  Fly to three mistakes high.
    • Now we'll test stabilized and auto level modes. Be ready to switch back to manual mode if things go bad.
    • Turn on gain announce by flipping switch A down.
    • Set the gain to a low value, and switch to stabilize mode.  Gradually increase the gain.  If it's windy, you should feel the plane smooth out as the gain increases.
    • Increase the gain a lot, and you'll see the plane start to jitter in the air as the stabilizer overcorrects.  Back off until the plane feels good in the air, and make a note of the gain value.
    • Now switch to level mode.  If you have an incorrect orientation setting, the plane will flip over and otherwise go crazy.
    • Fly around a bit, letting go of the sticks.  When the sticks are in neutral position, the plane should fly flat and level.  Increase the gain until the plane becomes unstable, and back off the gain.  Note the gain number.
    • Test out recovery mode.  You should be able to go from any position to flat and level flight by pulling the H switch.
    At this point, you've finished up most of what you need to do.

    [insert video 8 here]

    9. Final Adjustment of Gain channel


    Now that you've got a good stabilize gain value, you won't want to have to worry about keeping the knob in the exact right position.  Go to the mix menu, and change channel 9 to be
    • src = MAX, scale = X (where X is your stabilized gain)


    10. Final Adjustment of Auto Level Gain


    If you needed a different gain for auto level, run the SxR.lua program and adjust the AIL stab gain and ELE stab gain.  You will have to experiment to get the exact values dialed in.


    11. Set Failsafe to Auto Level Mode (optional)


    Finally, if you think it's a good idea, you can configure failsafe to include auto level mode.  Perhaps setting it to power off, slight circle, and auto level?

    [insert video 9/10/11 here]