From d2fcc9cf4411bef2e4421c7d0850c42fa02f83b8 Mon Sep 17 00:00:00 2001 From: Arend-Jan van Hilten Date: Mon, 13 Apr 2026 17:08:44 +0200 Subject: [PATCH 1/7] fix shutdown script --- services/mirte_shutdown.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/services/mirte_shutdown.sh b/services/mirte_shutdown.sh index 349e427..09ab5d3 100755 --- a/services/mirte_shutdown.sh +++ b/services/mirte_shutdown.sh @@ -8,15 +8,19 @@ if ! systemctl list-jobs | grep -q -E 'shutdown.target.*start'; then fi source /home/mirte/.bashrc -source /home/mirte/.mirte_settings +source /home/mirte/.mirte_settings.sh source /home/mirte/mirte_ws/install/setup.bash touch /home/mirte/.shutdown service=/io/oled/oled/set_text +shutdown_service=/io/power/power_watcher/shutdown if [ "$MIRTE_USE_MULTIROBOT" = "true" ]; then mirte_space=$(cat /etc/hostname | tr '[:upper:]' '[:lower:]' | tr '-' '_') service="/$mirte_space$service" + shutdown_service="/$mirte_space$shutdown_service" fi +ros2 service list || true # make sure ros2 daemon is running if [ "$(ros2 service list | grep "$service$")" ]; then ros2 service call "$service" mirte_msgs/srv/SetOLEDText "{ text: 'Shutting down...'}" + ros2 service call "$shutdown_service" std_srvs/srv/SetBool "{ data: true }" fi From bdaeee5802bb0c58f02ef7acfa251bea003240b3 Mon Sep 17 00:00:00 2001 From: Arend-Jan van Hilten Date: Fri, 17 Apr 2026 10:49:46 +0200 Subject: [PATCH 2/7] Add udev rules for new orbbec cam --- install_ROS2.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/install_ROS2.sh b/install_ROS2.sh index df4f03a..432af31 100755 --- a/install_ROS2.sh +++ b/install_ROS2.sh @@ -210,6 +210,9 @@ if [[ $MIRTE_TYPE == "mirte-master" ]]; then cd ../../rplidar_ros chmod +x ./scripts/create_udev_rules.sh || true ./scripts/create_udev_rules.sh || true + cd /home/mirte/mirte_ws/ || exit 1 + cd src/orbbecsdk_ros2/ || true + sudo ./orbbec_camera/scripts/install_udev_rules.sh || true fi From 247424224792f64fc92b5b2686796bce22b8485e Mon Sep 17 00:00:00 2001 From: Arend-Jan van Hilten Date: Fri, 17 Apr 2026 10:50:03 +0200 Subject: [PATCH 3/7] ignore vscode dir --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 53fcc16..65e54fe 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ build/ ui/ *.uf2 ev3-usb.sh +.vscode/ \ No newline at end of file From ee52c2ad52fc4c4affff07df6f9a5a78056797cc Mon Sep 17 00:00:00 2001 From: Arend-Jan van Hilten Date: Fri, 17 Apr 2026 11:17:32 +0200 Subject: [PATCH 4/7] Allow reboot mm not trigger power shut-off --- services/mirte_shutdown.sh | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/services/mirte_shutdown.sh b/services/mirte_shutdown.sh index 09ab5d3..02a8591 100755 --- a/services/mirte_shutdown.sh +++ b/services/mirte_shutdown.sh @@ -7,6 +7,13 @@ if ! systemctl list-jobs | grep -q -E 'shutdown.target.*start'; then exit fi +REBOOT=false +# if rebooting, then dont shutdown the robot +if systemctl list-jobs | grep -q -E 'reboot.target.*start'; then + echo "reboot target active" + REBOOT=true +fi + source /home/mirte/.bashrc source /home/mirte/.mirte_settings.sh source /home/mirte/mirte_ws/install/setup.bash @@ -20,7 +27,11 @@ if [ "$MIRTE_USE_MULTIROBOT" = "true" ]; then fi ros2 service list || true # make sure ros2 daemon is running -if [ "$(ros2 service list | grep "$service$")" ]; then +if [ "$(ros2 service list | grep "$service$")" ] && [ "$REBOOT" = "false" ]; then ros2 service call "$service" mirte_msgs/srv/SetOLEDText "{ text: 'Shutting down...'}" ros2 service call "$shutdown_service" std_srvs/srv/SetBool "{ data: true }" fi + +if [ "$(ros2 service list | grep "$service$")" ] && [ "$REBOOT" = "true" ]; then + ros2 service call "$service" mirte_msgs/srv/SetOLEDText "{ text: 'Rebooting...'}" +fi \ No newline at end of file From b38109baace8f27aacf33e4184ad0a9605ea1ae0 Mon Sep 17 00:00:00 2001 From: Arend-Jan van Hilten Date: Tue, 12 May 2026 16:34:48 +0200 Subject: [PATCH 5/7] Disable zerotier by default --- install_web.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install_web.sh b/install_web.sh index 28212c8..b336f60 100755 --- a/install_web.sh +++ b/install_web.sh @@ -66,3 +66,4 @@ curl -s https://install.zerotier.com | sudo bash sudo rm /var/lib/zerotier-one/identity.public || true sudo rm /var/lib/zerotier-one/identity.secret || true # new identity should be generated on first boot +sudo systemctl disable --now zerotier-one.service From 5e1aac6868c4eeba607c2b0d662112eaa958f15b Mon Sep 17 00:00:00 2001 From: Arend-Jan van Hilten Date: Tue, 12 May 2026 16:35:38 +0200 Subject: [PATCH 6/7] Run /stop when shutting down to stop the motors Co-authored-by: Copilot --- services/mirte_shutdown.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/services/mirte_shutdown.sh b/services/mirte_shutdown.sh index 02a8591..93eac6e 100755 --- a/services/mirte_shutdown.sh +++ b/services/mirte_shutdown.sh @@ -27,6 +27,13 @@ if [ "$MIRTE_USE_MULTIROBOT" = "true" ]; then fi ros2 service list || true # make sure ros2 daemon is running +ros2 service list || true # make sure ros2 daemon is running + +stop_service="/stop" +if [ "$(ros2 service list | grep "$stop_service$")" ]; then + ros2 service call "$stop_service" std_srvs/srv/Empty "{}" +fi + if [ "$(ros2 service list | grep "$service$")" ] && [ "$REBOOT" = "false" ]; then ros2 service call "$service" mirte_msgs/srv/SetOLEDText "{ text: 'Shutting down...'}" ros2 service call "$shutdown_service" std_srvs/srv/SetBool "{ data: true }" @@ -34,4 +41,4 @@ fi if [ "$(ros2 service list | grep "$service$")" ] && [ "$REBOOT" = "true" ]; then ros2 service call "$service" mirte_msgs/srv/SetOLEDText "{ text: 'Rebooting...'}" -fi \ No newline at end of file +fi From a2cc6ea21bb58222c8f24477f9c6a7cffd5c7f95 Mon Sep 17 00:00:00 2001 From: Arend-Jan van Hilten Date: Wed, 13 May 2026 11:46:18 +0200 Subject: [PATCH 7/7] fix zerotier disable + disable unattended upgrades Co-authored-by: Copilot --- install_mirte.sh | 1 + install_web.sh | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/install_mirte.sh b/install_mirte.sh index 44695e7..798a0f8 100755 --- a/install_mirte.sh +++ b/install_mirte.sh @@ -117,6 +117,7 @@ sudo apt install -y overlayroot } 2>&1 | sed -u 's/^/overlayfs::: /' & #sudo bash -c "echo 'overlayroot=\"tmpfs\"' >> /etc/overlayroot.conf" +sudo systemctl disable --now unattended-upgrades.service || true # either no network or do it manually # update time in /etc/fake-hwclock.data sudo fake-hwclock save diff --git a/install_web.sh b/install_web.sh index b336f60..82a19ff 100755 --- a/install_web.sh +++ b/install_web.sh @@ -66,4 +66,4 @@ curl -s https://install.zerotier.com | sudo bash sudo rm /var/lib/zerotier-one/identity.public || true sudo rm /var/lib/zerotier-one/identity.secret || true # new identity should be generated on first boot -sudo systemctl disable --now zerotier-one.service +sudo systemctl disable --now zerotier-one.service || true # fails bc not started with systemd