From eda910a6cc27f2ed4c674bad1cd1cea324447f9e Mon Sep 17 00:00:00 2001 From: "Mr. Poke" Date: Sun, 23 Nov 2025 17:25:50 +0100 Subject: [PATCH 1/2] Unicore raw support. First.... --- archive_and_clean.sh | 2 +- receiver_cfg/Unicore_UM980_raw.cfg | 21 ++++++++++++++++++++ receiver_cfg/Unicore_UM982_raw.cfg | 20 +++++++++++++++++++ run_cast.sh | 32 +++++++++++++++--------------- settings.conf.default | 18 ++++++++--------- tools/install.sh | 31 +++++++++++++++-------------- 6 files changed, 83 insertions(+), 41 deletions(-) create mode 100644 receiver_cfg/Unicore_UM980_raw.cfg create mode 100644 receiver_cfg/Unicore_UM982_raw.cfg diff --git a/archive_and_clean.sh b/archive_and_clean.sh index 3f5f094a..14a6b4b5 100755 --- a/archive_and_clean.sh +++ b/archive_and_clean.sh @@ -30,7 +30,7 @@ done #archive and compress previous day's gnss data. #find . -maxdepth 1 -type f -mtime -1 -mmin +60 -name "*.ubx*" -exec tar -jcvf ${archive_name} --remove-files {} +; -find . -maxdepth 1 -type f -mtime -960 -mmin +60 \( -name "*.rtcm*" -o -name "*.nov*" -o -name "*.oem*" -o -name "*.ubx*" -o -name "*.ss2*" -o -name "*.hemis*" -o -name "*.stq*" -o -name "*.javad*" -o -name "*.nvs*" -o -name "*.binex*" -o -name "*.sbf*" \) -exec zip -m9 ${archive_name} {} +; +find . -maxdepth 1 -type f -mtime -960 -mmin +60 \( -name "*.rtcm*" -o -name "*.nov*" -o -name "*.oem*" -o -name "*.ubx*" -o -name "*.ss2*" -o -name "*.hemis*" -o -name "*.stq*" -o -name "*.javad*" -o -name "*.nvs*" -o -name "*.binex*" -o -name "*.sbf*" -o -name "*.unicore*"\) -exec zip -m9 ${archive_name} {} +; #delete gnss data older than x days. #find . -maxdepth 1 -type f -name "*.tar.bz2" -mtime +${archive_rotate} -delete diff --git a/receiver_cfg/Unicore_UM980_raw.cfg b/receiver_cfg/Unicore_UM980_raw.cfg new file mode 100644 index 00000000..3e97f853 --- /dev/null +++ b/receiver_cfg/Unicore_UM980_raw.cfg @@ -0,0 +1,21 @@ +# Config file for using a Unicore UM980 with RTKBase (RAW data) +# SIGNALGROUP will reset the device + +CONFIG SIGNALGROUP 7 +CONFIG PPP DISABLE + +UNLOG + +OBSVMB 1 +GPSIONB ONCHANGED +GPSEPHB ONCHANGED +GPSUTCB ONCHANGED +BDSIONB ONCHANGED +BDSEPHB ONCHANGED +BD3IONB ONCHANGED +BD3EPHB ONCHANGED +GALIONB ONCHANGED +GLOEPHB ONCHANGED +GALEPHB ONCHANGED +QZSSEPHB ONCHANGED +SAVECONFIG diff --git a/receiver_cfg/Unicore_UM982_raw.cfg b/receiver_cfg/Unicore_UM982_raw.cfg new file mode 100644 index 00000000..565fb687 --- /dev/null +++ b/receiver_cfg/Unicore_UM982_raw.cfg @@ -0,0 +1,20 @@ +# Config file for using a Unicore UM982 with RTKBase (RAW data) +# SIGNALGROUP will reset the device +CONFIG SIGNALGROUP 7 +CONFIG PPP DISABLE + +UNLOG + +OBSVMB 1 +GPSIONB ONCHANGED +GPSEPHB ONCHANGED +GPSUTCB ONCHANGED +BDSIONB ONCHANGED +BDSEPHB ONCHANGED +BD3IONB ONCHANGED +BD3EPHB ONCHANGED +GALIONB ONCHANGED +GLOEPHB ONCHANGED +GALEPHB ONCHANGED +QZSSEPHB ONCHANGED +SAVECONFIG diff --git a/run_cast.sh b/run_cast.sh index db7a656f..92d8e0c8 100755 --- a/run_cast.sh +++ b/run_cast.sh @@ -13,11 +13,11 @@ in_tcp="tcpcli://localhost:${tcp_port}#${receiver_format}" #in_ext_tcp is mainly for dev purpose to receive a raw stream from another base in_ext_tcp="tcpcli://${ext_tcp_source}:${ext_tcp_port}#${receiver_format}" -out_caster_A="ntrips://:${svr_pwd_a}@${svr_addr_a}:${svr_port_a}/${mnt_name_a}#rtcm3 -msg ${rtcm_msg_a} -p ${position}" +out_caster_A="-msg ${rtcm_msg_a} ntrips://:${svr_pwd_a}@${svr_addr_a}:${svr_port_a}/${mnt_name_a}#rtcm3 -p ${position}" #add receiver options if it exists [[ ! -z "${ntrip_a_receiver_options}" ]] && out_caster_A=""${out_caster_A}" -opt "${ntrip_a_receiver_options}"" -out_caster_B="ntrips://:${svr_pwd_b}@${svr_addr_b}:${svr_port_b}/${mnt_name_b}#rtcm3 -msg ${rtcm_msg_b} -p ${position}" +out_caster_B="-msg ${rtcm_msg_b} ntrips://:${svr_pwd_b}@${svr_addr_b}:${svr_port_b}/${mnt_name_b}#rtcm3 -p ${position}" #add receiver options if it exists [[ ! -z "${ntrip_b_receiver_options}" ]] && out_caster_B=""${out_caster_B}" -opt "${ntrip_b_receiver_options}"" @@ -29,26 +29,26 @@ if [[ ${local_ntripc_user} == '' ]] && [[ ${local_ntripc_pwd} == '' ]] local_ntripc_auth='B' #Basic authentification fi out_local_caster_source_table="${local_ntripc_mnt_name};rtcm3;${local_ntripc_msg};${receiver_frequency_count};GPS+GLO+GAL+BDS+QZS;NONE;NONE;${array_pos[0]};${array_pos[1]};0;0;RTKBase_${receiver},${version};NONE;${local_ntripc_auth};N;;" -out_local_caster="ntripc://${local_ntripc_user}:${local_ntripc_pwd}@:${local_ntripc_port}/${local_ntripc_mnt_name}:${out_local_caster_source_table}#rtcm3 -msg ${local_ntripc_msg} -p ${position}" +out_local_caster="-msg ${local_ntripc_msg} -out ntripc://${local_ntripc_user}:${local_ntripc_pwd}@:${local_ntripc_port}/${local_ntripc_mnt_name}:${out_local_caster_source_table}#rtcm3 -p ${position}" #add receiver options if it exists [[ ! -z "${local_ntripc_receiver_options}" ]] && out_local_caster="${out_local_caster} -opt ${local_ntripc_receiver_options}" -out_tcp="tcpsvr://:${tcp_port}" +out_tcp="-out tcpsvr://:${tcp_port}" out_file="file://${datadir}/${file_name}.${receiver_format}::T::S=${file_rotate_time} -f ${file_overlap_time}" -out_rtcm_svr="tcpsvr://:${rtcm_svr_port}#rtcm3 -msg ${rtcm_svr_msg} -p ${position}" +out_rtcm_svr="-msg ${rtcm_svr_msg} -out tcpsvr://:${rtcm_svr_port}#rtcm3 -p ${position}" #add receiver options if it exists [[ ! -z "${rtcm_receiver_options}" ]] && out_rtcm_svr=""${out_rtcm_svr}" -opt "${rtcm_receiver_options}"" -out_rtcm_client="tcpcli://${rtcm_client_user}:${rtcm_client_pwd}@${rtcm_client_addr}:${rtcm_client_port}#rtcm3 -msg ${rtcm_client_msg} -p ${position}" +out_rtcm_client="-msg ${rtcm_client_msg} -out tcpcli://${rtcm_client_user}:${rtcm_client_pwd}@${rtcm_client_addr}:${rtcm_client_port}#rtcm3 -p ${position}" #add receiver options if it exists [[ ! -z "${rtcm_client_receiver_options}" ]] && out_rtcm_client=""${out_rtcm_client}" -opt "${rtcm_receiver_client_options}"" -out_rtcm_udp_svr="udpsvr://:${rtcm_udp_svr_port}#rtcm3 -msg ${rtcm_udp_svr_msg} -p ${position}" +out_rtcm_udp_svr="-msg ${rtcm_udp_svr_msg} -out udpsvr://:${rtcm_udp_svr_port}#rtcm3 -p ${position}" #add receiver options if it exists [[ ! -z "${rtcm_udp_svr_receiver_options}" ]] && out_rtcm_udp_svr=""${out_rtcm_udp_svr}" -opt "${rtcm_udp_svr_receiver_options}"" -out_rtcm_serial="serial://${out_com_port}:${out_com_port_settings}#rtcm3 -msg ${rtcm_serial_msg} -p ${position}" +out_rtcm_serial="-msg ${rtcm_serial_msg} -out serial://${out_com_port}:${out_com_port_settings}#rtcm3 -p ${position}" #add receiver options if it exists [[ ! -z "${rtcm_serial_receiver_options}" ]] && out_rtcm_serial=""${out_rtcm_serial}" -opt "${rtcm_serial_receiver_options}"" @@ -58,41 +58,41 @@ mkdir -p ${logdir} out_tcp) #echo ${cast} -in ${!1} -out $out_tcp # What is this ${!1} ? It's variable indirection - ${cast} -in ${!1} -out ${out_tcp} -b 1 -t ${level} -fl ${logdir}/str2str_tcp.log & + ${cast} -in ${!1} ${out_tcp} -b 1 -t ${level} -fl ${logdir}/str2str_tcp.log & ;; out_caster_A) #echo ${cast} -in ${!1} -out $out_caster - ${cast} -in ${!1} -out ${out_caster_A} -i "${receiver_info}" -a "${antenna_info}" -t ${level} -fl ${logdir}/str2str_ntrip_A.log & + ${cast} -in ${!1} ${out_caster_A} -i "${receiver_info}" -a "${antenna_info}" -t ${level} -fl ${logdir}/str2str_ntrip_A.log & ;; out_caster_B) - ${cast} -in ${!1} -out ${out_caster_B} -i "${receiver_info}" -a "${antenna_info}" -t ${level} -fl ${logdir}/str2str_ntrip_B.log & + ${cast} -in ${!1} ${out_caster_B} -i "${receiver_info}" -a "${antenna_info}" -t ${level} -fl ${logdir}/str2str_ntrip_B.log & ;; out_local_caster) #echo ${cast} -in ${!1} -out "${out_local_caster}" - ${cast} -in ${!1} -out ${out_local_caster} -i "${receiver_info}" -a "${antenna_info}" -t ${level} -fl ${logdir}/str2str_ntrip.log & + ${cast} -in ${!1} ${out_local_caster} -i "${receiver_info}" -a "${antenna_info}" -t ${level} -fl ${logdir}/str2str_ntrip.log & ;; out_rtcm_svr) #echo ${cast} -in ${!1} -out $out_rtcm_svr - ${cast} -in ${!1} -out ${out_rtcm_svr} -i "${receiver_info}" -a "${antenna_info}" -t ${level} -fl ${logdir}/str2str_rtcm_svr.log & + ${cast} -in ${!1} ${out_rtcm_svr} -i "${receiver_info}" -a "${antenna_info}" -t ${level} -fl ${logdir}/str2str_rtcm_svr.log & ;; out_rtcm_client) #echo ${cast} -in ${!1} -out $out_rtcm_client - ${cast} -in ${!1} -out ${out_rtcm_client} -i "${receiver_info}" -a "${antenna_info}" -t ${level} -fl ${logdir}/str2str_rtcm_client.log & + ${cast} -in ${!1} ${out_rtcm_client} -i "${receiver_info}" -a "${antenna_info}" -t ${level} -fl ${logdir}/str2str_rtcm_client.log & ;; out_rtcm_udp_svr) #echo ${cast} -in ${!1} -out $out_rtcm_udp_svr - ${cast} -in ${!1} -out ${out_rtcm_udp_svr} -i "${receiver_info}" -a "${antenna_info}" -t ${level} -fl ${logdir}/str2str_rtcm_udp_svr.log & + ${cast} -in ${!1} ${out_rtcm_udp_svr} -i "${receiver_info}" -a "${antenna_info}" -t ${level} -fl ${logdir}/str2str_rtcm_udp_svr.log & ;; out_rtcm_serial) #echo ${cast} -in ${!1} -out $out_rtcm_serial - ${cast} -in ${!1} -out ${out_rtcm_serial} -i "${receiver_info}" -a "${antenna_info}" -t ${level} -fl ${logdir}/str2str_rtcm_serial.log & + ${cast} -in ${!1} ${out_rtcm_serial} -i "${receiver_info}" -a "${antenna_info}" -t ${level} -fl ${logdir}/str2str_rtcm_serial.log & ;; out_file) diff --git a/settings.conf.default b/settings.conf.default index 99b709c3..231fe6c2 100644 --- a/settings.conf.default +++ b/settings.conf.default @@ -33,7 +33,7 @@ position='47.0983869 -1.2655108 36.40' #gnss receiver com port com_port='' #gnss receiver com port settings -com_port_settings='38400:8:n:1' +com_port_settings='115200:8:n:1' #receiver model receiver='unknown' #gnss receiver format @@ -88,7 +88,7 @@ svr_port_a='2101' svr_pwd_a='' #Mount name mnt_name_a='Your_mount_name' -rtcm_msg_a='1004,1005(10),1006,1008(10),1012,1019,1020,1033(10),1042,1045,1046,1077,1087,1097,1107,1127,1230' +rtcm_msg_a='1005(30),1006(30),1033(30),1077(1),1087(1),1097(1),1117(1),1127(1),1230(30)' #Receiver dependent options ntrip_a_receiver_options='' @@ -104,7 +104,7 @@ svr_port_b='2101' svr_pwd_b='' #Mount name mnt_name_b='Your_mount_name' -rtcm_msg_b='1004,1005(10),1006,1008(10),1012,1019,1020,1033(10),1042,1045,1046,1077,1087,1097,1107,1127,1230' +rtcm_msg_b='1005(30),1006(30),1033(30),1077(1),1087(1),1097(1),1117(1),1127(1),1230(30)' #Receiver dependent options ntrip_b_receiver_options='' @@ -120,7 +120,7 @@ local_ntripc_pwd='' local_ntripc_port='2101' #mount point name for this local ntrip caster local_ntripc_mnt_name='' -local_ntripc_msg='1004,1005(10),1006,1008(10),1012,1019,1020,1033(10),1042,1045,1046,1077,1087,1097,1107,1127,1230' +local_ntripc_msg='1005(30),1006(30),1033(30),1077(1),1087(1),1097(1),1117(1),1127(1),1230(30)' #Receiver dependent options local_ntripc_receiver_options='' @@ -131,7 +131,7 @@ local_ntripc_receiver_options='' #port for rtcm local use rtcm_svr_port='5016' #messages for rtcm local use -rtcm_svr_msg='1004,1005(10),1006,1008(10),1012,1019,1020,1033(10),1042,1045,1046,1077,1087,1097,1107,1127,1230' +rtcm_svr_msg='1005(30),1006(30),1033(30),1077(1),1087(1),1097(1),1117(1),1127(1),1230(30)' #Receiver dependent options rtcm_receiver_options='' @@ -146,7 +146,7 @@ rtcm_client_port='80' rtcm_client_user='' rtcm_client_pwd='' #messages for rtcm client use -rtcm_client_msg='1004,1005(10),1006,1008(10),1012,1019,1020,1033(10),1042,1045,1046,1077,1087,1097,1107,1127,1230' +rtcm_client_msg='1005(30),1006(30),1033(30),1077(1),1087(1),1097(1),1117(1),1127(1),1230(30)' #Receiver dependent options rtcm_client_receiver_options='' @@ -157,7 +157,7 @@ rtcm_client_receiver_options='' #port for rtcm UDP use rtcm_udp_svr_port='' #messages for rtcm udp use -rtcm_udp_svr_msg='1004,1005(10),1006,1008(10),1012,1019,1020,1033(10),1042,1045,1046,1077,1087,1097,1107,1127,1230' +rtcm_udp_svr_msg='1005(30),1006(30),1033(30),1077(1),1087(1),1097(1),1117(1),1127(1),1230(30)' #Receiver dependent options rtcm_udp_svr_receiver_options='' @@ -170,7 +170,7 @@ rtcm_udp_client_addr='' #port for rtcm UDP use rtcm_udp_client_port='' #messages for rtcm udp use -rtcm_udp_client_msg='1004,1005(10),1006,1008(10),1012,1019,1020,1033(10),1042,1045,1046,1077,1087,1097,1107,1127,1230' +rtcm_udp_client_msg='1005(30),1006(30),1033(30),1077(1),1087(1),1097(1),1117(1),1127(1),1230(30)' #Receiver dependent options rtcm_udp_client_receiver_options='' @@ -183,7 +183,7 @@ out_com_port='' #serial output settings out_com_port_settings='115200:8:n:1' #messages for rtcm local use -rtcm_serial_msg='1004,1005(10),1006,1008(10),1012,1019,1020,1033(10),1042,1045,1046,1077,1087,1097,1107,1127,1230' +rtcm_serial_msg='1005(30),1006(30),1033(30),1077(1),1087(1),1097(1),1117(1),1127(1),1230(30)' #Receiver dependent options rtcm_serial_receiver_options='' diff --git a/tools/install.sh b/tools/install.sh index cf97628a..2c70dd3b 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -37,8 +37,8 @@ man_help(){ echo ' Install all dependencies like git build-essential python3-pip ...' echo '' echo ' -r | --rtklib' - echo ' Get RTKlib 2.4.3b34j from github and compile it.' - echo ' https://github.com/rtklibexplorer/RTKLIB/tree/b34j' + echo ' Get RTKlib 2.5.0 from github and compile it.' + echo ' https://github.com/rtklibexplorer/RTKLIB/ echo '' echo ' -b | --rtkbase-release' echo ' Get last release of RTKBase:' @@ -186,20 +186,20 @@ install_rtklib() { _compil_rtklib() { echo '################################' - echo 'COMPILING RTKLIB 2.4.3 b34j' + echo 'COMPILING RTKLIB 2.5.0 ' echo '################################' - #Get Rtklib 2.4.3 b34j release - sudo -u "${RTKBASE_USER}" wget -qO - https://github.com/rtklibexplorer/RTKLIB/archive/refs/tags/b34j.tar.gz | tar -xvz + #Get Rtklib 2.5.0 release + sudo -u "${RTKBASE_USER}" wget -qO - https://github.com/rtklibexplorer/RTKLIB/archive/refs/tags/v2.5.0.tar.gz | tar -xvz #Install Rtklib app #TODO add correct CTARGET in makefile? - make --directory=RTKLIB-b34j/app/consapp/str2str/gcc - make --directory=RTKLIB-b34j/app/consapp/str2str/gcc install - make --directory=RTKLIB-b34j/app/consapp/rtkrcv/gcc - make --directory=RTKLIB-b34j/app/consapp/rtkrcv/gcc install - make --directory=RTKLIB-b34j/app/consapp/convbin/gcc - make --directory=RTKLIB-b34j/app/consapp/convbin/gcc install + make --directory=RTKLIB-2.5.0/app/consapp/str2str/gcc + make --directory=RTKLIB-2.5.0/app/consapp/str2str/gcc install + make --directory=RTKLIB-2.5.0/app/consapp/rtkrcv/gcc + make --directory=RTKLIB-2.5.0/app/consapp/rtkrcv/gcc install + make --directory=RTKLIB-2.5.0/app/consapp/convbin/gcc + make --directory=RTKLIB-2.5.0/app/consapp/convbin/gcc install #deleting RTKLIB - rm -rf RTKLIB-b34j/ + rm -rf RTKLIB-2.5.0/ } _rtkbase_repo(){ @@ -579,13 +579,13 @@ configure_gnss(){ python3 "${rtkbase_path}"/tools/unicore_tool.py --port /dev/${com_port} --baudrate ${com_port_settings%%:*} --command reset --retry 5 sleep_time=10 ; echo 'Waiting '$sleep_time's for ' "${model}" ' reboot' ; sleep $sleep_time echo 'Sending settings....' - python3 "${rtkbase_path}"/tools/unicore_tool.py --port /dev/${com_port} --baudrate ${com_port_settings%%:*} --command send_config_file "${rtkbase_path}"/receiver_cfg/Unicore_"${model}"_rtcm3.cfg --store --retry 2 + python3 "${rtkbase_path}"/tools/unicore_tool.py --port /dev/${com_port} --baudrate ${com_port_settings%%:*} --command send_config_file "${rtkbase_path}"/receiver_cfg/Unicore_"${model}"_raw.cfg --store --retry 2 if [[ $? -eq 0 ]] then echo 'Unicore UM980 successfuly configured' sudo -u "${RTKBASE_USER}" sed -i s/^com_port_settings=.*/com_port_settings=\'115200:8:n:1\'/ "${rtkbase_path}"/settings.conf && \ sudo -u "${RTKBASE_USER}" sed -i s/^receiver=.*/receiver=\'Unicore_$model\'/ "${rtkbase_path}"/settings.conf && \ - sudo -u "${RTKBASE_USER}" sed -i s/^receiver_format=.*/receiver_format=\'rtcm3\'/ "${rtkbase_path}"/settings.conf + sudo -u "${RTKBASE_USER}" sed -i s/^receiver_format=.*/receiver_format=\'unicore\'/ "${rtkbase_path}"/settings.conf #UM980 archives a bigger, we need more remaining space to compress archives sudo -u "${RTKBASE_USER}" sed -i s/^min_free_space=.*/min_free_space=\'1500\'/ "${rtkbase_path}"/settings.conf @@ -804,7 +804,8 @@ main() { ;; esac && \ rtkbase_requirements && \ - install_rtklib && \ + #install_rtklib && \ + _compil_rtklib && \ install_unit_files && \ install_gpsd_chrony ret=$? From fb0de620b4b2b8bbc060ada0bff36c5416919c1f Mon Sep 17 00:00:00 2001 From: "Mr. Poke" Date: Mon, 24 Nov 2025 00:02:06 +0100 Subject: [PATCH 2/2] Update install.sh chmod all .sh --- tools/install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/install.sh b/tools/install.sh index 2c70dd3b..3b132534 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -301,6 +301,7 @@ _add_rtkbase_path_to_environment(){ echo '################################' echo 'ADDING RTKBASE PATH TO ENVIRONMENT' echo '################################' + find . -type f -name "*.sh" -exec chmod +x {} \; if [ -d rtkbase ] then if grep -q '^rtkbase_path=' /etc/environment