diff --git a/kas-pypcc-rpi.yml b/kas-pypcc-rpi.yml
index f15ed3f54ce709f8f82ea60ae3df4e1124dcb420..219a541a67af3991028ffbc649ef847546a34ea8 100644
--- a/kas-pypcc-rpi.yml
+++ b/kas-pypcc-rpi.yml
@@ -86,7 +86,7 @@ local_conf_header:
     DISTRO_FEATURES_BACKFILL_CONSIDERED += "sysvinit"
     VIRTUAL-RUNTIME_init_manager = "systemd"
     VIRTUAL-RUNTIME_initscripts = "systemd-compat-units"
-    IMAGE_INSTALL:append = "ntp python3-pypcc python3-halibut-ipconfig vcgencmd dtc i2c-tools swupdate swupdate-www libgpiod libgpiod-tools libgpiod-dev kernel-module-i2c-gpio"
+    IMAGE_INSTALL:append = "ntp python3-pypcc python3-halibut-py vcgencmd dtc i2c-tools swupdate swupdate-www libgpiod libgpiod-tools libgpiod-dev kernel-module-i2c-gpio"
     IMAGE_FSTYPES = "tar.bz2 ext4 ext4.gz wic.bz2 wic.bmap"
     SWUPDATE_IMAGES_FSTYPES[core-image-full-cmdline] = ".ubifs"
     IMAGE_BOOT_FILES:append = "halibut.dtbo;overlays/halibut.dtbo"
diff --git a/recipes-kernel/linux/files/dts/overlays/halibut-overlay.dts b/recipes-kernel/linux/files/dts/overlays/halibut-overlay.dts
index f55bd205a843cd8b254f7cdf02b6a942b21a1b00..a73d8776c6d485bac9ce224ed0d9a1883ebd549c 100644
--- a/recipes-kernel/linux/files/dts/overlays/halibut-overlay.dts
+++ b/recipes-kernel/linux/files/dts/overlays/halibut-overlay.dts
@@ -22,6 +22,12 @@
 						<&gpio 7  (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
 				gpio-line-names = "BCK_UNB", "BCK_ID1", "BCK_ID2", "BCK_ID3", "BCK_ID4", "BCK_ID5";
 			};
+            ccd {
+                compatible = "astron,ccd";
+            };
+            apsct {
+                compatible = "astron,apsct";
+            };
 		};
 	};
 };
diff --git a/recipes-support/swupdate/swupdate/rpi/swupdate.cfg b/recipes-support/swupdate/swupdate/rpi/swupdate.cfg
index ea8c4db1d3942af8c3256b4c68518fba205e129b..a454df88d44d10f07f88e1df5aaf9b78c79fcb6e 100644
--- a/recipes-support/swupdate/swupdate/rpi/swupdate.cfg
+++ b/recipes-support/swupdate/swupdate/rpi/swupdate.cfg
@@ -29,7 +29,7 @@ suricatta :
     loglevel          = 10;
     userid            = 0;
     groupid           = 0;
-    targettoken       = "@TARGETTOKEN@";
+    targettoken       = "b1d3790a1aad17c1bfbc4dc8c5a21bbc";
 };
 
 webserver :
