Difference between revisions of "Msi2500SDR"

From RevSpace
Jump to navigation Jump to search
(libmiri + sdrangel)
(rtl_433)
 
(25 intermediate revisions by the same user not shown)
Line 14: Line 14:
  
 
On this page, I'm documenting how to get it to work effectively under Linux.
 
On this page, I'm documenting how to get it to work effectively under Linux.
 +
 +
Although this thing seems technically superior to the well-known rtl-sdr dongle , in fact my personal experience with it has been 'meh' so far:
 +
* drivers are not very mature, there are so many to choose from but it appears there's not a single good one that "just works" (TM)
 +
* many tools that work out-of-the-box for rtl-sdr simply don't work with this dongle, for example
 +
** rtl_433, should be supported through soapy, have not yet seen a single decode
 +
** dump1090, doesn't work, in fact there is no input for signals > 1 GHz on my receiver
 +
** sdrangel works with it, but often crashes randomly (that might just be sdrangel instability)
  
 
= Hardware =
 
= Hardware =
Line 19: Line 26:
  
 
This device has the following properties:
 
This device has the following properties:
* 5 separate SMA input for 5 different frequency bands
+
* 5 separate SMA inputs for 5 different frequency bands
 
* USB-C interface to computer (USB high speed?)
 
* USB-C interface to computer (USB high speed?)
 
* Samples radio at up to 8 MHz (?) and 12-bits
 
* Samples radio at up to 8 MHz (?) and 12-bits
 
* Has a stable and accurate oscillator (TCXO), compared to (for example) the rtl-sdr
 
* Has a stable and accurate oscillator (TCXO), compared to (for example) the rtl-sdr
 +
 +
Analysis of the board: https://github.com/EndlessEden/msiSDR/tree/RSP1-S
  
 
= Software =
 
= Software =
Line 35: Line 44:
  
 
=== Linux kernel driver ===
 
=== Linux kernel driver ===
It appears that SDR is not usable with the default Linux kernel driver.
+
It appears that the MSI2500 SDR is not usable with the default Linux kernel driver.
 +
Not sure what the Linux kernel driver is actually any good for anyway.
  
 
To uninstall it (and avoid automatically loading it), do the following:
 
To uninstall it (and avoid automatically loading it), do the following:
Line 41: Line 51:
 
<pre>
 
<pre>
 
sudo modprobe -r msi2500 msi001
 
sudo modprobe -r msi2500 msi001
sudo modprobe
 
 
</pre>
 
</pre>
 
* create a file /etc/modprobe.d/blacklist-msi.conf
 
* create a file /etc/modprobe.d/blacklist-msi.conf
Line 49: Line 58:
 
blacklist msi2500
 
blacklist msi2500
 
</pre>
 
</pre>
 +
 +
=== Soapy SDR ===
 +
Soapy SDR is a driver framework for several SDR devices, read for example https://github.com/pothosware/SoapySDR/wiki
 +
 +
Support for the msi2500:
 +
* install the soapy 'miri' driver:
 +
  sudo apt install soapysdr-module-mirisdr
 +
* try to find it with SoapySDRUtil
 +
  SoapySDRUtil --find
 +
should result in (for example):
 +
<pre>
 +
Found device 3
 +
  driver = miri
 +
  label = Mirics MSi2500 default (e.g. VTX3D card)
 +
  miri = 0
 +
</pre>
 +
or
 +
<pre>
 +
Found device 4
 +
  driver = soapyMiri
 +
  index = 0
 +
  label = Mirics MSi2500 default (e.g. VTX3D card) :: 00000001
 +
  manufacturer = Mirics
 +
  product = MSi2500
 +
  serial = 00000001
 +
</pre>
 +
* try to open with SoapySDRUtil
 +
  SoapySDRUtil  --probe="driver=miri"
 +
or
 +
  SoapySDRUtil  --probe="driver=soapyMiri"
 +
 +
==== SoapyMiri driver ====
 +
See https://github.com/ericek111/SoapyMiri .
 +
Works together with https://github.com/ericek111/libmirisdr-5 .
 +
 +
This is an alternative SoapySDR driver for 'soapysdr-module-mirisdr' package as described. This one identifies as "soapyMiri" instead of simply "miri".
 +
 +
=== rtl_433 ===
 +
This is a utility that was originally written to decode signals from devices like weather stations, typically operating in the 434 MHz ISM band, using an rtl-sdr.
 +
 +
Now it can also use soapy as an input, for example
 +
  rtl_433 -d driver=miri -v
 +
or
 +
  rtl_433 -d driver=soapyMiri -v
  
 
=== libmiri + sdrangel ===
 
=== libmiri + sdrangel ===
Line 54: Line 107:
  
 
Build and install libmiri by f4exb:
 
Build and install libmiri by f4exb:
<pre>
+
  git clone https://github.com/f4exb/libmirisdr-4
git clone https://github.com/f4exb/libmirisdr-4
+
  cd libmirisdr-4
cd libmirisdr-4
+
  mkdir build && cd build
mkdir build && cd build
+
  cmake ..
cmake ..
+
  nice make -j3
nice make -j3
+
  sudo make install
sudo make install
 
</pre>
 
  
 
Build sdrangel by f4exb:
 
Build sdrangel by f4exb:
Line 76: Line 127:
 
libqt5texttospeech5-dev
 
libqt5texttospeech5-dev
 
libqt5websockets5-dev
 
libqt5websockets5-dev
 +
</pre>
 +
* other libraries
 +
<pre>
 +
libserialdv-dev
 +
libboost-dev
 +
