Skip to content

Commit 8bbc53e

Browse files
authored
Merge pull request #62 from raphaelcoeffic/nfs-horus
draft horus version
2 parents 841bcb5 + b6e889f commit 8bbc53e

File tree

10 files changed

+359
-9
lines changed

10 files changed

+359
-9
lines changed

src/SCRIPTS/BF/X12S/filters.lua

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
2+
return {
3+
read = 92, -- MSP_FILTER_CONFIG
4+
write = 93, -- MSP_SET_FILTER_CONFIG
5+
eepromWrite = true,
6+
reboot = false,
7+
title = "Filters",
8+
minBytes = 18,
9+
text= {
10+
{ t = "LPF", x = 38, y = 68 },
11+
{ t = "Gyro", x = 12, y = 110 },
12+
{ t = "DTerm", x = 12, y = 155 },
13+
{ t = "Yaw", x = 12, y = 200 },
14+
15+
{ t = "Gyro 1", x = 138, y = 68 },
16+
{ t = "Hz", x = 132, y = 110 },
17+
{ t = "CO", x = 132, y = 155 },
18+
19+
{ t = "Gyro 2", x = 244, y = 68 },
20+
{ t = "Hz", x = 238, y = 110 },
21+
{ t = "CO", x = 238, y = 155 },
22+
23+
{ t = "DTerm", x = 344, y = 68 },
24+
{ t = "Hz", x = 338, y = 110 },
25+
{ t = "CO", x = 338, y = 155 },
26+
27+
{ t = "DTerm LP Type", x = 148, y = 200 },
28+
},
29+
fields = {
30+
{ x = 80, y = 110, min = 0, max = 255, vals = { 1 } },
31+
{ x = 80, y = 155, min = 0, max = 16000, vals = { 2, 3 } },
32+
{ x = 80, y = 200, min = 0, max = 500, vals = { 4, 5 } },
33+
34+
{ x = 172, y = 110, min = 0, max = 16000, vals = { 6, 7 } },
35+
{ x = 172, y = 155, min = 0, max = 16000, vals = { 8, 9 } },
36+
37+
{ x = 278, y = 110, min = 0, max = 16000, vals = { 14, 15 } },
38+
{ x = 278, y = 155, min = 0, max = 16000, vals = { 16, 17 } },
39+
40+
{ x = 378, y = 110, min = 0, max = 16000, vals = { 10, 11 } },
41+
{ x = 378, y = 155, min = 0, max = 16000, vals = { 12, 13 } },
42+
43+
{ x = 288, y = 200, min = 0, max = 2, vals = { 18 }, table = { [0] = "PT1", [1] = "BIQUAD", [2] = "FIR" } },
44+
}
45+
}

src/SCRIPTS/BF/X12S/pids.lua

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
2+
return {
3+
read = 112, -- MSP_PID
4+
write = 202, -- MSP_SET_PID
5+
title = "PIDs",
6+
reboot = false,
7+
eepromWrite = true,
8+
minBytes = 8,
9+
text = {
10+
{ t = "P", x = 142, y = 48, to = MIDSIZE },
11+
{ t = "I", x = 244, y = 48, to = MIDSIZE },
12+
{ t = "D", x = 342, y = 48, to = MIDSIZE },
13+
{ t = "ROLL", x = 28, y = 100 },
14+
{ t = "PITCH", x = 28, y = 150 },
15+
{ t = "YAW", x = 28, y = 200 },
16+
},
17+
fields = {
18+
-- P
19+
{ x = 140, y = 100, min = 0, max = 200, vals = { 1 } },
20+
{ x = 140, y = 150, min = 0, max = 200, vals = { 4 } },
21+
{ x = 140, y = 200, min = 0, max = 200, vals = { 7 } },
22+
-- I
23+
{ x = 240, y = 100, min = 0, max = 200, vals = { 2 } },
24+
{ x = 240, y = 150, min = 0, max = 200, vals = { 5 } },
25+
{ x = 240, y = 200, min = 0, max = 200, vals = { 8 } },
26+
-- D
27+
{ x = 340, y = 100, min = 0, max = 200, vals = { 3 } },
28+
{ x = 340, y = 150, min = 0, max = 200, vals = { 6 } },
29+
},
30+
}

