diff --git a/.gitignore b/.gitignore
index 66def218d5983d03d2cc9238aa3bf05391171e22..cbff308c869acc7d759f2bbddb33a8bbf78dd051 100644
--- a/.gitignore
+++ b/.gitignore
@@ -64,14 +64,10 @@ cmake-build-*/
 
 posix-configs/SITL/init/test/*_generated
 
-parameters.md
-airframes.md
-airframes.xml
+/airframes.md
+/airframes.xml
+/parameters.md
+/parameters.xml
 /modules
 
-cppcheck-result.xml
-cppcheck
-
-scan-build
-
 *.gcov
diff --git a/.travis.yml b/.travis.yml
index edb9663faada16f324a016c41ba7cef15919a9b6..af80f56597f8a9bd9bf4d752c68f0faa834bbdae 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,11 @@
 # Build and autotest script for PX4 Firmware
 # http://travis-ci.org
 
+sudo: required
+
+services:
+  - docker
+
 language: cpp
 
 git:
@@ -9,8 +14,8 @@ git:
 
 env:
   global:
-    # COVERITY KEY
-    - secure: "NyaJoCGjU0Xc90Y6bxVYWLgjrJX5HlZsm/SPxruZ6I7xkGo19fJIFzGegOHQFR32D4AiKjllfjTUNy+ncckWplind0QwxtF4/kxXrz9XBfiby6X8jLYXIekrB6Ay0mBLGbniDdh+lpWtcyop6Dmkt5bdJCJuKY2nv9ENnhhs07M="
+    # COVERITY_SCAN_TOKEN
+    - secure: "Q4IAcmo1r5cr/UvhcixQa6QN5e5eTcP7FeidzEbX2+BA38yo2BH5O9YQCvZe2AI1Na8ZCjVx3H2luGgDwOKgzAIAjXjZ2KbmXYc6Ns/j/BXScY05dCCzYEhXKD98NZxIKH9lLN9pYDGRA8pChGRJnVlFOr1JHHHnB801+osHy7M="
     # AWS KEY: $PX4_AWS_KEY
     - secure: "XknnZHWBbpHbN4f3fuAVwUztdLIu8ej4keC3aQSDofo3uw8AFEzojfsQsN9u77ShWSIV4iYJWh9C9ALkCx7TocJ+xYjiboo10YhM9lH/8u+EXjYWG6GHS8ua0wkir+cViSxoLNaMtmcb/rPTicJecAGANxLsIHyBAgTL3fkbLSA="
     # AWS SECRET: $PX4_AWS_SECRET
@@ -19,52 +24,22 @@ env:
 matrix:
   fast_finish: true
   include:
-    - os: linux
-      sudo: required
-      services:
-        - docker
-      env: BUILD_TARGET=check_format
-    - os: linux
-      sudo: required
-      services:
-        - docker
-      env: BUILD_TARGET=tests
-    - os: linux
-      sudo: required
-      services:
-        - docker
-      env: BUILD_TARGET=tests_asan
-    - os: linux
-      sudo: required
-      services:
-        - docker
-      env: BUILD_TARGET=tests_coverage
-    - os: linux
-      sudo: required
-      services:
-        - docker
-      env: BUILD_TARGET=clang-tidy
-    - os: linux
-      sudo: required
-      services:
-        - docker
-      env: BUILD_TARGET=scan-build
-    - os: linux
-      sudo: required
-      services:
-        - docker
-      env: BUILD_TARGET=cppcheck
-    - os: linux
-      sudo: required
-      services:
-        - docker
-      env: BUILD_TARGET=px4_metadata
-    - os: linux
+    - env: BUILD_TARGET=check_format
+    - env: BUILD_TARGET=check_stack
+    - env: BUILD_TARGET=clang-tidy-quiet
+    - env: BUILD_TARGET=cppcheck
+    - env: BUILD_TARGET=px4_metadata
+    - env: BUILD_TARGET=scan-build
+    - env: BUILD_TARGET=tests
+    - env: BUILD_TARGET=tests PX4_ASAN=1
+    - env: BUILD_TARGET=tests PX4_UBSAN=1
+    - env: BUILD_TARGET=tests_coverage
+    - env: BUILD_TARGET=coverity_scan
       dist: trusty
-      sudo: required
-      env: BUILD_TARGET=coverity_scan
+      if: branch = coverity_scan
   allow_failures:
-    - env: BUILD_TARGET=tests_asan
+    - env: BUILD_TARGET=tests PX4_ASAN=1
+    - env: BUILD_TARGET=tests PX4_UBSAN=1
     - env: BUILD_TARGET=tests_coverage
 
 cache:
@@ -72,70 +47,37 @@ cache:
 
 before_install:
   # install dependencies for the coverity build (target and branch), otherwise exit early
-  - if [[ "${TRAVIS_BRANCH}" = "coverity" ]]; then
-      if [[ "${BUILD_TARGET}" = "coverity_scan" ]]; then sudo apt-get install genromfs && pip install empy jinja2; else exit 0; fi;
+  - if [[ "${TRAVIS_BRANCH}" = "coverity_scan" ]]; then
+      if [[ "${BUILD_TARGET}" = "coverity_scan" ]]; then
+        sudo apt-get install python-empy python-jinja2;
+        echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-;
+      else
+        exit 0;
+      fi
     fi
   # use git:// to fetch instead of https://
   - git config --global url."git://".insteadOf https://
 
 script:
-  - if [[ "${BUILD_TARGET}" = "coverity_scan" ]]; then
-      echo "no script for coverity build";
-
-    elif [[ "${TRAVIS_BRANCH}" = "coverity" ]]; then
-      echo "exit early for coverity build" && exit 0;
-
-    elif [[ "${BUILD_TARGET}" = "check_format" ]]; then
-      ./Tools/docker_run.sh 'make check_format';
-
-    elif [[ "${BUILD_TARGET}" = "tests" ]]; then
-      ./Tools/docker_run.sh 'make tests';
-
-    elif [[ "${BUILD_TARGET}" = "tests_coverage" ]]; then
-      ./Tools/docker_run.sh 'make tests_coverage' && bash <(curl -s https://codecov.io/bash) -F unittests;
-
-    elif [[ "${BUILD_TARGET}" = "tests_asan" ]]; then
-      ./Tools/docker_run.sh 'PX4_ASAN=1 make tests';
-
-    elif [[ "${BUILD_TARGET}" = "px4_metadata" ]]; then
-      ./Tools/docker_run.sh 'make px4_metadata';
-
-    elif [[ "${BUILD_TARGET}" = "clang-tidy" ]]; then
-      ./Tools/docker_run.sh 'make clang-tidy-quiet';
-
+  - if [[ "${BUILD_TARGET}" != "coverity_scan" ]]; then
+      ./Tools/docker_run.sh make ${BUILD_TARGET};
     fi
 
 after_success:
-  # s3 upload airframe and parameter metadata
-  - if [[ "${BUILD_TARGET}" = "px4_metadata" && "${TRAVIS_PULL_REQUEST}" = "false" ]]; then
-         ./Tools/docker_run.sh 'make s3put_metadata AWS_S3_BUCKET="px4-travis/Firmware/${TRAVIS_BRANCH}"';
-    fi
-  # s3 upload clang scan-build output for master branch
-  - if [[ "${BUILD_TARGET}" = "scan-build" && "${TRAVIS_PULL_REQUEST}" = "false" ]]; then
-         ./Tools/docker_run.sh 'make s3put_scan-build AWS_S3_BUCKET="px4-travis/Firmware/${TRAVIS_BRANCH}/scan-build"';
-    fi
-  # s3 upload cppcheck output for master branch
-  - if [[ "${BUILD_TARGET}" = "cppcheck" && "${TRAVIS_PULL_REQUEST}" = "false" ]]; then
-         ./Tools/docker_run.sh 'make s3put_cppcheck AWS_S3_BUCKET="px4-travis/Firmware/${TRAVIS_BRANCH}/cppcheck"';
+  # upload metadata and static analysis to s3
+  - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then
+      [ "${BUILD_TARGET}" = "px4_metadata" ] && ./Tools/docker_run.sh 'make s3put_metadata AWS_S3_BUCKET="px4-travis/Firmware/${TRAVIS_BRANCH}"';
+      [ "${BUILD_TARGET}" = "scan-build" ] && ./Tools/docker_run.sh 'make s3put_scan-build AWS_S3_BUCKET="px4-travis/Firmware/${TRAVIS_BRANCH}/scan-build"';
+      [ "${BUILD_TARGET}" = "cppcheck" ] && ./Tools/docker_run.sh 'make s3put_cppcheck AWS_S3_BUCKET="px4-travis/Firmware/${TRAVIS_BRANCH}/cppcheck"';
+      [ "${BUILD_TARGET}" = "tests_coverage" ] && bash <(curl -s https://codecov.io/bash) -F unittests;
     fi
 
 addons:
   coverity_scan:
     project:
-      name: PX4/Firmware
+      name: "PX4/Firmware"
+      description: "Build submitted via Travis CI"
     notification_email: ci@px4.io
-    build_command: make posix_sitl_default
-    branch_pattern: coverity
-
-notifications:
-  webhooks:
-    urls:
-      - https://webhooks.gitter.im/e/2b9c4a4cb2211f8befba
-    on_success: always  # options: [always|never|change] default: always
-    on_failure: always  # options: [always|never|change] default: always
-  slack:
-    rooms:
-      - secure: "QKw73Zel/s3JAbe/7XyO9tPnJwiiGFpYzSjdR8lG3tYFjRdXZnhxG4c+G7bkgkaPTS4Hult33VXE3kcEqOI7+C+eRwRlZhDfL0knQbXVCxjcLjzmUFdoPOwurlgZDw66PFWCi5tZcLKSRo3u4U8ibT4WKi3jm9sDSyOcfBAucMU="
-    on_pull_requests: false
-    on_success: never  # options: [always|never|change] default: always
-    on_failure: never  # options: [always|never|change] default: always
+    build_command_prepend: "make distclean"
+    build_command: "make posix_sitl_default"
+    branch_pattern: coverity_scan
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e0fb889ed5baadb4e19d03b61d9ff0de2d987e3b..510c94de4d2d76f258694a2b18961bf66dd2685b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -128,7 +128,7 @@ string(REPLACE "_" ";" config_args ${CONFIG})
 list(GET config_args 0 OS)
 list(GET config_args 1 BOARD)
 list(GET config_args 2 LABEL)
-set(target_name "${OS}-${BOARD}-${LABEL}")
+set(target_name "${OS}_${BOARD}_${LABEL}")
 
 file(GLOB_RECURSE configs RELATIVE cmake/configs "cmake/configs/*.cmake")
 set_property(CACHE CONFIG PROPERTY STRINGS ${configs})
diff --git a/Makefile b/Makefile
index 996c7d93dcf74af347181766a28ffcc1e750f5a0..ec8b6e524485a3a94686258da3f68761589c6228 100644
--- a/Makefile
+++ b/Makefile
@@ -108,8 +108,6 @@ else
 endif
 
 # additional config parameters passed to cmake
-CMAKE_ARGS += -Wno-deprecated
-
 ifdef EXTERNAL_MODULES_LOCATION
 	CMAKE_ARGS += -DEXTERNAL_MODULES_LOCATION:STRING=$(EXTERNAL_MODULES_LOCATION)
 endif
@@ -124,7 +122,7 @@ endif
 define cmake-build
 +@$(eval BUILD_DIR = $(SRC_DIR)/build/$@$(BUILD_DIR_SUFFIX))
 +@if [ $(PX4_CMAKE_GENERATOR) = "Ninja" ] && [ -e $(BUILD_DIR)/Makefile ]; then rm -rf $(BUILD_DIR); fi
-+@if [ ! -e $(BUILD_DIR)/CMakeCache.txt ]; then mkdir -p $(BUILD_DIR) && cd $(BUILD_DIR) && cmake $(2)  -G"$(PX4_CMAKE_GENERATOR)" -DCONFIG=$(1) $(CMAKE_ARGS) || (rm -rf $(BUILD_DIR)); fi
++@if [ ! -e $(BUILD_DIR)/CMakeCache.txt ]; then mkdir -p $(BUILD_DIR) && cd $(BUILD_DIR) && cmake $(2) -G"$(PX4_CMAKE_GENERATOR)" $(CMAKE_ARGS) -DCONFIG=$(1) || (rm -rf $(BUILD_DIR)); fi
 +@(cd $(BUILD_DIR) && $(PX4_MAKE) $(PX4_MAKE_ARGS) $(ARGS))
 endef
 
@@ -135,8 +133,8 @@ define colorecho
 +@echo "${COLOR_BLUE}${1} ${NO_COLOR}"
 endef
 
-# Get a list of all config targets.
-ALL_CONFIG_TARGETS := $(basename $(shell find "$(SRC_DIR)/cmake/configs" ! -name '*_common*' ! -name '*_sdflight_*' -name '*.cmake' -print | sed  -e 's:^.*/::' | sort))
+# Get a list of all config targets cmake/configs/*.cmake
+ALL_CONFIG_TARGETS := $(basename $(shell find "$(SRC_DIR)/cmake/configs" -maxdepth 1 ! -name '*_common*' ! -name '*_sdflight_*' -name '*.cmake' -print | sed  -e 's:^.*/::' | sort))
 # Strip off leading nuttx_
 NUTTX_CONFIG_TARGETS := $(patsubst nuttx_%,%,$(filter nuttx_%,$(ALL_CONFIG_TARGETS)))
 
