RF product - moRFeus - frequency converter and signal generator


the correct udev rules are also available here, along with morfeus_tool:


instructions are in the file itself.


Hi everyone,
I’m a new owner of moRFeus and found it’s kind of missing a CLI tool I can use on OSX.
Based on some experiments and USB HID protocol info posted on this forum, I released Python-based API/CLI on github: https://github.com/tai/morfeus

Both API and CLI is quite easy to use:

=== CLI usage ===
$ morfeus mode
$ morfeus mode GENERATOR
$ morfeus freq 110000000
$ morfeus bias 1
$ morfeus current 1

=== API usage ===
import morfeus
mrf = morfeus.MoRFeus()
mrf.mode = morfeus.Mode.GENERATOR
mrf.freq = 110000000
mrf.bias = 1
mrf.current = 1

I’m going to add sweep functionality, but it would be better to have that in moRFeus firmware as doing a sweep over USB HID makes it kind of slow.

Hope you find it useful!



$ pip install morfeus

Collecting morfeus

Could not find a version that satisfies the requirement morfeus (from versions: )

No matching distribution found for morfeus

macos 10.14.1 - python 2.5.1



Sorry for that - While the code is released on github, I was still preparing for uploading to PyPi registry.
It’s now uploaded to PyPi, so please try it again:

BTW, this is based on Python3 (on OSX and Linux), so not tested with Python2.


got it. works now. thanks!


Hi all, Does anybody have a compiled for windows (win7 64-bit) version of software to control the morfeus ? I can already control it with the command line moRFctrl ‘morfeus_tool’ but I’d like something handier as it’s a little cumbersome. I know there is friendlier ‘windows’ versions, I just don’t have the ability to compile them myself.
Many thanks.


Hi Terry, I’m in the middle of writing moRFctrl, which sounds like what you’re after. I hope to publish the initial version later this week which will include pre-compiled binaries for Windows.

I’m writing up some documentation right now over on my site.


Hi Sam, That sounds (and looks) great, I look forward to it. I also noticed the DDE tracker on your website, it looks really cool. I will look forward to that also.
Many thanks for your work.


High guys!

I spent some time on my python app, added multi device support and when the application detects there is a TCP server at 7356 it will grab a power reading from GQRX and then draws a plot(this is in Ubuntu 18.04 ).

Installs with
pip install morfeusqt

I’ll work on setting up a VSWR sequence soon.

This is a 88-108MHz Bandstop filter plotted with the application.
42 seconds to complete the sweep at a dwell time of 300ms.

Here is the RF train.

Here is a plot with sweep data

Compares nicely with the SpectrumSpy and moRFeus on noise mode(5400 MHz)…

This is all still very beta-ish, its nice to be on holiday again.

I will push a commit with these changes.

The GUI is my next big step, it needs rework to to accommodate the pending changes.

  • TCP Address box
  • TCP Port box
  • TCP Protocols dropdown
  • TCP Response Box
  • Progress bar dialogs for events
  • yada yada . . . :wink:

EDIT: This seems to work in Windows 10 too :slight_smile:

Kind Regards
Ohan Smit



Its seems that a dwell time less than 500ms could be usable to get some relevant measurements and improve the time it takes to do a sweep at 1MHz step size from 85 - 150MHz

Here is a graph I plotted. 100ms vs 500ms ( 7.4 vs 34.1 seconds )
of the moRFeus -> 88-108MHz Bandstop filter -> Airspy R2

Discovered you can replot on the same window by just running the sweep again from the application.

How cool. . .

Kind Regards
Ohan Smit


Hi Ohan

Looks really nice, thanks.
FYI I tried to install morfeus_Qt, unfortunately python3.6-dev package is not available before Ubuntu 16.10 (using 16.04 here) neither on Rpi.
Seems there is a workaround here (not tried) : https://stackoverflow.com/questions/43621584/why-cant-i-install-python3-6-dev-on-ubuntu16-04
Will try later on 18.04.
Happy new year everyone.


Hey man

Hope you are well? :slight_smile:
Thanks for trying it out, im sure if you change the setup.py requirement to
if sys.version_info < (3, 5): or perhaps lower it should work?

Did I nice sweep from 85-1500MHz on different LO dwell times.

Cheers man

Happy new year to all




i think the “Getting Started” section of the User Guide needs to start off with setting the Mixer current to “1”.
leaving the setting at “0” means practically no observable output in either mixer or generator modes.


I’m not sure if anyone is still monitoring this thread or not, but I would like to use two moRFeus units to down-convert a signal to transmit at a lower frequency across a medium and then up-convert the signal back to the original frequency through the next in-line moRFeus mixer. I am assuming there is currently a low-pass filter in the moRFeus when mixing, and the original signal minus the off-set is output. Can I remove this filter to allow for the off-set to output an up-converted signal? Any thoughts on this would be greatly appreciated.

Daryl M.


the frequency limitations are those of the mixer in the moRFeus. read the specs on each port carefully. all mixing products within range are output.


I have read through the specs, and I have two in my lab. It is apparent the LO creates two frequencies, but one is likely filtered (the top end), and the output frequency is the low-end frequency. The top end still exists, but it is usually filtered in this scenario. I want to allow the top end to be used for the output. Is the low-pass filter a jumper, chip, software or something I can modify? I apologize if I am not clear with what I am trying to accomplish.


in sig gen mode, it emits one carrier.
in mixer mode, it emits input+LO and input-LO (and LO with suppression).


Is there a way to specify input+LO vs. input-LO, or are these both always output? Just curious. Thanks for the feedback.


always output (it’s a mixer). filtering is up to you.