diff --git a/conf/airframes/Poine/booz2_a1.xml b/conf/airframes/Poine/booz2_a1.xml
index 910536f55e..64211a162f 100644
--- a/conf/airframes/Poine/booz2_a1.xml
+++ b/conf/airframes/Poine/booz2_a1.xml
@@ -209,8 +209,8 @@
-
-
+
+
@@ -231,7 +231,7 @@
# FIXME: make fms a module
#include $(CFG_BOOZ)/subsystems/booz2_fms_test_signal.makefile
#include $(CFG_BOOZ)/booz2_test_progs.makefile
-#include $(CFG_BOOZ)/booz2_simulator_nps.makefile
+#include $(PAPARAZZI_SRC)/conf/autopilot/booz2_simulator_nps.makefile
-->
diff --git a/conf/autopilot/booz2_simulator_nps.makefile b/conf/autopilot/subsystems/rotorcraft/simulator_nps.makefile
similarity index 93%
rename from conf/autopilot/booz2_simulator_nps.makefile
rename to conf/autopilot/subsystems/rotorcraft/simulator_nps.makefile
index 2e4bae6157..0bf875c311 100644
--- a/conf/autopilot/booz2_simulator_nps.makefile
+++ b/conf/autopilot/subsystems/rotorcraft/simulator_nps.makefile
@@ -11,6 +11,8 @@ JSBSIM_LIB = $(JSBSIM_ROOT)/lib
SRC_BOOZ=booz
SRC_BOOZ_SIM = $(SRC_BOOZ)/arch/sim
+SRC_BOARD=boards/$(BOARD)
+
NPSDIR = $(SIMDIR)/nps
@@ -25,7 +27,7 @@ sim.LDFLAGS += `pkg-config glib-2.0 --libs` -lm -lmeschach -lpcre -lglibivy
sim.CFLAGS += -I$(NPSDIR) -I/usr/local/include -I$(JSBSIM_INC)
sim.LDFLAGS += -L$(JSBSIM_LIB) -lJSBSim
-sim.CFLAGS += -I$(SRC_BOOZ) -I$(SRC_BOOZ_SIM) -I../simulator -I$(PAPARAZZI_HOME)/conf/simulator/nps
+sim.CFLAGS += -I$(SRC_BOOZ) -I$(SRC_BOOZ_SIM) -I$(SRC_BOARD) -I../simulator -I$(PAPARAZZI_HOME)/conf/simulator/nps
sim.srcs = $(NPSDIR)/nps_main.c \
$(NPSDIR)/nps_fdm_jsbsim.c \
@@ -51,10 +53,10 @@ sim.srcs += math/pprz_trig_int.c \
-sim.CFLAGS += -DBOARD_CONFIG=\"boards/booz2_v1_0.h\"
+sim.CFLAGS += -DBOARD_CONFIG=$(BOARD_CFG)
sim.srcs += $(SRC_BOOZ_SIM)/booz2_unsimulated_peripherals.c
-sim.srcs += $(SRC_BOOZ)/booz2_main.c
+sim.srcs += firmwares/rotorcraft/main.c
sim.CFLAGS += -DPERIODIC_TASK_PERIOD='SYS_TICS_OF_SEC((1./512.))'
# -DTIME_LED=1
@@ -77,15 +79,15 @@ sim.srcs += $(SRC_BOOZ)/booz2_datalink.c
sim.CFLAGS += -DBOOZ2_ANALOG_BARO_LED=2 -DBOOZ2_ANALOG_BARO_PERIOD='SYS_TICS_OF_SEC((1./100.))'
-sim.srcs += $(SRC_BOOZ)/booz2_analog_baro.c
+sim.srcs += $(SRC_BOARD)/baro_board.c
sim.CFLAGS += -DBOOZ2_ANALOG_BATTERY_PERIOD='SYS_TICS_OF_SEC((1./10.))'
sim.srcs += $(SRC_BOOZ)/booz2_battery.c
sim.srcs += $(SRC_BOOZ)/booz2_analog.c $(SRC_BOOZ_SIM)/booz2_analog_hw.c
-
-
+sim.CFLAGS += -DBOOZ_IMU_TYPE_H=\"imu/booz_imu_b2.h\"
+sim.CFLAGS += -DIMU_B2_VERSION_1_1
sim.srcs += $(SRC_BOOZ)/booz2_autopilot.c
diff --git a/conf/boards/pc.makefile b/conf/boards/pc.makefile
index ca326678bc..ce4c26773f 100644
--- a/conf/boards/pc.makefile
+++ b/conf/boards/pc.makefile
@@ -6,6 +6,7 @@
ARCH=sim
ARCHI=sim
+BOARD = pc
BOARD_CFG = \"tiny.h\"
diff --git a/sw/airborne/boards/lisa_l/baro_board.h b/sw/airborne/boards/lisa_l/baro_board.h
index 785dd6173d..3e7f5b52b6 100644
--- a/sw/airborne/boards/lisa_l/baro_board.h
+++ b/sw/airborne/boards/lisa_l/baro_board.h
@@ -1,3 +1,9 @@
+
+/*
+ * board specific fonctions for the lisa_l board
+ *
+ */
+
#ifndef BOARDS_LISA_L_BARO_H
#define BOARDS_LISA_L_BARO_H
diff --git a/sw/airborne/boards/pc/baro_board.c b/sw/airborne/boards/pc/baro_board.c
new file mode 100644
index 0000000000..b9d103accd
--- /dev/null
+++ b/sw/airborne/boards/pc/baro_board.c
@@ -0,0 +1,16 @@
+
+
+#include "firmwares/rotorcraft/baro.h"
+
+struct Baro baro;
+
+bool_t baro_pc_available;
+
+void baro_init(void) {baro_pc_available=FALSE;}
+
+void baro_periodic(void) {}
+
+void baro_feed_value(double value) {
+ baro.absolute = value;
+ baro_pc_available = TRUE;
+}
diff --git a/sw/airborne/boards/pc/baro_board.h b/sw/airborne/boards/pc/baro_board.h
new file mode 100644
index 0000000000..54d902730b
--- /dev/null
+++ b/sw/airborne/boards/pc/baro_board.h
@@ -0,0 +1,21 @@
+/*
+ * board specific fonction for the PC board ( simulator )
+ *
+ */
+
+#ifndef BOARDS_PC_BARO_H
+#define BOARDS_PC_BARO_H
+
+#define BaroEvent(_b_abs_handler, _b_diff_handler) { \
+ if (baro_pc_available) { \
+ _b_abs_handler(); \
+ baro_pc_available = FALSE; \
+ } \
+ }
+
+
+extern bool_t baro_pc_available;
+
+extern void baro_feed_value(double value);
+
+#endif /* BOARDS_PC_BARO_H */
diff --git a/sw/airborne/booz/booz_fms.h b/sw/airborne/booz/booz_fms.h
index 70c031759b..a2ede405f3 100644
--- a/sw/airborne/booz/booz_fms.h
+++ b/sw/airborne/booz/booz_fms.h
@@ -94,6 +94,7 @@ extern void booz_fms_impl_set_enabled(bool_t enabled);
#define BOOZ_FMS_TYPE_DATALINK 0
#define BOOZ_FMS_TYPE_TEST_SIGNAL 1
+#define BOOZ_FMS_TYPE_OVERO_LINK 2
#if defined BOOZ_FMS_TYPE
#if BOOZ_FMS_TYPE == BOOZ_FMS_TYPE_DATALINK
diff --git a/sw/simulator/nps/nps_autopilot_booz.c b/sw/simulator/nps/nps_autopilot_booz.c
index 636f74a891..41c638fd17 100644
--- a/sw/simulator/nps/nps_autopilot_booz.c
+++ b/sw/simulator/nps/nps_autopilot_booz.c
@@ -1,11 +1,11 @@
#include "nps_autopilot_booz.h"
-#include "booz2_main.h"
+#include "firmwares/rotorcraft/main.h"
#include "nps_sensors.h"
#include "nps_radio_control.h"
#include "booz_radio_control.h"
-#include "booz_imu.h"
-#include "booz2_analog_baro.h"
+#include "booz/booz_imu.h"
+#include "firmwares/rotorcraft/baro.h"
#include "actuators/booz_supervision.h"
@@ -45,7 +45,7 @@ void nps_autopilot_run_step(double time __attribute__ ((unused))) {
}
if (nps_sensors_baro_available()) {
- Booz2BaroISRHandler(sensors.baro.value);
+ baro_feed_value(sensors.baro.value);
booz2_main_event();
}