Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added sensorConfig #10

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions vtxmenu.ini
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Submenu2=VTX MENU
[VIDEO]
Option1=SIZE:1280X720,1920X1080,2944X1656,3840X2160:cli -g .video0.size | tr x X:cli -s .video0.size $(echo {} | tr X x)
Option2=FPS:60,90,120:cli -g .video0.fps:cli -s .video0.fps {}
Option3=BITRATE:4096,5120,6144,7168,8192:cli -g .video0.bitrate:cli -s .video0.bitrate {}
Option3=BITRATE:4096,6144,8192,12288,15360: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)
Expand All @@ -64,7 +64,7 @@ Submenu2=VTX MENU
[ISP]
Option1=EXPOSURE:0-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)
Option2=IQSERVER:FALSE,TRUE:cli -g .isp.iqServer | tr a-z A-Z:cli -s .isp.iqServer $(echo {} | tr A-Z a-z)
Option3=SENSOR FILE:/ETC/SENSORS/IMX415_MILOS10.BIN,/ETC/SENSORS/IMX415_MILOS11.BIN:cli -g .isp.sensorConfig | tr a-z A-Z:cli -s .isp.sensorConfig $(echo {} | tr A-Z a-z)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might be a problem. When the read value does not match any of element in the list the first one is used.
So when by default the milos bin are not in the firmware, this will lead to a sensor config /etc/sensors/imx415_milos10.bin after the first save in the ISP section even when it's not there.
Does this work with majestic ?
There are also some shenanigans going on in datalink tweaksys.
Not sure how to handle this in a generalized way.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here is the defaulting: https://github.com/OpenIPC/msposd/blob/main/osd/util/ini_parser.c#L247
In this loop the actual value is set https://github.com/OpenIPC/msposd/blob/main/osd/util/ini_parser.c#L277-L282
When strcmp(output, value_list[i]) == 0 is never true the default stays.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The sensorConfig options is more like an example of how to import and then select an available bin file directly from the VTX menu.
If the majestic doesn’t find the bin file that the user chose, it will automatically use the default bin file based on the camera sensor.
We are planning to use the Milos calibration files as default for imx415 and imx335 once we have an acceptable result. However the sensorConfig will give flexibility to the user to select a different calibration file based on their preferences or weather conditions.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, If that goes to the official firmware, it will be available on ALL devices as default options.
It is simply not a good idea to have two very specific config options in the standard install, provided that these two files are not included in the standard OpenIPC firmware.
Relying on majestic "recovery from invalid config setting" is also not a good thing. Imagine this changes some day and after some update majestic crashes on invalid sensor file setting.
I would offer to add an option to download the vtxconfig.ini from the configurator. This way a user who adds new sensor.bin files will simply download the appropriate vtxmenu.ini for them.
Of course, the best option would be to make the list in the options filled via a bash script that lists all files with a wildcard, sorted so that the first option is the standard file.
This way the user will need to only upload whatever file he decides and they will appear in the list.
But this is something that @henkwiedig can add I suppose

Submenu1=CAMERA SETTINGS
Submenu2=VTX MENU

Expand All @@ -77,10 +77,10 @@ Submenu2=VTX MENU
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,80,160:grep bandwidth /etc/wfb.conf | cut -d= -f2:sed -i 's/bandwidth=.*/bandwidth={}/' /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-4:grep mcs_index /etc/wfb.conf | cut -d= -f2:sed -i 's/mcs_index=.*/mcs_index={}/' /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
Expand Down