diff --git a/recipes/files/0001-Add-systemd-requirements.patch b/recipes/files/0001-Add-systemd-requirements.patch
new file mode 100644
index 0000000000000000000000000000000000000000..241193bae7dcbe8a9fc9d07cada38d2ae69ded13
--- /dev/null
+++ b/recipes/files/0001-Add-systemd-requirements.patch
@@ -0,0 +1,78 @@
+commit 322f66d550529d1137a0ee597fdafce2b515258e
+Author: Hannes Feldt <feldt@astron.nl>
+Date:   Sat Jun 21 09:34:44 2025 +0200
+
+    Add systemd requirements
+
+diff --git a/bin/apscttr.service b/bin/apscttr.service
+index 63170b0..cdcb81d 100644
+--- a/bin/apscttr.service
++++ b/bin/apscttr.service
+@@ -1,6 +1,7 @@
+ [Unit]
+-Description=receiver translator
+-After=multi-user.target
++Description=apsct translator
++After=sys-devices-platform-apsct.device
++Requires=sys-devices-platform-apsct.device
+ StartLimitIntervalSec=600
+ StartLimitBurst=5
+ 
+diff --git a/bin/apsputr.service b/bin/apsputr.service
+index f12e9c6..4f45093 100644
+--- a/bin/apsputr.service
++++ b/bin/apsputr.service
+@@ -1,6 +1,7 @@
+ [Unit]
+-Description=receiver translator
+-After=multi-user.target
++Description=apspu translator
++After=sys-devices-platform-apsct.device
++Requires=sys-devices-platform-apsct.device
+ StartLimitIntervalSec=600
+ StartLimitBurst=5
+ 
+diff --git a/bin/ccdtr.service b/bin/ccdtr.service
+index 42f4a3c..487d5cf 100644
+--- a/bin/ccdtr.service
++++ b/bin/ccdtr.service
+@@ -1,6 +1,7 @@
+ [Unit]
+ Description=ccd translator
+-After=multi-user.target
++After=sys-devices-platform-ccd.device
++Requires=sys-devices-platform-ccd.device
+ StartLimitIntervalSec=600
+ StartLimitBurst=5
+ 
+diff --git a/bin/recvtr.service b/bin/recvtr.service
+index 05cada9..39516f8 100644
+--- a/bin/recvtr.service
++++ b/bin/recvtr.service
+@@ -1,8 +1,9 @@
+ [Unit]
+ Description=receiver translator
+-After=multi-user.target
+ StartLimitIntervalSec=600
+ StartLimitBurst=5
++Requires=sys-devices-platform-apsct.device
++After=sys-devices-platform-apsct.device
+ 
+ [Service]
+ Type=simple
+diff --git a/bin/unb2tr.service b/bin/unb2tr.service
+index 1b9bebd..d758779 100644
+--- a/bin/unb2tr.service
++++ b/bin/unb2tr.service
+@@ -1,8 +1,9 @@
+ [Unit]
+-Description=receiver translator
+-After=multi-user.target
++Description=uniboard translator
+ StartLimitIntervalSec=600
+ StartLimitBurst=5
++Requires=sys-devices-platform-apsct.device
++After=sys-devices-platform-apsct.device
+ 
+ [Service]
+ Type=simple
diff --git a/recipes/files/lofar.rules b/recipes/files/01-lmp.rules
similarity index 65%
rename from recipes/files/lofar.rules
rename to recipes/files/01-lmp.rules
index a976088f10aaa955b712beebc2d138e4ff4e3fbe..bdd5e6efe8881b0b8528cb736fea7b60a677d755 100644
--- a/recipes/files/lofar.rules
+++ b/recipes/files/01-lmp.rules
@@ -1 +1,2 @@
 ACTION=="add", KERNEL=="lmp", SUBSYSTEM=="platform", ATTR{driver_override}="gpio-aggregator", RUN+="/bin/bash -c 'echo $kernel > /sys/bus/platform/drivers/gpio-aggregator/bind'"
