element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Wireless
  • Technologies
  • More
Wireless
Blog Software Defined Radio: Experimenting with the MSI-SDR M1
  • Blog
  • Forum
  • Documents
  • Polls
  • Quiz
  • Events
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Wireless to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: shabaz
  • Date Created: 17 Jan 2024 4:13 PM Date Created
  • Views 8265 views
  • Likes 13 likes
  • Comments 12 comments
  • Mirics
  • MSI-SDR
  • MSI001
  • software defined radio
  • sdr
  • MSI2500
Related
Recommended

Software Defined Radio: Experimenting with the MSI-SDR M1

shabaz
shabaz
17 Jan 2024

Table of Contents

  • Introduction
  • Is the Device any Good?
  • Background
  • System Overview
  • Building the Software on Windows
  • Driver
  • A First Test
  • Summary

Introduction

The MSI-SDR M1 is a very low-cost Software Defined Radio (SDR) that appears to be an open hardware design from China. It is available as a pre-built circuit board or within an enclosure. There are several variations of it; I purchased the one in the photo for about $30. I don't recommend it (see below for the reasons).

image

The reason for the half-dozen SMA connectors is that the SDR apparently operates from 1 kHz to 1GHz, and the inputs are band-pass filtered for different frequency segments. The other end of the SDR has just a USB-C connector, to pass the digitized I/Q signals to the PC.

This blog post covers some getting-started experiments with the device; it’s not a complete guide, but just enough to get going and experiment some more.

Is the Device any Good?

As mentioned earlier, the short answer is simply no.

Long answer: Based on the impressions of it after a few days, it is not recommended for general receiver use as a black box. It wouldn’t be very good for that because there is no ready-to-go software, and even if there was, the receiver needs work on the RF input side. If that was done, the device may be good for use as a broadcast receiver.

For ham radio users, please also bear in mind that the chipset used was never designed for use on amateur radio frequencies. It will be sub-optimal because the integrated circuit on the board only contains amplifiers for specific frequency bands that do not include all the popular amateur bands; for instance, 2-meter and 70cm coverage will be operating outside of the datasheet specification for the chip, although there might be workarounds since a commercial ham radio product called RSP1 uses the same chipset. If you are dead set on using this chipset as a ham radio, then you should directly consider the RSP1 product and not the MSI-SDR.

For sure, the MSI-SDR can somewhat “work” but only because SDR technology is quite forgiving of sub-optimal front-ends, to an extent, and certainly not because the front end is any good for those bands because it won’t be.

On the other hand, if you are the kind of person who likes getting your hands dirty building code, examining source code, and troubleshooting hardware and software, including messing around with surface-mount components and learning about RF testing, then read on because you might love this device.

For that sort of person, with some effort, there is quite a lot of opportunity to use the device for low-cost test purposes and for learning purposes. Much of the device is simple on paper (there is complexity, too), so it's great for learning, and there is the chance to probe the intermediate frequency (IF) I/Q outputs, although that might need some intricate soldering. If you're looking for a far better platform for learning purposes, the ADALM-PLUTO  could be a better choice, since there is training material for it. For HF and VHF use, the ADALM-PLUTO will require an external up-converter.

Background

There’s a commercial SDR product called RSP1, and internally, it uses a Mirics chipset consisting of MSI001 and MSI2500 chips. The MSI-SDR happens to use the same chipset, but unfortunately, the RSP1 manufacturer does not allow their PC driver nor their PC software (called SDRuno) to be used with the cheap MSI-SDR boards, which I think is very short-sighted because it doesn’t encourage users to try out the software and eventually upgrade their hardware to the commercial version.

In any case, I decided to try a purely open-source approach; no commercial driver or software was needed. But first, it is worth examining what’s inside!

System Overview

The internals are shown below (click to enlarge).

image

The block diagram shows how the MSI-SDR works. (Note: there may be errors in the block diagram! For instance, I am unsure if the six RF inputs are connected as shown). Almost the entire functionality is contained within two chips.

