Updated Ch naming across all display, and updated Docs (#786)

* #751 DSM Enhancements

 #751 DSM Forward Programming Enhancements (New GUI, etc)

* Make both work on EdgeTx and OpenTX

* #751 Turn OFF simulation by default

Distribution code with RX simulation OFF
Simulation should be only for Development

* #751 Update Readme Documentation

Updated the Readme.txt documentation
and removed compiled luac file that was check in by mistake

* #751 Fix problems With Reset RX

1. Fix problem when trying to Factory Reset. Enter Bind Mode. Save backup, Restore Backup

2. Found a way to advance on the Gyro initial Setup menus.. a bit of a hack, but works.

3. Handle RX resets properly. It needed after initial setup

* #751 Cosmetic and Show Orientation Images

#751
1. Fix problems when text contradictions between Menu/Line Headers and List Values
2. Show Images of RX orientations
3. Able to Hack getting into Initial Setup and other menus who was failing before
4. Custumize the way Flight Mode reports the Value on Screen

* #751 add check for required libraries

Add check that the required files in DSMLIB exist

* #751

Write documentation about the protocol so that we don't forget later what we know, and enable others to understand the logs and maybe help solve problems.

* #766

Change the way to detect that the files exist. now works on both ETX and OTX

* #766 Strange Flickering in OTX

Strange Flickering happening on OTX. Refreshing the screen on every cycle fixed the problem

* #766 Change way of dectecting EdgeTX

Change way of detecting OTX in multiple versions: OTX 2.3.14 and 2.3.15

* #766  make editable Gain Values

Gains and other settings should be editable even when they are VALUE_NOCHANGING. Flight Mode is an exception that is handled properly. Right align numbers.

* #766 More enhacements

Added AR630
Make numbers right justified
Cleanup some log messages and line types.
Updated DSM FWD prog documentation

* #751 more cosmetic things

1. Added AR10360T,
2. Simplify way to configured the hack for more receivers.
3. Change some texts on menus to march spektrum
4. Background color in Spektrum theme to match

* #751 A few final changes

1. Update channel names to include channel number. i.e: Ch5 (Gear)
2,  Fix flight mode display for Heli Receiver
3. i think the unknown lines are to request info about the TX settings

* #751

1. Added Warning Screen
2. Correct handling of Unknown lines in Gyro Settings->Initial Setup

* #751

New v0.51 version.
- Added new menus to configure Model/Wing type.  Without it, the initial setup will not work properly.

* #751 More fixes on mixers and servo reverse

-- Fix problem reversing servos when using vtail/delta mix
-- Properly detect ch order of multimodule

* #751 Updated channel naming and docs

Updated readme documentation
Consistent naming of Ch across the code.

Co-authored-by: pascallanger <pascal_langer@yahoo.fr>
This commit is contained in:
Frankie Arzu 2022-12-20 15:58:38 -06:00 committed by GitHub
parent 01aef0a822
commit 6297810edc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 80 additions and 68 deletions

View File

@ -27,7 +27,7 @@ local VERSION = "v0.52"
-- Rewrite/Enhancements By: Francisco Arzu -- Rewrite/Enhancements By: Francisco Arzu
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
local SIMULATION_ON = true -- FALSE: use real communication to DSM RX (DEFAULT), TRUE: use a simulated version of RX local SIMULATION_ON = false -- FALSE: use real communication to DSM RX (DEFAULT), TRUE: use a simulated version of RX
local DEBUG_ON = 1 -- 0=NO DEBUG, 1=HIGH LEVEL 2=LOW LEVEL (Debug logged into the /LOGS/dsm.log) local DEBUG_ON = 1 -- 0=NO DEBUG, 1=HIGH LEVEL 2=LOW LEVEL (Debug logged into the /LOGS/dsm.log)
local DEBUG_ON_LCD = false -- Interactive Information on LCD of Menu data from RX local DEBUG_ON_LCD = false -- Interactive Information on LCD of Menu data from RX
local USE_SPECKTRUM_COLORS = true -- true: Use spectrum colors, false: use theme colors (default on OpenTX) local USE_SPECKTRUM_COLORS = true -- true: Use spectrum colors, false: use theme colors (default on OpenTX)

View File

@ -126,6 +126,8 @@ local DSM_Context = {
local MODEL = { local MODEL = {
modelName = "", -- The name of the model comming from OTX/ETX modelName = "", -- The name of the model comming from OTX/ETX
modelOutputChannel = {}, -- Output information from OTX/ETX modelOutputChannel = {}, -- Output information from OTX/ETX
TX_CH_TEXT = {},
PORT_TEXT = {}, PORT_TEXT = {},
DSM_ChannelInfo = {} -- Data Created by DSM Configuration Script DSM_ChannelInfo = {} -- Data Created by DSM Configuration Script
} }
@ -596,14 +598,14 @@ local function DSM_ReadTxModelData()
-- Read Ch1 to Ch10 -- Read Ch1 to Ch10
local i= 0 local i= 0
for i = 0, 9 do for i = 0, 12 do
local ch = model.getOutput(i) -- Zero base local ch = model.getOutput(i) -- Zero base
if (ch~=nil) then if (ch~=nil) then
MODEL.modelOutputChannel[i] = ch MODEL.modelOutputChannel[i] = ch
if (string.len(ch.name)==0) then if (string.len(ch.name)==0) then
ch.formatName = string.format("TX:Ch%i",i+1) ch.formatCh = string.format("TX:Ch%i",i+1)
else else
ch.formatName = string.format("TX:Ch%i/%s",i+1,ch.name or "--") ch.formatCh = string.format("TX:Ch%i/%s",i+1,ch.name or "--")
end end
end end
end end
@ -628,8 +630,9 @@ local function DSM_ReadTxModelData()
for i = 0, 9 do for i = 0, 9 do
local ch = MODEL.modelOutputChannel[i] local ch = MODEL.modelOutputChannel[i]
if (ch~=nil) then if (ch~=nil) then
MODEL.PORT_TEXT[i] = string.format("Port%i (%s) ",i+1,ch.formatName) MODEL.TX_CH_TEXT[i] = ch.formatCh
LOG_write("Port%d %s [%d,%d] Rev=%d, Off=%d, ppmC=%d, syn=%d\n",i+1,ch.formatName,math.floor(ch.min/10),math.floor(ch.max/10), ch.revert, ch.offset, ch.ppmCenter, ch.symetrical) MODEL.PORT_TEXT[i] = string.format("Port%i (%s) ",i+1,MODEL.TX_CH_TEXT[i])
LOG_write("Port%d %s [%d,%d] Rev=%d, Off=%d, ppmC=%d, syn=%d\n",i+1,MODEL.TX_CH_TEXT[i],math.floor(ch.min/10),math.floor(ch.max/10), ch.revert, ch.offset, ch.ppmCenter, ch.symetrical)
end end
end end
end end
@ -1386,6 +1389,11 @@ local function DSM_Init_Text(rxId)
-- usually is Ihnibit + range of contiguos values, but cant seems to find in the RX data receive the values -- usually is Ihnibit + range of contiguos values, but cant seems to find in the RX data receive the values
-- to do it automatically -- to do it automatically
local function getTxChText(ch)
return " ("..(MODEL.TX_CH_TEXT[ch] or "--")..")"
end
List_Text[0x0001] = "Off" List_Text[0x0001] = "Off"
List_Text[0x0002] = "On" List_Text[0x0002] = "On"
@ -1395,8 +1403,7 @@ local function DSM_Init_Text(rxId)
-- Channel selection for SAFE MODE and GAINS on FC6250HX -- Channel selection for SAFE MODE and GAINS on FC6250HX
List_Text[0x000C] = "Inhibit?" --? List_Text[0x000C] = "Inhibit?" --?
List_Text[0x000D] = "Ch5 (Gear)" for i = 0, 7 do List_Text[0x000D + i] = "Ch"..(i+5) ..getTxChText(i+4) end -- Aux channels (Ch5 and Greater)
for i = 1, 7 do List_Text[0x000D + i] = "Ch"..(i+5) .. " (Aux" .. i .. ")" end -- Aux channels
-- Servo Output values.. -- Servo Output values..
local servoOutputValues = {0x0003,0x002D,0x002E,0x002F} --Inh (GAP), 5.5ms, 11ms, 22ms. Fixing L_m1 with 0..244 range! local servoOutputValues = {0x0003,0x002D,0x002E,0x002F} --Inh (GAP), 5.5ms, 11ms, 22ms. Fixing L_m1 with 0..244 range!
@ -1416,15 +1423,10 @@ local function DSM_Init_Text(rxId)
local channelValues = {0x0035,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049} local channelValues = {0x0035,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049}
List_Text[0x0035] = "Inhibit?" List_Text[0x0035] = "Inhibit?"
List_Text[0x0036] = "Throttle" for i = 0, 11 do List_Text[0x0036 + i] = "Ch"..(i+1) .. getTxChText(i) end -- Channels on AR637T
List_Text[0x0037] = "Aileron"
List_Text[0x0038] = "Elevator"
List_Text[0x0039] = "Rudder"
List_Text[0x003A] = "Ch5 (Gear)"
for i = 1, 7 do List_Text[0x003A + i] = "Ch"..(i+5) .. " (Aux" .. i .. ")" end -- Aux channels on AR637T
for i = 1, 8 do -- 41..49 for i = 1, 8 do -- 41..49
List_Text[0x0041 + i] = "Ch"..(i+13) .." (XPlus-" .. i .. ")" List_Text[0x0041 + i] = "Ch"..(i+13)
end end
-- ****No longer overrides of previous XPlus values, since using different array -- ****No longer overrides of previous XPlus values, since using different array
@ -1526,7 +1528,7 @@ local function DSM_Init_Text(rxId)
Text[0x00C7] = "Calibrate Sensor" Text[0x00C7] = "Calibrate Sensor"
Text[0x00C8] = "Complete" -- FC6250HX calibration complete Text[0x00C8] = "Complete" -- FC6250HX calibration complete
Text[0x00CA] = "SAFE/Panic Mode Setup" Text[0x00CA] = "SAFE/Panic Mode Setup"
Text[0x00CD] = "Level model and capture attiude/M"; -- Different from List_Text , and force it to be a menu button Text[0x00CD] = "Level model and capture attitude/M"; -- Different from List_Text , and force it to be a menu button
-- RX Orientations for AR631/AR637, Optionally attach an Image + Alt Text to display -- RX Orientations for AR631/AR637, Optionally attach an Image + Alt Text to display
List_Text[0x00CB] = "Position 1"; List_Text_Img[0x00CB] = "rx_pos_1.png|Pilot View: RX Label Up, Pins Back" List_Text[0x00CB] = "Position 1"; List_Text_Img[0x00CB] = "rx_pos_1.png|Pilot View: RX Label Up, Pins Back"
@ -1725,9 +1727,9 @@ local function DSM_Init_Text(rxId)
Text[0x026A] = "Use CAUTION for Yaw gain!/b" -- SubTitle Text[0x026A] = "Use CAUTION for Yaw gain!/b" -- SubTitle
Text[0x8000] = "Flight Mode/c/b" --FC6250HX: 1=NORMAL 2= Stunt-1, 3=Stunt-2, 4=Hold Text[0x8000] = "Flight Mode/c/b" --FC6250HX: 1=NORMAL 2= Stunt-1, 3=Stunt-2, 4=Hold
Text[0x8001] = "Flight Mode/c/b" -- WAS "Flight Mode 1".. This usually is a Flight Mode w value relative to 0 (AR631/AR637) Text[0x8001] = "Flight Mode/c/b" --AR63X family: WAS "Flight Mode 1".. This usually is a Flight Mode w value relative to 0 (AR631/AR637)
Text[0x8002] = "Flight Mode 2/c/b" -- what RX does this show up?? Text[0x8002] = "Flight Mode/c/b" -- what RX does this show up??
Text[0x8003] = "Flight Mode 3/c/b" Text[0x8003] = "Flight Mode/c/b"
end end
-- Adjust the displayed value for Flight mode line as needed -- Adjust the displayed value for Flight mode line as needed
@ -1750,14 +1752,14 @@ local function GetFlightModeValue(line)
end end
else else
-- No adjustment needed -- No adjustment needed
out = header .. " " .. value out = header .. " " .. (value + 1)
end end
elseif (textId == 0x8001) then -- AR630-637, AR8360T, AR10360T elseif (textId == 0x8001) then -- AR630-637, AR8360T, AR10360T
-- Seems that we really have to add +1 to the value, so Flight Mode 0 is Really Flight Mode 1 -- Seems that we really have to add +1 to the value, so Flight Mode 0 is Really Flight Mode 1
out = header .. " " .. (value + 1) out = header .. " " .. (value + 1)
else else
-- Default, return the value as we Have it -- Default, return the value as we Have it
out = header .. " " .. value out = header .. " " .. (value + 1)
end end
return out return out
end end

View File

@ -23,11 +23,10 @@
-- Author: Francisco Arzu -- Author: Francisco Arzu
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
local DEBUG_ON, SIMULATION_ON = ... -- Get DebugON from parameters local DEBUG_ON, SIMULATION_ON = ... -- Get DebugON from parameters
local SETUP_LIB_VERSION = "0.52" local SETUP_LIB_VERSION = "0.52"
local DATA_PATH = "/SCRIPTS/TOOLS/DSMLIB/data/" -- Path to store model settings files local DATA_PATH = "/MODELS/DSMDATA" -- Path to store model settings files
local dsmLib = assert(loadScript("/SCRIPTS/TOOLS/DSMLIB/DsmFwPrgLib.lua"))(DEBUG_ON) local dsmLib = assert(loadScript("/SCRIPTS/TOOLS/DSMLIB/DsmFwPrgLib.lua"))(DEBUG_ON)
local PHASE = dsmLib.PHASE local PHASE = dsmLib.PHASE
@ -151,10 +150,10 @@ local function printChannelSummary()
end end
local function printServoReverseInfo() local function printServoReverseInfo()
print("SERVO Normal/Reversed INFORMATION") print("SERVO Normal/Reverse INFORMATION")
for i=0,10 do for i=0,10 do
local s="--" local s="--"
if (MENU_DATA[MEMU_VAR.PORT1_MODE+i] or 0) == 0 then s="NORMAL" else s="REVERT" end if (MENU_DATA[MEMU_VAR.PORT1_MODE+i] or 0) == 0 then s="NORMAL" else s="REVERSE" end
print(string.format("Port%d: %s", i+1, s)) print(string.format("Port%d: %s", i+1, s))
end end
end end
@ -415,7 +414,7 @@ function ST_LoadFileData()
print("Loading File:"..fname) print("Loading File:"..fname)
local dataFile = io.open(DATA_PATH .. fname, "r") -- read File local dataFile = io.open(DATA_PATH .. "/".. fname, "r") -- read File
-- cannot read file??? -- cannot read file???
if (dataFile==nil) then return 0 end if (dataFile==nil) then return 0 end
@ -459,7 +458,7 @@ function ST_SaveFileData()
local fname = hashName(MODEL.modelName)..".txt" local fname = hashName(MODEL.modelName)..".txt"
print("Saving File:"..fname) print("Saving File:"..fname)
local dataFile = io.open(DATA_PATH .. fname, "w") -- write File local dataFile = assert(io.open(DATA_PATH .. "/" .. fname, "w"),"Please create "..DATA_PATH.." folder") -- write File
-- Foreach MENU_DATA with a value write Var_Id:Value into file -- Foreach MENU_DATA with a value write Var_Id:Value into file
for i = 0, MEMU_VAR.DATA_END do for i = 0, MEMU_VAR.DATA_END do
@ -688,7 +687,7 @@ local function ST_LoadMenu(menuId)
local ctx = dsmLib.DSM_Context local ctx = dsmLib.DSM_Context
local function formatTXRevert(port) local function formatTXRevert(port)
return ((MODEL.modelOutputChannel[port].revert==0 and " (Tx:Normal)") or " (Tx:Reverted)") return ((MODEL.modelOutputChannel[port].revert==0 and " (Tx:Normal)") or " (Tx:Reverse)")
end end
clearMenuLines() clearMenuLines()
@ -1030,8 +1029,8 @@ local function ST_Init_Text(rxId)
List_Text[200+TAIL_TYPE.TRAILERON_B] = "Traileron B"; List_Text_Img[200+TAIL_TYPE.TRAILERON_B] = "tt_traileron.png|Traileron B" List_Text[200+TAIL_TYPE.TRAILERON_B] = "Traileron B"; List_Text_Img[200+TAIL_TYPE.TRAILERON_B] = "tt_traileron.png|Traileron B"
-- Servo Reverse -- Servo Reverse
List_Text[300+CH_MODE_TYPE.NORMAL] = "Normal " List_Text[300+CH_MODE_TYPE.NORMAL] = "Normal "
List_Text[300+CH_MODE_TYPE.REVERSE] = "Reverted" List_Text[300+CH_MODE_TYPE.REVERSE] = "Reverse"
end end

View File

@ -1,7 +0,0 @@
This directory contains the DSM Forward programming settings
for each model. Like Wing Type, Tail Type, and Channels assignments.
The name is the first 5 characters of the model and a hash number to make them unique.
If you want to REDO a model from scratch, just delete the file or change the Aircraft type to reset.

View File

@ -1,37 +1,21 @@
# Credits # Credits
Code is based on the code/work by: Pascal Langer (Author of the Multi-Module) Code is based on the code/work by: Pascal Langer (Author of the Multi-Module)
Rewrite/Enhancements by: Francisco Arzu
Rewrite/Enhancements By: Francisco Arzu Thanks to many other people who volunteer to test it.
# Introduction # Introduction (v0.52)
This script library is a rewrite of the original DSM forward programming Lua This script library enhace the original DSM Forward Programming tool. DSM Forward Programming is needed to setup many of
Script. The goal was to make it easier to understand, mantain, and to the new Spektrum Receivers with Gyro AS3X/SAFE features. For the Gyro (/Safe) to correct the plane in flight, it needs to move the right surfaces, the RX needs to know the
separate the GUI from the DSM Forward programming engine/logic. configuration of the plane (Wing Type, Tail Type, Mixers, Servo Assigments, Servo Reverse). That info tells the RX where the aileron(s) are (one of two), where the elevator(s) are (one or two), V-Tail, Delta Wing, etc.
In this way, GUIs can evolve independent. Color/Touch Gui, Text only GUI, etc.
Changes and fixes Since EdgeTx/OpenTx don't have equivalent setup that is persisted/stored in the radio, we had to create our own version. This info is stored inside the `/MODELS/DSMDATA` directory/folder (needs to be created by hand).
1. Menus to be able to configure Plane in a similar way as Spektrum Radio
1. Make "Gyro Settings"->"Initial Setup" works (Tested on AR631,AR637xx with PLANE type of arcraft)
2. Properly reset and restart after initial configuration and SAFE changes.
3. Write Log of the conversation between RX/TX. To be use for debugging when some reports a problem.
4. Provide a simulation of RX to do GUI development in Companion, and undestand patterns of how the data is organized.
# Tested RXs During `"Gyro Settings->initial setup"`, the RX asks the TX for model information behind the scenes. After setup, `"Gyro Settings->System Tools-> Relearn Servo Settings"` request the TX configuration and store it in the RX.
- AR631/AR637xx Coded a hack to be able to make `Initial Setup` to work
- FC6250HX (Helicopter)
Most RX will run without problems, it could be that some others receivers will need to apply the same hack as the AR631 for some specific menus to work.
Since is RX and Menu specific, we cannot create a general hack.
Please report of you have test it with other receivers to update the documentation.
# Flight mode/Gain channels
I ran into a case where trying to set Aux2 or Aux3 for flight mode, but the RX was correcting it to Aux1.. the RX only was allowing Gear or Aux1 (AR631/AR637).
This is because the RX don't know that we are using more than 6 channels. To make the RX aware that there are other channels, while edditing the channel, you have to toggle the switch to excersist the channel (3 times), and now the RX will recognize it.
# Deployment # Deployment
Make sure to manually create `/MODELS/DSMDATA` . The script will complain at startup.
/SCRIPTS/TOOLS/DsmFwdPrg_05_BW.lua -- black/white text only radios /SCRIPTS/TOOLS/DsmFwdPrg_05_BW.lua -- black/white text only radios
/SCRIPTS/TOOLS/DsmFwdPrg_05_Color.lua -- Color+touch radios /SCRIPTS/TOOLS/DsmFwdPrg_05_Color.lua -- Color+touch radios
@ -40,8 +24,43 @@ This is because the RX don't know that we are using more than 6 channels. To mak
/SCRIPTS/TOOLS/DSMLIB/DsmFwPrgSIMLib.lua -- Simulation of AR631, FC6250HX /SCRIPTS/TOOLS/DSMLIB/DsmFwPrgSIMLib.lua -- Simulation of AR631, FC6250HX
/SCRIPTS/TOOLS/DSMLIB/SetupLib.lua -- Model Setup Screns /SCRIPTS/TOOLS/DSMLIB/SetupLib.lua -- Model Setup Screns
/SCRIPTS/TOOLS/DSMLIB/img --Images for RX orientations /SCRIPTS/TOOLS/DSMLIB/img --Images for RX orientations
/SCRIPTS/TOOLS/DSMLIB/data --Data of model config (Wing Type, Servo Assigments)
/LOGS/dsm_log.txt --Readable log of the last RX/TX session, usefull for debuging new RX Other Directories
/MODELS/DSMDATA --(ALL CAPITALS) Data of model config (Wing Type, Servo Assigments)
/LOGS/dsm_log.txt --Readable log of the last RX/TX session, usefull for debuging problems
When upgrading from a previous version of this tool, delete your /SCRIPTS/TOOLS/DSMLIB before copying the new one (if you customized your images, inside "DSMLIB/img" do a backup first)
# Common Questions
1. `RX not accepting channels greater Ch6 for Flight-mode o Gains:` The RX corrects your channel to ch5 or ch6. This means that the RX is not detecting the upper channles from the TX. You need to exersise (move the switch) so that the RX detects it. Put the Channel Field on edit (changing) mode, change it to Ch7 (or any other), flip the switch for Ch7 3 times, now confim the edit. The RX now will not reject it. All Spektrum RX are 20 channels internally, even if it only have 6 external Ch/Ports to connect servos.
2. `Why Ch1 says Ch1 (TX:Ch3/Thr)?`:
Radios with Multi-Module are usually configured to work the standard AETR convention. Spektrum uses TAER. The multi-module does the conversion when transmiting the signals. So `Spektrum Ch1 (Throttle)` really comes from the `TX Ch3`. We show both information (+name from the TX output). If your multi-module/radio is setup as TAER, the script will not do the re-arrangement.
---
---
# Changes and fixes
1. Menus to be able to configure Plane in a similar way as Spektrum Radio (v0.52)
1. Make "Gyro Settings"->"Initial Setup" works (Tested on AR631,AR637xx with PLANE type of arcraft)
2. Properly reset and restart after initial configuration and SAFE changes.
3. Write Log of the conversation between RX/TX. To be use for debugging when some reports a problem.
4. Provide a simulation of RX to do GUI development in Companion, and undestand patterns of how the data is organized.
# Tested RXs
- AR631/AR637xx
- FC6250HX (Blade 230S V2 Helicopter)
- AR636 (Blade 230S V1 Heli firmaware 4.40)
Please report of you have test it with other receivers to update the documentation. Code should work up to 10 channels for the main surfaces (Ail/Ele/etc). All Spektrum RX are internally 20 channels, so you can use Ch7 for Flight Mode even if your RX is only 6 channels (See common Questions)
# Flight mode/Gain channels
I ran into a case where trying to set Aux2 or Aux3 for flight mode, but the RX was correcting it to Aux1.. the RX only was allowing Gear or Aux1 (AR631/AR637).
This is because the RX don't know that we are using more than 6 channels. To make the RX aware that there are other channels, while edditing the channel, you have to toggle the switch to excersist the channel (3 times), and now the RX will recognize it.
# Messages Displayed in the GUI # Messages Displayed in the GUI
@ -131,7 +150,7 @@ If you go to the logs, you can see that the RX was correcting the value:
- Properly detect Moltimodule Ch settings AETR - Properly detect Moltimodule Ch settings AETR
--- ---
# Version 0.51 # Version 0.51 (voluteer testing version, not for production)
- New Screens to Configure Model (Wing Type/Tail Tail, etc) - New Screens to Configure Model (Wing Type/Tail Tail, etc)
- Finally got understanding that the previous unknown 0x05 lines are to send Model/Servo data to RX. - Finally got understanding that the previous unknown 0x05 lines are to send Model/Servo data to RX.
- Fix use of AR636B (Firmare version 4.40.0 for Blade 230 heli, is the only one with Forward Programing) - Fix use of AR636B (Firmare version 4.40.0 for Blade 230 heli, is the only one with Forward Programing)
@ -165,10 +184,9 @@ If you go to the logs, you can see that the RX was correcting the value:
1. **Incorrect List Value Options:** Some Menu List line (`LINE_TYPE.LIST_MENU1` or `L_m1` in logs), the range (min/max) of valid values seems to be incorrect, but cannot see in the data how to fix it. 1. **Incorrect List Value Options:** Some Menu List line (`LINE_TYPE.LIST_MENU1` or `L_m1` in logs), the range (min/max) of valid values seems to be incorrect, but cannot see in the data how to fix it.
Some of the valid values are not even sequential, very spread apart. There has to be a list of valid options somewhere. Currently fixed some by overriding the valid values in the script code (config for each field). Some of the valid values are not even sequential, very spread apart. There has to be a list of valid options somewhere. Currently fixed some by overriding the valid values in the script code (config for each field).
2. **Unable to Load menu lines**: The RX return unknow lines when requesting menu lines. **Realy don't understand what they are for**. Some menus 2. Glider/Heli/Drone wing types not ready.
seems to stay stuck in the same return line or no response to the request, making the RX reset/close the connection and terminate.
Was able to hack it for AR631/AR637 `"First Time Setup"`, `"First Time SAFE Setup"`, and `"Servo Realm"`. Maybe this hack will work in other RX, so let us know if you get this problem.
For Helicopter, use airplane normal wing and normal tail
# Version 0.2 # Version 0.2