diff --git a/conf/airframes/ENAC/fixed-wing/drops.xml b/conf/airframes/ENAC/fixed-wing/drops.xml
index 52548042ba..879338ac51 100644
--- a/conf/airframes/ENAC/fixed-wing/drops.xml
+++ b/conf/airframes/ENAC/fixed-wing/drops.xml
@@ -263,7 +263,7 @@ ap.srcs += subsystems/navigation/nav_survey_rectangle.c
ap.srcs += bomb.c
-ap.srcs += snav.c
+ap.srcs += subsystems/navigation/snav.c
# Config for SITL simulation
# include $(PAPARAZZI_SRC)/conf/autopilot/sitl.makefile
diff --git a/conf/airframes/mm/extra/press_t.xml b/conf/airframes/mm/extra/press_t.xml
index 7557fb303f..670ff3f929 100755
--- a/conf/airframes/mm/extra/press_t.xml
+++ b/conf/airframes/mm/extra/press_t.xml
@@ -282,7 +282,7 @@ ap.CFLAGS += -DUSE_JOYSTICK
ap.srcs += bomb.c
-ap.srcs += snav.c
+ap.srcs += subsystems/navigation/snav.c
# distance sensor
ap.CFLAGS += -DUSE_ADC_3 -DUSE_ADC_GENERIC -DADC_CHANNEL_GENERIC1=ADC_3 -DADC_CHANNEL_GENERIC_NB_SAMPLES=16
diff --git a/conf/airframes/mm/fixed-wing/drops.xml b/conf/airframes/mm/fixed-wing/drops.xml
index 8c810f9333..a03978b4b9 100644
--- a/conf/airframes/mm/fixed-wing/drops.xml
+++ b/conf/airframes/mm/fixed-wing/drops.xml
@@ -285,7 +285,7 @@ ap.srcs += subsystems/navigation/nav_survey_rectangle.c
ap.srcs += bomb.c
-ap.srcs += snav.c
+ap.srcs += subsystems/navigation/snav.c
# Config for SITL simulation
# include $(PAPARAZZI_SRC)/conf/autopilot/sitl.makefile
diff --git a/conf/airframes/mm/fixed-wing/funjetmm2.xml b/conf/airframes/mm/fixed-wing/funjetmm2.xml
index 3090b72a97..a1db3a6ac1 100644
--- a/conf/airframes/mm/fixed-wing/funjetmm2.xml
+++ b/conf/airframes/mm/fixed-wing/funjetmm2.xml
@@ -256,7 +256,7 @@ ap.CFLAGS += -DUSE_HUMID_SHT -DDAT_PIN=30 -DSCK_PIN=4
ap.srcs += bomb.c
-ap.srcs += snav.c
+ap.srcs += subsystems/navigation/snav.c
# distance sensor
ap.CFLAGS += -DUSE_ADC_3 -DUSE_ADC_GENERIC -DADC_CHANNEL_GENERIC1=ADC_3 -DADC_CHANNEL_GENERIC_NB_SAMPLES=16
diff --git a/conf/airframes/mm/fixed-wing/merlin.xml b/conf/airframes/mm/fixed-wing/merlin.xml
index 1ab14a4367..d310b210fd 100644
--- a/conf/airframes/mm/fixed-wing/merlin.xml
+++ b/conf/airframes/mm/fixed-wing/merlin.xml
@@ -219,7 +219,7 @@ ap.srcs += subsystems/nav.c fw_h_ctl.c fw_v_ctl.c
ap.srcs += subsystems/navigation/nav_line.c
ap.srcs += subsystems/navigation/nav_survey_rectangle.c
-ap.srcs += snav.c
+ap.srcs += subsystems/navigation/snav.c
# Config for SITL simulation
# include $(PAPARAZZI_SRC)/conf/autopilot/sitl.makefile
diff --git a/conf/airframes/mm/fixed-wing/slowfast.xml b/conf/airframes/mm/fixed-wing/slowfast.xml
index 0e3e5c3d29..dde1afbbce 100644
--- a/conf/airframes/mm/fixed-wing/slowfast.xml
+++ b/conf/airframes/mm/fixed-wing/slowfast.xml
@@ -264,7 +264,7 @@ ap.srcs += subsystems/nav.c fw_h_ctl.c fw_v_ctl.c
ap.srcs += subsystems/navigation/nav_line.c
ap.srcs += subsystems/navigation/nav_survey_rectangle.c
-ap.srcs += snav.c
+ap.srcs += subsystems/navigation/snav.c
ap.CFLAGS += -DGYRO -DADXRS150
ap.srcs += gyro.c
diff --git a/conf/airframes/mm/fixed-wing/slowfast2.xml b/conf/airframes/mm/fixed-wing/slowfast2.xml
index 57efa3ad64..75083c1a7b 100644
--- a/conf/airframes/mm/fixed-wing/slowfast2.xml
+++ b/conf/airframes/mm/fixed-wing/slowfast2.xml
@@ -278,7 +278,7 @@ ap.srcs += subsystems/nav.c fw_h_ctl.c fw_v_ctl.c
ap.srcs += subsystems/navigation/nav_line.c
ap.srcs += subsystems/navigation/nav_survey_rectangle.c
-ap.srcs += snav.c
+ap.srcs += subsystems/navigation/snav.c
ap.CFLAGS += -DGYRO -DADXRS150
ap.srcs += gyro.c
diff --git a/conf/airframes/mm/fixed-wing/twinstarmm.xml b/conf/airframes/mm/fixed-wing/twinstarmm.xml
index 8b59ec9dc0..e04353556d 100644
--- a/conf/airframes/mm/fixed-wing/twinstarmm.xml
+++ b/conf/airframes/mm/fixed-wing/twinstarmm.xml
@@ -242,7 +242,7 @@ ap.srcs += subsystems/navigation/nav_survey_rectangle.c
ap.srcs += bomb.c
-ap.srcs += snav.c
+ap.srcs += subsystems/navigation/snav.c
# Config for SITL simulation
# include $(PAPARAZZI_SRC)/conf/autopilot/sitl.makefile
diff --git a/conf/airframes/mm/hangar/lila.xml b/conf/airframes/mm/hangar/lila.xml
index 0b23dcc363..cb836c647b 100644
--- a/conf/airframes/mm/hangar/lila.xml
+++ b/conf/airframes/mm/hangar/lila.xml
@@ -243,7 +243,7 @@ ap.srcs += subsystems/nav.c fw_h_ctl_a.c fw_v_ctl.c
ap.srcs += subsystems/navigation/nav_line.c
ap.srcs += subsystems/navigation/nav_survey_rectangle.c
-ap.srcs += snav.c
+ap.srcs += subsystems/navigation/snav.c
# Config for SITL simulation
sim.ARCHDIR = $(ARCHI)
diff --git a/conf/airframes/obsolete/slayerJH.xml b/conf/airframes/obsolete/slayerJH.xml
index 33a0a96ccc..e6ddd46957 100644
--- a/conf/airframes/obsolete/slayerJH.xml
+++ b/conf/airframes/obsolete/slayerJH.xml
@@ -209,7 +209,7 @@ ap.CFLAGS += -DINFRARED -DALT_KALMAN
ap.srcs += infrared.c estimator.c
ap.CFLAGS += -DNAV -DAGR_CLIMB -DLOITER_TRIM
-ap.srcs += subsystems/nav.c fw_h_ctl.c fw_v_ctl.c subsystems/navigation/nav_survey_rectangle.c subsystems/navigation/nav_line.c snav.c
+ap.srcs += subsystems/nav.c fw_h_ctl.c fw_v_ctl.c subsystems/navigation/nav_survey_rectangle.c subsystems/navigation/nav_line.c subsystems/navigation/snav.c
ap.CFLAGS += -DGYRO -DADXRS150
@@ -228,7 +228,7 @@ ap.srcs += $(SRC_ARCH)/gpio.c
# Config for SITL simulation
include $(PAPARAZZI_SRC)/conf/autopilot/sitl.makefile
sim.CFLAGS += -DBOARD_CONFIG=\"tiny.h\" -DAGR_CLIMB -DLOITER_TRIM -DALT_KALMAN
-sim.srcs += subsystems/navigation/nav_survey_rectangle.c subsystems/navigation/nav_line.c snav.c
+sim.srcs += subsystems/navigation/nav_survey_rectangle.c subsystems/navigation/nav_line.c subsystems/navigation/snav.c
diff --git a/conf/airframes/obsolete/twinjet1.xml b/conf/airframes/obsolete/twinjet1.xml
index 4e923d3776..0f0c7a1692 100644
--- a/conf/airframes/obsolete/twinjet1.xml
+++ b/conf/airframes/obsolete/twinjet1.xml
@@ -227,7 +227,7 @@ ap.srcs += subsystems/nav.c fw_h_ctl.c fw_v_ctl.c
ap.srcs += subsystems/navigation/nav_line.c
# chemotaxis.c anemotaxis.c subsystems/navigation/discsurvey.c
-ap.srcs += subsystems/navigation/nav_survey_rectangle.c snav.c
+ap.srcs += subsystems/navigation/nav_survey_rectangle.c subsystems/navigation/snav.c
ap.srcs += light.c
ap.CFLAGS += -DUSE_LIGHT
@@ -246,7 +246,7 @@ sim.CFLAGS += -DBOARD_CONFIG=\"classix.h\" -DAGR_CLIMB -DLOITER_TRIM
#sim.srcs += traffic_info.c
#sim.srcs += subsystems/navigation/nav_line.c chemotaxis.c anemotaxis.c subsystems/navigation/discsurvey.c bomb.c subsystems/navigation/nav_survey_rectangle.c
-sim.srcs += subsystems/navigation/nav_survey_rectangle.c subsystems/navigation/nav_line.c light.c snav.c
+sim.srcs += subsystems/navigation/nav_survey_rectangle.c subsystems/navigation/nav_line.c light.c subsystems/navigation/snav.c
sim.CFLAGS += -DUSE_LIGHT
sim.CFLAGS += -DUSE_ADC_GENERIC
diff --git a/conf/autopilot/subsystems/fixedwing/navigation_extra.makefile b/conf/autopilot/subsystems/fixedwing/navigation_extra.makefile
index e1b20f5114..7094c84a29 100644
--- a/conf/autopilot/subsystems/fixedwing/navigation_extra.makefile
+++ b/conf/autopilot/subsystems/fixedwing/navigation_extra.makefile
@@ -11,5 +11,5 @@ $(TARGET).srcs += $(SRC_FIXEDWING)/subsystems/navigation/nav_survey_rectangle.c
$(TARGET).srcs += $(SRC_FIXEDWING)/subsystems/navigation/nav_cube.c
$(TARGET).srcs += $(SRC_FIXEDWING)/subsystems/navigation/discsurvey.c
$(TARGET).srcs += $(SRC_FIXEDWING)/subsystems/navigation/OSAMNav.c
-$(TARGET).srcs += $(SRC_FIXEDWING)/snav.c
+$(TARGET).srcs += $(SRC_FIXEDWING)/subsystems/navigation/snav.c
diff --git a/conf/flight_plans/snav.xml b/conf/flight_plans/snav.xml
index 16d3214ac6..866073c27e 100644
--- a/conf/flight_plans/snav.xml
+++ b/conf/flight_plans/snav.xml
@@ -4,7 +4,7 @@
#include "subsystems/navigation/nav_line.h"
#include "datalink.h"
-#include "snav.h"
+#include "subsystems/navigation/snav.h"
diff --git a/sw/airborne/snav.c b/sw/airborne/subsystems/navigation/snav.c
similarity index 99%
rename from sw/airborne/snav.c
rename to sw/airborne/subsystems/navigation/snav.c
index f8892af0b7..70f79e2748 100644
--- a/sw/airborne/snav.c
+++ b/sw/airborne/subsystems/navigation/snav.c
@@ -3,7 +3,7 @@
#include
#include "airframe.h"
-#include "snav.h"
+#include "subsystems/navigation/snav.h"
#include "estimator.h"
#include "subsystems/nav.h"
#include "gps.h"
diff --git a/sw/airborne/snav.h b/sw/airborne/subsystems/navigation/snav.h
similarity index 100%
rename from sw/airborne/snav.h
rename to sw/airborne/subsystems/navigation/snav.h