image

From the left side, the six RF inputs are band-pass filtered using discrete passive components on the PCB, and then the MSI001 chip takes over. It switches in one of the six channels, which is amplified and then mixed down to an intermediate frequency using a quadrature arrangement, i.e., using local oscillator signals that are 90 degrees out-of-phase.

For the low-frequency inputs, there is another conversion, shown in pink.

The main mixer outputs are labeled I and Q, and they are digitized by the MSI2500 chip and passed to the PC to demodulate in software. The MSI2500 chip configures the MSI001 over a serial interface.

The configuration primarily includes setting up the frequency synthesizer inside the MSI001, selecting the input path, and gain control. There are only seven registers (of length up to 20 bits each) inside the MSI001, so it’s not a complicated chip to set up, although some maths is needed to work out the synthesizer settings and so on.

At the PC end, various maths operations can be done to the I and Q streams to recover the baseband signal that was originally transmitted. For instance, if the original signal happened to be AM modulated, then the I and Q signals can be simply summed (in practice more operations may be done to improve performance).

Building the Software on Windows

I used software called libmirisdr-4, and although it works, it might not be the best option. It would also be worth checking out software called gr-soapy.

I have only tried Windows 11; the steps involved will differ for Linux and Mac.

I created a folder for development called C:\development\miri_sdr

In that folder, using PowerShell, type the following:

git clone https://github.com/f4exb/libmirisdr-4

From https://github.com/libusb/libusb/releases I downloaded libusb-1.0.26-binaries.7z and then using 7-zip software, I extracted the folder inside there and placed it in C:\development\miri_sdr

I now had two folders in C:\development\miri_sdr; libmirisdr-4, and libusb-1.0.26-binaries

In the C:\development\miri_sdr\libmirisdr-4\cmake\Modules folder, I backed up the FindLibUSB.cmake file and replaced it with this modified FindLibUSB.cmake file.

Next, I installed MSYS2.

Once installed, you’ll see a load of programs, beginning with MSYS. You’ll want to run the one called MSYS MINGW32. A command prompt will appear.

In that MSYS2 command prompt, type:

pacman -Su cmake
pacman -Su gcc
pacman -Su ninja
cd /c/development/miri_sdr/libmirisdr-4
mkdir build
cd build
cmake -G Ninja ..
ninja

After a while, the software will be built, in a sub-folder called src, inside the build folder that you created.

Driver

A driver is needed! I went to https://github.com/mcuee/libusbk/releases/tag/V3.1.0.0 and downloaded a file called libusbK-3.1.0.0-setup.exe and installed it. It installs a libusbK development kit.

Plug the MSI-SDR into your PC, and run the libusbK-inf-wizard.exe program (mine was installed at C:\libusbK-dev-kit). In the window that appears, there will be three Kernel Driver Packages listed. Click on the one labeled libisbK and click Next. Click on Show All Devices. Look down the list, and you should see one with Vendor ID 0x1df7 and Product ID 0x2500. Select that one and click Next. Continue until the software saves a driver folder to your PC! Don’t install it yet. Close the libusbK-inf-wizard software.

Now go into the driver folder that was created, and right-click on InstallDriver.exe, and click on Run as Administrator. You need to do this because the driver is unsigned, and Windows 11 won’t allow the installation of an unsigned driver without administrator permission. There’s no way around that, so if you don’t feel comfortable with this, then you won’t be able to proceed, unfortunately.

A First Test

Install VLC Media Player on your PC.

Next, in the MSYS MINGW32 command prompt, type the following two lines:

cd /c/development/miri_sdr/libmirisdr-4/build/src


./miri_fm.exe -f 101600000 -M wbfm -g 10 | "/c/Program Files/VideoLAN/VLC/vlc.exe" --demux=rawaud --rawaud-channels 1 --rawaud-samplerate 32000 –

The value 101600000 indicates a frequency of 101.6MHz. You can replace that with an FM broadcast frequency for a station in your area.

When that command is run, VLC is automatically launched.

If an antenna (e.g., the short telescopic antenna supplied with the MSI-SDR) is connected to the 50-120MHz port, you should immediately hear the FM station or at least a load of noise if the radio reception is not sufficient for the MSI-SDR.

Summary

The MSI-SDR is an interesting device; it needs a lot of effort to get going with it, I’ve only touched on the initial aspects of that in this blog post, and there’s no guarantee it will be very usable at the end. Still, if your happiness is in the journey, you might have a lot of fun with the device.

I particularly liked that the chipset configuration won’t take too long to understand, which means that it could be quite interesting to delve into the software. Also, it will be fun to apply signals at the RF inputs, and examine the I/Q outputs either digitally or as analog signals. It will also be interesting to actually measure the inputs, perhaps with a VNA, and see if the discrete filter design can be improved. This is all a good learning experience, if you’re a glass-is-half full engineer, or a complete nightmare if you really just want to use the radio as a black box!

Thanks for reading!

  • Sign in to reply
Parents
  • DAB
    DAB over 1 year ago

    Looks like it wants separate antennae for each range of signals.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • AlanVK2ZIW
    AlanVK2ZIW 5 months ago in reply to DAB

    Support via libmirisdr-5 on Linux runs quite well into PhantomSDR using

    the "miri_sdr" program. But PhantomSDR cannot change frequency bands,

    so at 2Msp can cover just 2MHz of spectrum anywhere, using 12bit samples.

    This is better by far than the 8bit samples of the Realtek RTL_SDR.

    And, they are inexpensive. 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • shabaz
    shabaz 5 months ago in reply to AlanVK2ZIW

    Great to see it's working for you. I've not used it for quite a while, but would like to explore it again at some point.

    Are you using the original RSP1, or a MSI-SDR device? Do you have a link to the SDR device that you purchased?

    The RSP1 is quite a bit more expensive than the MSI-SDR one I used, and works fine from what I understand (I don't own an RSP1 to compare).

    I built the source too, (I used libmiri-sdr4 at the time of writing), however building that and installing libusbK on Windows is a fair few steps as can be seen from the blog post.

    I suspect that some of these MSI-SDR devices (not RSP1) suffer from EMI issues; for instance, just trying to receive a broadcast FM station (something that the chipset should be good at, because it's internal LNA is designed for that band) resulted in poor reception compared to a cheap pocket radio. Ferrites on the USB cable improved things only slightly.

    I wasn't convinced the input filters on the MSI-SDR board that I had were any good. I removed one set of them to modify but didn't get around to exploring further.

    There are a few different manufacturers of similar-ish looking devices with the same chipset, so some of those may well be better than the one I have.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • shabaz
    shabaz 5 months ago in reply to AlanVK2ZIW

    Great to see it's working for you. I've not used it for quite a while, but would like to explore it again at some point.

    Are you using the original RSP1, or a MSI-SDR device? Do you have a link to the SDR device that you purchased?

    The RSP1 is quite a bit more expensive than the MSI-SDR one I used, and works fine from what I understand (I don't own an RSP1 to compare).

    I built the source too, (I used libmiri-sdr4 at the time of writing), however building that and installing libusbK on Windows is a fair few steps as can be seen from the blog post.

    I suspect that some of these MSI-SDR devices (not RSP1) suffer from EMI issues; for instance, just trying to receive a broadcast FM station (something that the chipset should be good at, because it's internal LNA is designed for that band) resulted in poor reception compared to a cheap pocket radio. Ferrites on the USB cable improved things only slightly.

    I wasn't convinced the input filters on the MSI-SDR board that I had were any good. I removed one set of them to modify but didn't get around to exploring further.

    There are a few different manufacturers of similar-ish looking devices with the same chipset, so some of those may well be better than the one I have.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube