diff --git a/conf/airframes/CDW/cdw_twoseastwenty.xml b/conf/airframes/CDW/cdw_twoseastwenty.xml
index e6bc58c9d3..333d4e24f1 100644
--- a/conf/airframes/CDW/cdw_twoseastwenty.xml
+++ b/conf/airframes/CDW/cdw_twoseastwenty.xml
@@ -36,10 +36,10 @@
-
-
-
-
+
+
+
+
@@ -70,10 +70,10 @@
-
-
-
-
+
+
+
+
diff --git a/conf/firmwares/subsystems/shared/ins_xsens700.makefile b/conf/firmwares/subsystems/shared/ins_xsens700.makefile
index 29783f5fd0..bf4eb71b37 100644
--- a/conf/firmwares/subsystems/shared/ins_xsens700.makefile
+++ b/conf/firmwares/subsystems/shared/ins_xsens700.makefile
@@ -1,64 +1 @@
-# Hey Emacs, this is a -*- makefile -*-
-
-# XSens Mti-G
-
-#
-#
-#
-#
-
-
-#########################################
-## ATTITUDE
-
-# AHRS Results
-ap.CFLAGS += -DINS_TYPE_H=\"modules/ins/ins_xsens700.h\"
-
-ifndef XSENS_UART_BAUD
- XSENS_UART_BAUD = B115200
-endif
-
-ap.CFLAGS += -DUSE_UART$(XSENS_UART_NR)
-ap.CFLAGS += -DXSENS_LINK=uart$(XSENS_UART_NR)
-ap.CFLAGS += -DUART$(XSENS_UART_NR)_BAUD=$(XSENS_UART_BAUD)
-ap.CFLAGS += -DXSENS_OUTPUT_MODE=0x1836
-ap.srcs += $(SRC_MODULES)/ins/xsens700.c
-ap.srcs += $(SRC_MODULES)/ins/xsens_common.c
-ap.srcs += $(SRC_SUBSYSTEMS)/ins.c
-ap.srcs += $(SRC_MODULES)/ins/ins_xsens700.c
-ap.CFLAGS += -DAHRS_TRIGGERED_ATTITUDE_LOOP
-
-
-#########################################
-## GPS
-
-ap.CFLAGS += -DUSE_GPS_XSENS
-ap.CFLAGS += -DGPS_NB_CHANNELS=50
-ap.CFLAGS += -DUSE_GPS
-ap.CFLAGS += -DGPS_TYPE_H=\"modules/ins/ins_xsens700.h\"
-ap.srcs += $(SRC_SUBSYSTEMS)/gps.c
-
-
-#########################################
-## Simulator
-SIM_TARGETS = sim nps
-
-ifneq (,$(findstring $(TARGET),$(SIM_TARGETS)))
-
-$(TARGET).CFLAGS += -DAHRS_TYPE_H=\"subsystems/ahrs/ahrs_sim.h\"
-$(TARGET).CFLAGS += -DUSE_AHRS
-
-$(TARGET).srcs += $(SRC_SUBSYSTEMS)/ahrs.c
-$(TARGET).srcs += $(SRC_SUBSYSTEMS)/ahrs/ahrs_sim.c
-
-$(TARGET).srcs += $(SRC_SUBSYSTEMS)/ins.c
-$(TARGET).CFLAGS += -DINS_TYPE_H=\"subsystems/ins/ins_gps_passthrough_utm.h\"
-$(TARGET).srcs += $(SRC_SUBSYSTEMS)/ins/ins_gps_passthrough_utm.c
-
-$(TARGET).CFLAGS += -DUSE_GPS
-$(TARGET).CFLAGS += -DGPS_TYPE_H=\"subsystems/gps/gps_sim.h\"
-$(TARGET).srcs += $(SRC_SUBSYSTEMS)/gps/gps_sim.c
-$(TARGET).srcs += $(SRC_SUBSYSTEMS)/gps.c
-
-endif
-
+$(error Error: The ins xsens700 subsystem has been converted to a module, replace by )
diff --git a/conf/modules/ins_xsens700.xml b/conf/modules/ins_xsens700.xml
new file mode 100644
index 0000000000..4247003015
--- /dev/null
+++ b/conf/modules/ins_xsens700.xml
@@ -0,0 +1,76 @@
+
+
+
+
+
+ XSens Mti-G 700 INS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ap.CFLAGS += -DGPS_TYPE_H=\"modules/ins/ins_xsens700.h\"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sim.CFLAGS += -DAHRS_TYPE_H=\"subsystems/ahrs/ahrs_sim.h\"
+ sim.CFLAGS += -DINS_TYPE_H=\"subsystems/ins/ins_gps_passthrough_utm.h\"
+ sim.CFLAGS += -DGPS_TYPE_H=\"subsystems/gps/gps_sim.h\"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ nps.CFLAGS += -DINS_TYPE_H=\"subsystems/ins/ins_gps_passthrough_utm.h\"
+ nps.CFLAGS += -DGPS_TYPE_H=\"subsystems/gps/gps_sim_nps.h\"
+
+
+
+
diff --git a/sw/airborne/modules/ins/ins_xsens700.h b/sw/airborne/modules/ins/ins_xsens700.h
index 60d403fee8..75bd5fc380 100644
--- a/sw/airborne/modules/ins/ins_xsens700.h
+++ b/sw/airborne/modules/ins/ins_xsens700.h
@@ -40,8 +40,7 @@ extern float ins_pitch_neutral;
extern float ins_roll_neutral;
#define DefaultInsImpl ins_xsens700
-#define InsPeriodic xsens700_periodic
-#define InsEvent ins_xsens700_event
+
extern void ins_xsens700_init(void);
extern void ins_xsens700_register(void);
extern void ins_xsens700_event(void);