@@ -176,11 +174,10 @@ excelsior_legacy_default: posix_excelsior_legacy qurt_excelsior_legacy
 # Other targets
 # --------------------------------------------------------------------
 
-.PHONY: qgc_firmware px4fmu_firmware misc_qgc_extra_firmware alt_firmware
-.PHONY: sizes check quick_check check_rtps
+.PHONY: qgc_firmware px4fmu_firmware misc_qgc_extra_firmware alt_firmware check_rtps
 
 # QGroundControl flashable NuttX firmware
-qgc_firmware: px4fmu_firmware misc_qgc_extra_firmware sizes
+qgc_firmware: px4fmu_firmware misc_qgc_extra_firmware
 
 # px4fmu NuttX firmware
 px4fmu_firmware: \
@@ -221,6 +218,8 @@ check_rtps: \
 	check_posix_sitl_rtps \
 	sizes
 
+.PHONY: sizes check quick_check check_rtps
+
 sizes:
 	@-find build -name *.elf -type f | xargs size 2> /dev/null || :
 
@@ -228,7 +227,7 @@ sizes:
 check: check_posix_sitl_default px4fmu_firmware misc_qgc_extra_firmware alt_firmware tests check_format
 
 # quick_check builds a single nuttx and posix target, runs testing, and checks the style
-quick_check: check_posix_sitl_default check_px4fmu-v3_default tests check_format
+quick_check: check_posix_sitl_default check_px4fmu-v4pro_default tests check_format
 
 check_%:
 	@echo
@@ -240,8 +239,9 @@ check_%:
 # --------------------------------------------------------------------
 .PHONY: parameters_metadata airframe_metadata module_documentation px4_metadata
 
-parameters_metadata: posix_sitl_default
-	@python $(SRC_DIR)/Tools/px_process_params.py -s $(SRC_DIR)/src --markdown
+parameters_metadata:
+	@python $(SRC_DIR)/Tools/px_process_params.py -s `find $(SRC_DIR)/src -maxdepth 3 -type d` --inject-xml $(SRC_DIR)/Tools/parameters_injected.xml --markdown
+	@python $(SRC_DIR)/Tools/px_process_params.py -s `find $(SRC_DIR)/src -maxdepth 3 -type d` --inject-xml $(SRC_DIR)/Tools/parameters_injected.xml --xml
 
 airframe_metadata:
 	@python $(SRC_DIR)/Tools/px_process_airframes.py -v -a $(SRC_DIR)/ROMFS/px4fmu_common/init.d --markdown
@@ -260,13 +260,6 @@ px4_metadata: parameters_metadata airframe_metadata module_documentation
 #  AWS_S3_BUCKET
 .PHONY: s3put_firmware s3put_qgc_firmware s3put_px4fmu_firmware s3put_misc_qgc_extra_firmware s3put_metadata s3put_scan-build s3put_cppcheck s3put_coverage
 
