Configuring the Skyhub setup
When using a Medusa spectrometer in combination with the UgCS Skyhub, both systems need to be configured to send and receive data.
Prerequisite
Software
The Medusa spectrometer with a mDOS software version of V3.2 - Build 420 or higher.
The Skyhub with a GNSS output software version of 1.4.1.22. and higher.
A Universal driver and True Terrain Following license for the Skyhub.
Hardware
Skyhub (version xx and up)
MDC-510 cable to have power and communication between the Medusa sensor and the Skyub.
Optionally For height measurements: a Lidar or Radar altimeter, compatible with the Skyhub.
Optionally: For DJI M350 integration the MSB-302 mounting brackets are recommended.
Configuring the Skyhub
Enabling the output of GPS and altitude readings to the Medusa sensor, and accepting data coming from the Medusa sensor to the Skyhub can be done by configuring the skyhub.conf file. For more information on how to do this, check the Skyhub manual.
GPS and altitude
Modify the ROS_MONITOR_GNSSOUT_0 configuration to output NMEA strings including the altitude readings (RMZ). Below is the configuration snippet that enables all NMEA messages and the altitude:
[ROS_MONITOR_GNSSOUT_0]
BAUD_RATE=115200
ENABLE_PPS=false
GGA_RATE_HZ=5
MESSAGES=RMC GGA ZDA RMZ
RMZ_RATE_HZ=5
NMEA_LOG=false
PREFIX=GN
SERIAL_DEVICE=/dev/ttyNMEA
RMC_RATE_HZ=5
Universal driver
The Skyhub offers the possibility to stream data from the Medusa sensor over the drones radiolink to the ground station. This can, for example, be displayed on the remote controller of the DJI M300/M350, and can be monitored in SPHs Custom Payload Monitor.
Configuring the skyhub.conf is done similarly to configuring the NMEA output. Make sure the following configuration is present in the file:
[ROS_PAYLOADS]
UNIVERSAL=true
[ROS_UNIVERSAL_UNIVERSALDRIVER_0]
PAYLOAD_ID=192
SENSOR_NAME=MedusaGRS
SEPARATOR_PATTERN=\\r\\n
UART_BAUD_RATE=115200
UART_SERIAL_DEVICE=/dev/ttyUNIVERSAL
VALUE_PATTERN=(\\d+)
Allowing both services
The configuration below is for enabling both the input and output datastream. When only one stream is needed, the optional port splitting is not needed and the SERIAL_DEVICE=/dev/ttyNMEA
and SERIAL_DEVICE=/dev/ttyUNIVERSAL
should be replaced with SERIAL_DEVICE=/dev/ttyAMA3
By default the Skyhub can also accept either a input or output stream on the same port. Therefore a program needs to be enabled that splits the input and output stream.
This is done by:
a. Copy the attached medusa.service
file to the following path on the skyhub: /etc/systemd/system/medusa.service
b. Copy the attached createVirtualPorts.py
to the following path on the skyhub: /root/
Then, while logged in on the skyhub via ssh, execute the following commands:
# Reload deamon
sudo systemctl daemon-reload
# Enable the medusa service
sudo systemctl enable medusa.service
# Start the service
sudo systemctl start medusa.service
Finally, reboot the Skyhub and the configuration is complete
Attachments
Medusa.service file | Port splitting file | Skyhub.conf example |
---|---|---|
Configuring the Medusa spectrometer
The spectrometer needs to be configured by using the mDOS interface on the data tab. Consult the mDOS manual for access to this page.
GPS and altimeter input
The input mode has to be configured as “NMEA strings”. Enable the NMEA contain RMZ messages, to enable parsing of altitude readings.

RMZ altitude and GPS readings will become visible on the mDOS dashboard page. The sensor readings look as following:

Internal and external GPS
The Medusa sensor also has an internal GPS. When using the external Skyhub GPS, it is recommended to disable the internal GPS so that one GPS source is used. This can be done on the settings tab in mDOS.
The GPS can be inspected on the dasboard page by using the inspect datastream icon. GPS records sent from the skyhub have the eID “GPS_external” as shown in the screenshot below.

Medusa data output
When using the Universal driver capabilities of the Skyhub the detector needs to be configured to stream data to the skuhub. This is done by selecting an output mode on the same data tab. Currently, the Skyhub supports Count rate only and Dose rate streaming.

For calculating a dose rate, the detector needs to be stabilized. Depending on the sensor size, this can take up to several minutes. The progress of stabilization can be seen on the dashboard tab of mDOS. While the sensor is not stabilized, no dose rate will be sent to the Skyhub.

When the above configuration is set the count rate or dose rate can be seen in SPHs Custom Payload Monitor (CPM) and on the remote controller of the DJI drone when using the UgCS companion app.
CPM settings for the Medusa spectrometer | Count rate in the CPM |
---|---|
![]() | ![]() |
UgCS companion
Below is a screenshot of the UgCS companion app with a Medusa MS-100 sensor configured according to the above described protocol. In the bottom left corner the radar altimeter readings are displayed, and in the bottom right corner the count rate of the Medusa sensor.
