diff --git a/.vscode/settings.json b/.vscode/settings.json
index 9dcff53cc37fcb79f0ccd20517eee430e24827e1..21ef00b63f86fd8d69920f2c9b121bd6cd70ca85 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -167,7 +167,8 @@
         "qtvirtualkeyboard": "cpp",
         "qabstractbutton": "cpp",
         "qmetatype": "cpp",
-        "qmainwindow": "cpp"
+        "qmainwindow": "cpp",
+        "qapplication": "cpp"
     },
     "editor.defaultFormatter": "ms-vscode.cpptools",
     "[xml]": {
diff --git a/libs/mavlink-skyward-lib b/libs/mavlink-skyward-lib
index 7abedf9773b3ebce9d14687d13544f40fad5577f..78a568f5e31fb9b50dbf8ec7d9af16261b364a8f 160000
--- a/libs/mavlink-skyward-lib
+++ b/libs/mavlink-skyward-lib
@@ -1 +1 @@
-Subproject commit 7abedf9773b3ebce9d14687d13544f40fad5577f
+Subproject commit 78a568f5e31fb9b50dbf8ec7d9af16261b364a8f
diff --git a/src/shared/Modules/CommandPad/MessagesList.h b/src/shared/Modules/CommandPad/MessagesList.h
index f7b715096eba70013ad9d7d6bb72ce74b127751b..90e8163613ed93d65d72565ef013a16d4f9467bc 100644
--- a/src/shared/Modules/CommandPad/MessagesList.h
+++ b/src/shared/Modules/CommandPad/MessagesList.h
@@ -171,11 +171,17 @@ const QMap<QString, int> servosList{
     {"EXPULSION_SERVO", EXPULSION_SERVO},
     {"PARAFOIL_LEFT_SERVO", PARAFOIL_LEFT_SERVO},
     {"PARAFOIL_RIGHT_SERVO", PARAFOIL_RIGHT_SERVO},
+    {"N2O_FILLING_VALVE", N2O_FILLING_VALVE},
+    {"N2O_RELEASE_VALVE", N2O_RELEASE_VALVE},
+    {"N2O_DETATCH_SERVO", N2O_DETACH_SERVO},
+    {"N2O_VENTING_VALVE", N2O_VENTING_VALVE},
+    {"N2_FILLING_VALVE", N2_FILLING_VALVE},
+    {"N2_RELEASE_VALVE", N2_RELEASE_VALVE},
+    {"N2_DETACH_SERVO", N2_DETACH_SERVO},
+    {"N2_QUENCHING_VALVE", N2_QUENCHING_VALVE},
+    {"N2_3WAY_VALVE", N2_3WAY_VAVLE},
     {"MAIN_VALVE", MAIN_VALVE},
-    {"VENTING_VALVE", VENTING_VALVE},
-    {"RELEASE_VALVE", RELEASE_VALVE},
-    {"FILLING_VALVE", FILLING_VALVE},
-    {"DISCONNECT_SERVO", DISCONNECT_SERVO}};
+    {"NITROGEN_VALVE", NITROGEN_VALVE}};
 
 const QMap<QString, int> stepperList{{"STEPPER_X", STEPPER_X},
                                      {"STEPPER_Y", STEPPER_Y}};
@@ -287,12 +293,18 @@ inline void fillMessagesMap(QMap<QString, MessageFormElement *> &formElements)
     formElements["SET_COOLING_TIME_TC"] = element;
 
     element = new MessageFormElement();
+    element->addInteger("n2o_filling_btn", "N2O Filling:", 0, 1);
+    element->addInteger("n2o_release_btn", "N2O Release:", 0, 1);
+    element->addInteger("n2o_detach_btn", "N2O Detatch:", 0, 1);
+    element->addInteger("n2o_venting_btn", "N2O Venting:", 0, 1);
+    element->addInteger("n2_filling_btn", "N2 Filling:", 0, 1);
+    element->addInteger("n2_release_btn", "N2 Release:", 0, 1);
+    element->addInteger("n2_detach_btn", "N2 Detach:", 0, 1);
+    element->addInteger("n2_quenching_btn", "N2 Quenching:", 0, 1);
+    element->addInteger("n2_3way_btn", "N2 3-Way Valve:", 0, 1);
+    element->addInteger("tars_btn", "TARS:", 0, 1);
+    element->addInteger("nitrogen_btn", "Nitrogen:", 0, 1);
     element->addInteger("ignition_btn", "Ignition:", 0, 1);
-    element->addInteger("filling_valve_btn", "Filling:", 0, 1);
-    element->addInteger("venting_valve_btn", "Venting:", 0, 1);
-    element->addInteger("release_pressure_btn", "Release:", 0, 1);
-    element->addInteger("quick_connector_btn", "Quick connector:", 0, 1);
-    element->addInteger("start_tars_btn", "Tars:", 0, 1);
     element->addInteger("arm_switch", "Arm:", 0, 1);
     formElements["CONRIG_STATE_TC"] = element;
 