-Firmware.zip:
-	@rm -rf Firmware.zip
-	@zip --junk-paths Firmware.zip `find . -name \*.px4`
-
-s3put_firmware: Firmware.zip
-	$(SRC_DIR)/Tools/s3put.sh Firmware.zip
-
 s3put_qgc_firmware: s3put_px4fmu_firmware s3put_misc_qgc_extra_firmware
 
 s3put_px4fmu_firmware: px4fmu_firmware
@@ -278,17 +271,17 @@ s3put_misc_qgc_extra_firmware: misc_qgc_extra_firmware
 s3put_metadata: px4_metadata
 	@$(SRC_DIR)/Tools/s3put.sh airframes.md
 	@$(SRC_DIR)/Tools/s3put.sh airframes.xml
-	@$(SRC_DIR)/Tools/s3put.sh build/posix_sitl_default/parameters.xml
+	@$(SRC_DIR)/Tools/s3put.sh parameters.xml
 	@$(SRC_DIR)/Tools/s3put.sh parameters.md
 
 s3put_scan-build: scan-build
-	@cd $(SRC_DIR) && ./Tools/s3put.sh `find build/scan-build -mindepth 1 -maxdepth 1 -type d`/
+	@$(SRC_DIR)/Tools/s3put.sh `find $(SRC_DIR)/build/scan-build -mindepth 1 -maxdepth 1 -type d`/
 
 s3put_cppcheck: cppcheck
-	@cd $(SRC_DIR) && ./Tools/s3put.sh cppcheck/
+	@$(SRC_DIR)/Tools/s3put.sh $(SRC_DIR)/build/cppcheck/
 
 s3put_coverage: tests_coverage
-	@cd $(SRC_DIR) && ./Tools/s3put.sh build/posix_sitl_default/coverage-html/
+	@$(SRC_DIR)/Tools/s3put.sh $(SRC_DIR)/build/posix_sitl_default/coverage-html/
 
 # Astyle
 # --------------------------------------------------------------------
@@ -297,7 +290,7 @@ s3put_coverage: tests_coverage
 check_format:
 	$(call colorecho,"Checking formatting with astyle")
 	@$(SRC_DIR)/Tools/astyle/check_code_style_all.sh
-	@git diff --check
+	@cd $(SRC_DIR) && git diff --check
 
 format:
 	$(call colorecho,"Formatting with astyle")
@@ -308,19 +301,17 @@ format:
 .PHONY: tests tests_coverage
 
 tests:
-	$(MAKE) --no-print-directory posix_sitl_default test_results ASAN_OPTIONS="color=always"
+	@$(MAKE) --no-print-directory posix_sitl_default test_results \
+	ASAN_OPTIONS="color=always:check_initialization_order=1:detect_stack_use_after_return=1" \
+	UBSAN_OPTIONS="color=always"
 
 tests_coverage:
 	@$(MAKE) --no-print-directory posix_sitl_default test_coverage_genhtml PX4_CMAKE_BUILD_TYPE=Coverage
+	@echo "Open $(SRC_DIR)/build/posix_sitl_default/coverage-html/index.html to see coverage"
 
 # static analyzers (scan-build, clang-tidy, cppcheck)
 # --------------------------------------------------------------------
-.PHONY: posix_sitl_default-clang scan-build clang-tidy clang-tidy-fix clang-tidy-quiet cppcheck check_stack
-
-posix_sitl_default-clang:
-	@mkdir -p $(SRC_DIR)/build/posix_sitl_default-clang
-	@cd $(SRC_DIR)/build/posix_sitl_default-clang && cmake $(SRC_DIR) -GNinja -DCONFIG=posix_sitl_default -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
-	@cd $(SRC_DIR)/build/posix_sitl_default-clang && ninja
+.PHONY: scan-build posix_sitl_default-clang clang-tidy clang-tidy-fix clang-tidy-quiet cppcheck check_stack
 
 scan-build:
 	@export CCC_CC=clang
@@ -329,32 +320,38 @@ scan-build:
 	@cd $(SRC_DIR)/build/posix_sitl_default-scan-build && scan-build cmake $(SRC_DIR) -GNinja -DCONFIG=posix_sitl_default
 	@scan-build -o $(SRC_DIR)/build/scan-build cmake --build $(SRC_DIR)/build/posix_sitl_default-scan-build
 
+posix_sitl_default-clang:
+	@mkdir -p $(SRC_DIR)/build/posix_sitl_default-clang
+	@cd $(SRC_DIR)/build/posix_sitl_default-clang && cmake $(SRC_DIR) $(CMAKE_ARGS) -G"$(PX4_CMAKE_GENERATOR)" -DCONFIG=posix_sitl_default -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
+	@$(PX4_MAKE) -C $(SRC_DIR)/build/posix_sitl_default-clang
+
 clang-tidy: posix_sitl_default-clang
-	@cd build/posix_sitl_default-clang && run-clang-tidy-4.0.py -header-filter=".*\.hpp" -j$(j) -p .
+	@cd $(SRC_DIR)/build/posix_sitl_default-clang && run-clang-tidy-4.0.py -header-filter=".*\.hpp" -j$(j) -p .
 
 # to automatically fix a single check at a time, eg modernize-redundant-void-arg
 #  % run-clang-tidy-4.0.py -fix -j4 -checks=-\*,modernize-redundant-void-arg -p .
 clang-tidy-fix: posix_sitl_default-clang
-	@cd build/posix_sitl_default-clang && run-clang-tidy-4.0.py -header-filter=".*\.hpp" -j$(j) -fix -p .
+	@cd $(SRC_DIR)/build/posix_sitl_default-clang && run-clang-tidy-4.0.py -header-filter=".*\.hpp" -j$(j) -fix -p .
 
 # modified version of run-clang-tidy.py to return error codes and only output relevant results
 clang-tidy-quiet: posix_sitl_default-clang
-	@cd build/posix_sitl_default-clang && $(SRC_DIR)/Tools/run-clang-tidy.py -header-filter=".*\.hpp" -j$(j) -p .
+	@cd $(SRC_DIR)/build/posix_sitl_default-clang && $(SRC_DIR)/Tools/run-clang-tidy.py -header-filter=".*\.hpp" -j$(j) -p .
 
 # TODO: Fix cppcheck errors then try --enable=warning,performance,portability,style,unusedFunction or --enable=all
 cppcheck: posix_sitl_default
-	@cppcheck -i$(SRC_DIR)/src/examples --std=c++11 --std=c99 --std=posix --project=build/posix_sitl_default/compile_commands.json --xml-version=2 2> cppcheck-result.xml
-	@cppcheck-htmlreport --source-encoding=ascii --file=cppcheck-result.xml --report-dir=cppcheck --source-dir=$(SRC_DIR)/src/
+	@mkdir -p $(SRC_DIR)/build/cppcheck
+	@cppcheck -i$(SRC_DIR)/src/examples --enable=performance --std=c++11 --std=c99 --std=posix --project=$(SRC_DIR)/build/posix_sitl_default/compile_commands.json --xml-version=2 2> $(SRC_DIR)/build/cppcheck/cppcheck-result.xml > /dev/null
+	@cppcheck-htmlreport --source-encoding=ascii --file=$(SRC_DIR)/build/cppcheck/cppcheck-result.xml --report-dir=$(SRC_DIR)/build/cppcheck --source-dir=$(SRC_DIR)/src/
 
-check_stack: px4fmu-v3_default
+check_stack: px4fmu-v4pro_default
 	@echo "Checking worst case stack usage with checkstack.pl ..."
 	@echo " "
 	@echo "Top 10:"
-	@cd build/px4fmu-v3_default/ && mkdir -p stack_usage && arm-none-eabi-objdump -d nuttx_px4fmu-v3_default.elf | $(SRC_DIR)/Tools/stack_usage/checkstack.pl arm 0 > stack_usage/checkstack_output.txt 2> stack_usage/checkstack_errors.txt
-	@head -n 10 build/px4fmu-v3_default/stack_usage/checkstack_output.txt | c++filt
+	@cd $(SRC_DIR)/build/px4fmu-v4pro_default && mkdir -p stack_usage && arm-none-eabi-objdump -d nuttx_px4fmu-v4pro_default.elf | $(SRC_DIR)/Tools/stack_usage/checkstack.pl arm 0 > stack_usage/checkstack_output.txt 2> stack_usage/checkstack_errors.txt
+	@head -n 10 $(SRC_DIR)/build/px4fmu-v4pro_default/stack_usage/checkstack_output.txt | c++filt
 	@echo " "
 	@echo "Symbols with 'main', 'thread' or 'task':"
-	@cat build/px4fmu-v3_default/stack_usage/checkstack_output.txt | c++filt | grep -E 'thread|main|task'
+	@cat $(SRC_DIR)/build/px4fmu-v4pro_default/stack_usage/checkstack_output.txt | c++filt | grep -E 'thread|main|task'
 
 # Cleanup
 # --------------------------------------------------------------------
