What on earth is SAFE® or: How I hacked AR636 from V900 to fly the Freewing Mirage 2000, with SAFE and AS3X

I wanted to teach a locked-down AR636 with SAFE, to fly the Freewing Mirage 2000 Tiger Meet, a delta wing

Flying Freewing Mirage 2000 Tiger Meet, a delta wing, with a locked-down AR636 with SAFE

Last week I was faced with a new AR636 challenge. I removed a locked-down AR636 receiver with SAFE® from V900, an E-flite speed plane. I wanted to make it fly my new EDF jet, the Freewing Mirage 2000 Tiger Meet. It would be a breeze to reprogram the AR636 today, presumably, with the advent of AS3X® firmware 2.27 made available in April 2018.

I honestly thought it would take me an hour to reprogram the receiver to fly a delta wing, given the new receiver firmware and upgraded programming apps, since I last looked into the AR636. I thought I would fire up the programming app, and change the aircraft type from normal to elevon. I thought I could then set AS3X rate gains, while keeping SAFE panic and self-leveling. Surely Spektrum documentation had caught up in the last three year, right?


In 2016 I wrote an article titled Salvage and Reprogram the AR636A Receiver from Eflite Planes with SAFE®. You’ll find it by simply googling for “reprogram AR636A”. It’s the first hit. This article on an obscure topic is read three times more than my second most popular article, on Peeled Extreme, an ordinary beef tenderloin from Costco.

I wrote that 2016 article after I failed to find clear explanations around these mysterious AR636A receivers that came with Bind-N-Fly Horizon Hobby planes. When I finally figured them out, I decided to put together a simple guide for the next person. Now everyone can learn to reprogram AS3X dual rates and expos on their AR636A, with a mobile app and a programming cable, without losing SAFE.

Similarly, I am again sharing what I leaned, after hacking the AR636 to fly my new delta wing.

Freewing Mirage 2000 Tiger Meet , a French plane, in front of a French-style foosball table

Freewing Mirage 2000, a French plane, in front of a French-style foosball table

Table of Contents


My new problem

You cannot easily take an AR636 that is pre-programmed with SAFE for aircraft wing type X (say normal aileron and tail), and reconfigure it for another wing type Y (say a delta wing with elevons), without losing SAFE in the process.

Transplanting a SAFE AR636A from V900 to Freewing Mirage 2000

Transplanting a BNF SAFE AR636A from V900 to Freewing Mirage 2000

No one has done this before. Or at least no one had clearly documented how to do this online before. It took me some time to figure out how to do this. Thus this sequel to the 2016 article.

Transmitter:Receiver Programming Cable USB Interface

USB Programming Cable

The only physical tool I needed was the Transmitter/Receiver USB Programming Cable (SPMA3065). This time I would be using the PC app Spektrum Programmer, a more powerful version of the mobile one. That said, the audio jack-based AS3X programming cable is still useful, for tweaking rate gains at the field, if you are able to find this discontinued item today. It has now been replaced by the Bluetooth programming module.

While I use the example of teaching the AR636 to fly a delta wing, the text explains basic concepts that Spektrum neglects to elucidate. I learned much from this rcgroups.com thread on Experimenting with SAFE Settings on AR636. Mark (mdmyers), SystemsGuy, Flightengr, santanig5 and many other dedicated fans reversed engineered SRM and SAFE parameters. I found the SAFE Model Builder written by Flightengr to be essential for anyone attempting similar feats. Long-running discussions on the same topics can be found on these threads: AS3X (rcgroups), SAFE (rcgroups) and AR636 (wattflyer).

Safe Model Builder for SAFE by Flightengr

SAFE Model Builder by Flightengr

If you found this article, and you have read so far, then you must be researching for a solution to the same problem. Read on.

AS3X® terminology

For anyone attempting to push AR636 reprogrammability beyond that allowed by Spektrum, a clear understanding of both AS3X® and SAFE® is essential. You will need to understand clearly what the Spektrum Programmer Software (SPS) can do (i.e. AS3X), and more importantly cannot do (i.e. SAFE). The SAFE Model Builder (SMB) written by Flightengr makes up for what is missing (i.e. SAFE). You will need to shuffle model files among SPS, SMB, your file system and the receiver. When neither apps can make changes you need, you will have to edit raw model files yourself in a text editor.

SRM. This acronym stands for Spektrum Receiver Model. Modern Spektrum receivers can be re-programmed with a mobile app or a PC app. The PC app is able to export the current receiver model (configuration) to a file with the extension “.srm” to the file system. This allows a user to share receiver models with other users. The recipient uses the same PC app to import shared .SRM file, and to reprogram their Spektrum receiver with the model captured in the SRM file.

Spektrum Receiver Model SRM file in JSON

Spektrum Receiver Model SRM file

Spektrum has made available for download, for each AS3X-capable Spektrum receiver, a set of SRM files used in BNF® planes sold with said receiver. You can restore your receiver to its original state from these files, if you tweak your receiver using either mobile or PC app, and later change your mind. Click on the “Manual and Support” tab of the AR636 product page, to find the list. You may download individual SRM files, or get all of them in one zip file. If you create an account and register your receiver online, you can access a user-friendly page showing firmware upgrade choices and preset SRM files for this receiver.

Screenshot of AR636 SRM download page

Screenshot of AR636 SRM download page

Note that raw SRM files downloaded from Spektrum contain only a few human-readable fields. The rest of data are encoded in the rawData section. As will be shown later, the SPS can import and re-export an SRM file. When re-exported from SPS, the output file will have rawData decoded into human readable fields.

Raw SRM files downloaded from Spektrum contains very few deserialized JSON fields

Raw SRM files downloaded from Spektrum

SPM. Modern Spektrum transmitters are able to export and import model files with the extension “.spm”. The concept is similar to SRM.

AS3X®. The trademark AS3X stands for “Artificial Stabilization – 3-aXis”. An AS3X receiver can stabilize a plane by itself, even in the absence of transmitter input from the pilot. The behavior of AS3X stabilization is governed mainly by rate gains and heading gains. These gains are discussed in details shortly. Each of the three components of attitude (roll, pitch and yaw) can be configured with its own rate gain value and heading gain value. The receiver counters sudden and unexpected effects of wind gusts on a plane, based on “rate gain” values programmed into it. The receiver tries to maintain the attitude of a plane, over a period of time, based on “heading gain” values programmed into it. This official AS3X technology page is a useful resource, even if it doesn’t dive into details behind AS3X.

What does AS3X do - in simple diagrams

What does AS3X do?

SPS. This stands for Spektrum Programmer Software. This is the PC software that requires a USB Programming Cable I mentioned earlier. The SPS can be downloaded on this Spektrum page. There isn’t much documentation around this software at the time of this writing (2019-03). The software has been updated many times in the last few years, but the instructions haven’t. The download page in fact houses stale instructions that tell users to power the receiver with a battery, when the latest version of SPS (V3.4) can power the receiver from USB directly. You do not want to provide USB power, and at the same time plug in a battery. Bad things will happen. In most cases, go with Flightengr’s Ultimate Guide to Installing AR636 with SAFE which covers SPS in addition to his own SAFE Model Builder (SMB).

The SPS allows owners to edit AS3X settings in their receivers. That includes everything covered in this AS3X terminology section. But the SPS is unable to display or edit any SAFE settings. Keep that in mind, as you read on. Later in this article, SAFE, SMB and all things related to SAFE will be covered.

This video (AS3X Step 14: Gain Adjustment) from Spektrum explains gyro rate gain, heading gain and stick priority. It complements this article, even though it demonstrates the mobile version of SPS.

Rate gains, heading gains and stick priorities in SPS on an open-stock model in SPS

Rate gains, heading gains and stick priorities on an open-stock model in SPS

Current receiver model. As mentioned, the receiver houses one receiver model. It will be referred to as the “current receiver model” in this article. While tweaking an AR636, you will be working on many “receiver models” (or SRM files) in many places. The PC SPS stores many receiver models you have imported, created or cloned. If you also use the mobile SPS, it too, has its own stored models. You will want to save your own SRM backups in your file system. The SMB can edit one model at a time, loaded from your file system. You may edit model files using a text editor as well. At the end of the day, however, you will need to get a modified model back into your receiver, replacing its previous receiver model, before you can test your model changes physically.

AR636 firmware. There used to be a separate software for firmware updates. By 2018, the firmware flashing functionality was incorporated into the latest SPS. A user can flash  firmware on a receiver to the latest version, or if needed (as will be described later), back to previous versions.

SPS shows receiver serial number and firmware version

SPS shows receiver serial number and firmware version

There are two major versions of the firmware: 1.xx and 2.xx. The major version 1.xx denotes the original AS3X without SAFE features. The last version of AS3X firmware is 1.43, released in March 2015. It seems that SAFE features started to be supported when the major version moved to 2.xx. Currently the last version of the the AR636 is 2.27, released in March 2018. If you log onto the Spektrum site and register your receiver online, you can access a user-friendly page showing firmware upgrade choices.

The firmware is not the same as the “current receiver model”. The firmware contains code that runs the receiver hardware. All AS3X and SAFE functionalities are provided by the firmware. The receiver model is simply a collection of settings that turns on firmware features or modifies firmware functionalities.

Even though firmware and current receiver model are two different things, they are tightly-coupled. That is, as Spektrum rolls out a new version of firmware, new model settings may be introduced. It is likely that very old firmware versions can’t interpret the latest receiver models. This is definitely true of when Spektrum rolled out firmware 2.xx which introduced SAFE settings that firmware 1.xx does not understand.

Usually you will want to upgrade a receiver to the latest firmware version, before you synchronize a new SRM model onto the receiver. For instance, as of March 13th, 2019, the AR636 support page (login required) shows V2.27 as the latest 2.xx firmware, and V1.43 as the latest 1.xx firmware. You should in generate flash your receiver to one of these versions, before using SRM files found on the same page.

As mentioned, SPS is now able to download the latest version of firmware and flash it onto your receiver. Instead of going to the online AR636 support page, you can simply fire up SPS, and check the latest firmware version, as shown below. There is a brief note describing changes done since the last stable firmware version. Just two days after I first experimented with flashing firmware, the new stable version 2.30 was released.

Upgrading AR636 firmware from 1.43 to 2.30

Upgrading AR636 firmware from 1.43 to 2.30

If you have an open stock AR636, you can safely flash your receiver’s firmware to any of these two versions using SPS. It doesn’t matter what firmware you currently have on your receiver. You can upgrade from any 1.xx to 2.27. You can also downgrade from any 2.xx to 1.43. But apparently not all BNF AR636A can be safely flashed.

How AR636A is different from AR636 will be explained in later sections. In general, if you only want AS3X features, you should flash/downgrade to the latest 1.xx firmware. If you want to enable SAFE features, you should flash/upgrade to the latest 2.xx firmware.

Receiver serial number. Your receiver has a serial number in it that the SPS can extract, when you connect the receiver to your PC. When the SPS synchronizes its PC-side model from the receiver, the PC-side model will have the receiver serial number in it. When you export this PC-side model to an SRM file, the serial number is exported as well.

SPS uses the embedded serial numbers in model files to help you organize models. You can use SPS to program many different receivers and store many models. But you will not want to synchronize, by mistake, a model created for receiver R1 installed on plane P1, onto receiver R2 installed on plane P2.

Models filtered by serial number of connected receiver

Models filtered by the serial number of the connected receiver

So, when receiver R1 is connected, SPS only shows you models with R1’s serial number, or models without a serial number. If you disconnect receiver R1 from the PC, SPS will then show you all models it stores. Partly this is done for your convenience, and partly to stop you from making careless mistakes.

All models are shown when no receiver is connected

All models are shown when no receiver is connected

You can generate new models without serial numbers, by ensuring that no receiver is connected to the SPS. New models you create while a receiver is connected will have that receiver’s serial number. You can also add/edit/remove serial numbers manually, by loading an SRM file into a text editor. As will be discussed further down, the SMB by Flightengr allows you to edit an SRM file as well. The SMB, too, allows you to blank out the serial number field in a model file.

SRM files downloaded from Spektrum also do not have any serial numbers. That allows these models to be synchronized from SPS to any receivers. If you are sharing an SRM file with friends, you should manually remove the serial number from the file. Otherwise they will have trouble loading this model onto their own receivers. Lastly, if you are posting your SRM file to rcgroups.com, you should also remove the serial number, even if you just want people to look over your configuration, to help you debug issues. You don’t want someone else to get hold of your serial number, and register your receiver on the Spektrum website under their own account.

AS3X® features

Receiver flight mode and switch. An AS3X receiver supports three flight modes. Each mode can be configured with its own rate gain, heading gain and stick priority for three axes, as shown in the picture below.

Rate gains, heading gains and stick priorities in SPS on an open-stock model in SPS

Rate gain, heading gain, etc. can be set for each flight mode

The current flight mode can be changed while the plane is in flight, using a transmitter switch. This switch does not need to take up an output port on the receiver. For instance, when you fly the Avanti S with an AR636, all 6 output ports on the receiver are already used: throttle, aileron, elevator, rudder, gear and flaps. If you have a DX8 transmitter, you have two more unused channels. You can bind a Tx switch to the Aux2 channel, and configure the AR636 to listen to Aux2 for flight mode changes.

Selecting a channel for the flight mode switch

Selecting a channel for the flight mode switch

Rate gain. A receiver with stabilization capabilities contain software that actively moves the control surfaces to counter unintended effects of wind gusts on a plane. The receiver does this by continuously reading gyro sensors. In simple terms, if a sudden wind gust rolls the plane to the left, the gyro registers a non-zero roll change. The receiver then adds a correction amount to the roll signal, in an attempt to recover by rolling the plane slightly to the right.

Rate gain and stick priority

Rate gain and stick priority

The “rate gain” specifies the amount of correction that should be applied “in proportion” to the unexpected “rate of change”. This the most basic attitude correction mechanism, and roughly corresponds to the “P” correction in a PID controller (Proportional–Integral–Derivative controller). This simple correction is applied as soon as the receiver detects a gyro input change (e.g. plane is rolled by wind). The proportional correction ceases as soon as the gyro stops registering changes (e.g. no more wind gusts).

PID Controller Diagram

PID Controller Diagram

The rate-based correction (i.e. proportional correction) cannot level a plane back to its original attitude. It is best thought of as dampening effects of wind gusts. A value of zero for the rate gain effectively disables this proportional correction. A very small rate gain will on average not be able to counter even mild wind gusts. A very large rate gain will often cause the plane to shake violently as it over-corrects, and then over-counter-corrects.