src/SCRIPTS/BF/X12S/pwm.lua

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
return {
2+
read = 90, -- MSP_ADVANCED_CONFIG
3+
write = 91, -- MSP_SET_ADVANCED_CONFIG
4+
reboot = true,
5+
eepromWrite = true,
6+
title = "PWM",
7+
minBytes = 9,
8+
text= {
9+
{ t = "Protocol", x = 36, y = 68 },
10+
{ t = "32K", x = 36, y = 110 },
11+
{ t = "Gyro Rt", x = 36, y = 155 },
12+
{ t = "PID Rt", x = 36, y = 200 },
13+
{ t = "Unsynced", x = 232, y = 110 },
14+
{ t = "PWM Rate", x = 232, y = 155 },
15+
{ t = "Idle Offset", x = 232, y = 200 }
16+
},
17+
fields = {
18+
{ x = 130, y = 68, vals = { 4 }, min = 0, max = 9,
19+
table = { [0] = "OFF", "ONESHOT125", "ONESHOT42",
20+
"MULTISHOT","BRUSHED",
21+
"DSHOT150", "DSHOT300", "DSHOT600","DSHOT1200",
22+
"PROSHOT1000" }
23+
},
24+
{ x = 130, y = 110, vals = { 9 }, min = 0, max = 1,
25+
table = { [0] = "OFF", "ON" },
26+
upd = function(self) self.updateRateTables(self) end
27+
},
28+
{ x = 130, y = 155, vals = { 1 }, min = 1, max = 32,
29+
upd = function(self) self.updatePidRateTable(self) end
30+
},
31+
{ x = 130, y = 200, vals = { 2 }, min = 1, max = 16 },
32+
{ x = 350, y = 110, vals = { 3 }, min = 0, max = 1,
33+
table = { [0] = "OFF", "ON" } },
34+
{ x = 350, y = 155, vals = { 5, 6 }, min = 200, max = 32000 },
35+
{ x = 350, y = 200, vals = { 7, 8 }, min = 0, max = 2000, scale = 100 },
36+
},
37+
calculateGyroRates = function(self, baseRate)
38+
self.gyroRates = {}
39+
self.fields[2].table = {}
40+
for i=1, 32 do
41+
self.gyroRates[i] = baseRate/i
42+
local fmt = nil
43+
self.fields[2].table[i] = string.format("%.2f",baseRate/i)
44+
end
45+
end,
46+
calculatePidRates = function(self, baseRate)
47+
self.fields[3].table = {}
48+
for i=1, 16 do
49+
self.fields[3].table[i] = string.format("%.2f",baseRate/i)
50+
end
51+
end,
52+
updateRateTables = function(self)
53+
if self.values[9] == 0 then
54+
self.calculateGyroRates(self, 8)
55+
self.calculatePidRates(self, 8)
56+
elseif self.values[9] == 1 then
57+
self.calculateGyroRates(self, 32)
58+
self.calculatePidRates(self, 32)
59+
end
60+
end,
61+
updatePidRateTable = function(self)
62+
local newRateIdx = self.values[1]
63+
local newRate = self.gyroRates[newRateIdx]
64+
self.calculatePidRates(self, newRate)
65+
end
66+
}

src/SCRIPTS/BF/X12S/rates1.lua

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
return {
2+
read = 111, -- MSP_RC_TUNING
3+
write = 204, -- MSP_SET_RC_TUNING
4+
title = "Rates (1/2)",
5+
reboot = false,
6+
eepromWrite = true,
7+
minBytes = 12,
8+
text = {
9+
{ t = "RC", x = 100, y = 52 },
10+
{ t = "Rate", x = 94, y = 70 },
11+
{ t = "Super", x = 148, y = 52 },
12+
{ t = "Rate", x = 152, y = 70 },
13+
{ t = "RC", x = 214, y = 52 },
14+
{ t = "Expo", x = 207, y = 70 },
15+
{ t = "Throttle", x = 288, y = 68 },
16+
{ t = "Mid", x = 288, y = 100 },
17+
{ t = "Exp", x = 288, y = 150 },
18+
{ t = "TPA", x = 374, y = 68 },
19+
{ t = "Thr", x = 374, y = 100 },
20+
{ t = "Brk", x = 374, y = 150 },
21+
{ t = "ROLL", x = 28, y = 100 },
22+
{ t = "PITCH", x = 28, y = 150 },
23+
{ t = "YAW", x = 28, y = 200 },
24+
},
25+
fields = {
26+
-- RC Rates
27+
{ x = 102, y = 125, vals = { 1 }, min = 0, max = 255, scale = 100 },
28+
{ x = 102, y = 200, vals = { 12 }, min = 0, max = 255, scale = 100 },
29+
-- Super Rates
30+
{ x = 158, y = 100, vals = { 3 }, min = 0, max = 100, scale = 100 },
31+
{ x = 158, y = 150, vals = { 4 }, min = 0, max = 100, scale = 100 },
32+
{ x = 158, y = 200, vals = { 5 }, min = 0, max = 255, scale = 100 },
33+
-- RC Expo
34+
{ x = 216, y = 125, vals = { 2 }, min = 0, max = 100, scale = 100 },
35+
{ x = 216, y = 200, vals = { 11 }, min = 0, max = 100, scale = 100 },
36+
-- Throttle
37+
{ x = 330, y = 100, vals = { 7 }, min = 0, max = 100, scale = 100 },
38+
{ x = 330, y = 150, vals = { 8 }, min = 0, max = 100, scale = 100 },
39+
-- TPA
40+
{ x = 416, y = 100, vals = { 6 } , min = 0, max = 100, scale = 100 },
41+
{ x = 416, y = 150, vals = { 9, 10 }, min = 1000, max = 2000 }
42+
},
43+
}