+ACTION=="add", DEVPATH=="/devices/platform/lmp/gpiochip[0-9]*", TAG+="systemd", SYMLINK+="lmp"
diff --git a/recipes/files/95-lofar.rules b/recipes/files/95-lofar.rules
new file mode 100644
index 0000000000000000000000000000000000000000..7c7c7d60f64e97293dff05a8645870676a27a1d9
--- /dev/null
+++ b/recipes/files/95-lofar.rules
@@ -0,0 +1,2 @@
+ACTION=="add", KERNEL=="ccd", SUBSYSTEM=="platform", TAG+="systemd", PROGRAM="/usr/bin/halibut-lmp is-ccd"
+ACTION=="add", KERNEL=="apsct", SUBSYSTEM=="platform", TAG+="systemd", PROGRAM="/usr/bin/halibut-lmp is-apsct"
diff --git a/recipes/python3-halibut-ipconfig_git.bb b/recipes/python3-halibut-py_git.bb
similarity index 77%
rename from recipes/python3-halibut-ipconfig_git.bb
rename to recipes/python3-halibut-py_git.bb
index 5a83dbb654fa56622a0b22729bfc579f161c5266..2928c0ca3aaef58aac112ef2078ae675db1bcee3 100644
--- a/recipes/python3-halibut-ipconfig_git.bb
+++ b/recipes/python3-halibut-py_git.bb
@@ -1,7 +1,7 @@
 SUMMARY = "Support package to set IP addresses based on LMP on the Halibut PIs"
 DESCRIPTION = "Support package to set IP addresses based on LMP on the Halibut PIs."
-HOMEPAGE = "https://git.astron.nl/lofar2.0/halibut-ipconfig"
-BUGTRACKER = "https://git.astron.nl/lofar2.0/halibut-ipconfig/-/issues"
+HOMEPAGE = "https://git.astron.nl/lofar2.0/halibut-py"
+BUGTRACKER = "https://git.astron.nl/lofar2.0/halibut-py/-/issues"
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
 
@@ -12,8 +12,9 @@ BB_STRICT_CHECKSUM = "0"
 #PV = "0.0.1+git${SRCPV}"
 FILESEXTRAPATHS:prepend := "${THISDIR}:${THISDIR}/files:"
 SRC_URI = " \
-    git://git.astron.nl/lofar2.0/halibut-ipconfig.git;branch=L2SS-2336-set_ip;rev=cd35480ac0faa0bb7a846b2775485ab9d5e7e3e9 \
-    file://files/lofar.rules \
+    git://git.astron.nl/lofar2.0/halibut-py.git;branch=L2SS-2336-set_ip;rev=2407d5daec5b3864a3cbd8db4fd60518d560b484 \
+    file://files/01-lmp.rules \
+    file://files/95-lofar.rules \
     file://files/halibut.conf \
 "
 S = "${WORKDIR}/git"
@@ -54,7 +55,8 @@ do_install:append () {
     ln -sf ../halibut-ipconfig.service ${D}${systemd_unitdir}/system/multi-user.target.wants/halibut-ipconfig.service
     echo "install LOFAR udev rules"
 	install -d ${D}/${sysconfdir}/udev/rules.d
-    install -m 0666 ${WORKDIR}/files/lofar.rules     ${D}/${sysconfdir}/udev/rules.d/lofar.rules
+    install -m 0666 ${WORKDIR}/files/01-lmp.rules     ${D}/${sysconfdir}/udev/rules.d/01-lmp.rules
+    install -m 0666 ${WORKDIR}/files/95-lofar.rules     ${D}/${sysconfdir}/udev/rules.d/95-lofar.rules
     echo "install LOFAR resolved.conf"
 	install -d ${D}/${sysconfdir}/systemd/resolved.conf.d
     install -m 0666 ${WORKDIR}/files/halibut.conf     ${D}/${sysconfdir}/systemd/resolved.conf.d/halibut.conf
diff --git a/recipes/python3-pypcc_git.bb b/recipes/python3-pypcc_git.bb
index d25d00c9e28e8441c7b3508162946547e09f2cdf..5d7d53ff394a05c9797c94f7de61a1eeb1f9d3ba 100644
--- a/recipes/python3-pypcc_git.bb
+++ b/recipes/python3-pypcc_git.bb
@@ -14,6 +14,7 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
 SRC_URI = " \
     git://git.astron.nl/lofar2.0/pypcc.git;branch=master;rev=ad8032f74f82d402287b3896cea5a6635f39d2e8 \
     file://6483a22a6810c5f47e7b50d44fa77c3918546670.patch \
+    file://0001-Add-systemd-requirements.patch \
 "
 S = "${WORKDIR}/git"