Heading gain. The heading gain specifies the amount of correction that should be applied, to bring the attitude (heading) of a plane back to where it was, before unforeseen forces knocked it off its heading. Unlike the rate-based correction, this correction is calculated based on both the attitude deviation registered by the gyro, and the amount of time this deviation persisted. The longer the deviation persists, the greater the correction amount. This usually corresponds to the “I” correction of the PID controller model.

It is not clear to me whether AS3X incorporates also the “D” component of the PID model, or whether it in fact uses “D” in place of “I”. In theory, the “D” (derivative) component guards against overshooting by the “I” (integral) correction. Without “D”, the receiver may still be applying large “I” correction amount, even as the plane is on the cusp of returning to the initial attitude. Without “D”, the “I” correction could overshoot, causing the receiver to initiative a counter correction. I suppose I can conduct a series of tests to reverse-engineer how the AS3X works. I am too lazy.

The heading correction is a slower correction, compared to the rate-based correction. A sudden wind gust may knock a plane off the roll axis. The heading correction will be small initially. The heading correction becomes larger as time transpires. Even after the wind stopped rolling the plane, the heading correction continues until the plane eventually recovers its original heading (or more accurately, attitude, as heading is about compass direction).

Heading hold. This term is used to describe the result achieved by a stabilizing receiver, using heading corrections. When heading gains are properly tuned, a pilot can put a plane into a knife edge attitude or a harrier attitude, then let all three axis sticks snap back to center. The receiver will fly the plane and hold the heading (or more accurate, the attitude), as long as the pilot continues to provide enough throttle power.

A zero value for the heading gain effectively disables the heading correction. A very small number will cause a lag in recovery. A very large number will cause the plane to slowly wag. For more details, see this rcgroups.com thread.

Rate gain vs heading gain. The rate-based correction and heading correction work in parallel. They complement each other. The rate-based correction reacts immediately to sudden attitude shocks, while the heading correction recovers desired attitude from slow drifts, over time.

Stick priority. To the gyro, a large and fast stick movement on the transmitter looks indistinguishable from a sudden gust of wind. Both can cause the same change of attitude as registered by the gyro, and thus trigger a rate-based correction. A counter-correction by the gyro is the last thing a pilot wants, when the pilot makes a large stick movement, with the intention to cause sudden changes in attitude.

However, the receiver can tell the difference between a large stick movement from wind gusts, because it receives stick signals from the radio. The receiver can turn rate correction completely off, when it detects a “large” stick movement from the radio. “Stick priority” defines how much stick movement is considered “large”.

By default, stick priority is set to 100%. When a stick input is at its maximum deviation from the center (on the X-axis in the screenshot below), the rate gain is scaled down to 0%, from its original amount of 65%. When the stick is at the dead center, the full rate-based correction is applied, with a value of 65%. The response curve below shows that “large” stick movement occurs at the corner of the pyramid. Thus all other stick input levels below it will still enable partial rate correction.

Default stick priority of 100%

Default stick priority of 100% in flight mode 1

Most people will not feel comfortable with a stick priority of 100%. The plane will appear to be constantly fighting back – during most flights, one rarely moves a stick to max travel. Setting the stick priority above 100% instructs the receiver to treat stick travel below physical max as “large” enough to completely disable rate gain. Many people set the priority to above 130%. I personally prefer even larger priorities such as 160%. This treats 1/3 stick travel as “large” enough.

The following screenshot shows the pyramidal response curve, as a function of stick movement, given 40% rate gain and 175% stick priority. The rate-based correction is again strongest when the stick is in the center. The correction tapers off as the stick is moved away from the center. When the stick movement exceeds either corner of the pyramid, the correction is reduced to zero. This gives me ample stick space beyond the two corners, where I know for sure rate gain cannot intervene.

Stick priority works with rate gains

Rate correction amount as a function of stick input

The priority value only governs rate-based corrections. This value does not affect heading corrections. Any movement of the stick away from the center will immediately cancel heading correction, regardless of how the stick priority is set.

Dual rate and exponential. The rcgroups consensus appears to be: don’t set these on the receiver. Instead, just program them on the transmitter as you do for all other receivers. Basically, set dual rate to 100 and expo to 0 on the receiver in SPS, to nullify them.

One reason to leave dual rate and expo out of the receiver is to circumvent known bugs in the AR636 firmware. For instance, the “Transmitter Trim Bug” causes a surface being trimmed to make a jump, after transmitter trimmers are applied, and the stick is left untouched for about 2 seconds. There is also a “Heading Hold Lockup Bug”. See this rcgroups page for details.

Do not set dual rate and exponential on the receiver

Do not set dual rate and exponential on the receiver

There is another reason. Often you will want to use separate transmitter switches to control dual rates and expos, decoupled from the choice of stability flight modes. In fact, this is why I wrote the previous article, Salvage and Reprogram the AR636A Receiver from Eflite Planes with SAFE®, in 2016.

The only downside of leaving these settings out is that the “stick priority” is no longer a function of the physical stick movement, but a function of the results of dual rate and expo applied on the transmitter side. Thus you cannot visually map the pyramidal response curve to physical stick deviation from the center. With dual rates and expos set on the transmitter, I find the optimal stick priority values by holding a stick at the level at which I want the correction to be reduced to 0%. Then with the other hand I twitch the receiver and observe rate corrections. I continue to twitch the receiver, and gradually increase the stick priority. At some point, the rate correction will cease completely, ending the search.

Wing type and tail type selection. With the AR636, you must select the right wing type and tail type in the SPS, and not in your transmitter.

Wing type and tail type selection

Wing type and tail type selection

This is unlike the use of conventional receivers. With conventional receivers, you program the right wing type and tail type in your transmitter (e.g. DX9). So, if you have a flying wing with elevon and no rudder, you select elevon wing type and no tail on the transmitter. The transmitter will mix stick inputs from elevator and aileron, and send out one single elevon signal via one channel to your flying wing receiver. Your rudder stick input will be ignored by the transmitter.

With the AR636, you must not do this. If you have a delta wing with elevon and rudder (such as my Freewing Mirage 200), you should program the transmitter using “normal” wing type and tail type. Your transmitter will send throttle, aileron, elevator and rudder stick inputs to the receiver, via the conventional 4 channels. On the AR636 receiver, you must select “elevon” as wing type in the SPS, and normal rudder for tail type. This allows the receiver, instead of the transmitter, to mix aileron input with elevator input. This is the only way for the AR636 to carry out its rate correction and heading correction functions.

Delta wing type selection

Delta wing type selection in the SPS

6-axis gyros. Many quadcopters are said to support 6-axis gyros. This actually means 3 rotational (gyro) axes for attitude, and 3 translational axes for translational acceleration from an accelerometer. This is not the same thing as the AR636. I believe airplane stabilizers measure rotational acceleration for rate-based corrections. On the other hand, a quadcopter needs to measure translational accelerations in order to remain hovering in place, with spatial corrections in terms of height and distance.

That said, many fixed-wing gyros are advertised as “6-axis gyros”. For instance, the Eagle A3 Pro. This is advertised as a “6-Axis Airplane Gyro”, by which the manufacturer mean: 3-axis gyroscope and 3-axis accelerometer. The Eagle A3 Super 3 can in fact be programmed from a PC app, similar to the AR636.