src/SCRIPTS/BF/X12S/rates2.lua

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
2+
return {
3+
read = 94, -- MSP_PID_ADVANCED
4+
write = 95, -- MSP_SET_PID_ADVANCED
5+
title = "Rates (2/2)",
6+
reboot = false,
7+
eepromWrite = true,
8+
minBytes = 23,
9+
text = {
10+
{ t = "Anti-Gravity", x = 28, y = 62 },
11+
{ t = "Gain", x = 38, y = 100 },
12+
{ t = "Threshold", x = 38, y = 142 },
13+
{ t = "Dterm Setpoint", x = 232, y = 62 },
14+
{ t = "Weight", x = 242, y = 100 },
15+
{ t = "Transition", x = 242, y = 142 },
16+
{ t = "VBAT Compensation", x = 28, y = 200 }
17+
},
18+
fields = {
19+
-- GAIN
20+
{ x = 144, y = 100, min = 1000, max = 30000, vals = { 22, 23 }, scale = 1000, mult = 1000 },
21+
-- THRESHOLD
22+
{ x = 144, y = 142, min = 20, max = 1000, vals = { 20, 21 } },
23+
-- WEIGHT
24+
{ x = 348, y = 100, min = 0, max = 254, vals = { 10 }, scale = 100 },
25+
-- TRANSITION
26+
{ x = 348, y = 142, min = 0, max = 100, vals = { 9 }, scale = 100 },
27+
-- VBAT COMPENSATION
28+
{ x = 236, y = 200, min = 0, max = 1, vals = { 8 }, table = { [0]="OFF", "ON" } },
29+
}
30+
}

src/SCRIPTS/BF/X12S/rx.lua

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
return {
2+
read = 44, -- MSP_RX_CONFIG
3+
write = 45, -- MSP_SET_RX_CONFIG
4+
title = "RX",
5+
reboot = false,
6+
eepromWrite = true,
7+
minBytes = 23,
8+
text= {
9+
{ t = "Stick Min", x = 50, y = 68 },
10+
{ t = "Stick Mid", x = 50, y = 110 },
11+
{ t = "Stick Max", x = 50, y = 155 },
12+
{ t = "Cam Angle", x = 240, y = 68 },
13+
{ t = "Interp", x = 240, y = 110 },
14+
{ t = "Interp Int", x = 240, y = 155 }
15+
},
16+
fields = {
17+
{ x = 152, y = 68, min = 1000, max = 2000, vals = { 6, 7 } },
18+
{ x = 152, y = 110, min = 1000, max = 2000, vals = { 4, 5 } },
19+
{ x = 152, y = 155, min = 1000, max = 2000, vals = { 2, 3 } },
20+
{ x = 362, y = 68, min = 0, max = 50, vals = { 23 } },
21+
{ x = 362, y = 110, min = 0, max = 3, vals = { 13 },
22+
table={ [0]="Off", "Preset", "Auto", "Manual"} },
23+
{ x = 362, y = 155, min = 1, max = 50, vals = { 14 } }
24+
},
25+
}