libfftw3-dev
 +
libopus-dev
 +
libhackrf-dev
 +
libiio-dev
 +
libopengl-dev
 +
libusb-1.0-0-dev
 
</pre>
 
</pre>
 
* get the source and build it
 
* get the source and build it
 
   git clone https://github.com/f4exb/sdrangel.git
 
   git clone https://github.com/f4exb/sdrangel.git
 
   cd sdrangel
 
   cd sdrangel
   mkdir build
+
   mkdir build && cd build
  cd build
 
 
   cmake ..
 
   cmake ..
   make -j3
+
   nice make -j3
 +
 
 +
=== Other packages ===
 +
To be investigated:
 +
* https://github.com/AlexandreRouma/SDRPlusPlus

Latest revision as of 16:40, 14 March 2023

Project Msi2500SDR
Msi2500SDR.jpg
Making an inexpensive MSI2500 software-defined-radio work on Linux
Status In progress
Contact bertrik
Last Update 2023-03-14

Introduction

This page is about an inexpensive SDR with MSI2500/MS101 chip, basically a chinese clone of the SDRPlay RSP1. It is in some places also referred to as BG7YZF.

Aliexpress link: https://nl.aliexpress.com/item/1005003654127606.html

On this page, I'm documenting how to get it to work effectively under Linux.

Although this thing seems technically superior to the well-known rtl-sdr dongle , in fact my personal experience with it has been 'meh' so far:

  • drivers are not very mature, there are so many to choose from but it appears there's not a single good one that "just works" (TM)
  • many tools that work out-of-the-box for rtl-sdr simply don't work with this dongle, for example
    • rtl_433, should be supported through soapy, have not yet seen a single decode
    • dump1090, doesn't work, in fact there is no input for signals > 1 GHz on my receiver
    • sdrangel works with it, but often crashes randomly (that might just be sdrangel instability)

Hardware

blurry schematic

This device has the following properties:

  • 5 separate SMA inputs for 5 different frequency bands
  • USB-C interface to computer (USB high speed?)
  • Samples radio at up to 8 MHz (?) and 12-bits
  • Has a stable and accurate oscillator (TCXO), compared to (for example) the rtl-sdr

Analysis of the board: https://github.com/EndlessEden/msiSDR/tree/RSP1-S

Software

Linux

This thing seems to be semi-supported by Linux:

  • there are msi2500 and msi101 kernel drivers, generally it seems you should not use them
  • supported by "soapysdr"
  • supported by "gr-osmo"
  • supported by "libmiri"

The thing that worked best for me, is the libmiri package by f4exb, together with SDR software sdrangel (also by f4exb)

Linux kernel driver

It appears that the MSI2500 SDR is not usable with the default Linux kernel driver. Not sure what the Linux kernel driver is actually any good for anyway.

To uninstall it (and avoid automatically loading it), do the following:

  • remove the modules manually
sudo modprobe -r msi2500 msi001
  • create a file /etc/modprobe.d/blacklist-msi.conf
  • contents should be
blacklist msi001
blacklist msi2500

Soapy SDR

Soapy SDR is a driver framework for several SDR devices, read for example https://github.com/pothosware/SoapySDR/wiki

Support for the msi2500:

  • install the soapy 'miri' driver:
 sudo apt install soapysdr-module-mirisdr
  • try to find it with SoapySDRUtil
 SoapySDRUtil --find

should result in (for example):

Found device 3
  driver = miri
  label = Mirics MSi2500 default (e.g. VTX3D card)
  miri = 0

or

Found device 4
  driver = soapyMiri
  index = 0
  label = Mirics MSi2500 default (e.g. VTX3D card) :: 00000001
  manufacturer = Mirics
  product = MSi2500
  serial = 00000001
  • try to open with SoapySDRUtil
 SoapySDRUtil  --probe="driver=miri"

or

 SoapySDRUtil  --probe="driver=soapyMiri"

SoapyMiri driver

See https://github.com/ericek111/SoapyMiri . Works together with https://github.com/ericek111/libmirisdr-5 .

This is an alternative SoapySDR driver for 'soapysdr-module-mirisdr' package as described. This one identifies as "soapyMiri" instead of simply "miri".

rtl_433

This is a utility that was originally written to decode signals from devices like weather stations, typically operating in the 434 MHz ISM band, using an rtl-sdr.

Now it can also use soapy as an input, for example

 rtl_433 -d driver=miri -v

or

 rtl_433 -d driver=soapyMiri -v

libmiri + sdrangel

For me (bertrik), using Debian (bookworm/sid) the following gives a usable SDR setup to play with:

Build and install libmiri by f4exb:

 git clone https://github.com/f4exb/libmirisdr-4
 cd libmirisdr-4
 mkdir build && cd build
 cmake ..
 nice make -j3
 sudo make install

Build sdrangel by f4exb:

  • install at least the following QT5 development packages (sudo apt install ...)
qtbase5-dev
qtbase5-private-dev
qtlocation5-dev
qtmultimedia5-dev
qtpositioning5-dev
qtwebengine5-dev
libqt5charts5-dev
libqt5serialport5-dev
libqt5texttospeech5-dev
libqt5websockets5-dev
  • other libraries
libserialdv-dev
libboost-dev
libfftw3-dev
libopus-dev
libhackrf-dev
libiio-dev
libopengl-dev
libusb-1.0-0-dev
  • get the source and build it
 git clone https://github.com/f4exb/sdrangel.git
 cd sdrangel
 mkdir build && cd build
 cmake ..
 nice make -j3

Other packages

To be investigated: