diff --git a/src/RIGv2/Radio/Radio.cpp b/src/RIGv2/Radio/Radio.cpp
index 296f7f538f213a4844061a62abc9941cbb8ccb9b..d590862f48b61f97cca5fe71a25b3982e4afbafe 100644
--- a/src/RIGv2/Radio/Radio.cpp
+++ b/src/RIGv2/Radio/Radio.cpp
@@ -297,6 +297,21 @@ void Radio::handleMessage(const mavlink_message_t& msg)
             break;
         }
 
+        case MAVLINK_MSG_ID_RAW_EVENT_TC:
+        {
+            uint8_t topicId = mavlink_msg_raw_event_tc_get_topic_id(&msg);
+            uint8_t eventId = mavlink_msg_raw_event_tc_get_event_id(&msg);
+
+            bool disarmed = getModule<GroundModeManager>()->getState() ==
+                            GroundModeManagerState::DISARMED;
+            // Raw events are allowed in the disarmed state
+            if (!disarmed)
+                return enqueueNack(msg, 0);
+
+            EventBroker::getInstance().post(eventId, topicId);
+            return enqueueAck(msg);
+        }
+
         default:
         {
             // Unrecognized packet