diff --git a/boards/aerotenna/ocpoc/ubuntu.cmake b/boards/aerotenna/ocpoc/ubuntu.cmake
index e7d4745285c7e32976a943c77400f312351d06aa..58ac1c8236eb0f1ae6ef2a8ddef7593d6b870d82 100644
--- a/boards/aerotenna/ocpoc/ubuntu.cmake
+++ b/boards/aerotenna/ocpoc/ubuntu.cmake
@@ -15,11 +15,11 @@ px4_add_board(
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
+		#imu # all available imu drivers
+		lights/rgbled
 		linux_pwm_out
 		linux_sbus
-		#imu # all available imu drivers
 		#magnetometer # all available magnetometer drivers
-		rgbled
 		pwm_out_sim
 		#telemetry # all available telemetry drivers
 		vmount
diff --git a/boards/airmind/mindpx-v2/default.cmake b/boards/airmind/mindpx-v2/default.cmake
index d153ea89350784363a017adf13bf62056f40c0e1..7655e43a6a0e69d2c1a20ff1db59e8dc41738828 100644
--- a/boards/airmind/mindpx-v2/default.cmake
+++ b/boards/airmind/mindpx-v2/default.cmake
@@ -17,7 +17,6 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
@@ -29,16 +28,17 @@ px4_add_board(
 		imu/mpu6000
 		imu/mpu9250
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
 		magnetometer # all available magnetometer drivers
 		mkblctrl
-		oreoled
 		pca9685
 		pwm_input
 		pwm_out_sim
 		px4flow
 		px4fmu
 		rc_input
-		rgbled
 		stm32
 		stm32/adc
 		stm32/tone_alarm
diff --git a/boards/atlflight/eagle/default.cmake b/boards/atlflight/eagle/default.cmake
index add68a96e7d9f6d3d45b55739233f56f20013974..33ab3a58c93d74c32cb6fb2617d3d65c05eea0d7 100644
--- a/boards/atlflight/eagle/default.cmake
+++ b/boards/atlflight/eagle/default.cmake
@@ -52,10 +52,10 @@ px4_add_board(
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
-		linux_sbus
 		#imu # all available imu drivers
+		lights/rgbled
+		linux_sbus
 		#magnetometer # all available magnetometer drivers
-		rgbled
 		pwm_out_sim
 		qshell/posix
 		#telemetry # all available telemetry drivers
diff --git a/boards/atlflight/excelsior/default.cmake b/boards/atlflight/excelsior/default.cmake
index 7c8581fbc8a4d83ad4479d91362a3d6f3e591605..01bde7b3f068526814fae1eff7b80b9e426e3592 100644
--- a/boards/atlflight/excelsior/default.cmake
+++ b/boards/atlflight/excelsior/default.cmake
@@ -52,10 +52,10 @@ px4_add_board(
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
-		linux_sbus
 		#imu # all available imu drivers
+		lights/rgbled
+		linux_sbus
 		#magnetometer # all available magnetometer drivers
-		rgbled
 		pwm_out_sim
 		qshell/posix
 		#telemetry # all available telemetry drivers
diff --git a/boards/atmel/same70xplained/default.cmake b/boards/atmel/same70xplained/default.cmake
index 3f22b70f8a3ab9eaec212218e6a018e486ce187b..3c5d2dfd52adc3fe28cf11cda4671a78388366ab 100644
--- a/boards/atmel/same70xplained/default.cmake
+++ b/boards/atmel/same70xplained/default.cmake
@@ -17,35 +17,35 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		#camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
 		#heater
 		#imu # all available imu drivers
+		imu/l3gd20
+		imu/lsm303d
 		imu/mpu6000
 		imu/mpu9250
-		imu/lsm303d
-		imu/l3gd20
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
 		magnetometer # all available magnetometer drivers
 		mkblctrl
-		oreoled
 		pca9685
 		#pwm_input
 		pwm_out_sim
 		px4flow
 		px4fmu
 		#rc_input
-		rgbled
 		samv7
-		#WIP samv7/adc
 		samv7/tone_alarm
 		tap_esc
 		telemetry # all available telemetry drivers
 		#test_ppm
 		vmount
+		#WIP samv7/adc
 
 	MODULES
 		attitude_estimator_q
diff --git a/boards/auav/x21/default.cmake b/boards/auav/x21/default.cmake
index 02593fd0c065d35cd01bc08379d7c8981fd3f0b7..09e25df1da79faee7ce85fd7e7800620c1dcccec 100644
--- a/boards/auav/x21/default.cmake
+++ b/boards/auav/x21/default.cmake
@@ -18,7 +18,6 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
@@ -28,10 +27,13 @@ px4_add_board(
 		imu/mpu6000
 		imu/mpu9250
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
+		#lights/rgbled_pwm
 		magnetometer # all available magnetometer drivers
 		#md25
 		mkblctrl
-		oreoled
 		pca8574
 		pca9685
 		#pmw3901
@@ -41,8 +43,6 @@ px4_add_board(
 		px4flow
 		px4fmu
 		px4io
-		rgbled
-		#rgbled_pwm
 		roboclaw
 		stm32
 		stm32/adc
diff --git a/boards/av/x-v1/default.cmake b/boards/av/x-v1/default.cmake
index 6bc430ba7c5ba6e34453c7060c3f3d4febbfe235..e7611ebab480af4f83a71c6ea301b602cd619962 100644
--- a/boards/av/x-v1/default.cmake
+++ b/boards/av/x-v1/default.cmake
@@ -19,19 +19,21 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
 		#heater
-		#imu # all available imu drivers
 		imu/adis16477
+		#imu # all available imu drivers
 		irlock
+		lights/blinkm
+		#lights/oreoled
+		#lights/rgbled
+		#lights/rgbled_pwm
 		magnetometer # all available magnetometer drivers
 		#md25
 		mkblctrl
-		#oreoled
 		#pca8574
 		pca9685
 		#pmw3901
@@ -41,8 +43,6 @@ px4_add_board(
 		px4flow
 		px4fmu
 		rc_input
-		#rgbled
-		#rgbled_pwm
 		roboclaw
 		stm32
 		stm32/adc
diff --git a/boards/gumstix/aerocore2/default.cmake b/boards/gumstix/aerocore2/default.cmake
index 1c417e32f7e194df6098b259dcbb1fb4ffbde788..4fe66193f70ae8bcde0beeae9663a2fb711e5678 100644
--- a/boards/gumstix/aerocore2/default.cmake
+++ b/boards/gumstix/aerocore2/default.cmake
@@ -16,7 +16,6 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		#batt_smbus
-		#blinkm
 		#camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
@@ -26,10 +25,13 @@ px4_add_board(
 		imu/l3gd20
 		imu/lsm303d
 		#irlock
+		#lights/blinkm
+		#lights/oreoled
+		#lights/rgbled
+		#lights/rgbled_pwm
 		#magnetometer # all available magnetometer drivers
 		#md25
 		#mkblctrl
-		#oreoled
 		#pca8574
 		#pca9685
 		#pmw3901
@@ -39,8 +41,6 @@ px4_add_board(
 		#px4flow
 		px4fmu
 		rc_input
-		#rgbled
-		#rgbled_pwm
 		#roboclaw
 		stm32
 		stm32/adc
diff --git a/boards/nxp/fmuk66-v3/default.cmake b/boards/nxp/fmuk66-v3/default.cmake
index c0a50dcbbca70401011120b2840ecf43db4c4154..eb0e141fe10c13e010730e24ff2239ed313e5563 100644
--- a/boards/nxp/fmuk66-v3/default.cmake
+++ b/boards/nxp/fmuk66-v3/default.cmake
@@ -17,14 +17,10 @@ px4_add_board(
 		barometer # all available barometer drivers
 		barometer/mpl3115a2
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
-		kinetis
-		kinetis/adc
-		kinetis/tone_alarm
 		#heater
 		#imu # all available imu drivers
 		imu/fxas21002c
@@ -33,17 +29,21 @@ px4_add_board(
 		imu/mpu6000
 		imu/mpu9250
 		irlock
+		kinetis
+		kinetis/adc
+		kinetis/tone_alarm
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
+		lights/rgbled_pwm
 		magnetometer # all available magnetometer drivers
 		mkblctrl
-		oreoled
 		pca9685
 		#pwm_input # NOT Portable YET drivers
 		pwm_out_sim
 		px4flow
 		px4fmu
 		rc_input
-		rgbled
-		rgbled_pwm
 		tap_esc
 		telemetry # all available telemetry drivers
 		#test_ppm # NOT Portable YET
diff --git a/boards/omnibus/f4sd/default.cmake b/boards/omnibus/f4sd/default.cmake
index 1bd69e5edc7f6f88fb24c47d122bed5fda78af56..7903f82155e8c197a3afbbc04f1e25eb7fe19ca4 100644
--- a/boards/omnibus/f4sd/default.cmake
+++ b/boards/omnibus/f4sd/default.cmake
@@ -15,7 +15,6 @@ px4_add_board(
 		#barometer # all available barometer drivers
 		barometer/bmp280
 		#batt_smbus
-		#blinkm
 		#camera_trigger
 		#differential_pressure # all available differential pressure drivers
 		#distance_sensor # all available distance sensor drivers
@@ -24,17 +23,18 @@ px4_add_board(
 		#imu # all available imu drivers
 		imu/mpu6000
 		#irlock
+		#lights/blinkm
+		#lights/oreoled
+		lights/rgbled
 		#magnetometer # all available magnetometer drivers
 		magnetometer/hmc5883
 		#mkblctrl
-		#oreoled
 		#pca9685
 		#pwm_input
 		#pwm_out_sim
 		px4flow
 		px4fmu
 		rc_input
-		rgbled
 		stm32
 		stm32/adc
 		#stm32/tone_alarm
diff --git a/boards/px4/fmu-v2/default.cmake b/boards/px4/fmu-v2/default.cmake
index 5fc1db62b95a65732a5940e88ddeafc53d7f58d1..a47550e118b114ff338bb86c5097752c9be6f56d 100644
--- a/boards/px4/fmu-v2/default.cmake
+++ b/boards/px4/fmu-v2/default.cmake
@@ -22,7 +22,6 @@ px4_add_board(
 		#barometer # all available barometer drivers
 		barometer/ms5611
 		#batt_smbus
-		#blinkm
 		#camera_trigger
 		#differential_pressure # all available differential pressure drivers
 		differential_pressure/ms4525
@@ -31,26 +30,27 @@ px4_add_board(
 		distance_sensor/sf0x
 		gps
 		#heater
-		#imu # all available imu drivers
 		#imu/adis16448
+		#imu # all available imu drivers
 		imu/l3gd20
 		imu/lsm303d
 		imu/mpu6000
 		imu/mpu9250
 		#iridiumsbd
 		#irlock
+		#lights/blinkm
+		#lights/oreoled
+		lights/rgbled
 		#magnetometer # all available magnetometer drivers
 		magnetometer/hmc5883
 		#mkblctrl
-		#oreoled
-		#protocol_splitter
 		#pca9685
+		#protocol_splitter
 		#pwm_input
 		#pwm_out_sim
 		px4flow
 		px4fmu
 		px4io
-		rgbled
 		stm32
 		stm32/adc
 		stm32/tone_alarm
diff --git a/boards/px4/fmu-v2/lpe.cmake b/boards/px4/fmu-v2/lpe.cmake
index 398206d16cc02fd6221fd16b68463e30117e14ea..08f8961b249832bfd3d48504894a88e28ac2b58f 100644
--- a/boards/px4/fmu-v2/lpe.cmake
+++ b/boards/px4/fmu-v2/lpe.cmake
@@ -22,33 +22,33 @@ px4_add_board(
 		#barometer # all available barometer drivers
 		barometer/ms5611
 		#batt_smbus
-		#blinkm
 		camera_trigger
 		#differential_pressure # all available differential pressure drivers
 		#differential_pressure/ms4525
 		distance_sensor # all available distance sensor drivers
 		gps
 		#heater
-		#imu # all available imu drivers
 		#imu/adis16448
+		#imu # all available imu drivers
 		imu/l3gd20
 		imu/lsm303d
 		imu/mpu6000
 		#imu/mpu9250
 		#iridiumsbd
 		irlock
+		#lights/blinkm
+		#lights/oreoled
+		lights/rgbled
 		#magnetometer # all available magnetometer drivers
 		magnetometer/hmc5883
 		#mkblctrl
-		#oreoled
-		#protocol_splitter
 		#pca9685
+		#protocol_splitter
 		#pwm_input
 		pwm_out_sim
 		px4flow
 		px4fmu
 		px4io
-		rgbled
 		stm32
 		stm32/adc
 		stm32/tone_alarm
diff --git a/boards/px4/fmu-v2/test.cmake b/boards/px4/fmu-v2/test.cmake
index 72327e661211356dd0d7581037fafdb9e07a9588..95096f15654cc3035626c577560b3289ef81ee12 100644
--- a/boards/px4/fmu-v2/test.cmake
+++ b/boards/px4/fmu-v2/test.cmake
@@ -21,7 +21,6 @@ px4_add_board(
 		#barometer # all available barometer drivers
 		barometer/ms5611
 		#batt_smbus
-		#blinkm
 		camera_trigger
 		#differential_pressure # all available differential pressure drivers
 		differential_pressure/ms4525
@@ -30,26 +29,27 @@ px4_add_board(
 		distance_sensor/sf0x
 		gps
 		#heater
-		#imu # all available imu drivers
 		#imu/adis16448
+		#imu # all available imu drivers
 		imu/l3gd20
 		imu/lsm303d
 		imu/mpu6000
 		imu/mpu9250
 		#iridiumsbd
 		#irlock
+		#lights/blinkm
+		#lights/oreoled
+		lights/rgbled
 		#magnetometer # all available magnetometer drivers
 		magnetometer/hmc5883
 		#mkblctrl
-		#oreoled
-		#protocol_splitter
 		#pca9685
+		#protocol_splitter
 		#pwm_input
 		#pwm_out_sim
 		px4flow
 		px4fmu
 		px4io
-		rgbled
 		stm32
 		stm32/adc
 		stm32/tone_alarm
diff --git a/boards/px4/fmu-v3/default.cmake b/boards/px4/fmu-v3/default.cmake
index 7e38d1f4380089b2a523bfb047b4607bbc7514af..dee24922bcdf29fb628b151cffbd585f7bdc86bc 100644
--- a/boards/px4/fmu-v3/default.cmake
+++ b/boards/px4/fmu-v3/default.cmake
@@ -22,23 +22,26 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
 		#heater
-		#imu # all available imu drivers
 		imu/adis16448
+		#imu # all available imu drivers
 		imu/l3gd20
 		imu/lsm303d
 		imu/mpu6000
 		imu/mpu9250
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
+		lights/rgbled_ncp5623c
+		#lights/rgbled_pwm
 		magnetometer # all available magnetometer drivers
 		#md25
 		mkblctrl
-		oreoled
 		pca8574
 		pca9685
 		#pmw3901
@@ -48,9 +51,6 @@ px4_add_board(
 		px4flow
 		px4fmu
 		px4io
-		rgbled
-		rgbled_ncp5623c
-		#rgbled_pwm
 		roboclaw
 		stm32
 		stm32/adc
diff --git a/boards/px4/fmu-v3/rtps.cmake b/boards/px4/fmu-v3/rtps.cmake
index 2b4b3585f05864687b142aea7dc6ca4c5a91afc6..bafead3e480b924e85333be815b2f0baa81dee35 100644
--- a/boards/px4/fmu-v3/rtps.cmake
+++ b/boards/px4/fmu-v3/rtps.cmake
@@ -22,23 +22,26 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
 		#heater
-		#imu # all available imu drivers
 		imu/adis16448
+		#imu # all available imu drivers
 		imu/l3gd20
 		imu/lsm303d
 		imu/mpu6000
 		imu/mpu9250
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
+		lights/rgbled_ncp5623c
+		#lights/rgbled_pwm
 		magnetometer # all available magnetometer drivers
 		#md25
 		mkblctrl
-		oreoled
 		pca8574
 		pca9685
 		#pmw3901
@@ -48,9 +51,6 @@ px4_add_board(
 		px4flow
 		px4fmu
 		px4io
-		rgbled
-		rgbled_ncp5623c
-		#rgbled_pwm
 		roboclaw
 		stm32
 		stm32/adc
diff --git a/boards/px4/fmu-v3/stackcheck.cmake b/boards/px4/fmu-v3/stackcheck.cmake
index b5441c08081d1a47eab0f9fd70ad8b8c9b5dd53b..02c4a748034239e75b4a3fc47709b28038011a41 100644
--- a/boards/px4/fmu-v3/stackcheck.cmake
+++ b/boards/px4/fmu-v3/stackcheck.cmake
@@ -22,7 +22,7 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
+		lights/blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
@@ -38,7 +38,7 @@ px4_add_board(
 		magnetometer # all available magnetometer drivers
 		#md25
 		mkblctrl
-		oreoled
+		lights/oreoled
 		pca8574
 		pca9685
 		#pmw3901
@@ -48,9 +48,9 @@ px4_add_board(
 		px4flow
 		px4fmu
 		px4io
-		rgbled
-		rgbled_ncp5623c
-		#rgbled_pwm
+		lights/rgbled
+		lights/rgbled_ncp5623c
+		#lights/rgbled_pwm
 		roboclaw
 		stm32
 		stm32/adc
diff --git a/boards/px4/fmu-v4/default.cmake b/boards/px4/fmu-v4/default.cmake
index 3f616f356c1b11da63734a274f8f7def2b349a49..09b5be6d67ea95418850b1b6f8000542464f576b 100644
--- a/boards/px4/fmu-v4/default.cmake
+++ b/boards/px4/fmu-v4/default.cmake
@@ -18,7 +18,6 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
@@ -26,17 +25,18 @@ px4_add_board(
 		heater
 		imu # all available imu drivers
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
+		lights/rgbled_ncp5623c
 		magnetometer # all available magnetometer drivers
 		mkblctrl
-		oreoled
 		pca9685
 		pwm_input
 		pwm_out_sim
 		px4flow
 		px4fmu
 		rc_input
-		rgbled
-		rgbled_ncp5623c
 		stm32
 		stm32/adc
 		stm32/tone_alarm
diff --git a/boards/px4/fmu-v4/rtps.cmake b/boards/px4/fmu-v4/rtps.cmake
index 5f46abf326a622afb357736702d8d76a906d1c32..1a53101872b6623750ba09954971be8c1c570a87 100644
--- a/boards/px4/fmu-v4/rtps.cmake
+++ b/boards/px4/fmu-v4/rtps.cmake
@@ -18,7 +18,6 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
@@ -26,9 +25,12 @@ px4_add_board(
 		heater
 		imu # all available imu drivers
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
+		lights/rgbled_ncp5623c
 		magnetometer # all available magnetometer drivers
 		mkblctrl
-		oreoled
 		pca9685
 		protocol_splitter
 		pwm_input
@@ -36,8 +38,6 @@ px4_add_board(
 		px4flow
 		px4fmu
 		rc_input
-		rgbled
-		rgbled_ncp5623c
 		stm32
 		stm32/adc
 		stm32/tone_alarm
diff --git a/boards/px4/fmu-v4/stackcheck.cmake b/boards/px4/fmu-v4/stackcheck.cmake
index f0438a5e779db9c7ca85426695541bc9845b523e..4634d80a77f96b05c7e43235956e16ef40f1da41 100644
--- a/boards/px4/fmu-v4/stackcheck.cmake
+++ b/boards/px4/fmu-v4/stackcheck.cmake
@@ -18,7 +18,7 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
+		lights/blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
@@ -28,15 +28,15 @@ px4_add_board(
 		irlock
 		magnetometer # all available magnetometer drivers
 		mkblctrl
-		oreoled
+		lights/oreoled
 		pca9685
 		pwm_input
 		pwm_out_sim
 		px4flow
 		px4fmu
 		rc_input
-		rgbled
-		rgbled_ncp5623c
+		lights/rgbled
+		lights/rgbled_ncp5623c
 		stm32
 		stm32/adc
 		stm32/tone_alarm
diff --git a/boards/px4/fmu-v4pro/default.cmake b/boards/px4/fmu-v4pro/default.cmake
index 3ef6a772186352931fa27379146b4c0585fb98e2..664858953688f229563762c4c66b29ee17d67522 100644
--- a/boards/px4/fmu-v4pro/default.cmake
+++ b/boards/px4/fmu-v4pro/default.cmake
@@ -21,23 +21,26 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
 		#heater
 		#imu # all available imu drivers
-		imu/bmi160
 		imu/bma180
-		imu/mpu6000
+		imu/bmi160
 		imu/l3gd20
+		imu/mpu6000
 		imu/mpu9250
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
+		lights/rgbled_ncp5623c
+		#lights/rgbled_pwm
 		magnetometer # all available magnetometer drivers
 		#md25
 		mkblctrl
-		oreoled
 		pca8574
 		pca9685
 		#pmw3901
@@ -47,9 +50,6 @@ px4_add_board(
 		px4flow
 		px4fmu
 		px4io
-		rgbled
-		rgbled_ncp5623c
-		#rgbled_pwm
 		roboclaw
 		stm32
 		stm32/adc
diff --git a/boards/px4/fmu-v4pro/rtps.cmake b/boards/px4/fmu-v4pro/rtps.cmake
index b77f54699cb7525b953ce30bb8d379108829a71c..81946efe0454ecaac7ae21248ff3d6e8b70afce3 100644
--- a/boards/px4/fmu-v4pro/rtps.cmake
+++ b/boards/px4/fmu-v4pro/rtps.cmake
@@ -21,23 +21,26 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
 		#heater
 		#imu # all available imu drivers
-		imu/bmi160
 		imu/bma180
-		imu/mpu6000
+		imu/bmi160
 		imu/l3gd20
+		imu/mpu6000
 		imu/mpu9250
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
+		lights/rgbled_ncp5623c
+		#lights/rgbled_pwm
 		magnetometer # all available magnetometer drivers
 		#md25
 		mkblctrl
-		oreoled
 		pca8574
 		pca9685
 		#pmw3901
@@ -47,9 +50,6 @@ px4_add_board(
 		px4flow
 		px4fmu
 		px4io
-		rgbled
-		rgbled_ncp5623c
-		#rgbled_pwm
 		roboclaw
 		stm32
 		stm32/adc
diff --git a/boards/px4/fmu-v5/default.cmake b/boards/px4/fmu-v5/default.cmake
index 356e13690effbd679eda99c4e36476f7280532a1..c86ba88cd2b0f194df123b86c327ebddcb132e21 100644
--- a/boards/px4/fmu-v5/default.cmake
+++ b/boards/px4/fmu-v5/default.cmake
@@ -19,24 +19,27 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
 		#heater
-		#imu # all available imu drivers
 		imu/adis16448
+		#imu # all available imu drivers
+		imu/bma180
 		imu/bmi055
 		imu/bmi160
-		imu/bma180
 		imu/mpu6000
 		imu/mpu9250
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
+		lights/rgbled_ncp5623c
+		lights/rgbled_pwm
 		magnetometer # all available magnetometer drivers
 		#md25
 		mkblctrl
-		oreoled
 		pca8574
 		pca9685
 		pmw3901
@@ -47,9 +50,6 @@ px4_add_board(
 		px4fmu
 		px4io
 		rc_input
-		rgbled
-		rgbled_ncp5623c
-		rgbled_pwm
 		roboclaw
 		stm32
 		stm32/adc
diff --git a/boards/px4/fmu-v5/rtps.cmake b/boards/px4/fmu-v5/rtps.cmake
index caf5e7785e91d10bc36312e5f67343bcd4a3b517..a466c76fd2884db56ee51b94976cc661e3761ec3 100644
--- a/boards/px4/fmu-v5/rtps.cmake
+++ b/boards/px4/fmu-v5/rtps.cmake
@@ -20,24 +20,27 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
 		#heater
-		#imu # all available imu drivers
 		imu/adis16448
+		#imu # all available imu drivers
+		imu/bma180
 		imu/bmi055
 		imu/bmi160
-		imu/bma180
 		imu/mpu6000
 		imu/mpu9250
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
+		lights/rgbled_ncp5623c
+		lights/rgbled_pwm
 		magnetometer # all available magnetometer drivers
 		#md25
 		mkblctrl
-		oreoled
 		pca8574
 		pca9685
 		pmw3901
@@ -48,9 +51,6 @@ px4_add_board(
 		px4fmu
 		px4io
 		rc_input
-		rgbled
-		rgbled_ncp5623c
-		rgbled_pwm
 		roboclaw
 		stm32
 		stm32/adc
diff --git a/boards/px4/fmu-v5/stackcheck.cmake b/boards/px4/fmu-v5/stackcheck.cmake
index 29c1925a8c285b2e14b8dae51fdb0bbcc6200815..77a95e355449abe0aae9044bc6d7c89dd4a2fb43 100644
--- a/boards/px4/fmu-v5/stackcheck.cmake
+++ b/boards/px4/fmu-v5/stackcheck.cmake
@@ -20,7 +20,7 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
+		lights/blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
@@ -37,7 +37,7 @@ px4_add_board(
 		magnetometer # all available magnetometer drivers
 		#md25
 		mkblctrl
-		oreoled
+		lights/oreoled
 		pca8574
 		pca9685
 		pmw3901
@@ -48,9 +48,9 @@ px4_add_board(
 		px4fmu
 		px4io
 		rc_input
-		rgbled
-		rgbled_ncp5623c
-		rgbled_pwm
+		lights/rgbled
+		lights/rgbled_ncp5623c
+		lights/rgbled_pwm
 		roboclaw
 		stm32
 		stm32/adc
diff --git a/boards/stm/32f4discovery/default.cmake b/boards/stm/32f4discovery/default.cmake
index db2dbd450eac659e422a809e0bf12dc77c3b67e0..8322aad8aef66de82be5c55bc4da60d4fad3d42d 100644
--- a/boards/stm/32f4discovery/default.cmake
+++ b/boards/stm/32f4discovery/default.cmake
@@ -11,7 +11,6 @@ px4_add_board(
 	DRIVERS
 		#barometer # all available barometer drivers
 		#batt_smbus
-		#blinkm
 		#camera_trigger
 		#differential_pressure # all available differential pressure drivers
 		#distance_sensor # all available distance sensor drivers
@@ -19,16 +18,17 @@ px4_add_board(
 		#heater
 		#imu # all available imu drivers
 		#irlock
+		#lights/blinkm
+		#lights/oreoled
+		#lights/rgbled
 		#magnetometer # all available magnetometer drivers
 		#mkblctrl
-		#oreoled
 		#pca9685
 		#pwm_input
 		#pwm_out_sim
 		#px4flow
 		#px4fmu
 		#rc_input
-		#rgbled
 		stm32
 		#stm32/adc
 		#stm32/tone_alarm
diff --git a/boards/stm/nucleo-F767ZI/default.cmake b/boards/stm/nucleo-F767ZI/default.cmake
index c9595dbedffd7389a58a8dfe94476c4c3b1aa904..5da09ab3b06ae94dbb934ba4cbdd19dacfda877c 100644
--- a/boards/stm/nucleo-F767ZI/default.cmake
+++ b/boards/stm/nucleo-F767ZI/default.cmake
@@ -12,20 +12,22 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
 		#heater
-		#imu # all available imu drivers
 		imu/adis16448
+		#imu # all available imu drivers
 		imu/mpu6000
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
+		#lights/rgbled_pwm
 		magnetometer # all available magnetometer drivers
 		#md25
 		mkblctrl
-		oreoled
 		pca8574
 		pca9685
 		#pmw3901
@@ -35,8 +37,6 @@ px4_add_board(
 		px4flow
 		px4fmu
 		rc_input
-		rgbled
-		#rgbled_pwm
 		roboclaw
 		stm32
 		stm32/adc
diff --git a/src/drivers/lights/CMakeLists.txt b/src/drivers/lights/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f80c47a6fbd470823ab7534425f9b06da9bbda7c
--- /dev/null
+++ b/src/drivers/lights/CMakeLists.txt
@@ -0,0 +1,37 @@
+############################################################################
+#
+#   Copyright (c) 2018 PX4 Development Team. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in
+#    the documentation and/or other materials provided with the
+#    distribution.
+# 3. Neither the name PX4 nor the names of its contributors may be
+#    used to endorse or promote products derived from this software
+#    without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+############################################################################
+
+add_subdirectory(blinkm)
+add_subdirectory(rgbled)
+add_subdirectory(rgbled_ncp5623c)
+add_subdirectory(rgbled_pwm)
diff --git a/src/drivers/blinkm/CMakeLists.txt b/src/drivers/lights/blinkm/CMakeLists.txt
similarity index 100%
rename from src/drivers/blinkm/CMakeLists.txt
rename to src/drivers/lights/blinkm/CMakeLists.txt
diff --git a/src/drivers/blinkm/blinkm.cpp b/src/drivers/lights/blinkm/blinkm.cpp
similarity index 100%
rename from src/drivers/blinkm/blinkm.cpp
rename to src/drivers/lights/blinkm/blinkm.cpp
diff --git a/src/drivers/oreoled/CMakeLists.txt b/src/drivers/lights/oreoled/CMakeLists.txt
similarity index 100%
rename from src/drivers/oreoled/CMakeLists.txt
rename to src/drivers/lights/oreoled/CMakeLists.txt
diff --git a/src/drivers/oreoled/oreoled.cpp b/src/drivers/lights/oreoled/oreoled.cpp
similarity index 100%
rename from src/drivers/oreoled/oreoled.cpp
rename to src/drivers/lights/oreoled/oreoled.cpp
diff --git a/src/drivers/rgbled/CMakeLists.txt b/src/drivers/lights/rgbled/CMakeLists.txt
similarity index 100%
rename from src/drivers/rgbled/CMakeLists.txt
rename to src/drivers/lights/rgbled/CMakeLists.txt
diff --git a/src/drivers/rgbled/rgbled.cpp b/src/drivers/lights/rgbled/rgbled.cpp
similarity index 100%
rename from src/drivers/rgbled/rgbled.cpp
rename to src/drivers/lights/rgbled/rgbled.cpp
diff --git a/src/drivers/rgbled/rgbled_params.c b/src/drivers/lights/rgbled/rgbled_params.c
similarity index 100%
rename from src/drivers/rgbled/rgbled_params.c
rename to src/drivers/lights/rgbled/rgbled_params.c
diff --git a/src/drivers/rgbled_ncp5623c/CMakeLists.txt b/src/drivers/lights/rgbled_ncp5623c/CMakeLists.txt
similarity index 100%
rename from src/drivers/rgbled_ncp5623c/CMakeLists.txt
rename to src/drivers/lights/rgbled_ncp5623c/CMakeLists.txt
diff --git a/src/drivers/rgbled_ncp5623c/rgbled_ncp5623c.cpp b/src/drivers/lights/rgbled_ncp5623c/rgbled_ncp5623c.cpp
similarity index 100%
rename from src/drivers/rgbled_ncp5623c/rgbled_ncp5623c.cpp
rename to src/drivers/lights/rgbled_ncp5623c/rgbled_ncp5623c.cpp
diff --git a/src/drivers/rgbled_ncp5623c/rgbled_ncp5623c_params.c b/src/drivers/lights/rgbled_ncp5623c/rgbled_ncp5623c_params.c
similarity index 100%
rename from src/drivers/rgbled_ncp5623c/rgbled_ncp5623c_params.c
rename to src/drivers/lights/rgbled_ncp5623c/rgbled_ncp5623c_params.c
diff --git a/src/drivers/rgbled_pwm/CMakeLists.txt b/src/drivers/lights/rgbled_pwm/CMakeLists.txt
similarity index 100%
rename from src/drivers/rgbled_pwm/CMakeLists.txt
rename to src/drivers/lights/rgbled_pwm/CMakeLists.txt
diff --git a/src/drivers/rgbled_pwm/rgbled_pwm.cpp b/src/drivers/lights/rgbled_pwm/rgbled_pwm.cpp
similarity index 100%
rename from src/drivers/rgbled_pwm/rgbled_pwm.cpp
rename to src/drivers/lights/rgbled_pwm/rgbled_pwm.cpp