diff --git a/src/shared/Modules/Mavlink/MavlinkCodec.cpp b/src/shared/Modules/Mavlink/MavlinkCodec.cpp
index 122c642f69f09063053fddd3d74b9d452839b5be..529cc5c75edace6b014de6bbebf52ab8de8e9590 100644
--- a/src/shared/Modules/Mavlink/MavlinkCodec.cpp
+++ b/src/shared/Modules/Mavlink/MavlinkCodec.cpp
@@ -418,12 +418,18 @@ bool MavlinkCodec::encodeMessage(const Message& msg, SysId sysId, CompId compId,
     {
         mavlink_msg_conrig_state_tc_pack(
             sysId, compId, &output,
+            msg.getField("n2o_filing_btn").getUnsignedInteger(),
+            msg.getField("n2o_release_btn").getUnsignedInteger(),
+            msg.getField("n2o_detach_btn").getUnsignedInteger(),
+            msg.getField("n2o_venting_btn").getUnsignedInteger(),
+            msg.getField("n2_filling_btn").getUnsignedInteger(),
+            msg.getField("n2_release_btn").getUnsignedInteger(),
+            msg.getField("n2_detach_btn").getUnsignedInteger(),
+            msg.getField("n2_quenching_btn").getUnsignedInteger(),
+            msg.getField("n2_3way_btn").getUnsignedInteger(),
+            msg.getField("tars_btn").getUnsignedInteger(),
+            msg.getField("nitrogen_btn").getUnsignedInteger(),
             msg.getField("ignition_btn").getUnsignedInteger(),
-            msg.getField("filling_valve_btn").getUnsignedInteger(),
-            msg.getField("venting_valve_btn").getUnsignedInteger(),
-            msg.getField("release_pressure_btn").getUnsignedInteger(),
-            msg.getField("quick_connector_btn").getUnsignedInteger(),
-            msg.getField("start_tars_btn").getUnsignedInteger(),
             msg.getField("arm_switch").getUnsignedInteger());
         return true;
     }
diff --git a/src/shared/Modules/Mavlink/MavlinkCodec.h b/src/shared/Modules/Mavlink/MavlinkCodec.h
index c79a62622b2b5f918252eab322d96e435c1f6ec4..456c9ac7dad101c0eb185ba2323e31d35de66a5c 100644
--- a/src/shared/Modules/Mavlink/MavlinkCodec.h
+++ b/src/shared/Modules/Mavlink/MavlinkCodec.h
@@ -34,11 +34,13 @@ class MavlinkCodec : public QObject
 public:
     enum SysId
     {
-        SysIdMain    = MAV_SYSID_MAIN,
-        SysIdPayload = MAV_SYSID_PAYLOAD,
-        SysIdRig     = MAV_SYSID_RIG,
-        SysIdGS      = MAV_SYSID_GS,
-        SysIdARP     = MAV_SYSID_ARP,
+        SysIdMain       = MAV_SYSID_MAIN,
+        SysIdPayload    = MAV_SYSID_PAYLOAD,
+        SysIdRig        = MAV_SYSID_RIG,
+        SysIdGS         = MAV_SYSID_GS,
+        SysIdARP        = MAV_SYSID_ARP,
+        SysIdGSBackup   = MAV_SYSID_GS_BACKUP,
+        SysIdARRPBackup = MAV_SYSID_ARP_BACKUP
     };
 
     enum CompId
diff --git a/src/shared/Modules/Mavlink/MavlinkVersionHeader.h b/src/shared/Modules/Mavlink/MavlinkVersionHeader.h
index 69e6e2a675f4538b3547d71e01ff62fd65510fa5..b2138abc402a87cb1aa8e16022476a650c3d4811 100644
--- a/src/shared/Modules/Mavlink/MavlinkVersionHeader.h
+++ b/src/shared/Modules/Mavlink/MavlinkVersionHeader.h
@@ -23,7 +23,7 @@
 #if __GNUC__ >= 9
 #pragma GCC diagnostic ignored "-Waddress-of-packed-member"
 #endif
-#include <mavlink_lib/lyra/mavlink.h>
+#include <mavlink_lib/orion/mavlink.h>
 #pragma GCC diagnostic pop
 
 // static __attribute__((unused)) uint8_t validSysid = 171;
diff --git a/src/shared/Modules/ValvesViewer/ValvesList.h b/src/shared/Modules/ValvesViewer/ValvesList.h
index be0077cbbbb8f8b74153bd676cef1b2f24baf2c0..0271a7a6ed3baa1514e2220a41f3c1f95115ae1a 100644
--- a/src/shared/Modules/ValvesViewer/ValvesList.h
+++ b/src/shared/Modules/ValvesViewer/ValvesList.h
@@ -28,16 +28,26 @@ namespace ValvesList
 // Valves
 enum class Valve : int
 {
-    FILLING = 0,
-    RELEASE,
-    VENTING,
+    N2O_FILLING = 0,
+    N2O_RELEASE,
+    N2O_DETACH,
+    N2O_VENTING,
+    N2_FILLING,
+    N2_RELEASE,
+    N2_VENTING,
+    N2_DETACH,
+    N2_QUENCHING,
+    N2_3WAY,
     MAIN,
     NITROGEN,
     TARS,
+    IGNITION
 };
 
 // Groundstation labels
-static const QList<QString> valvesLabels{"FILLING", "RELEASE",  "VENTING",
-                                         "MAIN",    "NITROGEN", "TARS"};
+static const QList<QString> valvesLabels{
+    "N2O FILLING", "N2O RELEASE", "N2O DETACH", "N2O VENTING",  "N2 FILLING",
+    "N2 RELEASE",  "N2 VENTING",  "N2 DETACH",  "N2 QUENCHING", "N2 3WAY",
+    "MAIN",        "NITROGEN",    "TARS",       "IGNITION"};
 
 }  // namespace ValvesList
