diff --git a/src/AnalyzeView/MAVLinkInspectorController.cc b/src/AnalyzeView/MAVLinkInspectorController.cc
index f064a478493efd8a88d930d148cafefaed7c3547..0c418843665b29741a0e3e226000a8a23c5117b3 100644
--- a/src/AnalyzeView/MAVLinkInspectorController.cc
+++ b/src/AnalyzeView/MAVLinkInspectorController.cc
@@ -324,10 +324,26 @@ QGCMAVLinkVehicle::append(QGCMAVLinkMessage* message)
                 emit m->indexChanged();
             }
         }
+        _checkCompID(message);
     }
     emit messagesChanged();
 }
 
+//-----------------------------------------------------------------------------
+void
+QGCMAVLinkVehicle::_checkCompID(QGCMAVLinkMessage* message)
+{
+    if(_compIDsStr.isEmpty()) {
+        _compIDsStr << tr("All");
+    }
+    if(!_compIDs.contains(static_cast<int>(message->cid()))) {
+        int cid = static_cast<int>(message->cid());
+        _compIDs.append(cid);
+        _compIDsStr << QString::number(cid);
+        emit compIDsChanged();
+    }
+}
+
 //-----------------------------------------------------------------------------
 MAVLinkInspectorController::MAVLinkInspectorController()
 {
@@ -430,9 +446,8 @@ MAVLinkInspectorController::_vehicleRemoved(Vehicle* vehicle)
 
 //-----------------------------------------------------------------------------
 void
-MAVLinkInspectorController::_receiveMessage(LinkInterface* link, mavlink_message_t message)
+MAVLinkInspectorController::_receiveMessage(LinkInterface*, mavlink_message_t message)
 {
-    Q_UNUSED(link);
     QGCMAVLinkMessage* m = nullptr;
     QGCMAVLinkVehicle* v = _findVehicle(message.sysid);
     if(!v) {
@@ -453,7 +468,6 @@ MAVLinkInspectorController::_receiveMessage(LinkInterface* link, mavlink_message
     } else {
         m->update(&message);
     }
-
 }
 
 //-----------------------------------------------------------------------------
diff --git a/src/AnalyzeView/MAVLinkInspectorController.h b/src/AnalyzeView/MAVLinkInspectorController.h
index 1969a2ccd1addd6a8467b08549fd7aa08d49a639..e1dfa310393af1f9396f0fb0ffcf7f85ab419027 100644
--- a/src/AnalyzeView/MAVLinkInspectorController.h
+++ b/src/AnalyzeView/MAVLinkInspectorController.h
@@ -87,22 +87,32 @@ class QGCMAVLinkVehicle : public QObject {
     Q_OBJECT
     Q_PROPERTY(quint8               id              READ id             CONSTANT)
     Q_PROPERTY(QmlObjectListModel*  messages        READ messages       NOTIFY messagesChanged)
+    Q_PROPERTY(QList<int>           compIDs         READ compIDs        NOTIFY compIDsChanged)
+    Q_PROPERTY(QStringList          compIDsStr      READ compIDsStr     NOTIFY compIDsChanged)
 
 public:
     QGCMAVLinkVehicle(QObject* parent, quint8 id);
 
     quint8              id              () { return _id; }
     QmlObjectListModel* messages        () { return &_messages; }
+    QList<int>          compIDs         () { return _compIDs; }
+    QStringList         compIDsStr      () { return _compIDsStr; }
 
     QGCMAVLinkMessage*  findMessage     (uint32_t id, uint8_t cid);
     void                append          (QGCMAVLinkMessage* message);
 
 signals:
     void messagesChanged                ();
+    void compIDsChanged                 ();
+
+private:
+    void _checkCompID                   (QGCMAVLinkMessage *message);
 
 private:
     quint8              _id;
-    QmlObjectListModel  _messages;  //-- List of QGCMAVLinkMessage
+    QList<int>          _compIDs;
+    QStringList         _compIDsStr;
+    QmlObjectListModel  _messages;      //-- List of QGCMAVLinkMessage
 };
 
 //-----------------------------------------------------------------------------
diff --git a/src/AnalyzeView/MAVLinkInspectorPage.qml b/src/AnalyzeView/MAVLinkInspectorPage.qml
index 8f9a7c6d60c27afe6e95b765d705c2cd437117e6..c43dabafa39069e86eccc629f45c7afd2c94e595 100644
--- a/src/AnalyzeView/MAVLinkInspectorPage.qml
+++ b/src/AnalyzeView/MAVLinkInspectorPage.qml
@@ -22,9 +22,11 @@ Item {
     anchors.fill:           parent
     anchors.margins:        ScreenTools.defaultFontPixelWidth
 
-    property var curVehicle:        controller ? controller.activeVehicle : null
-    property int curMessageIndex:   0
-    property var curMessage:        curVehicle && curVehicle.messages.count ? curVehicle.messages.get(curMessageIndex) : null
+    property var    curVehicle:     controller ? controller.activeVehicle : null
+    property int    curMessageIndex:0
+    property var    curMessage:     curVehicle && curVehicle.messages.count ? curVehicle.messages.get(curMessageIndex) : null
+    property int    curCompID:      0
+    property bool   selectionValid: false
 
     MAVLinkInspectorController {
         id: controller
@@ -35,11 +37,36 @@ Item {
     }
 
     //-- Header
-    QGCLabel {
+    RowLayout {
         id:                 header
-        text:               qsTr("Inspect real time MAVLink messages.")
         anchors.top:        parent.top
         anchors.left:       parent.left
+        anchors.right:      parent.right
+        QGCLabel {
+            text:           qsTr("Inspect real time MAVLink messages.")
+        }
+        RowLayout {
+            Layout.alignment:   Qt.AlignRight
+            visible:            curVehicle ? curVehicle.compIDsStr.length > 2 : false
+            QGCLabel {
+                text:           qsTr("Component ID:")
+            }
+            QGCComboBox {
+                id:             cidCombo
+                model:          curVehicle ? curVehicle.compIDsStr : []
+                Layout.minimumWidth: ScreenTools.defaultFontPixelWidth * 10
+                currentIndex:   0
+                onActivated: {
+                    if(curVehicle && curVehicle.compIDsStr.length > 1) {
+                        selectionValid = false
+                        if(index < 1)
+                            curCompID = 0
+                        else
+                            curCompID = curVehicle.compIDs[index - 1]
+                    }
+                }
+            }
+        }
     }
 
     //-- Messages (Buttons)
@@ -59,10 +86,15 @@ Item {
                 model:      curVehicle ? curVehicle.messages : []
                 delegate:   MAVLinkMessageButton {
                     text:       object.name
+                    compID:     object.cid
                     checked:    curMessageIndex === index
                     messageHz:  object.messageHz
-                    onClicked:  curMessageIndex = index
-                    Layout.minimumWidth: ScreenTools.defaultFontPixelWidth * 36
+                    visible:    curCompID === 0 || curCompID === compID
+                    onClicked: {
+                        selectionValid  = true
+                        curMessageIndex = index
+                    }
+                    Layout.minimumWidth: ScreenTools.defaultFontPixelWidth * 40
                 }
             }
         }
@@ -70,7 +102,7 @@ Item {
     //-- Message Data
     QGCFlickable {
         id:                 messageGrid
-        visible:            curMessage !== null
+        visible:            curMessage !== null && selectionValid
         anchors.top:        buttonGrid.top
         anchors.bottom:     parent.bottom
         anchors.left:       buttonGrid.right
diff --git a/src/QmlControls/MAVLinkMessageButton.qml b/src/QmlControls/MAVLinkMessageButton.qml
index 2ed3fc700dc738d31e7c19326234752380ec8ed0..9ae7d1eff10b501033cc4cf2bf09b98a005e56a2 100644
--- a/src/QmlControls/MAVLinkMessageButton.qml
+++ b/src/QmlControls/MAVLinkMessageButton.qml
@@ -25,12 +25,18 @@ Button {
     }
 
     property double messageHz:  0
+    property int    compID:     0
 
     contentItem: RowLayout {
+        QGCLabel {
+            text:   control.compID
+            color:  checked ? qgcPal.buttonHighlightText : qgcPal.buttonText
+            Layout.minimumWidth: ScreenTools.defaultFontPixelWidth * 3
+        }
         QGCLabel {
             text:   control.text
             color:  checked ? qgcPal.buttonHighlightText : qgcPal.buttonText
-            Layout.minimumWidth: ScreenTools.defaultFontPixelWidth * 26
+            Layout.minimumWidth: ScreenTools.defaultFontPixelWidth * 28
         }
         QGCLabel {
             color:  checked ? qgcPal.buttonHighlightText : qgcPal.buttonText