diff --git a/CMakeLists.txt b/CMakeLists.txt
index fc5bc249a27de0a48b12e45812f4c53f8cd04649..019984d9ba74268688a76ae222f6c6319918db3d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -150,16 +150,6 @@ list(GET config_args 1 BOARD)
 list(GET config_args 2 LABEL)
 set(target_name "${OS}-${BOARD}-${LABEL}")
 
-if("${OS}" STREQUAL "posix")
-	if (APPLE)
-		set(DF_TARGET darwin)
-	else()
-		set(DF_TARGET linux)
-	endif()
-else()
-	set(DF_TARGET ${OS})
-endif()
-
 message(STATUS "${target_name}")
 
 # switch to ros CMake file if building ros
@@ -333,12 +323,11 @@ execute_process(COMMAND cmake -E make_directory ${ep_base}/Install/include)
 #=============================================================================
 # DriverFramework Drivers
 #
-#message("ADDING DRIVERS")
 set(df_driver_libs)
 foreach(driver ${config_df_driver_list})
 	add_subdirectory(src/lib/DriverFramework/drivers/${driver})
 	list(APPEND df_driver_libs df_${driver})
-	message("adding driver: ${driver}")
+	message("Adding DF driver: ${driver}")
 endforeach()
 
 #=============================================================================
@@ -361,8 +350,6 @@ endforeach()
 
 add_subdirectory(src/firmware/${OS})
 
-add_subdirectory(src/lib/DriverFramework/framework/src)
-
 #add_dependencies(df_driver_framework nuttx_export_${CONFIG}.stamp)
 if (NOT "${OS}" STREQUAL "nuttx")
 endif()
diff --git a/cmake/configs/nuttx_mindpx-v2_default.cmake b/cmake/configs/nuttx_mindpx-v2_default.cmake
index 6b52d9ad6c7153db010794be2bb1f148ceb999a7..9f0626e5b74eb9855d5791ec250557ed7722c2bd 100644
--- a/cmake/configs/nuttx_mindpx-v2_default.cmake
+++ b/cmake/configs/nuttx_mindpx-v2_default.cmake
@@ -130,6 +130,7 @@ set(config_module_list
 	lib/terrain_estimation
 	lib/runway_takeoff
 	lib/tailsitter_recovery
+	lib/DriverFramework/framework
 	platforms/nuttx
 
 	# had to add for cmake, not sure why wasn't in original config
diff --git a/cmake/configs/nuttx_px4-stm32f4discovery_default.cmake b/cmake/configs/nuttx_px4-stm32f4discovery_default.cmake
index f7538531766013c9aa0894f6ae7e23857715a6eb..c71db2fc31847137a6daa55d00774f569ac275b7 100644
--- a/cmake/configs/nuttx_px4-stm32f4discovery_default.cmake
+++ b/cmake/configs/nuttx_px4-stm32f4discovery_default.cmake
@@ -43,6 +43,7 @@ set(config_module_list
 	lib/external_lgpl
 	lib/geo
 	lib/conversion
+	lib/DriverFramework/framework
 	platforms/nuttx
 
 	# had to add for cmake, not sure why wasn't in original config
diff --git a/cmake/configs/nuttx_px4fmu-v1_default.cmake b/cmake/configs/nuttx_px4fmu-v1_default.cmake
index fa95d0b304ad526245928281e37ffb5de9ea754b..85c7e2f3476beaa30f64b5a6352a669c2f1f9961 100644
--- a/cmake/configs/nuttx_px4fmu-v1_default.cmake
+++ b/cmake/configs/nuttx_px4fmu-v1_default.cmake
@@ -115,6 +115,7 @@ set(config_module_list
 	lib/terrain_estimation
 	lib/runway_takeoff
 	lib/tailsitter_recovery
+	lib/DriverFramework/framework
 	platforms/nuttx
 
 	# had to add for cmake, not sure why wasn't in original config
diff --git a/cmake/configs/nuttx_px4fmu-v2_default.cmake b/cmake/configs/nuttx_px4fmu-v2_default.cmake
index a59d6aa065763ff6bc4cd4b583fc51cdad2a3891..dc0594bfecf3033bf06de54db07c54027ab8ee6d 100644
--- a/cmake/configs/nuttx_px4fmu-v2_default.cmake
+++ b/cmake/configs/nuttx_px4fmu-v2_default.cmake
@@ -124,6 +124,7 @@ set(config_module_list
 	lib/terrain_estimation
 	lib/runway_takeoff
 	lib/tailsitter_recovery
+	lib/DriverFramework/framework
 	platforms/nuttx
 
 	# had to add for cmake, not sure why wasn't in original config
diff --git a/cmake/configs/nuttx_px4fmu-v2_ekf2.cmake b/cmake/configs/nuttx_px4fmu-v2_ekf2.cmake
index d91249cee0d3defdcb7e966ea1202ca134647c6e..6cc8c2d2629a2ace1421bae6dd45d67302238ebf 100644
--- a/cmake/configs/nuttx_px4fmu-v2_ekf2.cmake
+++ b/cmake/configs/nuttx_px4fmu-v2_ekf2.cmake
@@ -123,6 +123,7 @@ set(config_module_list
 	lib/terrain_estimation
 	lib/runway_takeoff
 	lib/tailsitter_recovery
+	lib/DriverFramework/framework
 	platforms/nuttx
 
 	# had to add for cmake, not sure why wasn't in original config
diff --git a/cmake/configs/nuttx_px4fmu-v4_default.cmake b/cmake/configs/nuttx_px4fmu-v4_default.cmake
index 91653edc8e9e951183465e91e8c60b8f3d9a1a45..0db31f82d654c261e2f5e8d91e635f4befe1aba0 100644
--- a/cmake/configs/nuttx_px4fmu-v4_default.cmake
+++ b/cmake/configs/nuttx_px4fmu-v4_default.cmake
@@ -125,6 +125,7 @@ set(config_module_list
 	lib/terrain_estimation
 	lib/runway_takeoff
 	lib/tailsitter_recovery
+	lib/DriverFramework/framework
 	platforms/nuttx
 
 	# had to add for cmake, not sure why wasn't in original config
diff --git a/cmake/configs/posix_eagle_default.cmake b/cmake/configs/posix_eagle_default.cmake
index d58b80d4a8512dc361456f3f8660bbb590a1af2b..6568717e2b4e1bdfd4c49f3031cdd7d57562aafa 100644
--- a/cmake/configs/posix_eagle_default.cmake
+++ b/cmake/configs/posix_eagle_default.cmake
@@ -55,6 +55,7 @@ set(config_module_list
 	lib/terrain_estimation
 	lib/runway_takeoff
 	lib/tailsitter_recovery
+	lib/DriverFramework/framework
 
 	platforms/common
 	platforms/posix/px4_layer
diff --git a/cmake/configs/posix_eagle_hil.cmake b/cmake/configs/posix_eagle_hil.cmake
index b856088b3fd8158828cc5789bd79e63336e077a6..3c1ce62b400b640b78804a4595a7563adadbb11c 100644
--- a/cmake/configs/posix_eagle_hil.cmake
+++ b/cmake/configs/posix_eagle_hil.cmake
@@ -33,6 +33,7 @@ set(config_module_list
 	lib/geo
 	lib/geo_lookup
 	lib/conversion
+	lib/DriverFramework/framework
 
 	platforms/common
 	platforms/posix/px4_layer
diff --git a/cmake/configs/posix_eagle_legacy_driver_default.cmake b/cmake/configs/posix_eagle_legacy_driver_default.cmake
index e36e686c24606ec644fa534aec0b62d004ac0eb8..5bf90df9616c553f9c4604eb731dbc71b6b60761 100644
--- a/cmake/configs/posix_eagle_legacy_driver_default.cmake
+++ b/cmake/configs/posix_eagle_legacy_driver_default.cmake
@@ -56,6 +56,7 @@ set(config_module_list
 	lib/terrain_estimation
 	lib/runway_takeoff
 	lib/tailsitter_recovery
+	lib/DriverFramework/framework
 
 	platforms/common
 	platforms/posix/px4_layer
diff --git a/cmake/configs/posix_eagle_legacy_driver_release.cmake b/cmake/configs/posix_eagle_legacy_driver_release.cmake
index 31802985a608d0468ce091296cf713cab0233679..42b02021b9203aa15ddac71c20631e317c7e790b 100644
--- a/cmake/configs/posix_eagle_legacy_driver_release.cmake
+++ b/cmake/configs/posix_eagle_legacy_driver_release.cmake
@@ -35,6 +35,7 @@ set(config_module_list
 	lib/geo
 	lib/geo_lookup
 	lib/conversion
+	lib/DriverFramework/framework
 
 	platforms/common
 	platforms/posix/px4_layer
diff --git a/cmake/configs/posix_eagle_muorb.cmake b/cmake/configs/posix_eagle_muorb.cmake
index 576ddd31932f0c94b31094ff4ac14e942e93666a..7da73985be5b02c16966eacaad94b07408564114 100644
--- a/cmake/configs/posix_eagle_muorb.cmake
+++ b/cmake/configs/posix_eagle_muorb.cmake
@@ -9,6 +9,8 @@ set(config_module_list
 
 	modules/uORB
 
+	lib/DriverFramework/framework
+
 	platforms/posix/px4_layer
 	platforms/posix/work_queue
 
diff --git a/cmake/configs/posix_eagle_release.cmake b/cmake/configs/posix_eagle_release.cmake
index 998c960f2b270aaabc286cc4268504d0b1724ba8..962517a8d40fd8e1a25e930dc58ee24c59cb5611 100644
--- a/cmake/configs/posix_eagle_release.cmake
+++ b/cmake/configs/posix_eagle_release.cmake
@@ -29,6 +29,7 @@ set(config_module_list
 	lib/geo
 	lib/geo_lookup
 	lib/conversion
+	lib/DriverFramework/framework
 
 	platforms/common
 	platforms/posix/px4_layer
diff --git a/cmake/configs/posix_rpi2_default.cmake b/cmake/configs/posix_rpi2_default.cmake
index fdc722a0e0a06e86360152496b4c1d5c69e4854b..071466b2245883c35a78619c826cb036a9d4d4f2 100644
--- a/cmake/configs/posix_rpi2_default.cmake
+++ b/cmake/configs/posix_rpi2_default.cmake
@@ -44,4 +44,5 @@ set(config_module_list
 	lib/terrain_estimation
 	lib/runway_takeoff
 	lib/tailsitter_recovery
+	lib/DriverFramework/framework
 )
diff --git a/cmake/configs/posix_rpi2_release.cmake b/cmake/configs/posix_rpi2_release.cmake
index b23b2ea58e0a5e4a79223ba5348032619e5ec66d..e42a1b8fd345a003f8aff408aba77154fb3ef575 100644
--- a/cmake/configs/posix_rpi2_release.cmake
+++ b/cmake/configs/posix_rpi2_release.cmake
@@ -53,4 +53,5 @@ set(config_module_list
 	lib/terrain_estimation
 	lib/runway_takeoff
 	lib/tailsitter_recovery
+	lib/DriverFramework/framework
 )
diff --git a/cmake/configs/posix_sitl_broadcast.cmake b/cmake/configs/posix_sitl_broadcast.cmake
index bd2591a6d88947601bd0aeec55ef6fd7bf35103d..2e92a2f08d3b97958b6f3d6beaf115c7bf5929b4 100644
--- a/cmake/configs/posix_sitl_broadcast.cmake
+++ b/cmake/configs/posix_sitl_broadcast.cmake
@@ -62,6 +62,7 @@ set(config_module_list
 	lib/terrain_estimation
 	lib/runway_takeoff
 	lib/tailsitter_recovery
+	lib/DriverFramework/framework
 	examples/px4_simple_app
 	)
 
diff --git a/cmake/configs/posix_sitl_default.cmake b/cmake/configs/posix_sitl_default.cmake
index bd2591a6d88947601bd0aeec55ef6fd7bf35103d..2e92a2f08d3b97958b6f3d6beaf115c7bf5929b4 100644
--- a/cmake/configs/posix_sitl_default.cmake
+++ b/cmake/configs/posix_sitl_default.cmake
@@ -62,6 +62,7 @@ set(config_module_list
 	lib/terrain_estimation
 	lib/runway_takeoff
 	lib/tailsitter_recovery
+	lib/DriverFramework/framework
 	examples/px4_simple_app
 	)
 
diff --git a/cmake/configs/posix_sitl_ekf2.cmake b/cmake/configs/posix_sitl_ekf2.cmake
index 26ca2fad5a489b69200fe76225f0a81e85d0e901..5cb53b3c223dac391344772cd100652f300d483f 100644
--- a/cmake/configs/posix_sitl_ekf2.cmake
+++ b/cmake/configs/posix_sitl_ekf2.cmake
@@ -61,6 +61,7 @@ set(config_module_list
 	lib/terrain_estimation
 	lib/runway_takeoff
 	lib/tailsitter_recovery
+	lib/DriverFramework/framework
 	examples/px4_simple_app
 	)
 
diff --git a/cmake/configs/posix_sitl_replay.cmake b/cmake/configs/posix_sitl_replay.cmake
index e2df0b43268ec1b9ca19408df1adf86560b51da4..959e389bdb2d4caf01523d2a956180c7f10c5637 100644
--- a/cmake/configs/posix_sitl_replay.cmake
+++ b/cmake/configs/posix_sitl_replay.cmake
@@ -25,6 +25,7 @@ set(config_module_list
 	lib/external_lgpl
 	lib/geo
 	lib/geo_lookup
+	lib/DriverFramework/framework
 	)
 
 set(config_extra_builtin_cmds
diff --git a/cmake/configs/qurt_eagle_default.cmake b/cmake/configs/qurt_eagle_default.cmake
index 69a7a6030b0d688a2587aa701f3e7a6070e358cb..50681c7d989152047577fe799b6f8383ae2acf9e 100644
--- a/cmake/configs/qurt_eagle_default.cmake
+++ b/cmake/configs/qurt_eagle_default.cmake
@@ -74,6 +74,7 @@ set(config_module_list
 	lib/terrain_estimation
 	lib/runway_takeoff
 	lib/tailsitter_recovery
+	lib/DriverFramework/framework
 
 	#
 	# QuRT port
diff --git a/cmake/configs/qurt_eagle_hil.cmake b/cmake/configs/qurt_eagle_hil.cmake
index 0770c767c01469f4e0f76a163c68eca2bfb0c3a2..784f438b1bfca4a9e97f8c0b61aeb65b074dce8f 100644
--- a/cmake/configs/qurt_eagle_hil.cmake
+++ b/cmake/configs/qurt_eagle_hil.cmake
@@ -59,6 +59,7 @@ set(config_module_list
 	lib/runway_takeoff
 	lib/tailsitter_recovery
 	lib/controllib
+	lib/DriverFramework/framework
 
 	#
 	# QuRT port
diff --git a/cmake/configs/qurt_eagle_legacy_driver_default.cmake b/cmake/configs/qurt_eagle_legacy_driver_default.cmake
index 4962896ed9abde9085605a9432d7b484bcb1ad1e..562f3583dd067df0e6a916cf47f7faa989792f95 100644
--- a/cmake/configs/qurt_eagle_legacy_driver_default.cmake
+++ b/cmake/configs/qurt_eagle_legacy_driver_default.cmake
@@ -77,6 +77,7 @@ set(config_module_list
 	lib/terrain_estimation
 	lib/runway_takeoff
 	lib/tailsitter_recovery
+	lib/DriverFramework/framework
 
 	#
 	# QuRT port
diff --git a/cmake/configs/qurt_eagle_legacy_driver_release.cmake b/cmake/configs/qurt_eagle_legacy_driver_release.cmake
index 4e8d3ae774d5d4d8661413d1e63ef0098b15eba2..37d7132f83f56df1eeff2247ded4dd85376a8b5c 100644
--- a/cmake/configs/qurt_eagle_legacy_driver_release.cmake
+++ b/cmake/configs/qurt_eagle_legacy_driver_release.cmake
@@ -87,6 +87,7 @@ set(config_module_list
 	lib/terrain_estimation
 	lib/runway_takeoff
 	lib/tailsitter_recovery
+	lib/DriverFramework/framework
 
 	#
 	# QuRT port
diff --git a/cmake/configs/qurt_eagle_muorb.cmake b/cmake/configs/qurt_eagle_muorb.cmake
index 285d804d7028e4ec705fb65e1f13ca6a589a5a53..bf836acc74d6d207c08c36d155c561b3092839a1 100644
--- a/cmake/configs/qurt_eagle_muorb.cmake
+++ b/cmake/configs/qurt_eagle_muorb.cmake
@@ -33,6 +33,7 @@ set(config_module_list
 	lib/geo
 	lib/geo_lookup
 	lib/conversion
+	lib/DriverFramework/framework
 
 	#
 	# QuRT port
diff --git a/cmake/configs/qurt_eagle_release.cmake b/cmake/configs/qurt_eagle_release.cmake
index 62619a4b15c7f17d35a26e41dfda4b6c583ecc30..5cab38426a5165b058f60137022706d855854f32 100644
--- a/cmake/configs/qurt_eagle_release.cmake
+++ b/cmake/configs/qurt_eagle_release.cmake
@@ -83,6 +83,7 @@ set(config_module_list
 	lib/terrain_estimation
 	lib/runway_takeoff
 	lib/tailsitter_recovery
+	lib/DriverFramework/framework
 
 	#
 	# QuRT port
diff --git a/cmake/configs/qurt_eagle_test.cmake b/cmake/configs/qurt_eagle_test.cmake
index 1597d7f4f2f5758ab6cf19522b2eb2005268d521..b80251ec6da21d0b75d7613e1acc4de6d47602cc 100644
--- a/cmake/configs/qurt_eagle_test.cmake
+++ b/cmake/configs/qurt_eagle_test.cmake
@@ -31,6 +31,7 @@ set(config_module_list
 	lib/mathlib
 	lib/mathlib/math/filter
 	lib/conversion
+	lib/DriverFramework/framework
 
 	#
 	# QuRT port
diff --git a/cmake/configs/qurt_eagle_travis.cmake b/cmake/configs/qurt_eagle_travis.cmake
index 332fbcb1a458b266ed600297d0909b52a2538933..778d434bac9d80e5df5b2551328e1b3f41218092 100644
--- a/cmake/configs/qurt_eagle_travis.cmake
+++ b/cmake/configs/qurt_eagle_travis.cmake
@@ -67,6 +67,7 @@ set(config_module_list
 	lib/terrain_estimation
 	lib/runway_takeoff
 	lib/tailsitter_recovery
+	lib/DriverFramework/framework
 
 	#
 	# QuRT port
diff --git a/cmake/nuttx/px4_impl_nuttx.cmake b/cmake/nuttx/px4_impl_nuttx.cmake
index fb0b81711d574158e5bc572aa3e659408444c9f8..51e8e5e6a9bac8a06766594dfe99e0198d1fc972 100644
--- a/cmake/nuttx/px4_impl_nuttx.cmake
+++ b/cmake/nuttx/px4_impl_nuttx.cmake
@@ -500,8 +500,6 @@ function(px4_os_add_flags)
 		#message(STATUS "nuttx: set(${${var}} ${${${var}}} ${added_${lower_var}} PARENT_SCOPE)")
 	endforeach()
 
-	set(DF_TARGET "nuttx" PARENT_SCOPE)
-
 endfunction()
 
 #=============================================================================
diff --git a/cmake/qurt/px4_impl_qurt.cmake b/cmake/qurt/px4_impl_qurt.cmake
index 1171d7fd6f85c61e9f74a605b469b20caed1d28e..efb1135d7be4bb094c54090447a4b455a75517a1 100644
--- a/cmake/qurt/px4_impl_qurt.cmake
+++ b/cmake/qurt/px4_impl_qurt.cmake
@@ -177,8 +177,6 @@ function(px4_os_add_flags)
 	set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
 	set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "")
 
-	set(DF_TARGET "qurt" PARENT_SCOPE)
-
 	# output
 	foreach(var ${inout_vars})
 		string(TOLOWER ${var} lower_var)
diff --git a/src/firmware/nuttx/CMakeLists.txt b/src/firmware/nuttx/CMakeLists.txt
index 2b24b477b5dfc82a3a9d57600729c986a39d0e74..926d331ec149a510ade4de7363e5b9e2b311e186 100644
--- a/src/firmware/nuttx/CMakeLists.txt
+++ b/src/firmware/nuttx/CMakeLists.txt
@@ -13,7 +13,7 @@ add_executable(firmware_nuttx
 set(nuttx_export_dir ${CMAKE_BINARY_DIR}/${BOARD}/NuttX/nuttx-export)
 
 set(link_libs
-	romfs apps nuttx m gcc df_driver_framework
+	romfs apps nuttx m gcc
 	)
 
 if(NOT ${BOARD} STREQUAL "sim")
@@ -29,6 +29,7 @@ endif()
 target_link_libraries(firmware_nuttx
 	-Wl,--start-group
 	${module_libraries}
+	${df_driver_libs}
 	${config_extra_libs}
 	${link_libs}
 	-Wl,--end-group)
diff --git a/src/firmware/posix/CMakeLists.txt b/src/firmware/posix/CMakeLists.txt
index fd67d4f2d94d46ae2323fedf7b45f927571a64f9..dba2359262c8020b9be636ba117f20a616cb7189 100644
--- a/src/firmware/posix/CMakeLists.txt
+++ b/src/firmware/posix/CMakeLists.txt
@@ -17,17 +17,16 @@ if ("${BOARD}" STREQUAL "eagle")
 		IDL_NAME px4muorb
 		APPS_DEST "/home/linaro"
 		SOURCES
-		px4muorb_stub.c
-		${CMAKE_SOURCE_DIR}/src/platforms/posix/main.cpp
-		apps.h
+			px4muorb_stub.c
+			${CMAKE_SOURCE_DIR}/src/platforms/posix/main.cpp
+			apps.h
 		LINK_LIBS
-		-Wl,--start-group
-		${module_libraries}
-		df_driver_framework
-		${df_driver_libs}
-		${FASTRPC_ARM_LIBS}
-		pthread m rt
-		-Wl,--end-group
+			-Wl,--start-group
+			${module_libraries}
+			${df_driver_libs}
+			${FASTRPC_ARM_LIBS}
+			pthread m rt
+			-Wl,--end-group
 		)
 
 	px4_add_adb_push(OUT upload
@@ -47,7 +46,6 @@ else()
 		target_link_libraries(mainapp
 			-Wl,--start-group
 			${module_libraries}
-			df_driver_framework
 			${df_driver_libs}
 			pthread m rt
 			-Wl,--end-group
@@ -55,7 +53,6 @@ else()
 	else()
 		target_link_libraries(mainapp
 			${module_libraries}
-			df_driver_framework
 			${df_driver_libs}
 			pthread m
 			)
diff --git a/src/firmware/qurt/CMakeLists.txt b/src/firmware/qurt/CMakeLists.txt
index 2d7fb8c90becc4b780bf66fa075747224c82ad37..29046e54bb2ba441251c6865fe92a05cad6140e2 100644
--- a/src/firmware/qurt/CMakeLists.txt
+++ b/src/firmware/qurt/CMakeLists.txt
@@ -27,7 +27,6 @@ if ("${QURT_ENABLE_STUBS}" STREQUAL "1")
 		-Wl,--start-group
 		${module_libraries}
                 ${target_libraries}
-                df_driver_framework
                 ${df_driver_libs}
 		-Wl,--end-group
 		)
@@ -44,7 +43,6 @@ else()
 		LINK_LIBS
 			${module_libraries}
 			${target_libraries}
-			df_driver_framework
 			${df_driver_libs}
 			m
 		)
diff --git a/src/lib/DriverFramework b/src/lib/DriverFramework
index 360197265628a79429a0c828c7ded81157a6b1cf..0b57c455e4eb789f5132c46af958517eada55cb5 160000
--- a/src/lib/DriverFramework
+++ b/src/lib/DriverFramework
@@ -1 +1 @@
-Subproject commit 360197265628a79429a0c828c7ded81157a6b1cf
+Subproject commit 0b57c455e4eb789f5132c46af958517eada55cb5