From 42b5fbd0cbc20c28db44726d6f98ebe84f8c376f Mon Sep 17 00:00:00 2001 From: Danny Smolinsky Date: Mon, 9 Jun 2025 21:13:10 +0200 Subject: [PATCH] Add support for UM960 --- receiver_cfg/Unicore_UM960_rtcm3.cfg | 21 ++++++++++++++++++ tools/install.sh | 33 ++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 receiver_cfg/Unicore_UM960_rtcm3.cfg diff --git a/receiver_cfg/Unicore_UM960_rtcm3.cfg b/receiver_cfg/Unicore_UM960_rtcm3.cfg new file mode 100644 index 00000000..4fbfe19e --- /dev/null +++ b/receiver_cfg/Unicore_UM960_rtcm3.cfg @@ -0,0 +1,21 @@ +# Config file for using a Unicore UM960 with RTKBase (RTCM3) +# SIGNALGROUP will reset the device +CONFIG SIGNALGROUP 1 +CONFIG SBAS ENABLE AUTO +MODE BASE 1 TIME 60 1 +rtcm1005 30 +rtcm1019 1 +rtcm1020 1 +rtcm1033 30 +rtcm1042 1 +rtcm1044 1 +rtcm1045 1 +rtcm1046 1 +rtcm1077 1 +rtcm1087 1 +rtcm1097 1 +rtcm1107 1 +rtcm1117 1 +rtcm1127 1 +GNGGA 1 +GNGSV 1 \ No newline at end of file diff --git a/tools/install.sh b/tools/install.sh index cf97628a..84df6b71 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -434,6 +434,12 @@ detect_gnss() { detected_gnss[2]=$port_speed #echo 'U-blox ZED-F9P DETECTED ON '$port $port_speed break + elif { model=$(python3 "${rtkbase_path}"/tools/unicore_tool.py --port /dev/$port --baudrate $port_speed --command get_model 2>/dev/null) ; [[ "${model}" == 'UM960' ]] ;}; then + detected_gnss[0]=$port + detected_gnss[1]='unicore' + detected_gnss[2]=$port_speed + #echo 'Unicore ' "${model}" ' DETECTED ON '$port $port_speed + break elif { model=$(python3 "${rtkbase_path}"/tools/unicore_tool.py --port /dev/$port --baudrate $port_speed --command get_model 2>/dev/null) ; [[ "${model}" == 'UM98'[0-2] ]] ;}; then detected_gnss[0]=$port detected_gnss[1]='unicore' @@ -568,6 +574,33 @@ configure_gnss(){ return $? fi + elif { model=$(python3 "${rtkbase_path}"/tools/unicore_tool.py --port /dev/${com_port} --baudrate ${com_port_settings%%:*} --command get_model 2>/dev/null) ; [[ "${model}" == 'UM960' ]] ;} + then + #get UM960 firmware release + firmware="$(python3 "${rtkbase_path}"/tools/unicore_tool.py --port /dev/${com_port} --baudrate ${com_port_settings%%:*} --command get_firmware 2>/dev/null)" || firmware='?' + echo 'Unicore-' "${model}" 'Firmware: ' "${firmware}" + sudo -u "${RTKBASE_USER}" sed -i s/^receiver_firmware=.*/receiver_firmware=\'${firmware}\'/ "${rtkbase_path}"/settings.conf + #configure the UM960 for RTKBase + echo 'Resetting the ' "${model}" ' settings....' + 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 + if [[ $? -eq 0 ]] + then + echo 'Unicore UM960 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 + #UM960 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 + + return $? + else + echo 'Failed to configure the Gnss receiver' + return 1 + fi + elif { model=$(python3 "${rtkbase_path}"/tools/unicore_tool.py --port /dev/${com_port} --baudrate ${com_port_settings%%:*} --command get_model 2>/dev/null) ; [[ "${model}" == 'UM98'[0-2] ]] ;} then #get UM98x firmware release