diff --git a/printer_mods/README.md b/printer_mods/README.md
index 432017476..8a634fd95 100644
--- a/printer_mods/README.md
+++ b/printer_mods/README.md
@@ -58,6 +58,7 @@ like so:
||[Clippable Wago 221 Mounts](./BlueBear/Wago_221_mount)|Mounts for Wago 221 to screw or clip-in on 1515 extrusions | :heavy_check_mark: | :x: | :x: |
||[Ziptie Mount](./BlueBear/Ziptie_Mount)|Clippable Ziptie hooks for 1515 extrusions| :heavy_check_mark: | :x: | :x: |
| bobbleheed | [Magnetic Panels](./bobbleheed/Magnetic_Panels) | Magnetic clips to allow for easy removal and installation of panels | :x: | :grey_question: | :heavy_check_mark: | :x: | :grey_question: |
+| | [Filament Runout Sensor](./bobbleheed/Filament_Runout) | Filament runout sensor that replaces the stock bowden retainer | :x: | :heavy_check_mark: |:heavy_check_mark: | :x: | :heavy_check_mark: |
| btp | [Galileo chain mount (befenybay)](./btp/Galileo_Switchwire_Chain_Mount/README.md) | Modified chain mount position to cater for difference with Galileo Clockwork |:x:|:x:|:x:|:heavy_check_mark:|
| buzzdalf | [v1.8/2.4 Afterburner connector cover for 42STH20-1004AS](./buzzdalf/connector_cover) | v1.8/2.4 Connector cover for 42STH20-1004AS | :x: | :heavy_check_mark: | :heavy_check_mark: |:grey_question:|
||[Ender 3 Switchwire Taller Z Mod](./buzzdalf/ender_switchwire_taller_z) | Taller Z Mod | :x: | :x: | :x: | :heavy_check_mark: |
diff --git a/printer_mods/bobbleheed/Filament_Runout/CAD/Filament_Runout_Housing.f3d b/printer_mods/bobbleheed/Filament_Runout/CAD/Filament_Runout_Housing.f3d
new file mode 100644
index 000000000..abe9bdc03
Binary files /dev/null and b/printer_mods/bobbleheed/Filament_Runout/CAD/Filament_Runout_Housing.f3d differ
diff --git a/printer_mods/bobbleheed/Filament_Runout/IMAGES/Assembled.png b/printer_mods/bobbleheed/Filament_Runout/IMAGES/Assembled.png
new file mode 100644
index 000000000..926e2c431
Binary files /dev/null and b/printer_mods/bobbleheed/Filament_Runout/IMAGES/Assembled.png differ
diff --git a/printer_mods/bobbleheed/Filament_Runout/IMAGES/Internal_Assembly.png b/printer_mods/bobbleheed/Filament_Runout/IMAGES/Internal_Assembly.png
new file mode 100644
index 000000000..109bbae9e
Binary files /dev/null and b/printer_mods/bobbleheed/Filament_Runout/IMAGES/Internal_Assembly.png differ
diff --git a/printer_mods/bobbleheed/Filament_Runout/IMAGES/Switch_Cross_Section.png b/printer_mods/bobbleheed/Filament_Runout/IMAGES/Switch_Cross_Section.png
new file mode 100644
index 000000000..90e91162f
Binary files /dev/null and b/printer_mods/bobbleheed/Filament_Runout/IMAGES/Switch_Cross_Section.png differ
diff --git a/printer_mods/bobbleheed/Filament_Runout/README.md b/printer_mods/bobbleheed/Filament_Runout/README.md
new file mode 100644
index 000000000..f18528cca
--- /dev/null
+++ b/printer_mods/bobbleheed/Filament_Runout/README.md
@@ -0,0 +1,57 @@
+# Filament Runout Sensor
+
+This mod replaces the stock bowden retainer with one of a similar profile that hides a runout sensor inside.
+
+## BOM
+ | Material | Quantity |
+ |----------|----------|
+ | KW10 Microswitch | 1 |
+ | M2x8 SHCS | 2 |
+ | M3x8 SHCS | 3 |
+ | M3 Threaded Inserts | 2 |
+ | M3 Hammerhead T Nut | 1 |
+ | JST 2 OR 3 Pin Housings | 1 |
+ | JST Contacts | 2 |
+ | Glue (CA or Hot) | |
+ | Solder | |
+
+
+### Note:
+
+The KW10 microswitch can likely be swapped out for an Omron D2F-5L switch or other equivalents but this hasn't been tested.
+
+Optionally, wires could be soldered directly to the microswitch negating the need for the JST terminal.
+
+Also two of the M3x8 and the threaded inserts are not required if you do not want to fit a cover over the switch.
+
+
+## Assembly
+
+
+
+Choose the appropriate housing for your printer, either left or right hand (LH or RH) depending on which side you run the reverse bowden to. Print using standard Voron print settings.
+
+If you want to use the housing cover use a soldering iron to insert the threaded inserts into the locations as shown above.
+
+Insert the switch into the housing with the lever opening facing the wider of the openings on the housing sides. Use the M2x8 to fix it in place. The switch should have clearance to fully open inside.
+
+
+
+Place the JST terminal inside close to the switch and affixing with glue, bridge the the terminals of the switch and JST with solder in the NO position.
+
+Create a cable to connect the switch to your controller board.
+
+Fit the cover and attach the sensor to your printer using the M3x8 SHCS and the Hammerhead T Nut.
+
+Insert the reverse bowden into the opening on the housing.
+
+
+
+
+
+## Klipper Configuration
+
+Add the file 'filament_runout.cfg' to your config directory via your GUI and add the line ``[include filament_runout.cfg]`` into your 'printer.cfg' file.
+This configuration assumes the use of dual SKR1.3, you may need to change the pin called out by ``switch_pin:`` depending on your setup.
+
+If you do not have a M600 macro configured for klipper, change the line ``pause_on_runout:`` to ``true`` and remove the ``runout_gcode:`` section.
diff --git a/printer_mods/bobbleheed/Filament_Runout/STL/Cover.stl b/printer_mods/bobbleheed/Filament_Runout/STL/Cover.stl
new file mode 100644
index 000000000..f0fe8d077
Binary files /dev/null and b/printer_mods/bobbleheed/Filament_Runout/STL/Cover.stl differ
diff --git a/printer_mods/bobbleheed/Filament_Runout/STL/LH_Filament_Runout_Housing.stl b/printer_mods/bobbleheed/Filament_Runout/STL/LH_Filament_Runout_Housing.stl
new file mode 100644
index 000000000..bcd1efd36
Binary files /dev/null and b/printer_mods/bobbleheed/Filament_Runout/STL/LH_Filament_Runout_Housing.stl differ
diff --git a/printer_mods/bobbleheed/Filament_Runout/STL/RH_Filament_Runout_Housing.stl b/printer_mods/bobbleheed/Filament_Runout/STL/RH_Filament_Runout_Housing.stl
new file mode 100644
index 000000000..887dcc54b
Binary files /dev/null and b/printer_mods/bobbleheed/Filament_Runout/STL/RH_Filament_Runout_Housing.stl differ
diff --git a/printer_mods/bobbleheed/Filament_Runout/filament_runout.cfg b/printer_mods/bobbleheed/Filament_Runout/filament_runout.cfg
new file mode 100644
index 000000000..98149a0b0
--- /dev/null
+++ b/printer_mods/bobbleheed/Filament_Runout/filament_runout.cfg
@@ -0,0 +1,11 @@
+[filament_switch_sensor Filament_Runout]
+## Connected to Z+ on mcu_xye
+pause_on_runout: FALSE
+runout_gcode:
+ M600
+event_delay: 3.0
+# The minimum amount of time in seconds to delay between events.
+# Events triggered during this time period will be silently
+# ignored. The default is 3 seconds.
+pause_delay: 0.5
+switch_pin: P1.24