src/SCRIPTS/BF/X12S/vtx.lua

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
2+
return {
3+
read = 88, -- MSP_VTX_CONFIG
4+
write = 89, -- MSP_VTX_SET_CONFIG
5+
eepromWrite = true,
6+
reboot = false,
7+
saveMaxRetries = 2,
8+
saveTimeout = 300, -- 3s
9+
title = "VTX",
10+
minBytes = 5,
11+
text= {
12+
{ t = "Band", x = 50, y = 50 },
13+
{ t = "Channel", x = 50, y = 100 },
14+
{ t = "Power", x = 50, y = 150 },
15+
{ t = "Pit", x = 50, y = 200 },
16+
{ t = "Proto", x = 240, y = 50 },
17+
{ t = "Freq", x = 240, y = 100 },
18+
},
19+
fields = {
20+
{ x = 152, y = 50, min=1, max=5, vals = { 2 },
21+
table = { "A", "B", "E", "F", "R" },
22+
upd = function(self) self.updateVTXFreq(self) end },
23+
{ x = 152, y = 100, min=1, max=8, vals = { 3 },
24+
upd = function(self) self.updateVTXFreq(self) end },
25+
{ x = 152, y = 150, min=1, vals = { 4 },
26+
upd = function(self) self.updatePowerTable(self) end },
27+
{ x = 152, y = 200, min=0, max=1, vals = { 5 },
28+
table = { [0]="OFF", "ON" } },
29+
{ x = 332, y = 50, write = false, ro = true, vals = { 1 },
30+
table = {[3]="SmartAudio",[4]="Tramp",[255]="None"} },
31+
{ x = 332, y = 100, min=5000, max=6000, ro=true },
32+
},
33+
freqLookup = {
34+
{ 5865, 5845, 5825, 5805, 5785, 5765, 5745, 5725 }, -- Boscam A
35+
{ 5733, 5752, 5771, 5790, 5809, 5828, 5847, 5866 }, -- Boscam B
36+
{ 5705, 5685, 5665, 5645, 5885, 5905, 5925, 5945 }, -- Boscam E
37+
{ 5740, 5760, 5780, 5800, 5820, 5840, 5860, 5880 }, -- FatShark
38+
{ 5658, 5695, 5732, 5769, 5806, 5843, 5880, 5917 }, -- RaceBand
39+
},
40+
postLoad = function (self)
41+
if self.values[2] == 0 or self.values[3] == 0 or self.values[4] == 0 then
42+
self.values = {}
43+
end
44+
end,
45+
preSave = function(self)
46+
local valsTemp = {}
47+
local channel = (self.values[2]-1)*8 + self.values[3]-1
48+
valsTemp[1] = bit32.band(channel,0xFF)
49+
valsTemp[2] = bit32.rshift(channel,8)
50+
valsTemp[3] = self.values[4]
51+
valsTemp[4] = self.values[5]
52+
return valsTemp
53+
end,
54+
updatePowerTable = function(self)
55+
if self.values and not self.fields[3].table then
56+
if self.values[1] == 3 then
57+
self.fields[3].table = { 25, 200, 500, 800 }
58+
self.fields[3].max = 4
59+
elseif self.values[1] == 4 then
60+
self.fields[3].table = { 25, 100, 200, 400, 600 }
61+
self.fields[3].max = 5
62+
end
63+
end
64+
end,
65+
updateVTXFreq = function(self)
66+
if (#(self.values) or 0) >= self.minBytes then
67+
if (self.fields[2].value or 0) > 0 and (self.fields[3].value or 0) > 0 then
68+
self.fields[6].value = self.freqLookup[self.values[2]][self.values[3]]
69+
end
70+
end
71+
end
72+
}

src/SCRIPTS/BF/X12S/x12spre.lua

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
PageFiles =
2+
{
3+
"pids.lua",
4+
"rates1.lua",
5+
"rates2.lua",
6+
"filters.lua",
7+
"pwm.lua",
8+
"rx.lua",
9+
"vtx.lua"
10+
}
11+
12+
backgroundFill = TEXT_BGCOLOR
13+
foregroundColor = LINE_COLOR
14+
globalTextOptions = TEXT_COLOR
15+
16+
MenuBox = { x=120, y=90, w=210, x_offset=40, h_line=30, h_offset=20 }
17+
SaveBox = { x=120, y=100, w=210, x_offset=12, h=150, h_offset=12 }
18+
NoTelem = { 192, LCD_H - 28, "No Telemetry", TEXT_COLOR + INVERS + BLINK }

src/SCRIPTS/BF/radios.lua

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
lcdResolution =
2+
{
3+
low = 0,
4+
high = 1
5+
}
6+
7+
18
local supportedRadios =
29
{
310
["x7"] =
@@ -14,7 +21,19 @@ local supportedRadios =
1421
{
1522
templateHome = SCRIPT_HOME.."/X9/",
1623
preLoad = SCRIPT_HOME.."/X9/x9pre.lua"
17-
}
24+
},
25+
["x10"] =
26+
{
27+
templateHome=SCRIPT_HOME.."/X12S/",
28+
preLoad=SCRIPT_HOME.."/X12S/x12spre.lua",
29+
resolution = lcdResolution.high
30+
},
31+
["x12s"] =
32+
{
33+
templateHome=SCRIPT_HOME.."/X12S/",
34+
preLoad=SCRIPT_HOME.."/X12S/x12spre.lua",
35+
resolution = lcdResolution.high
36+
},
1837
}
1938

2039
local ver, rad, maj, min, rev = getVersion()

0 commit comments

Comments
 (0)