@@ -387,8 +384,6 @@ distclean: submodulesclean gazeboclean
 	$(if $(filter $(FIRST_ARG),$@), \
 		$(error "$@ cannot be the first argument. Use '$(MAKE) help|list_config_targets' to get a list of all possible [configuration] targets."),@#)
 
-CONFIGS:=$(shell ls cmake/configs | sed -e "s~.*/~~" | sed -e "s~\..*~~")
-
 #help:
 #	@echo
 #	@echo "Type 'make ' and hit the tab key twice to see a list of the available"
diff --git a/Tools/docker_run.sh b/Tools/docker_run.sh
index 594e1953a1dfe51d530c2daa76a40771ae6334e4..9bf8642c3c3a96403391b83f312b80062b19052c 100755
--- a/Tools/docker_run.sh
+++ b/Tools/docker_run.sh
@@ -59,9 +59,13 @@ docker run -it --rm -w "${SRC_DIR}" \
 	--env=CODECOV_TOKEN \
 	--env=COVERALLS_REPO_TOKEN \
 	--env=LOCAL_USER_ID="$(id -u)" \
+	--env=PX4_ASAN \
+	--env=PX4_MSAN \
+	--env=PX4_TSAN \
+	--env=PX4_UBSAN \
 	--env=TRAVIS_BRANCH \
 	--env=TRAVIS_BUILD_ID \
 	--publish 14556:14556/udp \
 	--volume=${CCACHE_DIR}:${CCACHE_DIR}:rw \
 	--volume=${SRC_DIR}:${SRC_DIR}:rw \
-	${PX4_DOCKER_REPO} /bin/bash -c "$@"
+	${PX4_DOCKER_REPO} /bin/bash -c "$1 $2 $3"
diff --git a/Tools/px_process_airframes.py b/Tools/px_process_airframes.py
index 1adf977fa87c73d0728caab78978c9ad8526192d..de7cc9576f356e3657a166797f963599fbca3a0f 100755
--- a/Tools/px_process_airframes.py
+++ b/Tools/px_process_airframes.py
@@ -64,10 +64,10 @@ def main():
                              " (default FILENAME: airframes.xml)")
     parser.add_argument("-m", "--markdown",
                         nargs='?',
-                        const="airframe_reference.md",
+                        const="airframes.md",
                         metavar="FILENAME",
                         help="Create Markdown file"
-                             " (default FILENAME: airframes_reference.md)")
+                             " (default FILENAME: airframes.md)")
     default_image_path = '../../assets/airframes/types'
     parser.add_argument("-i", "--image-path",
                         default=default_image_path,
diff --git a/cmake/common/sanitizers.cmake b/cmake/common/sanitizers.cmake
index d62565c3652068462ec32fce62699208c8113b75..4b93d6d2eef1e9b45ca1bd9c23aa280f8e52e39c 100644
--- a/cmake/common/sanitizers.cmake
+++ b/cmake/common/sanitizers.cmake
@@ -47,7 +47,7 @@ elseif(DEFINED ENV{PX4_UBSAN})
 endif()
 
 if (SANITIZE_ADDRESS)
-        message(STATUS "address sanitizer enabled")
+        message(STATUS "AddressSanitizer enabled")
 
         # environment variables
         #  ASAN_OPTIONS=detect_stack_use_after_return=1
@@ -56,20 +56,22 @@ if (SANITIZE_ADDRESS)
                 -g3
                 -fno-omit-frame-pointer
                 -fsanitize=address
-                #-fsanitize-address-use-after-scope
+		#-fsanitize-address-use-after-scope
+		-fno-optimize-sibling-calls
         )
         set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address" CACHE INTERNAL "" FORCE)
 
 elseif(SANITIZE_MEMORY)
-        message(STATUS "thread sanitizer enabled")
+        message(STATUS "MemorySanitizer enabled")
 
         add_compile_options(
                 -g3
                 -fsanitize=memory
         )
+	set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=memory" CACHE INTERNAL "" FORCE)
 
 elseif(SANITIZE_THREAD)
-        message(STATUS "thread sanitizer enabled")
+        message(STATUS "ThreadSanitizer enabled")
 
         add_compile_options(
                 -g3
@@ -78,21 +80,26 @@ elseif(SANITIZE_THREAD)
 	set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=thread" CACHE INTERNAL "" FORCE)
 
 elseif(SANITIZE_UNDEFINED)
-        message(STATUS "undefined behaviour sanitizer enabled")
+        message(STATUS "UndefinedBehaviorSanitizer enabled")
 
         add_compile_options(
                 -g3
                 #-fsanitize=alignment
                 -fsanitize=bool
+		#-fsanitize=builtin
                 -fsanitize=bounds
                 -fsanitize=enum
-                #-fsanitize=float-cast-overflow
+                -fsanitize=float-cast-overflow
                 -fsanitize=float-divide-by-zero
                 #-fsanitize=function
                 -fsanitize=integer-divide-by-zero
                 -fsanitize=nonnull-attribute
                 -fsanitize=null
+		#-fsanitize=nullability-arg
+		#-fsanitize=nullability-assign
+		#-fsanitize=nullability-return
                 -fsanitize=object-size
+		#-fsanitize=pointer-overflow
                 -fsanitize=return
                 -fsanitize=returns-nonnull-attribute
                 -fsanitize=shift
@@ -101,6 +108,8 @@ elseif(SANITIZE_UNDEFINED)
                 #-fsanitize=unsigned-integer-overflow
                 -fsanitize=vla-bound
                 -fsanitize=vptr
+
+		-fno-sanitize-recover=bounds,null
         )
 	set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=undefined" CACHE INTERNAL "" FORCE)