diff --git a/plugins/feature/gs232controller/gs232controllergui.ui b/plugins/feature/gs232controller/gs232controllergui.ui
index 0feb96f4d..4e0c067dd 100644
--- a/plugins/feature/gs232controller/gs232controllergui.ui
+++ b/plugins/feature/gs232controller/gs232controllergui.ui
@@ -339,6 +339,16 @@
115200
+ -
+
+ 230400
+
+
+ -
+
+ 460800
+
+
-
diff --git a/plugins/feature/gs232controller/gs232controllerworker.cpp b/plugins/feature/gs232controller/gs232controllerworker.cpp
index f6d2391be..6b36fd002 100644
--- a/plugins/feature/gs232controller/gs232controllerworker.cpp
+++ b/plugins/feature/gs232controller/gs232controllerworker.cpp
@@ -197,7 +197,8 @@ void GS232ControllerWorker::readSerialData()
if (len != -1)
{
QString response = QString::fromUtf8(buf, len);
- QRegularExpression re("AZ=(\\d\\d\\d) *EL=(\\d\\d\\d)");
+ // MD-02 can return AZ=-00 EL=-00 and other negative angles
+ QRegularExpression re("AZ=([-\\d]\\d\\d) *EL=([-\\d]\\d\\d)");
QRegularExpressionMatch match = re.match(response);
if (match.hasMatch())
{