diff --git a/mk/PX4/px4_common.mk b/mk/PX4/px4_common.mk
new file mode 100644
index 0000000000000000000000000000000000000000..9ec766ca137b73acc507bd3a0f90ec974b1b26e1
--- /dev/null
+++ b/mk/PX4/px4_common.mk
@@ -0,0 +1,93 @@
+#
+# common makefile elements for all PX4 boards
+#
+
+#
+# Use the configuration's ROMFS.
+#
+ROMFS_ROOT	 = $(SKETCHBOOK)/mk/PX4/ROMFS
+MODULES		+= $(APM_MODULE_DIR)
+
+#
+# Board support modules
+#
+MODULES		+= drivers/device
+MODULES		+= drivers/stm32
+MODULES		+= drivers/stm32/adc
+MODULES		+= drivers/stm32/tone_alarm
+MODULES		+= drivers/led
+MODULES		+= drivers/px4fmu
+MODULES		+= drivers/px4io
+MODULES		+= drivers/px4flow
+MODULES		+= drivers/rgbled
+MODULES		+= drivers/mpu6000
+MODULES		+= drivers/hmc5883
+MODULES		+= drivers/ms5611
+MODULES		+= drivers/mb12xx
+MODULES		+= drivers/ll40ls
+#MODULES	+= drivers/gps
+#MODULES	+= drivers/hil
+#MODULES	+= drivers/hott_telemetry
+#MODULES	+= drivers/blinkm
+#MODULES	+= modules/sensors
+MODULES		+= drivers/airspeed
+MODULES		+= drivers/ets_airspeed
+MODULES		+= drivers/meas_airspeed
+MODULES		+= drivers/mkblctrl
+MODULES		+= drivers/batt_smbus
+
+#
+# System commands
+#
+MODULES		+= systemcmds/bl_update
+MODULES		+= systemcmds/boardinfo
+MODULES		+= systemcmds/mixer
+MODULES		+= systemcmds/perf
+MODULES		+= systemcmds/pwm
+MODULES		+= systemcmds/reboot
+MODULES		+= systemcmds/top
+#MODULES	+= systemcmds/tests
+MODULES		+= systemcmds/nshterm
+MODULES         += systemcmds/mtd
+ifneq ($(wildcard $(PX4_ROOT)/src/systemcmds/reflect),)  
+MODULES         += systemcmds/reflect
+endif
+ifneq ($(wildcard $(PX4_ROOT)/src/systemcmds/motor_test),)  
+MODULES         += systemcmds/motor_test
+endif
+
+#
+# Library modules
+#
+MODULES		+= modules/systemlib
+MODULES		+= modules/systemlib/mixer
+MODULES		+= modules/uORB
+MODULES		+= lib/mathlib/math/filter
+
+# Note: auth disabled to keep us under 1MB flash because of STM32 bug
+#ifneq ($(wildcard $(PX4_ROOT)/src/systemcmds/auth),)  
+#MODULES		+= systemcmds/auth
+#endif
+#ifneq ($(wildcard $(PX4_ROOT)/src/modules/libtomfastmath),)  
+#MODULES	        += modules/libtomfastmath
+#MODULES         += modules/libtomcrypt
+#endif
+
+MODULES		+= lib/conversion
+
+#
+# Transitional support - add commands from the NuttX export archive.
+#
+# In general, these should move to modules over time.
+#
+# Each entry here is <command>.<priority>.<stacksize>.<entrypoint> but we use a helper macro
+# to make the table a bit more readable.
+#
+define _B
+	$(strip $1).$(or $(strip $2),SCHED_PRIORITY_DEFAULT).$(or $(strip $3),CONFIG_PTHREAD_STACK_DEFAULT).$(strip $4)
+endef
+
+#                  command                 priority                   stack  entrypoint
+BUILTIN_COMMANDS := \
+	$(call _B, sercon,                 ,                          2048,  sercon_main                ) \
+	$(call _B, serdis,                 ,                          2048,  serdis_main                )