diff --git a/CMakeLists.txt b/CMakeLists.txt
index 326764da5d0e1cb45f02ecc01eb9e1f076b2051e..54432737be56e169a19c1c0f5a7d5c2684fddf91 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -140,6 +140,7 @@ include_directories(
 add_library(wolf_subscriber_gnss src/wolf_subscriber_gnss.cpp)
 add_library(wolf_subscriber_gnss_fix src/wolf_subscriber_gnss_fix.cpp)
 add_library(wolf_subscriber_gnss_TDCP src/wolf_subscriber_gnss_TDCP.cpp)
+add_library(wolf_subscriber_gnss_ublox src/wolf_subscriber_gnss_ublox.cpp)
 
 ## Add cmake target dependencies of the library
 ## as an example, code may need to be generated before libraries
@@ -177,6 +178,12 @@ target_link_libraries(wolf_subscriber_gnss_TDCP
 					  ${wolf_LIBRARIES} 
 					  ${wolfgnss_LIBRARIES} 
 					  ${iri_gnss_msgs_LIBRARIES}
+            )
+            
+target_link_libraries(wolf_subscriber_gnss_ublox 
+					  ${wolf_LIBRARIES} 
+					  ${wolfgnss_LIBRARIES} 
+					  ${iri_gnss_msgs_LIBRARIES}
 					  )
 
 #############
diff --git a/include/wolf_subscriber_gnss_ublox.h b/include/wolf_subscriber_gnss_ublox.h
new file mode 100644
index 0000000000000000000000000000000000000000..baaad1599770d1863e6b784c272c696f947d6b68
--- /dev/null
+++ b/include/wolf_subscriber_gnss_ublox.h
@@ -0,0 +1,38 @@
+/**************************
+ *      WOLF includes     *
+ **************************/
+#include <core/yaml/parser_yaml.hpp>
+#include <core/common/wolf.h>
+#include <core/problem/problem.h>
+#include <core/utils/params_server.hpp>
+#include <gnss/capture/capture_gnss_fix.h>
+#include <gnss/sensor/sensor_gnss.h>
+
+/**************************
+ *      ROS includes      *
+ **************************/
+#include <ros/ros.h>
+#include <std_msgs/UInt8MultiArray.h>
+
+/**************************
+ *    WOLF-ROS includes   *
+ **************************/
+#include "wolf_subscriber.h"
+#include "subscriber_factory.h"
+#include "gnss_utils/gnss_utils.h"
+
+using namespace wolf;
+
+class WolfSubscriberGnssUblox : public WolfSubscriber
+{
+    public:
+        // Constructor
+        WolfSubscriberGnssUblox(const SensorBasePtr& sensor_ptr);
+
+        virtual void initSubscriber(ros::NodeHandle& nh, const std::string& topic);
+
+        void callback(const std_msgs::UInt8MultiArray& msg);
+
+        static std::shared_ptr<WolfSubscriber> create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr);
+};
+WOLF_REGISTER_SUBSCRIBER(WolfSubscriberGnssUblox)
\ No newline at end of file
diff --git a/src/wolf_subscriber_gnss_ublox.cpp b/src/wolf_subscriber_gnss_ublox.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..607097ef341f0381cea793bc0b882dca9327f144
--- /dev/null
+++ b/src/wolf_subscriber_gnss_ublox.cpp
@@ -0,0 +1,25 @@
+#include "../include/wolf_subscriber_gnss_ublox.h"
+
+using namespace wolf;
+
+// Constructor
+WolfSubscriberGnssUblox::WolfSubscriberGnssUblox(const SensorBasePtr& sensor_ptr) :
+        WolfSubscriber(sensor_ptr)
+{
+}
+
+
+void WolfSubscriberGnssUblox::initSubscriber(ros::NodeHandle& nh, const std::string& topic)
+{
+    sub_     = nh.subscribe(topic, 1, &WolfSubscriberGnssUblox::callback, this);
+}
+
+void WolfSubscriberGnssUblox::callback(const std_msgs::UInt8MultiArray& msg)
+{
+
+    // cap_gnss_ptr->process();
+}
+std::shared_ptr<WolfSubscriber> WolfSubscriberGnssUblox::create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr)
+{
+    return std::make_shared<WolfSubscriberGnssUblox>(_sensor_ptr);
+}