SAFE® leverages AS3X

SAFE is the next level of flight stabilization which can be turned on and configured on many AS3X receivers. SAFE chiefly hijacks the heading correction functionality of AS3X, so that the receiver can execute stabilization maneuvers on behalf of pilots. SAFE implies AS3X. When we refer to a receiver as running SAFE firmware (e.g. 2.xx), the receiver supports no only SAFE, but also AS3X.

Self-leveling. The receiver can be instructed during flight to keep the plane flying level, when no stick input is received to change roll, pitch or yaw. This is usually done by enabling self-leveling in a flight mode. For instance, the Apprentice S 15e self-levels in beginner flight mode.

Panic button. The receiver listens to a pre-configured channel (say Aux3). When this channel is activated, the receiver goes into self-leveling mode. This is usually bound to the “bind” button on the transmitter, so that when in a panic, the pilot can hold the “bind” button until the plane self-levels.

SAFE failsafe. Most receivers can be configured to either hold current values, or return control surfaces to values preset at binding time, when signal connection from the transmitter is lost. SAFE receivers add a third failsafe choice, for aileron, elevator and rudder. This new failsafe choice supported by a SAFE receiver is also called SAFE (thank you very much, Spektrum). It basically puts the plane into a self-leveling mode, when the receiver loses signal from the transmitter.

SAFE failsafe unique to a V900 SAFE receiver

A new failsafe choice of “SAFE” which is unique to SAFE receivers

Bank-angle limiting. Also known as roll and pitch limiting. This feature is turned on for some flight modes, to limit how much a pilot can roll and pitch a plane. The receiver does not honor stick input from the pilot when the plane is at or past the preset angle limit. It prevents a novice pilot from rolling the plane upside down, or pulling the nose up so high as to stall the plane. For instance, the Apprentice S 15e enables bank-angle limits in the beginner flight mode and the intermediate flight mode.

Level calibration. All four key features of SAFE mentioned above require that the receiver know what gyro attitude is considered level with the ground. That is, the receiver needs to be calibrated at least once, on a level surface. This level calibration is not needed for conventional AS3X stabilization, because rate-based corrections are agnostic to the horizon, and heading hold works off the initial attitude of the plane, when the mode is turned on.

On the other hand, self-leveling, panic leveling and SAFE failsafe use the horizon as their target attitude, as they hijack heading hold to achieve this attitude. Bank-angle limiting similarly maintains the max angle (with respect to the horizon) as target attitude using heading hold, when stick input drives the plane past said max angle.

If you upgrade your receiver from firmware 1.xx to 2.xx, the SPS will prompt you to leave the receiver on a level surface, for a one-time level calibration.

SMB. Flightengr wrote SAFE Model Builder with help from the community that reverse-engineered SRM. This fan software provides a SAFE-tweaking UI that Spektrum does not seem to ever want to supply. Before the SMB, many fans manually edited SRM files. With the advent of the SMB, one can configure most SAFE features, including mounting orientation, wing type, panic self-leveling channel, etc. in a graphical user interface. SMB also allows a user to configure, per flight mode, self-leveling, bank-angle limitations and other flight-mode-specific options.

Safe Model Builder for SAFE by Flightengr

SAFE Model Builder by Flightengr

The SMB complements the SPS. Edit SAFE settings in SMB. Import the resulting SRM back into SPS for further AS3X tweaking. Then synchronize the model to your receiver from SPS.

The SMB download page is here. The Ultimate Guide to Installing AR636 with SAFE explains how to use both SPS and SMB.

Open stock AR636 vs BNF AR636A

AR636 vs AR636A. As explained in my previous article, there is no real differences between AR636 and AR636A (with an extra “A”). These are in general the same AS3X receiver. Both can run either firmware 1.xx (AS3X) or firmware 2.xx (SAFE). They are only different in how they are initially pre-programmed at the factory. Open stock AR636 are shipped with AS3X 1.xx firmware. BNF (Bind-n-Fly) AR636A are configured with either AS3X 1.xx or SAFE 2.xx , and installed on BNF planes, with preset AS3X/SAFE settings fine-tuned for these planes.

The AR636 on the left is referred to as an “open stock” receiver. The right is known as a “BNF” receiver. These pictures show the latest AR636 hardware. Earlier hardware versions lacked a satellite port.

Spektrum AR636 vs AR636A - 6CH Sport Receiver

Spektrum AR636 vs AR636A

Open stock AR636. When you buy an AR636 receiver from Horizon Hobby, you get the case shown on the left. It ships with firmware 1.xx which supports only AS3X. However, it has all AS3X settings turned off initially. It operates like a normal non-stabilizing DSMX receiver out of the box. You can use either mobile and PC Spektrum Programming Software (SPS) to turn on, and configure AS3X features on this receiver.

This is how Spektrum describes an open stock receiver:

When you buy an “Open Stock” receiver with AS3X technology such as the Spektrum AR636, AR7350, AR9350 units, it operates very similar to a standard DSMX® receiver out of the box—the AS3X system is inactive. Setup of the AS3X system is accomplished though the AS3X App and/or PC Program interface.

“Open Stock” indicates that it was purchased separately, not as a replacement part or previously installed in an RTF or BNF® model.

You cannot enable SAFE and tweak SAFE parameters on an open stock receiver using SPS. The Spektrum software does not support tweaking of SAFE at all, because presumably every SAFE-capable BNF plane must only be flown with SAFE parameters fine-tuned just for this one plane, by E-flite.

AS3X-only receiver. Because by default open stock AR636 does not support SAFE, folks have come to call it an AS3X-only receiver. This is not technically correct. This receiver can be easily flashed with firmware 2.xx. It will effectively become a SAFE receiver then.

SAFE receiver. As mentioned earlier, the receiver has a “current model” that can be exported via SPS to an SRM file. Similarly, the receiver can import, via SPS, a new SRM to replace its current model. While you cannot activate nor tweak SAFE features on an open stock AR636 using SPS, you can sync a pre-made SAFE SRM onto your receiver. You can download a pre-made SRM from Spektrum as described earlier. Or you can create one with the SMB.

What makes a receiver “SAFE” is not the hardware, but the firmware on it. As mentioned earlier, firmware 1.xx supports AS3X. Open stock AR636 ship with firmware 1.xx, and therefore does not support SAFE. But if you upgrade an open stock AR636 to firmware 2.xx, you turn your open stock AR636 into a “SAFE” receiver.

Once you have a SAFE receiver, you can find and download an SRM file customized for an E-flite SAFE plane, on the AR636 product page. Import the SAFE SRM into SPS, and sync it onto your SAFE AR636.

AS3X receiver. Following the logic above for SAFE receivers, an AR636 flashed to firmware 1.xx is an AS3X receiver. Similarly, you can find and download SRM file customized for an E-flite AS3X plane, on the AR636 product page.

parameterVersion. There is an SRM field called “parameterVersion”. This field indicates whether this model was created for firmware 1.xx or firmware 2.xx. If you examine SRM files downloaded from Spektrum, you will find that models for AS3X planes have this field set to øxFF, and SAFE planes have this field set to øxFE. So, parameterVersion=øxFF indicates that an SRM should be used with AS3X firmware 1.xx. Similarly, parameterVersion=øxFE indicates that an SRM should be used with SAFE firmware 2.xx.

