-if board_id == "raspi_2" or board_id == "raspi_3":
-    from adafruit_blinka.microcontroller.raspi_23.pulseio.PulseIn import PulseIn as PulseIn
+if detector.board.any_raspberry_pi:
+    from adafruit_blinka.microcontroller.bcm283x.pulseio.PulseIn import PulseIn
+elif "sphinx" in sys.modules:
+    pass
+elif detector.board.any_odroid_40_pin:
+    if detector.board.id in ("ODROID_C4", "ODROID_N2"):
+        from adafruit_blinka.microcontroller.amlogic.meson_g12_common.pulseio.PulseIn import (
+            PulseIn,
+        )
+else:
+    raise NotImplementedError("pulseio not supported for this board.")