diff --git a/src/modules/camera_feedback/camera_feedback.cpp b/src/modules/camera_feedback/camera_feedback.cpp
index d11f03fcc06ff744ea1e48c95b37730b2f236fb4..ef6fb11bfe676112bb281c7b9d52f239ce0b7b3d 100644
--- a/src/modules/camera_feedback/camera_feedback.cpp
+++ b/src/modules/camera_feedback/camera_feedback.cpp
@@ -39,85 +39,7 @@
  * @author Mohammed Kabir <kabir@uasys.io>
  */
 
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <fcntl.h>
-#include <stdbool.h>
-#include <poll.h>
-#include <mathlib/mathlib.h>
-#include <systemlib/systemlib.h>
-#include <systemlib/err.h>
-#include <systemlib/param/param.h>
-
-#include <px4_config.h>
-#include <px4_defines.h>
-#include <px4_tasks.h>
-#include <px4_posix.h>
-#include <drivers/drv_hrt.h>
-
-#include <uORB/uORB.h>
-#include <uORB/topics/camera_trigger.h>
-#include <uORB/topics/camera_capture.h>
-#include <uORB/topics/vehicle_attitude.h>
-#include <uORB/topics/vehicle_local_position.h>
-#include <uORB/topics/vehicle_global_position.h>
-
-typedef enum : uint8_t {
-	CAMERA_FEEDBACK_MODE_NONE = 0,
-	CAMERA_FEEDBACK_MODE_TRIGGER,
-	CAMERA_FEEDBACK_MODE_PWM
-} camera_feedback_mode_t;
-
-class CameraFeedback
-{
-public:
-	/**
-	 * Constructor
-	 */
-	CameraFeedback();
-
-	/**
-	 * Destructor, also kills task.
-	 */
-	~CameraFeedback();
-
-	/**
-	 * Start the task.
-	 *
-	 * @return		OK on success.
-	 */
-	int			start();
-
-	/**
-	 * Stop the task.
-	 */
-	void		stop();
-
-private:
-
-	bool		_task_should_exit;		/**< if true, task should exit */
-	int			_main_task;				/**< handle for task */
-
-	int			_trigger_sub;
-	int			_lpos_sub;
-	int			_gpos_sub;
-	int			_att_sub;
-
-	orb_advert_t	_capture_pub;
-
-	param_t			_p_feedback;
-
-	camera_feedback_mode_t _camera_feedback_mode;
-
-	void		task_main();
-
-	/**
-	 * Shim for calling task_main from task_create.
-	 */
-	static void	task_main_trampoline(int argc, char *argv[]);
-
-};
+#include "camera_feedback.hpp"
 
 namespace camera_feedback
 {
diff --git a/src/modules/camera_feedback/camera_feedback.hpp b/src/modules/camera_feedback/camera_feedback.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..d83bfc43c797f17b02109867ce3c57eceac22578
--- /dev/null
+++ b/src/modules/camera_feedback/camera_feedback.hpp
@@ -0,0 +1,119 @@
+/****************************************************************************
+ *
+ *   Copyright (c) 2017 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.
+ *
+ ****************************************************************************/
+
+/**
+ * @file camera_feedback.hpp
+ *
+ */
+
+#pragma once
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <fcntl.h>
+#include <stdbool.h>
+#include <poll.h>
+#include <mathlib/mathlib.h>
+#include <systemlib/systemlib.h>
+#include <systemlib/err.h>
+#include <systemlib/param/param.h>
+
+#include <px4_config.h>
+#include <px4_defines.h>
+#include <px4_tasks.h>
+#include <px4_posix.h>
+#include <drivers/drv_hrt.h>
+
+#include <uORB/uORB.h>
+#include <uORB/topics/camera_trigger.h>
+#include <uORB/topics/camera_capture.h>
+#include <uORB/topics/vehicle_attitude.h>
+#include <uORB/topics/vehicle_local_position.h>
+#include <uORB/topics/vehicle_global_position.h>
+
+typedef enum : uint8_t {
+	CAMERA_FEEDBACK_MODE_NONE = 0,
+	CAMERA_FEEDBACK_MODE_TRIGGER,
+	CAMERA_FEEDBACK_MODE_PWM
+} camera_feedback_mode_t;
+
+class CameraFeedback
+{
+public:
+	/**
+	 * Constructor
+	 */
+	CameraFeedback();
+
+	/**
+	 * Destructor, also kills task.
+	 */
+	~CameraFeedback();
+
+	/**
+	 * Start the task.
+	 *
+	 * @return		OK on success.
+	 */
+	int			start();
+
+	/**
+	 * Stop the task.
+	 */
+	void		stop();
+
+private:
+
+	bool		_task_should_exit;		/**< if true, task should exit */
+	int			_main_task;				/**< handle for task */
+
+	int			_trigger_sub;
+	int			_lpos_sub;
+	int			_gpos_sub;
+	int			_att_sub;
+
+	orb_advert_t	_capture_pub;
+
+	param_t			_p_feedback;
+
+	camera_feedback_mode_t _camera_feedback_mode;
+
+	void		task_main();
+
+	/**
+	 * Shim for calling task_main from task_create.
+	 */
+	static void	task_main_trampoline(int argc, char *argv[]);
+
+};
\ No newline at end of file