parameterVersion - 0xFF plain AS3X vs 0xFE SAFE

parameterVersion – øxFF (AS3X) vs øxFE (SAFE)

AS3X model. This is how we will refer to a model or an SRM file that has parameterVersion set to øxFF. As you will see later, SPS will never allow a user to synchronize an AS3X model to a SAFE receiver.

SAFE model. In this article we’ll use this shorthand to refer to a model or an SRM file that has parameterVersion set to øxFE. SPS will never allow a user to synchronize a SAFE model to an AS3X receiver.

This is how Spektrum explains SAFE :

An important difference between SAFE and AS3X technology equipped receivers is that an AS3X only receiver can be tuned by the user and suitable in nearly any model. A SAFE receiver is a complex system custom made for the aircraft. A SAFE receiver is not intended to be taken from one model and put in another.

In this simple explanation, Spektrum does not distinguish firmware from current receiver model. A “SAFE receiver” here means both SAFE firmware and SAFE model. The word “model” in the above paragraphs refers to an airplane model. Also, this Spektrum page predated the 2.27 firmware release in April 2018. The words “AS3X only receiver” is no longer applicable to the open stock AR636, since Spektrum now officially allows fans to flash open stock receivers to 2.xx firmware, thus turning on SAFE on the open stock AR636.

Personally I would reword these brief summaries to make them even more clear:

An important difference between SAFE and AS3X technology equipped receivers is that an AS3X receiver can have its AS3X model tuned by the user in the SPS, and is suitable in nearly any aircraft type. A SAFE receiver is a complex system with a custom-made SAFE model tuned for and field-tested by experts on one aircraft. A SAFE receiver is not intended to be taken from one aircraft type and put in another

Next we’ll discuss how the SPS treats locks out features otherwise available to an AS3X receiver, when it is connected to a SAFE receiver.

SPS, model and feature lockout. The SPS changes its user interface, based on the parameterVersion it finds in a model. When you import an AS3X SRM into the SPS, all AS3X features are supported, including heading gains. But if you import a SAFE SRM, the SPS will lock out certain features such as heading gains, and aircraft wing types. The picture below shows an AS3X model on the left, and a SAFE model on the right.

SPS locks down heading gain and aircraft types on SAFE-enabled receivers

SPS locks down heading gain on SAFE receivers (right)

Heading gain is locked out, because SAFE hijacks heading hold for self-leveling. Heading gain is no longer a feature you can independently configure, as presumably E-flite carefully tweaked heading gains for each plane. You cannot change the aircraft wing type on a SAFE AR636 in SPS, because presumably the SAFE plane you bought from E-flite can’t morph from a dual-aileron plane to a delta wing magically. There is no need for a regular user to tweak wing type on a Spektrum-created SAFE model. The picture below shows an AS3X model on the left, and a SAFE model on the right.

SPS locks down aircraft type selection on SAFE-enabled receivers

SPS locks down wing selection on SAFE receivers (right)

BNF AR636A. The receivers you find on BNF planes such as V900 or Night VisionAire are labeled with an “A” suffix. As mentioned, these are really the same AR636 that happen to be pre-configured at factory, with specific models for specific SAFE-enabled airplanes. The receiver case is stamped with a special AR636A label, to remind users that these are not open stock receivers, and should not be used on other airplanes… except by folks who read nerdy articles such as this one.

Spektrum AR636 loaded with V900 SRM by Horizon Hobby as a replacement receiver

AR636 with V900 SRM

If you take an open stock AR636, and import a V900 SAFE model from Spektrum onto it, your AR636 will now behave like a pre-installed, SAFE AR636A from an E-flite V900.

Case in point. My V900 came with an AR636A, but when SAFE was turned on, the elevator was completely dead (i.e. not responsive to any stick input). I realized this problem early on, and was able to cope with it for a while. After I made an unlisted video showing this to Horizon Hobby, they sent me a new replacement receiver, even though all I asked was for them to send me a USB programming cable, for me to fix this problem myself. They apparently took an open stock AR636, loaded a V900 model onto it, and stuck a V900 label to the receiver.

Upgrading between major firmware versions

As mentioned earlier, you can update firmware on your receiver between major firmware versions (e.g. from 1.xx to 2.xx). When firmware is flashed, the current receiver model is wiped out. But the SPS will never leave a receiver in a state where it does not have a valid model that fits the firmware major version. That is, the SPS always makes sure that an AS3X receiver (firmware 1.xx) has a valid AS3X model. Similarly, a SAFE receiver (firmware 2.xx) must always have a valid SAFE model.

So, immediately after a firmware update, and before SPS gives control of the user interface back to the user, it attempts to select a suitable model from its stored list, for the target firmware version. In many instances, it will find a model that is suitable, and will not ask you to confirm this choice. It simply syncs this model onto the newly flashed receiver.

SPS auto-selects a model after firmware update

SPS auto-selects a model after firmware update

If you have no stored model suitable for this firmware type, it will create a default mode for you. I remember seeing the AS3X creation wizard come up once, when flashing to 1.xx. But I can’t re-create it now.

Flashing from 2.xx to 1.xx - update done

Flashing from 2.xx to 1.xx – update done

Occasionally the SPS will fail to find a suitable model (don’t ask me why). It will show you the “Model Mismatch” dialog that you normally see, when connecting a receiver to the SPS. You have three choices:

  • You can choose “Use Device Setting” to sync model on the receiver onto the stored model SPS has chosen for you. Don’t do this. This is almost never the right thing to do. Your receiver was just flashed. It has no usable model to overwrite onto a stored model.
  • You can choose “Use Computer Setting” to sync a stored model to the receiver. Before you click on this, confirm that the model SPS chose for you makes sense.
  • You can click on Show All. This lets you choose a different store model, and tell SPS to create a new default model instead.
Flashing from 2.xx to 1.xx - asks me to resolve Model Mismatch issue

Flashing from 2.xx to 1.xx – it asks me to resolve Model Mismatch issue

The situation described here only applies when you update between major versions. When you update from a minor version to another minor version (e.g. from 2.27 to 2.30), in most cases your existing model will be compatible with the target version.

The big picture

Having discussed the intricate differences between firmware and model, between AS3X and SAFE, etc., we can now look at the big picture.

First, we can clearly understand AR636 as capable of being configured into one of two states, via a firmware flash. An AS3X receiver runs 1.xx AS3X firmware, and contains an AS3X model. A SAFE receiver runs 2.xx SAFE firmware, and contains a SAFE model.

As described earlier, the parameterVersion field in the model indicates whether it is an AS3X model or a SAFE model. The SPS ensures that a receiver is always in consistent state, by syncing a SAFE model onto a receiver right after flashing it with a 2.xx firmware. Similarly, the SPS syncs an AS3X model onto a receiver right after flashing it with a 1.xx firmware.

AR636 SAFE Receiver State Diagram

AR636 SAFE Receiver State Diagram

Secondly, the SPS can be thought of, as being in one of the three main states as depicted below, at any moment in time. The SPS may be disconnected from receivers. The SPS may be connected to an AS3X receiver. Or the SPS may be connected to a SAFE receiver.

SPS Spektrum Software Programmer State Diagram

SPS (Spektrum Software Programmer) State Diagram

What a user can do in each of these three states are very different. For instance, when a SAFE receiver is connected, a user will never see AS3X models in the model list. This is to prevent a user from syncing an AS3X model to a SAFE receiver by mistake. Yet another example is that you can only generate a new SAFE model, if you have a SAFE receiver connected, but not if you have an AS3X receiver connected.

Often fans ask online, “So I’ve upgraded to 2.xx, where is SAFE?”

Hopefully descriptions of AS3X and SAFE in this article, plus the big picture above, can help answer this question already. The rest are “how-to” mini-articles addressing various common ways people repurpose an AR636/A receiver. The lists of steps in these mini-articles are written succinctly, without explanations for why you must take these steps in particular orders. They assume that you have read through the previous sections. Refer back to the SPS state diagram from above, when trying to understand why you need to disconnect or connect the receiver in the middle of these steps.

How to tweak rate gain, dual rate and expo on an AR636A

If you have a BNF plane with a SAFE AR636A, it will usually have custom-designed flight modes that integrate dual rate and expo with rate gain. For instance, the the Night VisionAire comes with a beginner mode, an intermediate mode and an expert mode. Each mode has its own fine-tuned dual rate, expo and rate gain. It works for a lot of people. But not me.

Tweak rate gains on the NVA

In 2016, I wanted to nullify dual rate and expo on all receiver flight modes, on my Night VisionAire. That is, I wanted to set dual rate to 100 and expo to 0. I also wanted to tweak rate gains to my liking. For these simple tasks, you don’t need SMB and most of this article.

If you only want to change these AS3X settings, you can just follow my previous article: Salvage and Reprogram the AR636A Receiver from Eflite Planes with SAFE®. You can do this with just the SPS.

Most folks on rcgroups believe that known issues continue to plague even the latest firmware 2.27, in the form of “Tx trim bug” and “Heading hold lockup bug”. It is recommended that you nullify dual rate and expo on the receiver model, and instead program them as usual on the transmitter.

As noted earlier, SPS does not understand SAFE. So with this approach, you will not be able to change SAFE settings on a SAFE AR636A. You will also not be able to change AS3X settings hijacked by SAFE, such as receiver orientation and heading gain. This approach is only suitable if you are not trying to use this receiver on a different plane.

How to use AR636A on a non-E-flite plane, “without” SAFE

AS3X AR636A receivers on BNF planes come with 1.xx firmware which only supports AS3X. On the other hand, SAFE AR636A receivers from planes such as the Night VisionAire come with firmware 2.xx. Physical hardware are the same, but firmware on these receivers are different.

Stabilizing the EF 60″ Laser

Often you want to take an AR636A, and use it as just a normal receiver in a different plane, possibly without AS3X and certainly without SAFE. You may want to drop AS3X settings that came with the BNF AR636A, because you can’t use AS3X settings tailored for an E-flite plane to fly a non-E-flite plane. Similarly, if you have a SAFE AR636A, its SAFE settings will most certainly not work on your target plane. For instance, the flight mode 1 of Theory has self-level on, at all times. This flight mode is useless to me, if I reuse the Theory AR636A as is, on some other plane.

Before April 2018, even the seemingly simple task of disabling SAFE and AS3X on an AR636A was an arduous endeavor. This is because at that time, the SPS did not recognize most AR636A receivers, so you couldn’t use SPS to turn off AS3X. Before April 2018, Most people used a separate firmware updater to flash an AR636A to firmware 1.xx, disabling SAFE and turning it into an AS3X-only receiver. The SPS can then be used to tweak AS3X settings on this receiver.

After April 2018, this task became easier. The newest version of SPS recognizes more AR636A receivers, and has a built-in firmware updater. If you do not care about SAFE features, you can flash AS3X or SAFE receivers to the latest 1.xx firmware (not the 2.xx firmware), from within the SPS. You will now have an AS3X receiver with the latest 1.xx firmware.

While this AS3X receiver is connected to the SPS, a default model created in the SPS will have its parameterVersion set to øxFF, indicating that it is an AS3X model. This unlocks all AS3X features in SPS, including receiver orientation, wing type, heading gain, etc.

Bench-test your receiver and plane!

You can follow my previous article, for configuration of AS3X parameters. As I mentioned in that article, bench-testing of the receiver after change AS3X changes is paramount. You will find even more detailed help on bench-testing in Section 7 of the Ultimate Guide. Jim (Suenaga) who started the popular Eflite SAFE RX in another plane has a SAFE bench-testing video from 2014 which remains relevant and useful today.

I cannot stress the need to bench-test more. Even the most experienced pilots at my flying field make the mistake of not thoroughly bench-testing every aspect of servo direction, control surface deflection, and most importantly, rate and heading corrections made by a stabilizing receiver such as AR636. Maidening a plane without double- and triple-checking the effects of a gyro receiver often results in a short maiden and simultaneously final flight. Jump to 4:29 and 5:11 to see two examples, out of dozens I’ve personally witnessed.

It appears that Horizon Hobby’s official stance is that only open stock AR636 receivers can have their firmware upgraded. That said, many AR636A pulled from BNF planes have been successfully flashed and upgraded by fans, as reported on rcgroups.com threads. But there are also cases of failed upgrades. Flash AR636As at your own risk..

How to use AR636/A on a different SAFE plane from E-flite

F27 Evolution delta wing

Redeploy SAFE on a delta wing

Before April 2018, open stock AR636 and BNF AR636A alike could not be reprogrammed using official software from Spektrum, to fly a different SAFE plane. As every SAFE plane required custom-tailored SAFE settings, you could not take the SAFE receiver from a Night VisionAire, and use it to fly the PNP Evolution, a delta wing.

In the past, fans with an extra AR636 or an AR636A pulled from a SAFE plane had to send the receiver back to Horizon Hobby, and request that the receiver be reprogrammed for a specific SAFE plane.

Other fans resorted to reverse-engineering the SRM file. And they mapped out SAFE fields. Once these were understood, a fan could manually edit an SRM file in a text editor, to change SAFE fields that determined, for instance, mounting orientation, wing type and panic behavior. Flightengr shortly wrote the SAFE Model Builder (SMB) software to provide an friendlier alternative to manual tweaking. Folks shared painstakingly re-created SAFE files online.

With the release of firmware 2.27 and SPS V3.3 in April 2018, all these changed. Spektrum concurrently made available for download, SRM files for pretty much all SAFE planes.

Screenshot of AR636 SRM download page

AR636 SRM download page

If all you want is to fly some other SAFE plane with an extra open stock AR636 or BNF AR636A, you now simply:

  • Flash your AR636/A in SPS to the latest 2.xx firmware which supports SAFE
  • You will be prompted to do level calibration if upgrading from 1.xx
  • Download the SRM file for the target SAFE plane from Spektrum here or here, after you login (see the SRM section above for details)
  • Activate the new SRM model in SPS to synchronize this model into your receiver
  • Rate gains are only activated after you throttle up
  • Bench-test the receiver extensively, following Section 7 of the Ultimate Guide

Again, as mentioned in the last section, Horizon Hobby maintains that only open stock AR636 can be used with SPS. But fans report that most AR636A can be reprogrammed just the same. Flash and configure AR636As at your own risk.

How to use AR636/A on a non-E-flite plane, “with” SAFE

The previous section explains how you can easily configure your receiver for a different SAFE plane, using an SRM file downloaded from Spektrum. If, however, your target plane is not an E-flite plane, you will not find a pre-made SRM file. So you can’t simply sync a pre-made SAFE model onto your AR636 or AR636A.

This section presumes that you do want to deploy SAFE features, on your non-E-flite plane. Of course, if you do not intend to deploy SAFE on your target plane, then go back to the section How to use AR636A on a non-E-flite plane, “without” SAFE.

Deploy a pre-made SAFE model on a similar plane

Let’s say that you want to custom-tailor a SAFE configuration for your non-E-flite plane. There are many ways to do this. The easiest way is to find a Spektrum SRM file that closely resemble your target plane in wing type, receiver mounting orientation and flight characteristics. For instance, if your target plane is a 3D plane, a close match from the E-flite line of planes will be the Night VisionAire (NVA). You then tweak most SAFE parameters in SMB, before you deploy this SAFE model on your target plane.

Flying a normal 3D plane using a SAFE AR636A from the Night VisionAire

Flying a normal 3D plane using a SAFE AR636A from the Night VisionAire

Follow these simple steps:

  • Flash your AR636/A in SPS to the latest 2.xx firmware which supports SAFE
  • You will be prompted to do level calibration if upgrading from 1.xx
  • Download NVA SRM file from Spektrum here or here, after you login
  • Export this NVA model from SPS to an SRM file on your file system
  • Load this SRM file into the SAFE Model Builder (SMB), and customize SAFE settings.
  • Save this model from SMB back to your file system
  • Delete this model from SPS first, before the next step
  • Import this SRM file back into SPS
  • Customize AS3X settings in SPS
  • Activate the new SRM model in SPS to synchronize this model into your receiver
  • Rate gains are only activated after you throttle up
  • Bench-test the receiver extensively, following Section 7 of the Ultimate Guide

For me, however, this simple solution does not work. There is no SAFE plane from E-flite that matches my target plane, the Mirage 2000. There are plenty of flying wings from E-flite: Theory, Manta, Opterra and Evolution, for instance. But none of these have a tail rudder. Neither SPS nor SMB allows me to change the tail type. Thus I cannot deploy any of these pre-made SAFE models as is.

Trick SPS into unlocking wing type changes on a SAFE model

As mentioned earlier, if you have an SAFE model, you cannot change the wing type of this model in SPS nor in SMB. However, you can hack the model, if you know the right procedure. The trick is centered around flipping the parameterVersion at the right time, during this procedure.

Transplanting a SAFE AR636A from V900 to Freewing Mirage 2000

Change wing type of a V900 model to fly a delta wing

The SMB has a “Model Setup Version” panel which is designed specifically for this task. Check the “firmware version 1.xx” box to set the parameterVersion to øxFF (i.e. AS3X model). Check the “firmware version 2.xx” box to set the parameterVersion to øxFE (i.e. SAFE model). This parameterVersion is used by SPS to determine whether it should disable changes to receiver orientation, wing type and heading gain. The SPS also uses this flag to hide incompatible models from view, when a receiver is connected.

Tweaking the parameterVersion in SMB between firmware 1.xx and 2.xx

Toggling the parameterVersion in SMB between firmware 1.xx and 2.xx

Ready to perform the magic, and make an V900 model a delta wing model?

  • Flash your AR636/A in SPS to the latest 2.xx firmware which supports SAFE
  • You will be prompted to do level calibration if upgrading from 1.xx
  • Download the SAFE SRM file for V900 from Spektrum here or here, after you login
  • Clone this SAFE model and name it Mirage 2000
  • Export this Mirage 2000 model from SPS to an SRM file on your file system
  • Load this SRM file into the SAFE Model Builder (SMB)
  • On the Advanced tab, check “firmware 1.xx” to mark the model as AS3X
  • Save this model from SMB back to your file system
  • Disconnect your SAFE receiver from SPS, leaving it in the unconnected state
  • Delete this model from SPS first, before the next step
  • Import this SRM file back into SPS
  • The SPS treats this model as AS3X – wing type selection is now unlocked
  • Change wing type from normal to elevon, and tail to rudder
  • Export this model from SPS to file system again
  • Load it into SMB again – click OK when SMB warns of “Not a SAFE model”
  • Don’t customize SAFE settings yet
  • Check “firmware 2.xx” to mark this model as SAFE
  • Save this model from SMB back to your file system
  • Delete this model from SPS first, before the next step
  • Import this SRM file back into SPS
  • The SPS treats this model as SAFE – wing type selection is now locked down
  • Connect your SAFE receiver back to the SPS
  • Choose ‘Use Computer Settings’ when prompted, to sync tweaked model to the receiver
  • Confirm gyro orientation and control surface direction, following the Ultimate Guide
    • Use SAFE self-leveling or panic mode to check aileron and elevator directions
    • Use rate gains (turned on after throttling up) to check rudder surface direction
  • Only set servo reverse in transmitter after the above step
  • You can now customize additional AS3X settings in SPS, and SAFE settings in SMB
  • Always bench-test the receiver after changes, following Section 7 of the Ultimate Guide

But this is not what I actually did for my Mirage 2000. I felt that perhaps no one fully understood all SAFE fields in the SRM and how these values worked together. I thought that taking a V900 model and changing wing type was too dangerous.

So what I actually did in the end was to take an E-flite Theory model (a delta wing without rudder), and use the parameterVersion trick to add a tail rudder to the model. But then I ran into yet another issue that no one had discussed before on rcgroups.

Disable direct parameters for the PID controller

Instead of morphing a V900 model into a delta wing model as I originally planned, I actually downloaded the Theory Type W Team Edition SRM as my starting point. It’s a delta wing like my target plane, the Mirage 2000. But the Theory doesn’t have a rudder, so the model file is missing rudder configuration. I used the trick described above to tweak parameterVersion, so that I could add a tail rudder in SPS.

Flying a delta wing Mirage 2000 using SAFE SRM model from Horizon Hobby Theory Type W

Flying Mirage 2000 using SAFE SRM model from Theory Type W

Then I got stuck with a weird issue. I successfully reconfigured all SAFE settings including panic mode and self-leveling for all 3 flight modes. But I was NOT able to get rid of the the heading gain in flight mode 1. I changed head gains in SMB, and confirmed that the SRM file showed these values. But the receiver did not honor these changes. Furthermore, the receiver also ignored rate gain changes I made in the SPS. This lead to three rounds of rcgroups discussions (first, second and third) until I finally found the cause of the issue.

It appears that there are two ways to configure the AS3X PID controller in the receiver.

Heading gains and rate gains in most SRMs are specified in the sections “legacy|headingGain” and “legacy|rateGain“. The SPS changes these two sections when users edit heading gains and rate gains for an AS3X-only model. For SAFE model, SPS will continue to write to the “legacy|rateGain”, while the SMB picks up the same role for the “legacy|headingGain” section. Values written to these two sections are interpreted by the receiver firmware and translated into whatever internal parameters it uses to run the stabilization code. Even though no one knows for sure whether headingGain is the “I” integral part or the “D” derivative part of a PID controller, people assume that there is PID controller code in the firmware.

Theory Type W: legacy rateGain section of the SRM file

Theory Type W: legacy | rateGain section of the SRM file

There is a second way to configure the PID controller. No one knew about this apparently until I ran into this issue. The Theory Type W model uses this second way to configure PID. It has values for flight mode 1 and 2 in the section “autopilot|pidStability“. It sets proportional correction for flight mode 1 to complement self-leveling (i.e. beginner SAFE mode). It sets both proportional and integral corrections for flight mode 2, as this mode has self-leveling turned off (i.e. intermediate AS3X mode). If any number in this section is not the default 255, 128 or 25 for the pidStability fields, the receiver apparently prefers the pidStability section over the traditional “legacy|headingGain” and “legacy|rateGain” sections.

Theory Type W: pidStability section of SRM file

Theory Type W: autopilot | pidStability section of the SRM file

As neither SPS or SMB understands the pidStability section, I had to edit this section manually in a text editor, to reset pidStability values. See this post on rcgroups.com for details. There is also an “autopilot|pidAttitude” section. I know almost nothing about what it does.

Once I reset the pidStability section, I was able to successfully configure heading gains in SMB, and rate gains in SPS. I synchronized the model to the Mirage 2000, and everything worked beautifully.

Create a new SAFE model from the ground up

There is another way to get a SAFE model customized for your plane, without starting with some existing SAFE model. You can create a brand new model from the ground up. The SPS is able to spit out a default SAFE model, when it is connected to a SAFE receiver. This new model will default to the normal wing type and tail type, regardless of what your current receiver model has. SPS will unfortunately have the usual features locked out for this model: receiver orientation, wing types and heading gains. The newly-created model is thus not usable on my target plane, as mine is a delta wing with a rudder. This issue is in fact what got me into the SAFE rabbit hole.

Flying a delta wing using SAFE AR36A created from the ground up

Flying a delta wing using a SAFE model created from the ground up

More adventurous people may be tempted to generate a new AS3X model, and set wing type to elevon in the new model wizard. Presumably you then turn it into a SAFE model by importing it into the SMB, and flipping the parameterVersion in SMB from AS3X to SAFE. The SMB will actually warn you if you load an AS3X model into it. But the adventurous types will forge ahead nonetheless.

SMB warns you when you load an AS3X model into it

SMB warns you when you load an AS3X model into it

If you proceed, and then turn on 2.xx firmware in the Advanced tab, you will have a wrecked model file. Most of SAFE fields in this model will not have proper default values. You will still be able to sync this wrecked model via SPS to your receiver. But the first thing you will see is that the smallest stick input causes almost the maximum control surface movement. In addition, despite what you may attempt to tweak in SMB, you can’t get rid of the persistent self-leveling attempts, in all flight modes. These are just the first few things I observed. Naturally, I stopped at this point, my foolish attempt to transcend an default-created AS3X to SAFE-hood.

The right way to create a delta wing SAFE model out of thin air, is actually very similar to the way you Trick SPS into unlocking wing type changes on a SAFE model. All you need to do is, instead of the “Download the SAFE SRM file for V900” step, you:

  • Create a new default SAFE model in SPS, with your SAFE receiver connected to it
Create a default SAFE model in SPS while connected to a SAFE receiver

Create a default SAFE model in SPS while connected to a SAFE receiver

You will need to pay closer attention to tweaking SAFE settings and bench-testing all changes. As Spektrum and E-flite stress, every SAFE model they produce are custom-made for a particular E-flite plane. And they are not joking. For instance, many delta wing SRM files I downloaded from Spektrum have kp=25 in the pidAttitude section. But the default-created SAFE has kp=100.

The autopilot pidAttitude SRM section and self-leveling aggresion

The autopilot pidAttitude SRM section and self-leveling aggression

I didn’t know what pidAttitude did earlier in my SAFE-tweaking adventure. I now know at least one thing it does. The kp value in pidAttitude determines the aggressiveness of the self-leveling attempt. It appears to scale the heading gain values you enter in the Advanced tab of the SMB.


Here are some additional notes that didn’t make it into the article proper. I may revise this article and work them in. Or perhaps I will write about them somewhere else next time.

Flight Mode Switch Anomaly

SPS doesn’t show a chosen channel in the Flight Mode Switch page, for some SRM files. This is especially true for SAFE models. For instance, I have flight mode switch set to AUX1 channel in SMB. When I look at this model in SPS, it does not show AUX1 as a choice in the selection list. And no choice in the list is marked as the selected channel.

SPS is confused about flight mode switch being set to AUX1

SPS is confused about flight mode switch being set to AUX1

I simply avoid the flight mode switch page in the SPS. You can set the channel you want to use in the SMB anyway.

SMB can properly set the flight model switch channel selection

SMB can properly set the flight model switch channel selection

outputSurface2servo and associatedAxis

While trying to figure out parameterVersion, I generated new models in SPS for all wing types and tail types. In the process I mapped out all “axis” values that were used (see this post). The “axis” values used in the associatedAxis section of the SRM represent “virtual servo output” that the firmware calculates, based on stick input from the radio, AS3X features (e.g. rate gains) and SAFE features (e.g. bank-angle limits). The act of selecting a wing type in SPS results in SPS mapping different virtual servo outputs to the receiver’s physical ports.

These virtual servo outputs are: 1 (aileron), 6 (elevator), 9 (rudder), 25/26 (vtail), 7/8/ (dual elevator), 10/11 (dual rudder), 2/4 (dual aileron), 20/23 (flaperon) and 13/14 (elevon).

But sadly, nothing generates Theory’s 12/15 axes. The Theory SRM calls for a special pair of axes that are not used by any default-generated model. The default elevon models all use axes 13 and 14. But the Theory SRM came with axes 12 and 15.

I used parameterVersion to unlock aircraft type choices for the model I derived from Theory. I then switched aircraft type to Normal and then back to Elevon in SPS. This changed a few things. Chiefly it changed the axis values from 12/15 to 13/14 (elevon).


That’s it. Fly safely. And don’t make spare parts.

About Xinhai Dude 辛亥生

The name Xinhai Dude 辛亥生 is a pun in Chinese, as it means both “he who was born in Xinhai” as well as “he who studies Xinhai”. I had an ambitious plan to write something about the great Xinhai Revolution of 1911, thus my blog https://xinhaidude.com. But after an initial flurry of activities the initiative petered out. One day I will still carry it through. But for now, this website has turned into a conglomerate of my work on various topics of interest to me, including travel pictures, RC model airplane flying, ice skating, classical music composition, science fiction short stories, evolution and atheism.
This entry was posted in RC Planes and tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , . Bookmark the permalink.

5 Responses to What on earth is SAFE® or: How I hacked AR636 from V900 to fly the Freewing Mirage 2000, with SAFE and AS3X

  1. Taff says:

    Very interesting reading, Is there any way to do the level calibration without firmware upgrade…

    • Taff,

      I don’t know of a way. Perhaps someone can reverse engineer SPS code to do this.

      But, honestly, it’s quite simple. Just flash to the latest 1.xx firmware. Then flash back to 2.xx firmware. It will ask you to calibrate. Flashing takes 10 seconds. It’s not a big deal.

      But, as I pointed out, Andy said that not all BNF AR636A can be safely flashed. So take that into account. I imagine most AR636A made in the last two to three years are flashable. But that’s just my guess.

      Save your current receiver model into a file as backup, first, before you do anything with the receiver.


  2. Ken Rosloniec says:

    Great article! Thank You for all your hard work and knowledge on this.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s