From 998e1bca53cfde09f408382da54936eb0e1531eb Mon Sep 17 00:00:00 2001 From: guerl Date: Sun, 23 Mar 2025 18:31:30 +0100 Subject: [PATCH] RACEBAND, SIMPLIFIED MENU, TX POWER IN MW Add equivalent wifi chan to standard analog/hdzero raceband channel, these channel work on 40MHZ AND 20MHZ Add tx power in MW Improve the user experience, by simplify the menu Only one vtx menu, avoid user error and burn pa DISABLE OR ENABL ALINK IN VTXMENU --- vtxmenu EMAX.ini | 174 +++++++++++++++++++++++++++++++++++++++++++++ vtxmenu RUNCAM.ini | 154 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 328 insertions(+) create mode 100644 vtxmenu EMAX.ini create mode 100644 vtxmenu RUNCAM.ini diff --git a/vtxmenu EMAX.ini b/vtxmenu EMAX.ini new file mode 100644 index 0000000..412fbfa --- /dev/null +++ b/vtxmenu EMAX.ini @@ -0,0 +1,174 @@ +; VTXMenu Ini file format + +; * Sections are pages +; * Sections can have Submenus or Options or Commands +; * Submenus link to other Sections +; * Options have a special colon seperated format in this order +; Name +; Range or List +; Command to read the value +; Command to write the value + +; Range: Specify a numeric allowed list of values +; List: Somma seperated list of option +; * Command have colon separtedt list of lable and command to run + +[VTX MENU] +Submenu1=RESOLUTION +Submenu2=CHANNEL +Submenu3=ADVANCED SETTINGS +Submenu4=BASIC SETTINGS +Command1=ENABLE ADAPTIVE LINK:sed -i '/alink_drone &/d' /etc/rc.local && sed -i -e '$i alink_drone &' /etc/rc.local | cli -s .video0.qpDelta -12 +Command2=DISABLE ADAPTIVE LINK:sed -i '/alink_drone &/d' /etc/rc.local | cli -s .video0.qpDelta -4 + +[RESOLUTION] +Command1=720P120:cli -s .video0.size 1280x720 && cli -s .video0.fps 120 && cli -s .isp.exposure 8 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local +Command2=720P100:cli -s .video0.size 1280x720 && cli -s .video0.fps 100 && cli -s .isp.exposure 10 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local +Command3=720P90:cli -s .video0.size 1280x720 && cli -s .video0.fps 90 && cli -s .isp.exposure 11 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local +Command4=720P60:cli -s .video0.size 1280x720 && cli -s .video0.fps 60 && cli -s .isp.exposure 16 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local +Command5=1080P90:cli -s .video0.size 1920x1080 && cli -s .video0.fps 90 && cli -s .isp.exposure 11 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local +Command6=1080P60WIDE:cli -s .video0.size 1920x1080 && cli -s .video0.fps 60 && cli -s .isp.exposure 16 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local +Command7=1080P60BOX:cli -s .video0.size 1440x1080 && cli -s .video0.fps 60 && cli -s .isp.exposure 16 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local && sed -i -e '$i sleep 0.5' /etc/rc.local && sed -i -e '$i echo setprecrop 0 0 904 0 1440 1080 > /proc/mi_modules/mi_vpe/mi_vpe0' /etc/rc.local +Command8=1080P90BOX:cli -s .video0.size 1440x1080 && cli -s .video0.fps 90 && cli -s .isp.exposure 16 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local && sed -i -e '$i sleep 0.5' /etc/rc.local && sed -i -e '$i echo setprecrop 0 0 240 0 1440 1080 > /proc/mi_modules/mi_vpe/mi_vpe0' /etc/rc.local +Submenu1=BASIC SETTINGS +Submenu2=VTX MENU + +[BASIC SETTINGS] + +Command1=2MBPS 25MW:cli -s .video0.bitrate 2000 && cli -s .fpv.noiseLevel 0 && sed -i 's/mcs_index=.*/mcs_index=0/' /etc/wfb.conf && sed -i 's/bandwidth=.*/bandwidth=20/' /etc/wfb.conf && sed -i 's/driver_txpower_override=.*/driver_txpower_override=30/' /etc/wfb.conf && sed -i 's/stbc=.*/stbc=1/' /etc/wfb.conf && sed -i 's/ldpc=.*/ldpc=1/' /etc/wfb.conf +Command2=4MBPS 25MW:cli -s .video0.bitrate 4096 && cli -s .fpv.noiseLevel 0 && sed -i 's/mcs_index=.*/mcs_index=1/' /etc/wfb.conf && sed -i 's/bandwidth=.*/bandwidth=20/' /etc/wfb.conf && sed -i 's/driver_txpower_override=.*/driver_txpower_override=30/' /etc/wfb.conf && sed -i 's/stbc=.*/stbc=1/' /etc/wfb.conf && sed -i 's/ldpc=.*/ldpc=1/' /etc/wfb.conf +Command3=8MBPS 25MW:cli -s .video0.bitrate 8192 && cli -s .fpv.noiseLevel 0 && sed -i 's/mcs_index=.*/mcs_index=2/' /etc/wfb.conf && sed -i 's/bandwidth=.*/bandwidth=20/' /etc/wfb.conf && sed -i 's/driver_txpower_override=.*/driver_txpower_override=30/' /etc/wfb.conf && sed -i 's/stbc=.*/stbc=1/' /etc/wfb.conf && sed -i 's/ldpc=.*/ldpc=1/' /etc/wfb.conf +Command4=15MBPS 25MW :cli -s .video0.bitrate 14336 && cli -s .fpv.noiseLevel 0 && sed -i 's/mcs_index=.*/mcs_index=4/' /etc/wfb.conf && sed -i 's/bandwidth=.*/bandwidth=20/' /etc/wfb.conf && sed -i 's/driver_txpower_override=.*/driver_txpower_override=30/' /etc/wfb.conf && sed -i 's/stbc=.*/stbc=1/' /etc/wfb.conf && sed -i 's/ldpc=.*/ldpc=1/' /etc/wfb.conf +Command9=20MBPS 25MW:cli -s .video0.bitrate 19456 && cli -s .fpv.noiseLevel 0 && sed -i 's/mcs_index=.*/mcs_index=3/' /etc/wfb.conf && sed -i 's/bandwidth=.*/bandwidth=40/' /etc/wfb.conf && sed -i 's/driver_txpower_override=.*/driver_txpower_override=30/' /etc/wfb.conf && sed -i 's/stbc=.*/stbc=1/' /etc/wfb.conf && sed -i 's/ldpc=.*/ldpc=1/' /etc/wfb.conf +Command5=2MBPS 100MW:cli -s .video0.bitrate 2000 && cli -s .fpv.noiseLevel 0 && sed -i 's/mcs_index=.*/mcs_index=0/' /etc/wfb.conf && sed -i 's/bandwidth=.*/bandwidth=20/' /etc/wfb.conf && sed -i 's/driver_txpower_override=.*/driver_txpower_override=45/' /etc/wfb.conf && sed -i 's/stbc=.*/stbc=1/' /etc/wfb.conf && sed -i 's/ldpc=.*/ldpc=1/' /etc/wfb.conf +Command6=4MBPS 100MW:cli -s .video0.bitrate 4096 && cli -s .fpv.noiseLevel 0 && sed -i 's/mcs_index=.*/mcs_index=1/' /etc/wfb.conf && sed -i 's/bandwidth=.*/bandwidth=20/' /etc/wfb.conf && sed -i 's/driver_txpower_override=.*/driver_txpower_override=45/' /etc/wfb.conf && sed -i 's/stbc=.*/stbc=1/' /etc/wfb.conf && sed -i 's/ldpc=.*/ldpc=1/' /etc/wfb.conf +Command7=8MBPS 100MW:cli -s .video0.bitrate 8192 && cli -s .fpv.noiseLevel 0 && sed -i 's/mcs_index=.*/mcs_index=2/' /etc/wfb.conf && sed -i 's/bandwidth=.*/bandwidth=20/' /etc/wfb.conf && sed -i 's/driver_txpower_override=.*/driver_txpower_override=40/' /etc/wfb.conf && sed -i 's/stbc=.*/stbc=1/' /etc/wfb.conf && sed -i 's/ldpc=.*/ldpc=1/' /etc/wfb.conf +Command8=15MBPS 100MW :cli -s .video0.bitrate 14336 && cli -s .fpv.noiseLevel 0 && sed -i 's/mcs_index=.*/mcs_index=4/' /etc/wfb.conf && sed -i 's/bandwidth=.*/bandwidth=20/' /etc/wfb.conf && sed -i 's/driver_txpower_override=.*/driver_txpower_override=40/' /etc/wfb.conf && sed -i 's/stbc=.*/stbc=1/' /etc/wfb.conf && sed -i 's/ldpc=.*/ldpc=1/' /etc/wfb.conf +Command9=20MBPS 100MW:cli -s .video0.bitrate 19456 && cli -s .fpv.noiseLevel 0 && sed -i 's/mcs_index=.*/mcs_index=3/' /etc/wfb.conf && sed -i 's/bandwidth=.*/bandwidth=40/' /etc/wfb.conf && sed -i 's/driver_txpower_override=.*/driver_txpower_override=35/' /etc/wfb.conf && sed -i 's/stbc=.*/stbc=1/' /etc/wfb.conf && sed -i 's/ldpc=.*/ldpc=1/' /etc/wfb.conf +Submenu2=ALINK_PROFILE +Submenu3=BASIC SETTINGS +Submenu4=VTX MENU + +[CHANNEL] +Command1=R1:sed -i "s/^channel=.*/channel=132/" /etc/wfb.conf +Command2=R2:sed -i "s/^channel=.*/channel=140/" /etc/wfb.conf +Command3=R3:sed -i "s/^channel=.*/channel=149/" /etc/wfb.conf +Command4=R4:sed -i "s/^channel=.*/channel=157/" /etc/wfb.conf +Command5=R5:sed -i "s/^channel=.*/channel=165/" /etc/wfb.conf +Command6=R6:sed -i "s/^channel=.*/channel=173/" /etc/wfb.conf +Submenu1=VTX MENU + +[ALINK_PROFILE] +Command1=25MW_10MBPS:truncate -s 0 /etc/txprofiles.conf && printf "# \n999 - 1200 long 0 8 12 1024 10 30 0,0,0,0 20 -12\n1201 - 1400 long 1 8 12 4096 10 30 0,0,0,0 20 -12\n1401 - 1500 long 2 8 12 5120 10 25 0,0,0,0 20 -12\n1501 - 1600 long 2 8 12 8192 10 25 0,0,0,0 20 -12\n1601 - 1700 long 2 8 12 8192 10 20 0,0,0,0 20 -12\n1701 - 1800 long 2 8 12 9216 10 20 0,0,0,0 20 -12\n1801 - 2001 long 2 8 12 10240 10 20 0,0,0,0 20 -12" >> /etc/txprofiles.conf +Command2=100MW_10MBPS:truncate -s 0 /etc/txprofiles.conf && printf "# \n999 - 1200 long 0 8 12 1024 10 45 0,0,0,0 20 -12\n1201 - 1400 long 1 8 12 4096 10 45 0,0,0,0 20 -12\n1401 - 1500 long 2 8 12 5120 10 45 0,0,0,0 20 -12\n1501 - 1600 long 2 8 12 8192 10 45 0,0,0,0 20 -12\n1601 - 1700 long 2 8 12 8192 10 40 0,0,0,0 20 -12\n1701 - 1800 long 2 8 12 10240 10 40 0,0,0,0 20 -12\n1801 - 2001 long 2 8 12 10240 10 35 0,0,0,0 20 -12" >> /etc/txprofiles.conf +Command3=25MW_20MBPS:truncate -s 0 /etc/txprofiles.conf && printf "# +999 - 1200 long 0 8 12 1024 10 30 0,0,0,0 20 -12 +1201 - 1400 long 0 8 12 4096 10 30 0,0,0,0 40 -12 +1401 - 1500 long 1 8 12 5120 10 30 0,0,0,0 40 -12 +1501 - 1600 long 1 8 12 10240 10 30 0,0,0,0 40 -12 +1601 - 1700 long 3 8 12 15360 10 30 0,0,0,0 40 -12 +1701 - 1800 long 3 8 12 15360 10 25 0,0,0,0 40 -12 +1801 - 2001 long 3 8 12 19456 10 20 0,0,0,0 40 -12" >> /etc/txprofiles.conf +Command4=100MW_20MBPS:truncate -s 0 /etc/txprofiles.conf && printf "# +999 - 1200 long 0 8 12 1024 10 45 0,0,0,0 20 -12 +1201 - 1400 long 0 8 12 4096 10 45 0,0,0,0 40 -12 +1401 - 1500 long 1 8 12 5120 10 45 0,0,0,0 40 -12 +1501 - 1600 long 1 8 12 10240 10 35 0,0,0,0 40 -12 +1601 - 1700 long 3 8 12 15360 10 25 0,0,0,0 40 -12 +1701 - 1800 long 3 8 12 15360 10 20 0,0,0,0 40 -12 +1801 - 2001 long 3 8 12 19456 10 20 0,0,0,0 40 -12" >> /etc/txprofiles.conf +Submenu1=BASIC SETTINGS +Submenu2=VTX MENU + +[ADVANCED SETTINGS] +Submenu1=CAMERA SETTINGS +Submenu2=WFB-NG SETTINGS +Submenu3=DATE SETTINGS +Submenu4=VTX MENU + +[CAMERA SETTINGS] +Submenu1=IMAGE +Submenu2=VIDEO +Submenu3=RECORDING +Submenu4=ISP +Submenu5=FPV +Command1=RESTART MAJESTIC:killall -1 majestic +Submenu6=VTX MENU + +[IMAGE] +Option1=MIRROR:TRUE,FALSE:cli -g .image.mirror | tr a-z A-Z:cli -s .image.mirror $(echo {} | tr A-Z a-z) +Option2=FLIP:TRUE,FALSE:cli -g .image.flip | tr a-z A-Z:cli -s .image.flip $(echo {} | tr A-Z a-z) +Option3=CONTRAST:0-100:cli -g .image.contrast:cli -s .image.contrast {} +Option4=HUE:0-100:cli -g .image.hue:cli -s .image.hue {} +Option5=SATURATION:0-100:cli -g .image.saturation:cli -s .image.saturation {} +Option6=LUMINANCE:0-100:cli -g .image.luminance:cli -s .image.luminance {} +Option7=ROTATE:0-360:cli -g .image.rotate:cli -s .image.rotate {} +Submenu1=CAMERA SETTINGS +Submenu2=VTX MENU + +[VIDEO] +Option1=SIZE:1280X720,1456X816,1920X1080,1440X1080,1920X1440,2104X1184,2208X1248,2240X1264,2312X1304,2436X1828,2512X1416,2560X1440,2560X1920,2720X1528,2944X1656,3200X1800,3840X2160:cli -g .video0.size | tr x X:cli -s .video0.size $(echo {} | tr X x) +Option2=FPS:20,30,40,50,60,70,80,90,100,120:cli -g .video0.fps:cli -s .video0.fps {} +Option3=BITRATE:1024,2048,3072,4096,5120,6144,7168,8192,9216,10240,11264,12288,13312,14336,15360,16384,17408,18432,19456,20480,21504,22528,23552,24576,25600,26624,27648,28672,29692,30720:cli -g .video0.bitrate:cli -s .video0.bitrate {} + +Option4=CODEC:H264,H265:cli -g .video0.codec | tr h H:cli -s .video0.codec $(echo {}| tr H h) +Option5=GOPSIZE:0.1-20:cli -g .video0.gopSize:cli -s .video0.gopSize {} +Option6=RCMODE:VBR,AVBR,CBR:cli -g .video0.rcMode | tr a-z A-Z:cli -s .video0.rcMode $(echo {}| tr A-Z a-z) +Command1=BOX 1440X1080@60:cli -s .video0.size 1440x1080 && cli -s .video0.fps 60 && cli -s .isp.exposure 16 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local && sed -i -e '$i sleep 0.5' /etc/rc.local && sed -i -e '$i echo setprecrop 0 0 904 0 1440 1080 > /proc/mi_modules/mi_vpe/mi_vpe0' /etc/rc.local +Command1=BOX 1440X1080@90:cli -s .video0.size 1440x1080 && cli -s .video0.fps 90 && cli -s .isp.exposure 16 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local && sed -i -e '$i sleep 0.5' /etc/rc.local && sed -i -e '$i echo setprecrop 0 0 240 0 1440 1080 > /proc/mi_modules/mi_vpe/mi_vpe0' /etc/rc.local +Command2=BOX 2560X1920:cli -s .video0.size 2560x1920 && cli -s .video0.fps 60 && cli -s .isp.exposure 16 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local && sed -i -e '$i sleep 0.5' /etc/rc.local && sed -i -e '$i echo setprecrop 0 0 904 0 2560 1920 > /proc/mi_modules/mi_vpe/mi_vpe0' /etc/rc.local +Command3=BOX 2436X1828:cli -s .video0.size 2436x1828 && cli -s .video0.fps 60 && cli -s .isp.exposure 16 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local && sed -i -e '$i sleep 0.5' /etc/rc.local && sed -i -e '$i echo setprecrop 0 0 904 0 2436 1828 > /proc/mi_modules/mi_vpe/mi_vpe0' /etc/rc.local +Command4=DISABLE BOX RESOLUTIONS:sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local +;Option7=MINQP:0-20:cli -g .video0.minQp:cli -s .video0.minQp {} +;Option8=MAXQP:0-100:cli -g .video0.maxQp:cli -s .video0.maxQp {} +;Option9=IPPROP:0-10:cli -g .video0.ipProp:cli -s .video0.ipProp {} +;Option10=PROFILE:MAIN,:cli -g .video0.profile | tr a-z A-Z:cli -s .video0.profile $(echo {}| tr A-Z a-z) +;Option11=SLICEUNITS:4:cli -g .video0.sliceUnits:cli -s .video0.sliceUnits {} +;Option12=QPDELTA:-10-+10:cli -g .video0.qpDelta:cli -s .video0.qpDelta {} ; negative number currently unsupported +Submenu1=CAMERA SETTINGS +Submenu2=VTX MENU + +[RECORDING] +Option1=ENABLED:TRUE,FALSE:cli -g .records.enabled | tr a-z A-Z:cli -s .records.enabled $(echo {} | tr A-Z a-z) +Option2=SPLIT:0-50:cli -g .records.split:cli -s .records.split {} +Option3=MAXUSAGE:0-99:cli -g .records.maxUsage:cli -s .records.maxUsage {} +Submenu1=CAMERA SETTINGS +Submenu2=VTX MENU + +[ISP] +Option1=EXPOSURE:5-50:cli -g .isp.exposure:cli -s .isp.exposure {} +Option2=ANTIFLICKER:DISABLED,50,60:cli -g .isp.antiFlicker | tr a-z A-Z:cli -s .isp.antiFlicker $(echo {} | tr A-Z a-z) +Option3=SENSOR FILE:/ETC/SENSORS/IMX415_FPV.BIN,/ETC/SENSORS/IMX415_MILOS10.BIN,/ETC/SENSORS/IMX415_MILOS15.BIN,/ETC/SENSORS/IMX335_MILOS12TWEAK.BIN,/ETC/SENSORS/IMX335_GREG15.BIN,/ETC/SENSORS/IMX335_SPIKE5.BIN,/ETC/SENSORS/GREGSPIKE05.BIN:cli -g .isp.sensorConfig | tr a-z A-Z:cli -s .isp.sensorConfig $(echo {} | tr A-Z a-z) +Submenu1=CAMERA SETTINGS +Submenu2=VTX MENU + +[FPV] +Option1=ENABLED:TRUE,FALSE:cli -g .fpv.enabled | tr a-z A-Z:cli -s .fpv.enabled $(echo {} | tr A-Z a-z) +Option2=NOISELEVEL:0,1:cli -g .fpv.noiseLevel:cli -s .fpv.noiseLevel {} +Submenu1=CAMERA SETTINGS +Submenu2=VTX MENU + +[WFB-NG SETTINGS] +Option1=REGION:BO,GY,00:grep region /etc/wfb.conf | cut -d= -f2:sed -i 's/region=.*/region={}/' /etc/wfb.conf +Option2=TXPOWER:1,:grep ^txpower /etc/wfb.conf | cut -d= -f2:sed -i 's/txpower=.*/txpower={}/' /etc/wfb.conf +Option3=DRIVER_TXPOWER_OVERRIDE:1,20,25,30,35,40,45,50,55,58:grep ^driver_txpower_override /etc/wfb.conf | cut -d= -f2:sed -i 's/driver_txpower_override=.*/driver_txpower_override={}/' /etc/wfb.conf +Option4=BANDWIDTH:20,40:grep bandwidth /etc/wfb.conf | cut -d= -f2:sed -i 's/bandwidth=.*/bandwidth={}/' /etc/wfb.conf +Option5=STBC:0,1:grep stbc /etc/wfb.conf | cut -d= -f2:sed -i 's/stbc=.*/stbc={}/' /etc/wfb.conf +Option6=LDPC:0,1:grep ldpc /etc/wfb.conf | cut -d= -f2:sed -i 's/ldpc=.*/ldpc={}/' /etc/wfb.conf +Option7=MCS_INDEX:0-11:grep mcs_index /etc/wfb.conf | cut -d= -f2:sed -i 's/mcs_index=.*/mcs_index={}/' /etc/wfb.conf +Option8=RCV_BUF:456000,:grep rcv_buf /etc/wfb.conf | cut -d= -f2:sed -i 's/rcv_buf=.*/rcv_buf={}/' /etc/wfb.conf +Option9=FEC_K:1-20:grep fec_k /etc/wfb.conf | cut -d= -f2:sed -i 's/fec_k=.*/fec_k={}/' /etc/wfb.conf +Option10=FEC_N:1-20:grep fec_n /etc/wfb.conf | cut -d= -f2:sed -i 's/fec_n=.*/fec_n={}/' /etc/wfb.conf +Option11=POOL_TIMEOUT:0,:grep pool_timeout /etc/wfb.conf | cut -d= -f2:sed -i 's/pool_timeout=.*/pool_timeout={}/' /etc/wfb.conf +Option12=GUARD_INTERVAL:LONG,SHORT:grep guard_interval /etc/wfb.conf | cut -d= -f2 | tr a-z A-Z:sed -i "s/guard_interval=.*/guard_interval=$(echo {} | tr A-Z a-z)/" /etc/wfb.conf +Option13=CHANNEL:36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140,144,149,153,157,161,165:grep ^channel /etc/wfb.conf | cut -d= -f2:sed -i 's/channel=.*/channel={}/' /etc/wfb.conf +Submenu1=VTX MENU + +[DATE SETTINGS] +Option1=YEAR :2025-2050:echo $(date +%Y):date -s "{}-$(date '+%m-%d %H:%M')" +Option2=MONTH :1-12:echo $(date +%m):date -s "$(date '+%Y')-{}-$(date '+%d %H:%M')" +Option3=DAY :1-31:echo $(date +%d):date -s "$(date '+%Y-%m')-{} $(date '+%H:%M')" +Option4=HOUR :0-23:echo $(date +%H):date -s "$(date '+%Y-%m-%d') {}:$(date '+%M')" +Option5=MINUTE:0-59:echo $(date +%M):date -s "$(date '+%Y-%m-%d %H'):{}" +;Command1=File Date:date -s "@$(find /mnt/mmcblk0p1 -maxdepth 1 -type f -printf '%T@\n' | sort -n | tail -1)" +Submenu1=VTX MENU \ No newline at end of file diff --git a/vtxmenu RUNCAM.ini b/vtxmenu RUNCAM.ini new file mode 100644 index 0000000..5cd7dc2 --- /dev/null +++ b/vtxmenu RUNCAM.ini @@ -0,0 +1,154 @@ +; VTXMenu Ini file format + +; * Sections are pages +; * Sections can have Submenus or Options or Commands +; * Submenus link to other Sections +; * Options have a special colon seperated format in this order +; Name +; Range or List +; Command to read the value +; Command to write the value + +; Range: Specify a numeric allowed list of values +; List: Somma seperated list of option +; * Command have colon separtedt list of lable and command to run + +[VTX MENU] +Submenu1=RESOLUTION +Submenu2=CHANNEL +Submenu3=ADVANCED SETTINGS +Submenu4=BASIC SETTINGS +Command1=ENABLE ADAPTIVE LINK:sed -i '/alink_drone &/d' /etc/rc.local && sed -i -e '$i alink_drone &' /etc/rc.local | cli -s .video0.qpDelta -12 +Command2=DISABLE ADAPTIVE LINK:sed -i '/alink_drone &/d' /etc/rc.local | cli -s .video0.qpDelta -4 + +[RESOLUTION] +Command1=720P120:cli -s .video0.size 1280x720 && cli -s .video0.fps 120 && cli -s .isp.exposure 8 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local +Command2=720P100:cli -s .video0.size 1280x720 && cli -s .video0.fps 100 && cli -s .isp.exposure 10 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local +Command3=720P90:cli -s .video0.size 1280x720 && cli -s .video0.fps 90 && cli -s .isp.exposure 11 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local +Command4=720P60:cli -s .video0.size 1280x720 && cli -s .video0.fps 60 && cli -s .isp.exposure 16 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local +Command5=1080P90:cli -s .video0.size 1920x1080 && cli -s .video0.fps 90 && cli -s .isp.exposure 11 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local +Command6=1080P60WIDE:cli -s .video0.size 1920x1080 && cli -s .video0.fps 60 && cli -s .isp.exposure 16 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local +Command7=1080P60BOX:cli -s .video0.size 1440x1080 && cli -s .video0.fps 60 && cli -s .isp.exposure 16 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local && sed -i -e '$i sleep 0.5' /etc/rc.local && sed -i -e '$i echo setprecrop 0 0 904 0 1440 1080 > /proc/mi_modules/mi_vpe/mi_vpe0' /etc/rc.local +Command8=1080P90BOX:cli -s .video0.size 1440x1080 && cli -s .video0.fps 90 && cli -s .isp.exposure 16 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local && sed -i -e '$i sleep 0.5' /etc/rc.local && sed -i -e '$i echo setprecrop 0 0 240 0 1440 1080 > /proc/mi_modules/mi_vpe/mi_vpe0' /etc/rc.local +Submenu1=BASIC SETTINGS +Submenu2=VTX MENU + +[BASIC SETTINGS] +Command1=2MBPS 25MW:cli -s .video0.bitrate 2048 && cli -s .fpv.noiseLevel 0 && sed -i 's/mcs_index=.*/mcs_index=0/' /etc/wfb.conf && sed -i 's/bandwidth=.*/bandwidth=20/' /etc/wfb.conf && sed -i 's/driver_txpower_override=.*/driver_txpower_override=30/' /etc/wfb.conf && sed -i 's/stbc=.*/stbc=1/' /etc/wfb.conf && sed -i 's/ldpc=.*/ldpc=1/' /etc/wfb.conf +Command2=4MBPS 25MW:cli -s .video0.bitrate 4096 && cli -s .fpv.noiseLevel 0 && sed -i 's/mcs_index=.*/mcs_index=1/' /etc/wfb.conf && sed -i 's/bandwidth=.*/bandwidth=20/' /etc/wfb.conf && sed -i 's/driver_txpower_override=.*/driver_txpower_override=30/' /etc/wfb.conf && sed -i 's/stbc=.*/stbc=1/' /etc/wfb.conf && sed -i 's/ldpc=.*/ldpc=1/' /etc/wfb.conf +Command3=8MBPS 25MW:cli -s .video0.bitrate 8192 && cli -s .fpv.noiseLevel 0 && sed -i 's/mcs_index=.*/mcs_index=2/' /etc/wfb.conf && sed -i 's/bandwidth=.*/bandwidth=20/' /etc/wfb.conf && sed -i 's/driver_txpower_override=.*/driver_txpower_override=30/' /etc/wfb.conf && sed -i 's/stbc=.*/stbc=1/' /etc/wfb.conf && sed -i 's/ldpc=.*/ldpc=1/' /etc/wfb.conf +Command4=15MBPS 25MW:cli -s .video0.bitrate 14336 && cli -s .fpv.noiseLevel 0 && sed -i 's/mcs_index=.*/mcs_index=4/' /etc/wfb.conf && sed -i 's/bandwidth=.*/bandwidth=20/' /etc/wfb.conf && sed -i 's/driver_txpower_override=.*/driver_txpower_override=30/' /etc/wfb.conf && sed -i 's/stbc=.*/stbc=1/' /etc/wfb.conf && sed -i 's/ldpc=.*/ldpc=1/' /etc/wfb.conf +Command1=2MBPS 200MW:cli -s .video0.bitrate 2048 && cli -s .fpv.noiseLevel 0 && sed -i 's/mcs_index=.*/mcs_index=0/' /etc/wfb.conf && sed -i 's/bandwidth=.*/bandwidth=20/' /etc/wfb.conf && sed -i 's/driver_txpower_override=.*/driver_txpower_override=40/' /etc/wfb.conf && sed -i 's/stbc=.*/stbc=1/' /etc/wfb.conf && sed -i 's/ldpc=.*/ldpc=1/' /etc/wfb.conf +Command2=4MBPS 200MW:cli -s .video0.bitrate 4096 && cli -s .fpv.noiseLevel 0 && sed -i 's/mcs_index=.*/mcs_index=1/' /etc/wfb.conf && sed -i 's/bandwidth=.*/bandwidth=20/' /etc/wfb.conf && sed -i 's/driver_txpower_override=.*/driver_txpower_override=40/' /etc/wfb.conf && sed -i 's/stbc=.*/stbc=1/' /etc/wfb.conf && sed -i 's/ldpc=.*/ldpc=1/' /etc/wfb.conf +Command3=8MBPS 200MW:cli -s .video0.bitrate 8192 && cli -s .fpv.noiseLevel 0 && sed -i 's/mcs_index=.*/mcs_index=2/' /etc/wfb.conf && sed -i 's/bandwidth=.*/bandwidth=20/' /etc/wfb.conf && sed -i 's/driver_txpower_override=.*/driver_txpower_override=35/' /etc/wfb.conf && sed -i 's/stbc=.*/stbc=1/' /etc/wfb.conf && sed -i 's/ldpc=.*/ldpc=1/' /etc/wfb.conf +Command4=15MBPS 200MW:cli -s .video0.bitrate 14336 && cli -s .fpv.noiseLevel 0 && sed -i 's/mcs_index=.*/mcs_index=4/' /etc/wfb.conf && sed -i 's/bandwidth=.*/bandwidth=20/' /etc/wfb.conf && sed -i 's/driver_txpower_override=.*/driver_txpower_override=35/' /etc/wfb.conf && sed -i 's/stbc=.*/stbc=1/' /etc/wfb.conf && sed -i 's/ldpc=.*/ldpc=1/' /etc/wfb.conf +Submenu1=ALINK_PROFILE +Submenu2=BASIC SETTINGS +Submenu3=VTX MENU + +[CHANNEL] +Command1=R1:sed -i "s/^channel=.*/channel=132/" /etc/wfb.conf +Command2=R2:sed -i "s/^channel=.*/channel=140/" /etc/wfb.conf +Command3=R3:sed -i "s/^channel=.*/channel=149/" /etc/wfb.conf +Command4=R4:sed -i "s/^channel=.*/channel=157/" /etc/wfb.conf +Command5=R5:sed -i "s/^channel=.*/channel=165/" /etc/wfb.conf +Command6=R6:sed -i "s/^channel=.*/channel=173/" /etc/wfb.conf +Submenu1=VTX MENU + +[ALINK_PROFILE] +Command1=25MW_10MBPS:truncate -s 0 /etc/txprofiles.conf && printf "# \n999 - 1200 long 0 8 12 1024 10 30 0,0,0,0 20 -12\n1201 - 1400 long 1 8 12 4096 10 30 0,0,0,0 20 -12\n1401 - 1500 long 2 8 12 5120 10 25 0,0,0,0 20 -12\n1501 - 1600 long 2 8 12 8192 10 25 0,0,0,0 20 -12\n1601 - 1700 long 2 8 12 8192 10 20 0,0,0,0 20 -12\n1701 - 1800 long 2 8 12 9216 10 20 0,0,0,0 20 -12\n1801 - 2001 long 2 8 12 10240 10 20 0,0,0,0 20 -12" >> /etc/txprofiles.conf +Command2=200MW_10MBPS:truncate -s 0 /etc/txprofiles.conf && printf "# \n999 - 1200 long 0 8 12 1024 10 40 0,0,0,0 20 -12\n1201 - 1400 long 1 8 12 4096 10 40 0,0,0,0 20 -12\n1401 - 1500 long 2 8 12 5120 10 40 0,0,0,0 20 -12\n1501 - 1600 long 2 8 12 8192 10 40 0,0,0,0 20 -12\n1601 - 1700 long 2 8 12 8192 10 35 0,0,0,0 20 -12\n1701 - 1800 long 2 8 12 10240 10 35 0,0,0,0 20 -12\n1801 - 2001 long 2 8 12 10240 10 30 0,0,0,0 20 -12" >> /etc/txprofiles.conf +Submenu2=BASIC SETTINGS +Submenu3=VTX MENU + +[ADVANCED SETTINGS] +Submenu1=CAMERA SETTINGS +Submenu2=WFB-NG SETTINGS +Submenu3=DATE SETTINGS +Submenu4=VTX MENU + +[CAMERA SETTINGS] +Submenu1=IMAGE +Submenu2=VIDEO +Submenu3=RECORDING +Submenu4=ISP +Submenu5=FPV +Command1=RESTART MAJESTIC:killall -1 majestic +Submenu6=VTX MENU + +[IMAGE] +Option1=MIRROR:TRUE,FALSE:cli -g .image.mirror | tr a-z A-Z:cli -s .image.mirror $(echo {} | tr A-Z a-z) +Option2=FLIP:TRUE,FALSE:cli -g .image.flip | tr a-z A-Z:cli -s .image.flip $(echo {} | tr A-Z a-z) +Option3=CONTRAST:0-100:cli -g .image.contrast:cli -s .image.contrast {} +Option4=HUE:0-100:cli -g .image.hue:cli -s .image.hue {} +Option5=SATURATION:0-100:cli -g .image.saturation:cli -s .image.saturation {} +Option6=LUMINANCE:0-100:cli -g .image.luminance:cli -s .image.luminance {} +Option7=ROTATE:0-360:cli -g .image.rotate:cli -s .image.rotate {} +Submenu1=CAMERA SETTINGS +Submenu2=VTX MENU + +[VIDEO] +Option1=SIZE:1280X720,1456X816,1920X1080,1440X1080,1920X1440,2104X1184,2208X1248,2240X1264,2312X1304,2436X1828,2512X1416,2560X1440,2560X1920,2720X1528,2944X1656,3200X1800,3840X2160:cli -g .video0.size | tr x X:cli -s .video0.size $(echo {} | tr X x) +Option2=FPS:20,30,40,50,60,70,80,90,100,120:cli -g .video0.fps:cli -s .video0.fps {} +Option3=BITRATE:1024,2048,3072,4096,5120,6144,7168,8192,9216,10240,11264,12288,13312,14336,15360,16384,17408,18432,19456,20480,21504,22528,23552,24576,25600,26624,27648,28672,29692,30720:cli -g .video0.bitrate:cli -s .video0.bitrate {} +Option4=CODEC:H264,H265:cli -g .video0.codec | tr h H:cli -s .video0.codec $(echo {}| tr H h) +Option5=GOPSIZE:0.1-20:cli -g .video0.gopSize:cli -s .video0.gopSize {} +Option6=RCMODE:VBR,AVBR,CBR:cli -g .video0.rcMode | tr a-z A-Z:cli -s .video0.rcMode $(echo {}| tr A-Z a-z) +Command1=BOX 1440X1080@60:cli -s .video0.size 1440x1080 && cli -s .video0.fps 60 && cli -s .isp.exposure 16 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local && sed -i -e '$i sleep 0.5' /etc/rc.local && sed -i -e '$i echo setprecrop 0 0 904 0 1440 1080 > /proc/mi_modules/mi_vpe/mi_vpe0' /etc/rc.local +Command1=BOX 1440X1080@90:cli -s .video0.size 1440x1080 && cli -s .video0.fps 90 && cli -s .isp.exposure 16 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local && sed -i -e '$i sleep 0.5' /etc/rc.local && sed -i -e '$i echo setprecrop 0 0 240 0 1440 1080 > /proc/mi_modules/mi_vpe/mi_vpe0' /etc/rc.local +Command2=BOX 2560X1920:cli -s .video0.size 2560x1920 && cli -s .video0.fps 60 && cli -s .isp.exposure 16 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local && sed -i -e '$i sleep 0.5' /etc/rc.local && sed -i -e '$i echo setprecrop 0 0 904 0 2560 1920 > /proc/mi_modules/mi_vpe/mi_vpe0' /etc/rc.local +Command3=BOX 2436X1828:cli -s .video0.size 2436x1828 && cli -s .video0.fps 60 && cli -s .isp.exposure 16 && cli -s .fpv.enabled true && sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local && sed -i -e '$i sleep 0.5' /etc/rc.local && sed -i -e '$i echo setprecrop 0 0 904 0 2436 1828 > /proc/mi_modules/mi_vpe/mi_vpe0' /etc/rc.local +Command4=DISABLE BOX RESOLUTIONS:sed -i '/sleep 0.5/d' /etc/rc.local && sed -i '/echo setprecrop*/d' /etc/rc.local +;Option7=MINQP:0-20:cli -g .video0.minQp:cli -s .video0.minQp {} +;Option8=MAXQP:0-100:cli -g .video0.maxQp:cli -s .video0.maxQp {} +;Option9=IPPROP:0-10:cli -g .video0.ipProp:cli -s .video0.ipProp {} +;Option10=PROFILE:MAIN,:cli -g .video0.profile | tr a-z A-Z:cli -s .video0.profile $(echo {}| tr A-Z a-z) +;Option11=SLICEUNITS:4:cli -g .video0.sliceUnits:cli -s .video0.sliceUnits {} +;Option12=QPDELTA:-10-+10:cli -g .video0.qpDelta:cli -s .video0.qpDelta {} ; negative number currently unsupported +Submenu1=CAMERA SETTINGS +Submenu2=VTX MENU + +[RECORDING] +Option1=ENABLED:TRUE,FALSE:cli -g .records.enabled | tr a-z A-Z:cli -s .records.enabled $(echo {} | tr A-Z a-z) +Option2=SPLIT:0-50:cli -g .records.split:cli -s .records.split {} +Option3=MAXUSAGE:0-99:cli -g .records.maxUsage:cli -s .records.maxUsage {} +Submenu1=CAMERA SETTINGS +Submenu2=VTX MENU + +[ISP] +Option1=EXPOSURE:5-50:cli -g .isp.exposure:cli -s .isp.exposure {} +Option2=ANTIFLICKER:DISABLED,50,60:cli -g .isp.antiFlicker | tr a-z A-Z:cli -s .isp.antiFlicker $(echo {} | tr A-Z a-z) +Option3=SENSOR FILE:/ETC/SENSORS/IMX415_FPV.BIN,/ETC/SENSORS/IMX415_MILOS10.BIN,/ETC/SENSORS/IMX415_MILOS15.BIN,/ETC/SENSORS/IMX335_MILOS12TWEAK.BIN,/ETC/SENSORS/IMX335_GREG15.BIN,/ETC/SENSORS/IMX335_SPIKE5.BIN,/ETC/SENSORS/GREGSPIKE05.BIN:cli -g .isp.sensorConfig | tr a-z A-Z:cli -s .isp.sensorConfig $(echo {} | tr A-Z a-z) +Submenu1=CAMERA SETTINGS +Submenu2=VTX MENU + +[FPV] +Option1=ENABLED:TRUE,FALSE:cli -g .fpv.enabled | tr a-z A-Z:cli -s .fpv.enabled $(echo {} | tr A-Z a-z) +Option2=NOISELEVEL:0,1:cli -g .fpv.noiseLevel:cli -s .fpv.noiseLevel {} +Submenu1=CAMERA SETTINGS +Submenu2=VTX MENU + +[WFB-NG SETTINGS] +Option1=REGION:BO,GY,00:grep region /etc/wfb.conf | cut -d= -f2:sed -i 's/region=.*/region={}/' /etc/wfb.conf +Option2=TXPOWER:1,:grep ^txpower /etc/wfb.conf | cut -d= -f2:sed -i 's/txpower=.*/txpower={}/' /etc/wfb.conf +Option3=DRIVER_TXPOWER_OVERRIDE:1,20,25,30,35,40,45,50,55,58:grep ^driver_txpower_override /etc/wfb.conf | cut -d= -f2:sed -i 's/driver_txpower_override=.*/driver_txpower_override={}/' /etc/wfb.conf +Option4=BANDWIDTH:20,40:grep bandwidth /etc/wfb.conf | cut -d= -f2:sed -i 's/bandwidth=.*/bandwidth={}/' /etc/wfb.conf +Option5=STBC:0,1:grep stbc /etc/wfb.conf | cut -d= -f2:sed -i 's/stbc=.*/stbc={}/' /etc/wfb.conf +Option6=LDPC:0,1:grep ldpc /etc/wfb.conf | cut -d= -f2:sed -i 's/ldpc=.*/ldpc={}/' /etc/wfb.conf +Option7=MCS_INDEX:0-11:grep mcs_index /etc/wfb.conf | cut -d= -f2:sed -i 's/mcs_index=.*/mcs_index={}/' /etc/wfb.conf +Option8=RCV_BUF:456000,:grep rcv_buf /etc/wfb.conf | cut -d= -f2:sed -i 's/rcv_buf=.*/rcv_buf={}/' /etc/wfb.conf +Option9=FEC_K:1-20:grep fec_k /etc/wfb.conf | cut -d= -f2:sed -i 's/fec_k=.*/fec_k={}/' /etc/wfb.conf +Option10=FEC_N:1-20:grep fec_n /etc/wfb.conf | cut -d= -f2:sed -i 's/fec_n=.*/fec_n={}/' /etc/wfb.conf +Option11=POOL_TIMEOUT:0,:grep pool_timeout /etc/wfb.conf | cut -d= -f2:sed -i 's/pool_timeout=.*/pool_timeout={}/' /etc/wfb.conf +Option12=GUARD_INTERVAL:LONG,SHORT:grep guard_interval /etc/wfb.conf | cut -d= -f2 | tr a-z A-Z:sed -i "s/guard_interval=.*/guard_interval=$(echo {} | tr A-Z a-z)/" /etc/wfb.conf +Option13=CHANNEL:36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140,144,149,153,157,161,165:grep ^channel /etc/wfb.conf | cut -d= -f2:sed -i 's/channel=.*/channel={}/' /etc/wfb.conf +Submenu1=VTX MENU + +[DATE SETTINGS] +Option1=YEAR :2025-2050:echo $(date +%Y):date -s "{}-$(date '+%m-%d %H:%M')" +Option2=MONTH :1-12:echo $(date +%m):date -s "$(date '+%Y')-{}-$(date '+%d %H:%M')" +Option3=DAY :1-31:echo $(date +%d):date -s "$(date '+%Y-%m')-{} $(date '+%H:%M')" +Option4=HOUR :0-23:echo $(date +%H):date -s "$(date '+%Y-%m-%d') {}:$(date '+%M')" +Option5=MINUTE:0-59:echo $(date +%M):date -s "$(date '+%Y-%m-%d %H'):{}" +;Command1=File Date:date -s "@$(find /mnt/mmcblk0p1 -maxdepth 1 -type f -printf '%T@\n' | sort -n | tail -1)" +Submenu1=VTX MENU \ No newline at end of file