\ No newline at end of file
diff --git a/src/shared/Modules/ValvesViewer/ValvesViewer.cpp b/src/shared/Modules/ValvesViewer/ValvesViewer.cpp
index 4889eb8ca9eeb1945bc2347dcb6c5af56c77f5a9..4571e94c65603699181a04434cdb147b6bfe9411 100644
--- a/src/shared/Modules/ValvesViewer/ValvesViewer.cpp
+++ b/src/shared/Modules/ValvesViewer/ValvesViewer.cpp
@@ -59,6 +59,8 @@ void ValvesViewer::setupUi()
         label->setText(labelText);
         label->setAlignment(Qt::AlignCenter);
         label->setContentsMargins(4, 4, 4, 4);
+        QString baseStyle{baseStylesheet};
+        label->setStyleSheet(baseStyle);
         outerLayout->addWidget(label);
     }
 
@@ -94,23 +96,35 @@ void ValvesViewer::onMsgReceived(const Message& msg)
 {
     // Couple the valves with their own state
     QMap<ValvesList::Valve, uint64_t> map{
-        {ValvesList::Valve::FILLING,
-         msg.getField("filling_valve_state").getUnsignedInteger()},
+        {ValvesList::Valve::N2O_FILLING,
+         msg.getField("n2o_filling_valve_state").getUnsignedInteger()},
+        {ValvesList::Valve::N2O_RELEASE,
+         msg.getField("n2o_release_valve_state").getUnsignedInteger()},
+        {ValvesList::Valve::N2O_DETACH,
+         msg.getField("n2o_detach_state").getUnsignedInteger()},
+        {ValvesList::Valve::N2O_VENTING,
+         msg.getField("n2o_venting_valve_state").getUnsignedInteger()},
+        {ValvesList::Valve::N2_FILLING,
+         msg.getField("n2_filling_valve_state").getUnsignedInteger()},
+        {ValvesList::Valve::N2_RELEASE,
+         msg.getField("n2_release_valve_state").getUnsignedInteger()},
+        {ValvesList::Valve::N2_DETACH,
+         msg.getField("n2_detach_state").getUnsignedInteger()},
+        {ValvesList::Valve::N2_QUENCHING,
+         msg.getField("n2_quenching_valve_state").getUnsignedInteger()},
+        {ValvesList::Valve::N2_3WAY,
+         msg.getField("n2_3way_valve_state").getUnsignedInteger()},
         {ValvesList::Valve::MAIN,
          msg.getField("main_valve_state").getUnsignedInteger()},
-        {ValvesList::Valve::RELEASE,
-         msg.getField("release_valve_state").getUnsignedInteger()},
-        {ValvesList::Valve::VENTING,
-         msg.getField("venting_valve_state").getUnsignedInteger()},
         {ValvesList::Valve::NITROGEN,
          msg.getField("nitrogen_valve_state").getUnsignedInteger()},
+        {ValvesList::Valve::IGNITION,
+         msg.getField("ignition_state").getUnsignedInteger()},
         {ValvesList::Valve::TARS,
          msg.getField("tars_state").getUnsignedInteger()}};
 
     // Define the "active" and the "not active" look
-    QString baseStyle =
-        "border-bottom-width:1px;border-left-width:1px;border-top-width:"
-        "1px;border-radius:0;";
+    QString baseStyle{baseStylesheet};
     QString completedStyle = "background-color:green;" + baseStyle;
     QString errorStyle     = "background-color:red;" + baseStyle;
 
diff --git a/src/shared/Modules/ValvesViewer/ValvesViewer.h b/src/shared/Modules/ValvesViewer/ValvesViewer.h
index 5c0b4efd1f0a65705f8f1bcfdac20c34b12accff..2a68dc10ad7c20f1ad48ed4f52664f4ce0f05ccc 100644
--- a/src/shared/Modules/ValvesViewer/ValvesViewer.h
+++ b/src/shared/Modules/ValvesViewer/ValvesViewer.h
@@ -49,4 +49,7 @@ private:
 
     Filter filter;
     ValvesList::Valve currentState;
+    static constexpr char* baseStylesheet =
+        "border-bottom-width:1px;border-left-width:1px;border-top-width:"
+        "1px;border-radius:0;";
 };