diff --git a/ROMFS/CMakeLists.txt b/ROMFS/CMakeLists.txt
index 3229d3142f6f3c04556e2f82edc3b7981024418a..bcc4fb58a64d9af76ca876a1d00f8a70d8b6d65f 100644
--- a/ROMFS/CMakeLists.txt
+++ b/ROMFS/CMakeLists.txt
@@ -126,19 +126,32 @@ if(config_bl_file)
 		)
 endif()
 
-if(EXISTS "${PX4_BOARD_DIR}/init/rc.board")
-	add_custom_command(OUTPUT ${romfs_gen_root_dir}/init.d/rc.board
-		COMMAND ${CMAKE_COMMAND} -E copy ${PX4_BOARD_DIR}/init/rc.board ${romfs_gen_root_dir}/init.d/rc.board
-		DEPENDS
-			${PX4_BOARD_DIR}/init/rc.board
-			${romfs_gen_root_dir}/init.d/rcS
-		COMMENT "ROMFS: copying rc.board"
+set(OPTIONAL_BOARD_RC)
+list(APPEND OPTIONAL_BOARD_RC
+	rc.board_defaults
+	rc.board_sensors
+	rc.board_extras
+)
+
+foreach(board_rc_file ${OPTIONAL_BOARD_RC})
+
+	if(EXISTS "${PX4_BOARD_DIR}/init/${board_rc_file}")
+		message(STATUS "ROMFS: Adding ${board_rc_file}")
+
+		add_custom_command(OUTPUT ${romfs_gen_root_dir}/init.d/${board_rc_file}
+			COMMAND ${CMAKE_COMMAND} -E copy ${PX4_BOARD_DIR}/init/${board_rc_file} ${romfs_gen_root_dir}/init.d/${board_rc_file}
+			DEPENDS
+				${PX4_BOARD_DIR}/init/${board_rc_file}
+				${romfs_gen_root_dir}/init.d/rcS
+			COMMENT "ROMFS: copying ${board_rc_file}"
 		)
 
-	list(APPEND extras_dependencies
-		${romfs_gen_root_dir}/init.d/rc.board
-		)
-endif()
+		list(APPEND extras_dependencies
+			${romfs_gen_root_dir}/init.d/${board_rc_file}
+			)
+	endif()
+
+endforeach()
 
 add_custom_command(OUTPUT romfs_extras.stamp
 	COMMAND ${CMAKE_COMMAND} -E make_directory ${romfs_gen_root_dir}/extras/
diff --git a/ROMFS/px4fmu_common/init.d/airframes/4900_crazyflie b/ROMFS/px4fmu_common/init.d/airframes/4900_crazyflie
index 8280822ea47216fced0f55741aa4bd72a193780f..24f911c5849b7506a00cbdafc234d635164db924 100644
--- a/ROMFS/px4fmu_common/init.d/airframes/4900_crazyflie
+++ b/ROMFS/px4fmu_common/init.d/airframes/4900_crazyflie
@@ -70,8 +70,6 @@ then
 
 	param set SENS_FLOW_MINRNG 0.05
 
-	param set SYS_FMU_TASK 1
-
 fi
 
 set PWM_DISARMED none
diff --git a/ROMFS/px4fmu_common/init.d/rcS b/ROMFS/px4fmu_common/init.d/rcS
index bdeeea7e0f4de2d2200902102dd6dbdd39757283..8a434e2af69a7f09dd61e961176f17efb0389c03 100644
--- a/ROMFS/px4fmu_common/init.d/rcS
+++ b/ROMFS/px4fmu_common/init.d/rcS
@@ -21,15 +21,15 @@ set +e
 # it wastes flash
 #
 set AUX_MODE pwm
-set BOARD_RC /etc/init.d/rc.board
 set DATAMAN_OPT ""
 set FAILSAFE none
 set FAILSAFE_AUX none
 set FCONFIG /fs/microsd/etc/config.txt
 set FEXTRAS /fs/microsd/etc/extras.txt
-set FRC /fs/microsd/etc/rc.txt
 set FMU_ARGS ""
 set FMU_MODE pwm
+set FRC /fs/microsd/etc/rc.txt
+set IO_PRESENT no
 set IOFW "/etc/extras/px4_io-v2_default.bin"
 set IO_PRESENT no
 set LOG_FILE /fs/microsd/bootlog.txt
@@ -134,22 +134,6 @@ if [ -f $FRC ]
 then
 	sh $FRC
 else
-	#
-	# Waypoint storage.
-	# REBOOTWORK this needs to start in parallel.
-	#
-	# TODO: fix board override $DATAMAN_OPT
-	dataman start $DATAMAN_OPT
-
-	#
-	# Start the socket communication send_event handler.
-	#
-	send_event start
-
-	#
-	# Start the resource load monitor.
-	#
-	load_mon start
 
 	#
 	# Set the parameter file if mtd starts successfully.
@@ -169,67 +153,69 @@ else
 	fi
 
 	#
-	# Start the tone_alarm driver.
-	# Needs to be started after the parameters are loaded (for CBRK_BUZZER).
-	# Note that this will still play the already published startup tone.
-	#
-	tone_alarm start
-
-	#
-	# Start system state indicator.
+	# Optional board defaults: rc.board_defaults
 	#
-	if ! rgbled start
+	set BOARD_RC_DEFAULTS /etc/init.d/rc.board_defaults
+	if [ -f $BOARD_RC_DEFAULTS ]
 	then
-		if blinkm start
-		then
-			blinkm systemstate
-		fi
+		echo "Board defaults: ${BOARD_RC_DEFAULTS}"
+		sh $BOARD_RC_DEFAULTS
 	fi
-
-	rgbled_ncp5623c start
-	
-	#
-	# FMUv5 may have both PWM I2C RGB LED support.
-	#
-	rgbled_pwm start
+	unset BOARD_RC_DEFAULTS
 
 	#
 	# Set AUTOCNF flag to use it in AUTOSTART scripts.
 	#
 	if param compare SYS_AUTOCONFIG 1
 	then
-		# Wipe out params except RC*, flight modes and total flight time.
+		# Wipe out params except RC*, flight modes, total flight time, accel cal, gyro cal
 		param reset_nostart RC* COM_FLTMODE* LND_FLIGHT_T_* TC_* CAL_ACC* CAL_GYRO*
 		set AUTOCNF yes
 	else
 		set AUTOCNF no
+	fi
+
+	#
+	# Waypoint storage.
+	# REBOOTWORK this needs to start in parallel.
+	#
+	dataman start $DATAMAN_OPT
+
+	#
+	# Start the socket communication send_event handler.
+	#
+	send_event start
+
+	#
+	# Start the resource load monitor.
+	#
+	load_mon start
+
+	#
+	# Start system state indicator.
+	#
+	if ! rgbled start
+	then
+
+		rgbled_ncp5623c start
 
 		#
-		# Release 1.4.0 transitional support: set to old default if unconfigured,
-		# this preserves the previous behaviour.
+		# FMUv5 may have both PWM I2C RGB LED support.
 		#
-		if param compare BAT_N_CELLS 0
+		rgbled_pwm start
+
+		if blinkm start
 		then
-			param set BAT_N_CELLS 3
+			blinkm systemstate
 		fi
 	fi
 
-	###############################################################################
-	#               Begin setup for board specific configurations.                #
-	###############################################################################
-
 	#
-	# run boards rc.board if available
+	# Start the tone_alarm driver.
+	# Needs to be started after the parameters are loaded (for CBRK_BUZZER).
+	# Note that this will still play the already published startup tone.
 	#
-	if [ -f $BOARD_RC ]
-	then
-		echo "Board init: ${BOARD_RC}"
-		sh $BOARD_RC
-	fi
-
-	###############################################################################
-	#                 End Setup for board specific configurations.                #
-	###############################################################################
+	tone_alarm start
 
 	if param compare SYS_FMU_TASK 1
 	then
@@ -343,9 +329,23 @@ else
 		set OUTPUT_MODE hil
 		sensors start -h
 		commander start --hil
+
 		# disable GPS
 		param set GPS_1_CONFIG 0
+
 	else
+		#
+		# board sensors: rc.sensors
+		#
+		set BOARD_RC_SENSORS /etc/init.d/rc.board_sensors
+		if [ -f $BOARD_RC_SENSORS ]
+		then
+			echo "Board sensors: ${BOARD_RC_SENSORS}"
+			sh $BOARD_RC_SENSORS
+		fi
+		unset BOARD_RC_SENSORS
+
+
 		sh /etc/init.d/rc.sensors
 		commander start
 	fi
@@ -436,11 +436,6 @@ else
 	#
 	sh /etc/init.d/rc.thermal_cal
 
-	#
-	# Start the logger.
-	#
-	sh /etc/init.d/rc.logging
-
 	#
 	# Start vmount to control mounts such as gimbals, disabled by default.
 	#
@@ -450,13 +445,30 @@ else
 	fi
 
 	#
-	# Start any custom addons.
+	# Optional board supplied extras: rc.board_extras
+	#
+	set BOARD_RC_EXTRAS /etc/init.d/rc.board_extras
+	if [ -f $BOARD_RC_EXTRAS ]
+	then
+		echo "Board extras: ${BOARD_RC_EXTRAS}"
+		sh $BOARD_RC_EXTRAS
+	fi
+	unset BOARD_RC_EXTRAS
+
+	#
+	# Start any custom addons from the sdcard.
 	#
 	if [ -f $FEXTRAS ]
 	then
 		echo "Addons script: ${FEXTRAS}"
 		sh $FEXTRAS
 	fi
+
+	#
+	# Start the logger.
+	#
+	sh /etc/init.d/rc.logging
+
 #
 # End of autostart.
 #
@@ -465,17 +477,18 @@ fi
 #
 # Unset all script parameters to free RAM.
 #
+unset AUTOCNF
 unset AUX_MODE
 unset DATAMAN_OPT
 unset FAILSAFE
 unset FAILSAFE_AUX
 unset FCONFIG
 unset FEXTRAS
-unset FRC
 unset FMU_ARGS
 unset FMU_MODE
-unset IOFW
+unset FRC
 unset IO_PRESENT
+unset IOFW
 unset LOG_FILE
 unset LOGGER_ARGS
 unset LOGGER_BUF
@@ -492,16 +505,14 @@ unset PWM_AUX_MAX
 unset PWM_AUX_MIN
 unset PWM_AUX_OUT
 unset PWM_AUX_RATE
-unset PWM_OUT
-unset PWM_RATE
 unset PWM_DISARMED
 unset PWM_MAX
 unset PWM_MIN
+unset PWM_OUT
+unset PWM_RATE
 unset SDCARD_MIXERS_PATH
 unset USE_IO
 unset VEHICLE_TYPE
-unset BOARD_RC
-unset AUTOCNF
 
 #
 # Boot is complete, inform MAVLink app(s) that the system is now fully up and running.
diff --git a/boards/airmind/mindpx-v2/init/rc.board b/boards/airmind/mindpx-v2/init/rc.board
deleted file mode 100644
index 9c25359a334413aeb843206de4655ec818e687a5..0000000000000000000000000000000000000000
--- a/boards/airmind/mindpx-v2/init/rc.board
+++ /dev/null
@@ -1,47 +0,0 @@
-#!nsh
-#
-# Airmind Mindpx-v2 specific board init
-#
-#------------------------------------------------------------------------------
-#
-# UART mapping:
-#
-# UART1         /dev/ttyS0      wifi
-# USART2        /dev/ttyS1      TELEM1 (flow control)
-# USART3        /dev/ttyS2      TELEM2 (flow control)
-# UART4
-# UART7                         CONSOLE
-# UART8         /dev/ttyS6      SERIAL4/TELEM4
-#
-#------------------------------------------------------------------------------
-#
-
-# We know there are sketchy boards out there
-# as chinese companies produce Pixracers without
-# fully understanding the critical parts of the
-# schematic and BOM, leading to sensor brownouts
-# on boot. Original Pixracers following the
-# open hardware design do not require this.
-fmu sensor_reset 50
-
-if [ $AUTOCNF = yes ]
-then
-	# Disable safety switch by default
-	param set CBRK_IO_SAFETY 22027
-
-	param set SYS_FMU_TASK 1
-fi
-
-set MIXER_AUX none
-
-
-# External I2C bus
-hmc5883 -C -T -X start
-
-# Internal I2C bus
-hmc5883 -C -T -I -R 12 start
-
-mpu6000 -s -R 8 start
-mpu9250 -s -R 8 start
-lsm303d -R 10 start
-l3gd20 -R 14 start
diff --git a/boards/airmind/mindpx-v2/init/rc.board_defaults b/boards/airmind/mindpx-v2/init/rc.board_defaults
new file mode 100644
index 0000000000000000000000000000000000000000..23fc87c1135498b1e591767fd03c529a072c54b8
--- /dev/null
+++ b/boards/airmind/mindpx-v2/init/rc.board_defaults
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
+# Airmind Mindpx-v2 specific board defaults
+#------------------------------------------------------------------------------
+
+
+if [ $AUTOCNF = yes ]
+then
+	# Disable safety switch by default
+	param set CBRK_IO_SAFETY 22027
+
+fi
+
+set MIXER_AUX none
diff --git a/boards/airmind/mindpx-v2/init/rc.board_sensors b/boards/airmind/mindpx-v2/init/rc.board_sensors
new file mode 100644
index 0000000000000000000000000000000000000000..bd2f75dcaa73daecfc7744600587cb15be6a20c0
--- /dev/null
+++ b/boards/airmind/mindpx-v2/init/rc.board_sensors
@@ -0,0 +1,15 @@
+#!/bin/sh
+#
+# Airmind Mindpx-v2 specific board sensors init
+#------------------------------------------------------------------------------
+
+# External I2C bus
+hmc5883 -C -T -X start
+
+# Internal I2C bus
+hmc5883 -C -T -I -R 12 start
+
+mpu6000 -s -R 8 start
+mpu9250 -s -R 8 start
+lsm303d -R 10 start
+l3gd20 -R 14 start
diff --git a/boards/atmel/same70xplained/init/rc.board b/boards/atmel/same70xplained/init/rc.board_sensors
similarity index 69%
rename from boards/atmel/same70xplained/init/rc.board
rename to boards/atmel/same70xplained/init/rc.board_sensors
index 2fb4e727212340ebe64658df36353dc8f45b137e..c657ea167b0ddaff5310a52b5269c97e7432a0c0 100644
--- a/boards/atmel/same70xplained/init/rc.board
+++ b/boards/atmel/same70xplained/init/rc.board_sensors
@@ -1,14 +1,8 @@
-#!nsh
-#
-# Atmel SAM E70 Xplained specific board init
+#!/bin/sh
 #
+# Atmel SAM E70 Xplained specific board sensors init
 #------------------------------------------------------------------------------
-#
-
-if [ $AUTOCNF = yes ]
-then
 
-fi
 
 # External I2C bus
 hmc5883 -C -T -X start
diff --git a/boards/auav/x21/init/rc.board b/boards/auav/x21/init/rc.board
deleted file mode 100644
index 6e2d7faa77fe408d531a27be4faa6e9e92124653..0000000000000000000000000000000000000000
--- a/boards/auav/x21/init/rc.board
+++ /dev/null
@@ -1,39 +0,0 @@
-#!nsh
-#
-# AUAV/mRO x21 specific board init
-#
-#------------------------------------------------------------------------------
-#
-# UART mapping on x21:
-#
-# UART1         /dev/ttyS0      IO debug
-# USART2        /dev/ttyS1      TELEM1 (flow control)
-# USART3        /dev/ttyS2      TELEM2 (flow control)
-# UART4
-# UART7                         CONSOLE
-# UART8         /dev/ttyS6      SERIAL4/TELEM4
-#
-#------------------------------------------------------------------------------
-#
-
-
-if [ $AUTOCNF = yes ]
-then
-
-
-fi
-
-
-# External I2C bus
-hmc5883 -C -T -X start
-lis3mdl -X start
-ist8310 -C start
-
-# Internal SPI bus ICM-20608-G is rotated 90 deg yaw
-mpu6000 -R 2 -T 20608 start
-
-# Internal SPI bus ICM-20602-G is rotated 90 deg yaw
-mpu6000 -R 2 -T 20602 start
-
-# Internal SPI bus mpu9250 is rotated 90 deg yaw
-mpu9250 -R 2 start
diff --git a/boards/auav/x21/init/rc.board_sensors b/boards/auav/x21/init/rc.board_sensors
new file mode 100644
index 0000000000000000000000000000000000000000..11284cf6977c7dffa474da2a02c4bb227ef58609
--- /dev/null
+++ b/boards/auav/x21/init/rc.board_sensors
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+# AUAV/mRO x21 specific board sensors init
+#------------------------------------------------------------------------------
+
+
+# External I2C bus
+hmc5883 -C -T -X start
+lis3mdl -X start
+ist8310 -C start
+
+# Internal SPI bus ICM-20608-G is rotated 90 deg yaw
+mpu6000 -R 2 -T 20608 start
+
+# Internal SPI bus ICM-20602-G is rotated 90 deg yaw
+mpu6000 -R 2 -T 20602 start
+
+# Internal SPI bus mpu9250 is rotated 90 deg yaw
+mpu9250 -R 2 start
diff --git a/boards/auav/x21/init/rc.defaults b/boards/auav/x21/init/rc.defaults
new file mode 100644
index 0000000000000000000000000000000000000000..617e498f09ad6f2f7b7152cf8323973f646a01bb
--- /dev/null
+++ b/boards/auav/x21/init/rc.defaults
@@ -0,0 +1,10 @@
+#!/bin/sh
+#
+# AUAV/mRO x21 specific board defaults
+#------------------------------------------------------------------------------
+
+
+if [ $AUTOCNF = yes ]
+then
+	param set SYS_FMU_TASK 0
+fi
diff --git a/boards/av/x-v1/init/rc.board b/boards/av/x-v1/init/rc.board
deleted file mode 100644
index db9b00ba6e2b98f18b19c6723af676a792647dd9..0000000000000000000000000000000000000000
--- a/boards/av/x-v1/init/rc.board
+++ /dev/null
@@ -1,31 +0,0 @@
-#!nsh
-#
-# av_x1-v1 specific board init
-#
-#
-
-if [ $AUTOCNF = yes ]
-then
-	param set SYS_FMU_TASK 1
-fi
-
-set LOGGER_BUF 64
-set MIXER_AUX none
-
-
-adis16477 -R 8 start
-
-#adis16497 start
-
-lps22hb -S start
-
-lsm303agr -R 4 start
-
-ms4525_airspeed -T 4515 -b 3 start
-
-
-# AV-X: start MAVLink to companion (connected to TX2)
-mavlink start -d /dev/ttyS5 -r 20000 -b 460800 -m onboard
-
-# AV-X: start MAVLink UDP port 14570
-mavlink start -x -u 14570
diff --git a/boards/av/x-v1/init/rc.board_defaults b/boards/av/x-v1/init/rc.board_defaults
new file mode 100644
index 0000000000000000000000000000000000000000..e02a7273b558276865212f8451329100752025f2
--- /dev/null
+++ b/boards/av/x-v1/init/rc.board_defaults
@@ -0,0 +1,13 @@
+#!/bin/sh
+#
+# av_x1-v1 specific board init
+#------------------------------------------------------------------------------
+
+
+if [ $AUTOCNF = yes ]
+then
+
+fi
+
+set LOGGER_BUF 64
+set MIXER_AUX none
diff --git a/boards/av/x-v1/init/rc.board_extras b/boards/av/x-v1/init/rc.board_extras
new file mode 100644
index 0000000000000000000000000000000000000000..c05f9ff099d4ef11fac9965d852e787869a76abe
--- /dev/null
+++ b/boards/av/x-v1/init/rc.board_extras
@@ -0,0 +1,11 @@
+#!/bin/sh
+#
+# av_x1-v1 specific board init
+#
+#
+
+# AV-X: start MAVLink to companion (connected to TX2)
+mavlink start -d /dev/ttyS5 -r 20000 -b 460800 -m onboard
+
+# AV-X: start MAVLink UDP port 14570
+mavlink start -x -u 14570
diff --git a/boards/av/x-v1/init/rc.board_sensors b/boards/av/x-v1/init/rc.board_sensors
new file mode 100644
index 0000000000000000000000000000000000000000..8309f659de1a9a50c80efc1151172fbf1efaeeba
--- /dev/null
+++ b/boards/av/x-v1/init/rc.board_sensors
@@ -0,0 +1,15 @@
+#!/bin/sh
+#
+# av_x1-v1 specific board sensors init
+#------------------------------------------------------------------------------
+
+
+adis16477 -R 8 start
+
+#adis16497 start
+
+lps22hb -S start
+
+lsm303agr -R 4 start
+
+ms4525_airspeed -T 4515 -b 3 start
diff --git a/boards/bitcraze/crazyflie/init/rc.board b/boards/bitcraze/crazyflie/init/rc.board_defaults
similarity index 57%
rename from boards/bitcraze/crazyflie/init/rc.board
rename to boards/bitcraze/crazyflie/init/rc.board_defaults
index d4dcc237f41f39493b8676bb6f78947737c5cf2d..92a71ce4fb12e9e698bdd9dcb461665b6f6fd79b 100644
--- a/boards/bitcraze/crazyflie/init/rc.board
+++ b/boards/bitcraze/crazyflie/init/rc.board_defaults
@@ -1,9 +1,8 @@
-#!nsh
-#
-# Bitcraze Crazyflie specific board init
+#!/bin/sh
 #
+# Bitcraze Crazyflie specific board sensors init
 #------------------------------------------------------------------------------
-#
+
 
 if param compare SYS_AUTOSTART 0
 then
@@ -17,13 +16,3 @@ then
 fi
 
 set MIXER_AUX none
-
-# Onboard I2C
-mpu9250 -R 12 start
-
-# I2C bypass of mpu
-lps25h start
-
-# Optical flow deck
-vl53lxx start
-pmw3901 start
diff --git a/boards/bitcraze/crazyflie/init/rc.board_sensors b/boards/bitcraze/crazyflie/init/rc.board_sensors
new file mode 100644
index 0000000000000000000000000000000000000000..929fb5268c39665f1f84f9a738011bb33c32bed2
--- /dev/null
+++ b/boards/bitcraze/crazyflie/init/rc.board_sensors
@@ -0,0 +1,15 @@
+#!/bin/sh
+#
+# Bitcraze Crazyflie specific board sensors init
+#------------------------------------------------------------------------------
+
+
+# Onboard I2C
+mpu9250 -R 12 start
+
+# I2C bypass of mpu
+lps25h start
+
+# Optical flow deck
+vl53lxx start
+pmw3901 start
diff --git a/boards/gumstix/aerocore2/init/rc.board b/boards/gumstix/aerocore2/init/rc.board_defaults
similarity index 68%
rename from boards/gumstix/aerocore2/init/rc.board
rename to boards/gumstix/aerocore2/init/rc.board_defaults
index 3e75111185952ef6bef7551ed52e1d8e370290c0..2c9244e332d39fc4572f07a60e65f8389aa3ce5c 100644
--- a/boards/gumstix/aerocore2/init/rc.board
+++ b/boards/gumstix/aerocore2/init/rc.board_defaults
@@ -1,20 +1,15 @@
-#!nsh
-#
-# Gumstix Aerocore2 specific board init
+#!/bin/sh
 #
+# Gumstix Aerocore2 specific board defaults
 #------------------------------------------------------------------------------
-#
+
 
 if [ $AUTOCNF = yes ]
 then
 	# Disable safety switch by default
 	param set CBRK_IO_SAFETY 22027
 
-	param set SYS_FMU_TASK 1
 fi
 
 set DATAMAN_OPT "-f /fs/mtd_dataman"
 set MIXER_AUX none
-
-l3gd20 -R 12 start
-lsm303d start
diff --git a/boards/gumstix/aerocore2/init/rc.board_sensors b/boards/gumstix/aerocore2/init/rc.board_sensors
new file mode 100644
index 0000000000000000000000000000000000000000..24923e130ac7b5a880ad932f2f8af96f0a7888de
--- /dev/null
+++ b/boards/gumstix/aerocore2/init/rc.board_sensors
@@ -0,0 +1,8 @@
+#!/bin/sh
+#
+# Gumstix Aerocore2 specific board sensors init
+#------------------------------------------------------------------------------
+
+
+l3gd20 -R 12 start
+lsm303d start
diff --git a/boards/intel/aerofc-v1/init/rc.board b/boards/intel/aerofc-v1/init/rc.board_defaults
similarity index 73%
rename from boards/intel/aerofc-v1/init/rc.board
rename to boards/intel/aerofc-v1/init/rc.board_defaults
index 90d461f34ce4765fa1ee92a9aa5ec585fdfb27c4..4890cb303bde861515f6f02015903331f2a5e58f 100644
--- a/boards/intel/aerofc-v1/init/rc.board
+++ b/boards/intel/aerofc-v1/init/rc.board_defaults
@@ -1,9 +1,8 @@
-#!nsh
-#
-# intel aero specific board init
+#!/bin/sh
 #
+# intel aero specific board defaults
 #------------------------------------------------------------------------------
-#
+
 
 if param compare SYS_AUTOSTART 0
 then
@@ -26,22 +25,9 @@ then
 	param set ATT_W_GYRO_BIAS 0.0000
 
 	param set SYS_HAS_MAG 0
-	param set SYS_FMU_TASK 1
 fi
 
 
 set DATAMAN_OPT -i
 set LOGGER_ARGS "-m mavlink"
 set MIXER_AUX none
-
-
-ms5611 -T 0 start
-mpu9250 -s -R 14 start
-
-# Possible external compasses
-hmc5883 -X start
-
-ist8310 -C -b 1 -R 4 start
-aerofc_adc start
-
-ll40ls start i2c
diff --git a/boards/intel/aerofc-v1/init/rc.board_sensors b/boards/intel/aerofc-v1/init/rc.board_sensors
new file mode 100644
index 0000000000000000000000000000000000000000..cece9a3aaf81b3543768972b773e9c16f5de8ea9
--- /dev/null
+++ b/boards/intel/aerofc-v1/init/rc.board_sensors
@@ -0,0 +1,16 @@
+#!/bin/sh
+#
+# intel aero specific board sensors init
+#------------------------------------------------------------------------------
+
+
+ms5611 -T 0 start
+mpu9250 -s -R 14 start
+
+# Possible external compasses
+hmc5883 -X start
+
+ist8310 -C -b 1 -R 4 start
+aerofc_adc start
+
+ll40ls start i2c
diff --git a/boards/nxp/fmuk66-v3/init/rc.board b/boards/nxp/fmuk66-v3/init/rc.board
deleted file mode 100644
index 30f93c4dd71013e77d529d321e60a38722efb070..0000000000000000000000000000000000000000
--- a/boards/nxp/fmuk66-v3/init/rc.board
+++ /dev/null
@@ -1,42 +0,0 @@
-#!nsh
-#
-# PX4 FMUv2 specific board init
-#
-#------------------------------------------------------------------------------
-#
-# UART mapping on NXP FMUK66-v3:
-#
-# LPUART0		/dev/ttyS0		P16 CONSOLE
-# UART0			/dev/ttyS1		P7  IR
-# UART1			/dev/ttyS2		P14-3, P15-2 RC input
-# UART2			/dev/ttyS3		P3 GPS
-# UART4			/dev/ttyS3		P10 TELEM1 (flow control)
-#
-#------------------------------------------------------------------------------
-#
-
-
-if [ $AUTOCNF = yes ]
-then
-	param set SYS_FMU_TASK 1
-fi
-
-set MIXER_AUX none
-
-# External I2C bus
-hmc5883 -C -X start
-
-# Possible external compasses
-ist8310 -C -b 2 start
-
-# External I2C bus
-lis3mdl -X start
-
-# Onboard I2C (baro) but an external bus on V3 RC15
-mpl3115a2 -X start
-
-# Internal SPI (accel + mag)
-fxos8701cq start -R 0
-
-# Internal SPI (gyro)
-fxas21002c start -R 0
diff --git a/boards/nxp/fmuk66-v3/init/rc.board_defaults b/boards/nxp/fmuk66-v3/init/rc.board_defaults
new file mode 100644
index 0000000000000000000000000000000000000000..78eca13a105fd6b5044d12a381dc7cb4c5bd1378
--- /dev/null
+++ b/boards/nxp/fmuk66-v3/init/rc.board_defaults
@@ -0,0 +1,12 @@
+#!/bin/sh
+#
+# NXP fmuk66-v3 specific board defaults
+#------------------------------------------------------------------------------
+
+
+if [ $AUTOCNF = yes ]
+then
+
+fi
+
+set MIXER_AUX none
diff --git a/boards/nxp/fmuk66-v3/init/rc.board_sensors b/boards/nxp/fmuk66-v3/init/rc.board_sensors
new file mode 100644
index 0000000000000000000000000000000000000000..da1032b79c4d1bd9caf21d699ebceeb2025b753d
--- /dev/null
+++ b/boards/nxp/fmuk66-v3/init/rc.board_sensors
@@ -0,0 +1,23 @@
+#!/bin/sh
+#
+# NXP fmuk66-v3 specific board defaults
+#------------------------------------------------------------------------------
+
+
+# External I2C bus
+hmc5883 -C -X start
+
+# Possible external compasses
+ist8310 -C -b 2 start
+
+# External I2C bus
+lis3mdl -X start
+
+# Onboard I2C (baro) but an external bus on V3 RC15
+mpl3115a2 -X start
+
+# Internal SPI (accel + mag)
+fxos8701cq start -R 0
+
+# Internal SPI (gyro)
+fxas21002c start -R 0
diff --git a/boards/omnibus/f4sd/init/rc.board b/boards/omnibus/f4sd/init/rc.board
deleted file mode 100644
index 5cb8355cf62eccfe7b03e236adf1e6fce2011335..0000000000000000000000000000000000000000
--- a/boards/omnibus/f4sd/init/rc.board
+++ /dev/null
@@ -1,56 +0,0 @@
-#!nsh
-#
-# Omnibus F4SD specific board init
-#
-#------------------------------------------------------------------------------
-#
-# UART mapping on OMNIBUSF4SD:
-#
-# USART1        /dev/ttyS0      SerialRX
-# (USART3                       configured as I2C)
-# USART4        /dev/ttyS1      TELEM2 (TX=RSSI, RX=PWM out 5)
-# USART6        /dev/ttyS2      URT6
-#
-#------------------------------------------------------------------------------
-#
-
-# transision from params file to flash-based params (2018-12-20)
-if [ -f $PARAM_FILE ]
-then
-	param load $PARAM_FILE
-	param save
-	# create a backup
-	mv $PARAM_FILE ${PARAM_FILE}.bak
-	reboot
-fi
-
-if [ $AUTOCNF = yes ]
-then
-	# Disable safety switch by default
-	param set CBRK_IO_SAFETY 22027
-
-	# use the Q attitude estimator, it works w/o mag or GPS.
-	param set SYS_MC_EST_GROUP 1
-	param set ATT_ACC_COMP 0
-	param set ATT_W_ACC 0.4000
-	param set ATT_W_GYRO_BIAS 0.0000
-
-	param set SYS_HAS_MAG 0
-	param set SYS_FMU_TASK 1
-fi
-
-set MIXER_AUX none
-
-
-if ! mpu6000 -R 12 -s start
-then
-	# some boards such as the Hobbywing XRotor F4 G2 use the ICM-20602
-	mpu6000 -R 12 -T 20602 -s start
-fi
-
-# Possible external compasses
-hmc5883 -X start
-
-bmp280 start
-
-adc start
diff --git a/boards/omnibus/f4sd/init/rc.board_defaults b/boards/omnibus/f4sd/init/rc.board_defaults
new file mode 100644
index 0000000000000000000000000000000000000000..b0fa8f9057c5dde980ead0e8400e9b2cf4aebc4e
--- /dev/null
+++ b/boards/omnibus/f4sd/init/rc.board_defaults
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+# Omnibus F4SD specific board defaults
+#------------------------------------------------------------------------------
+
+
+# transition from params file to flash-based params (2018-12-20)
+if [ -f $PARAM_FILE ]
+then
+	param load $PARAM_FILE
+	param save
+	# create a backup
+	mv $PARAM_FILE ${PARAM_FILE}.bak
+	reboot
+fi
+
+if [ $AUTOCNF = yes ]
+then
+	# Disable safety switch by default
+	param set CBRK_IO_SAFETY 22027
+
+	# use the Q attitude estimator, it works w/o mag or GPS.
+	param set SYS_MC_EST_GROUP 1
+	param set ATT_ACC_COMP 0
+	param set ATT_W_ACC 0.4000
+	param set ATT_W_GYRO_BIAS 0.0000
+
+	param set SYS_HAS_MAG 0
+fi
+
+set MIXER_AUX none
diff --git a/boards/omnibus/f4sd/init/rc.board_sensors b/boards/omnibus/f4sd/init/rc.board_sensors
new file mode 100644
index 0000000000000000000000000000000000000000..d1ce74335618bda8012f356246a2f15b8e7b0932
--- /dev/null
+++ b/boards/omnibus/f4sd/init/rc.board_sensors
@@ -0,0 +1,17 @@
+#!/bin/sh
+#
+# Omnibus F4SD specific board sensors init
+#------------------------------------------------------------------------------
+
+if ! mpu6000 -R 12 -s start
+then
+	# some boards such as the Hobbywing XRotor F4 G2 use the ICM-20602
+	mpu6000 -R 12 -T 20602 -s start
+fi
+
+# Possible external compasses
+hmc5883 -X start
+
+bmp280 start
+
+adc start
diff --git a/boards/px4/fmu-v2/init/rc.board_defaults b/boards/px4/fmu-v2/init/rc.board_defaults
new file mode 100644
index 0000000000000000000000000000000000000000..702bbd1fc9cab1e6c597a20611573353cf923945
--- /dev/null
+++ b/boards/px4/fmu-v2/init/rc.board_defaults
@@ -0,0 +1,28 @@
+#!/bin/sh
+#
+# PX4 FMUv2 specific board defaults
+#------------------------------------------------------------------------------
+
+
+#
+# Bootloader upgrade
+#
+set BL_FILE /etc/extras/px4fmuv3_bl.bin
+if [ -f $BL_FILE ]
+then
+	if param compare SYS_BL_UPDATE 1
+	then
+		param set SYS_BL_UPDATE 0
+		param save
+		echo "BL update..." >> $LOG_FILE
+		bl_update $BL_FILE
+		echo "BL update done" >> $LOG_FILE
+		reboot
+	fi
+fi
+unset BL_FILE
+
+if [ $AUTOCNF = yes ]
+then
+	param set SYS_FMU_TASK 0
+fi
diff --git a/boards/px4/fmu-v2/init/rc.board b/boards/px4/fmu-v2/init/rc.board_sensors
similarity index 72%
rename from boards/px4/fmu-v2/init/rc.board
rename to boards/px4/fmu-v2/init/rc.board_sensors
index 55de82b9862e402be1e4946dd4d85b848d45a5d2..243e89fde78e804fbb4f2309423e5ab75b228f09 100644
--- a/boards/px4/fmu-v2/init/rc.board
+++ b/boards/px4/fmu-v2/init/rc.board_sensors
@@ -1,45 +1,7 @@
-#!nsh
-#
-# PX4 FMUv2 specific board init
-#
-#------------------------------------------------------------------------------
-#
-# UART mapping on FMUv2:
-#
-# UART1         /dev/ttyS0      IO debug
-# USART2        /dev/ttyS1      TELEM1 (flow control)
-# USART3        /dev/ttyS2      TELEM2 (flow control)
-# UART4
-# UART7                         CONSOLE
-# UART8         /dev/ttyS6      SERIAL4/TELEM4
+#!/bin/sh
 #
+# PX4 FMUv2 specific board sensors init
 #------------------------------------------------------------------------------
-#
-
-#
-# Bootloader upgrade
-#
-set BL_FILE /etc/extras/px4fmuv3_bl.bin
-if [ -f $BL_FILE ]
-then
-	if param compare SYS_BL_UPDATE 1
-	then
-		param set SYS_BL_UPDATE 0
-		param save
-		echo "BL update..." >> $LOG_FILE
-		bl_update $BL_FILE
-		echo "BL update done" >> $LOG_FILE
-		reboot
-	fi
-fi
-unset BL_FILE
-
-
-if [ $AUTOCNF = yes ]
-then
-	param set SYS_FMU_TASK 1
-fi
-
 
 # External I2C bus
 hmc5883 -C -T -X start
diff --git a/boards/px4/fmu-v3/init/rc.board_defaults b/boards/px4/fmu-v3/init/rc.board_defaults
new file mode 100644
index 0000000000000000000000000000000000000000..01238b0354ad79b33e5315e1b767d48696859a8c
--- /dev/null
+++ b/boards/px4/fmu-v3/init/rc.board_defaults
@@ -0,0 +1,10 @@
+#!/bin/sh
+#
+# PX4 FMUv3 specific board defaults
+#------------------------------------------------------------------------------
+
+
+if [ $AUTOCNF = yes ]
+then
+	param set SYS_FMU_TASK 0
+fi
diff --git a/boards/px4/fmu-v3/init/rc.board b/boards/px4/fmu-v3/init/rc.board_sensors
similarity index 73%
rename from boards/px4/fmu-v3/init/rc.board
rename to boards/px4/fmu-v3/init/rc.board_sensors
index d1404187d231896c70ce2f91f0041c18cca43cc3..c42103f7d4e034746ab39adec0c10f9af0b8cd18 100644
--- a/boards/px4/fmu-v3/init/rc.board
+++ b/boards/px4/fmu-v3/init/rc.board_sensors
@@ -1,46 +1,7 @@
-#!nsh
-#
-# PX4 FMUv2 specific board init
-#
-#------------------------------------------------------------------------------
-#
-# UART mapping on FMUv2:
-#
-# UART1         /dev/ttyS0      IO debug
-# USART2        /dev/ttyS1      TELEM1 (flow control)
-# USART3        /dev/ttyS2      TELEM2 (flow control)
-# UART4
-# UART7                         CONSOLE
-# UART8         /dev/ttyS6      SERIAL4/TELEM4
+#!/bin/sh
 #
+# PX4 FMUv3 specific board sensors init
 #------------------------------------------------------------------------------
-#
-
-#
-# Bootloader upgrade
-#
-set BL_FILE /etc/extras/px4fmuv3_bl.bin
-if [ -f $BL_FILE ]
-then
-	if param compare SYS_BL_UPDATE 1
-	then
-		param set SYS_BL_UPDATE 0
-		param save
-		echo "BL update..." >> $LOG_FILE
-		bl_update $BL_FILE
-		echo "BL update done" >> $LOG_FILE
-		reboot
-	fi
-fi
-unset BL_FILE
-
-
-if [ $AUTOCNF = yes ]
-then
-
-
-fi
-
 
 # External I2C bus
 hmc5883 -C -T -X start
diff --git a/boards/px4/fmu-v4/init/rc.board_defaults b/boards/px4/fmu-v4/init/rc.board_defaults
new file mode 100644
index 0000000000000000000000000000000000000000..40d7e281e501426eb65171ebcbee28fff6523a0b
--- /dev/null
+++ b/boards/px4/fmu-v4/init/rc.board_defaults
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
+# PX4 FMUv4 specific board defaults
+#------------------------------------------------------------------------------
+
+
+if [ $AUTOCNF = yes ]
+then
+	# Disable safety switch by default
+	param set CBRK_IO_SAFETY 22027
+
+fi
+
+set MIXER_AUX none
diff --git a/boards/px4/fmu-v4/init/rc.board_extras b/boards/px4/fmu-v4/init/rc.board_extras
new file mode 100644
index 0000000000000000000000000000000000000000..d926dfd79d247f6e5e995d392c135cca0ed3a33f
--- /dev/null
+++ b/boards/px4/fmu-v4/init/rc.board_extras
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+# PX4 FMUv4 specific board extras init
+#------------------------------------------------------------------------------
+
+
+# Pixracer: start MAVLink on Wifi (ESP8266 port). Except for the TealOne airframe.
+if param compare SYS_AUTOSTART 4250
+then
+else
+	mavlink start -r 20000 -b 921600 -d /dev/ttyS0
+fi
+
+# Run FrSky Telemetry on Pixracer on the FrSky port if not enabled already
+if param compare TEL_FRSKY_CONFIG 0
+then
+	frsky_telemetry start -d /dev/ttyS6 -t 15
+fi
diff --git a/boards/px4/fmu-v4/init/rc.board b/boards/px4/fmu-v4/init/rc.board_sensors
similarity index 67%
rename from boards/px4/fmu-v4/init/rc.board
rename to boards/px4/fmu-v4/init/rc.board_sensors
index a6cf649995082b948a9c901c53d22f145e2d73c3..8bb9a2a2753dfe39cc13cb95acc27640b60efb6e 100644
--- a/boards/px4/fmu-v4/init/rc.board
+++ b/boards/px4/fmu-v4/init/rc.board_sensors
@@ -1,20 +1,7 @@
-#!nsh
-#
-# PX4 FMUv4 specific board init
-#
-#------------------------------------------------------------------------------
-#
-# UART mapping on FMUv5:
-#
-# UART1         /dev/ttyS0      wifi
-# USART2        /dev/ttyS1      TELEM1 (flow control)
-# USART3        /dev/ttyS2      TELEM2 (flow control)
-# UART4
-# UART7                         CONSOLE
-# UART8         /dev/ttyS6      SERIAL4/TELEM4
+#!/bin/sh
 #
+# PX4 FMUv4 specific board sensors init
 #------------------------------------------------------------------------------
-#
 
 # We know there are sketchy boards out there
 # as chinese companies produce Pixracers without
@@ -24,16 +11,6 @@
 # open hardware design do not require this.
 fmu sensor_reset 50
 
-if [ $AUTOCNF = yes ]
-then
-	# Disable safety switch by default
-	param set CBRK_IO_SAFETY 22027
-
-	param set SYS_FMU_TASK 1
-fi
-
-set MIXER_AUX none
-
 
 # External I2C bus
 hmc5883 -C -T -X start
@@ -87,18 +64,3 @@ then
 	# BMI160 internal SPI bus
 	bmi160 start
 fi
-
-
-# Pixracer: start MAVLink on Wifi (ESP8266 port). Except for the TealOne airframe.
-if param compare SYS_AUTOSTART 4250
-then
-else
-	mavlink start -r 20000 -b 921600 -d /dev/ttyS0
-fi
-
-
-# Run FrSky Telemetry on Pixracer on the FrSky port if not enabled already
-if param compare TEL_FRSKY_CONFIG 0
-then
-	frsky_telemetry start -d /dev/ttyS6 -t 15
-fi
diff --git a/boards/px4/fmu-v4pro/init/rc.board b/boards/px4/fmu-v4pro/init/rc.board
deleted file mode 100644
index d5e7ae1cf2520a38581f9d2896a0ad832037fe44..0000000000000000000000000000000000000000
--- a/boards/px4/fmu-v4pro/init/rc.board
+++ /dev/null
@@ -1,44 +0,0 @@
-#!nsh
-#
-# PX4 FMUv4pro specific board init
-#
-#------------------------------------------------------------------------------
-#
-# UART mapping on FMUv4pro:
-#
-# UART1         /dev/ttyS0      TELEM3
-# USART2        /dev/ttyS1      TELEM1 (flow control)
-# USART3        /dev/ttyS2      TELEM2 (flow control)
-# UART4         /dev/ttyS3      TELEM4
-# USART6        /dev/ttyS4      TELEM3 (flow control)
-# UART7         /dev/ttyS5
-# UART8         /dev/ttyS6      CONSOLE
-#
-#------------------------------------------------------------------------------
-#
-
-if [ $AUTOCNF = yes ]
-then
-	param set SYS_FMU_TASK 1
-fi
-
-set LOGGER_BUF 64
-
-
-# Internal SPI bus ICM-20608-G
-mpu6000 -R 2 -T 20608 start
-
-# Internal SPI bus ICM-20602
-mpu6000 -R 2 -T 20602 start
-
-# Internal SPI bus mpu9250
-mpu9250 -R 2 start
-
-# Internal SPI bus
-lis3mdl -R 0 start
-
-# Possible external compasses
-hmc5883 -C -T -X start
-
-# RM3100
-rm3100 start
diff --git a/boards/px4/fmu-v4pro/init/rc.board_defaults b/boards/px4/fmu-v4pro/init/rc.board_defaults
new file mode 100644
index 0000000000000000000000000000000000000000..2e8322ae7e6b235c099ee0efe491af72312aa85b
--- /dev/null
+++ b/boards/px4/fmu-v4pro/init/rc.board_defaults
@@ -0,0 +1,12 @@
+#!/bin/sh
+#
+# PX4 FMUv4pro specific board defaults
+#------------------------------------------------------------------------------
+
+
+if [ $AUTOCNF = yes ]
+then
+
+fi
+
+set LOGGER_BUF 64
diff --git a/boards/px4/fmu-v4pro/init/rc.board_sensors b/boards/px4/fmu-v4pro/init/rc.board_sensors
new file mode 100644
index 0000000000000000000000000000000000000000..cb785f1af65ed722bae7e8a4442d6d65a398eeee
--- /dev/null
+++ b/boards/px4/fmu-v4pro/init/rc.board_sensors
@@ -0,0 +1,22 @@
+#!/bin/sh
+#
+# PX4 FMUv4pro specific board sensors init
+#------------------------------------------------------------------------------
+
+# Internal SPI bus ICM-20608-G
+mpu6000 -R 2 -T 20608 start
+
+# Internal SPI bus ICM-20602
+mpu6000 -R 2 -T 20602 start
+
+# Internal SPI bus mpu9250
+mpu9250 -R 2 start
+
+# Internal SPI bus
+lis3mdl -R 0 start
+
+# Possible external compasses
+hmc5883 -C -T -X start
+
+# RM3100
+rm3100 start
diff --git a/boards/px4/fmu-v5/init/rc.board_defaults b/boards/px4/fmu-v5/init/rc.board_defaults
new file mode 100644
index 0000000000000000000000000000000000000000..df97fadc5cd45f18a7fb49c1b635ffd5f03299fa
--- /dev/null
+++ b/boards/px4/fmu-v5/init/rc.board_defaults
@@ -0,0 +1,12 @@
+#!/bin/sh
+#
+# PX4 FMUv5 specific board defaults
+#------------------------------------------------------------------------------
+
+
+if [ $AUTOCNF = yes ]
+then
+
+fi
+
+set LOGGER_BUF 64
diff --git a/boards/px4/fmu-v5/init/rc.board b/boards/px4/fmu-v5/init/rc.board_sensors
similarity index 50%
rename from boards/px4/fmu-v5/init/rc.board
rename to boards/px4/fmu-v5/init/rc.board_sensors
index 7d67e6e6adcb4a03c6a218e4990d4fee276c66a0..42006d07a037221976d61b6c51871b24c2447487 100644
--- a/boards/px4/fmu-v5/init/rc.board
+++ b/boards/px4/fmu-v5/init/rc.board_sensors
@@ -1,28 +1,7 @@
-#!nsh
-#
-# PX4 FMUv5 specific board init
-#
-#------------------------------------------------------------------------------
-#
-# UART mapping on FMUv5:
-#
-# UART1         /dev/ttyS0      GPS
-# USART2        /dev/ttyS1      TELEM1 (flow control)
-# USART3        /dev/ttyS2      TELEM2 (flow control)
-# UART4         /dev/ttyS3      TELEM4
-# USART6        /dev/ttyS4      TELEM3 (flow control)
-# UART7         /dev/ttyS5
-# UART8         /dev/ttyS6      CONSOLE
+#!/bin/sh
 #
+# PX4 FMUv5 specific board sensors init
 #------------------------------------------------------------------------------
-#
-
-if [ $AUTOCNF = yes ]
-then
-	param set SYS_FMU_TASK 1
-fi
-
-set LOGGER_BUF 64
 
 # Internal SPI bus ICM-20602
 mpu6000 -R 8 -s -T 20602 start