Open source mirics driver + miri_sdr + miri_fm
Posted: Tue May 03, 2016 8:26 am
CPU usage is 60% lower than that of libmirsdrapi-rsp.
http://www.sm5bsz.com/linuxdsp/archive/ ... -3-bsz.tbz
http://www.sm5bsz.com/linuxdsp/install/ ... smplus.htm
./miri_sdr
Usage: -f frequency_to_tune_to [Hz]
[-m sample format (default: auto]
504: S8 (fastest)
384: S10 +2bits
336: S12
252: S14
[-e USB transfer mode (default: 1)]
1: Isochronous (maximum 196.608 Mbit/s)
2: Bulk (maximum 333Mbit/s, depends on controller type)
[-i IF mode (default: ZERO]
0: ZERO
450000: 450 kHz
1620000: 1620kHz
2048000: 2048kHz
[-w BW mode (default: 8MHz]
200000: 200kHz
300000: 300kHz
600000: 600kHz
1536000: 1536kHz
5000000: 5MHz
6000000: 6MHz
7000000: 7MHz
8000000: 8MHz
[-s samplerate (default: 2048000 Hz)]
[-d device_index (default: 0)]
[-g gain (default: 0 for auto)]
[-b output_block_size (default: 16 * 16384)]
[-S force sync output (default: async)]
filename (a '-' dumps samples to stdout)
./miri_fm -h
miri_fm, a simple narrow band FM demodulator for Mirics based receivers
Use: miri_fm -f freq [-options] [filename]
-f frequency_to_tune_to [Hz]
use multiple -f for scanning (requires squelch)
ranges supported, -f 118M:137M:25k
[-M modulation (default: fm)]
fm, wbfm, raw, am, usb, lsb
wbfm == -M fm -s 170k -o 4 -A fast -r 32k -l 0 -E deemp
raw mode outputs 2x16 bit IQ pairs
[-s sample_rate (default: 24k)]
[-d device_index (default: 0)]
[-g tuner_gain (default: automatic)]
[-m sample format (default: auto]
504: S8 (fastest)
384: S10 +2bits
336: S12
252: S14
[-e USB transfer mode (default: 1)]
1: Isochronous (maximum 196.608 Mbit/s)
2: Bulk (maximum 333Mbit/s, depends on controller type)
[-i IF mode (default: ZERO]
0: ZERO
450000: 450 kHz
1620000: 1620kHz
2048000: 2048kHz
[-w BW mode (default: 8MHz]
200000: 200kHz
300000: 300kHz
600000: 600kHz
1536000: 1536kHz
5000000: 5MHz
6000000: 6MHz
7000000: 7MHz
8000000: 8MHz
[-l squelch_level (default: 0/off)]
[-o oversampling (default: 1, 4 recommended)]
[-p ppm_error (default: 0)]
[-E enable_option (default: none)]
use multiple -E to enable multiple options
edge: enable lower edge tuning
dc: enable dc blocking filter
deemp: enable de-emphasis filter
direct: enable direct sampling
offset: enable offset tuning
filename ('-' means stdout)
omitting the filename also uses stdout
Experimental options:
[-r resample_rate (default: none / same as -s)]
[-t squelch_delay (default: 10)]
+values will mute/scan, -values will exit
[-F fir_size (default: off)]
enables low-leakage downsample filter
size can be 0 or 9. 0 has bad roll off
[-A std/fast/lut choose atan math (default: std)]
Produces signed 16 bit ints, use Sox or aplay to hear them.
miri_fm ... | play -t raw -r 24k -es -b 16 -c 1 -V1 -
| aplay -r 24k -f S16_LE -t raw -c 1
-M wbfm | play -r 32k ...
-s 22050 | multimon -t raw /dev/stdin
http://www.sm5bsz.com/linuxdsp/archive/ ... -3-bsz.tbz
http://www.sm5bsz.com/linuxdsp/install/ ... smplus.htm
./miri_sdr
Usage: -f frequency_to_tune_to [Hz]
[-m sample format (default: auto]
504: S8 (fastest)
384: S10 +2bits
336: S12
252: S14
[-e USB transfer mode (default: 1)]
1: Isochronous (maximum 196.608 Mbit/s)
2: Bulk (maximum 333Mbit/s, depends on controller type)
[-i IF mode (default: ZERO]
0: ZERO
450000: 450 kHz
1620000: 1620kHz
2048000: 2048kHz
[-w BW mode (default: 8MHz]
200000: 200kHz
300000: 300kHz
600000: 600kHz
1536000: 1536kHz
5000000: 5MHz
6000000: 6MHz
7000000: 7MHz
8000000: 8MHz
[-s samplerate (default: 2048000 Hz)]
[-d device_index (default: 0)]
[-g gain (default: 0 for auto)]
[-b output_block_size (default: 16 * 16384)]
[-S force sync output (default: async)]
filename (a '-' dumps samples to stdout)
./miri_fm -h
miri_fm, a simple narrow band FM demodulator for Mirics based receivers
Use: miri_fm -f freq [-options] [filename]
-f frequency_to_tune_to [Hz]
use multiple -f for scanning (requires squelch)
ranges supported, -f 118M:137M:25k
[-M modulation (default: fm)]
fm, wbfm, raw, am, usb, lsb
wbfm == -M fm -s 170k -o 4 -A fast -r 32k -l 0 -E deemp
raw mode outputs 2x16 bit IQ pairs
[-s sample_rate (default: 24k)]
[-d device_index (default: 0)]
[-g tuner_gain (default: automatic)]
[-m sample format (default: auto]
504: S8 (fastest)
384: S10 +2bits
336: S12
252: S14
[-e USB transfer mode (default: 1)]
1: Isochronous (maximum 196.608 Mbit/s)
2: Bulk (maximum 333Mbit/s, depends on controller type)
[-i IF mode (default: ZERO]
0: ZERO
450000: 450 kHz
1620000: 1620kHz
2048000: 2048kHz
[-w BW mode (default: 8MHz]
200000: 200kHz
300000: 300kHz
600000: 600kHz
1536000: 1536kHz
5000000: 5MHz
6000000: 6MHz
7000000: 7MHz
8000000: 8MHz
[-l squelch_level (default: 0/off)]
[-o oversampling (default: 1, 4 recommended)]
[-p ppm_error (default: 0)]
[-E enable_option (default: none)]
use multiple -E to enable multiple options
edge: enable lower edge tuning
dc: enable dc blocking filter
deemp: enable de-emphasis filter
direct: enable direct sampling
offset: enable offset tuning
filename ('-' means stdout)
omitting the filename also uses stdout
Experimental options:
[-r resample_rate (default: none / same as -s)]
[-t squelch_delay (default: 10)]
+values will mute/scan, -values will exit
[-F fir_size (default: off)]
enables low-leakage downsample filter
size can be 0 or 9. 0 has bad roll off
[-A std/fast/lut choose atan math (default: std)]
Produces signed 16 bit ints, use Sox or aplay to hear them.
miri_fm ... | play -t raw -r 24k -es -b 16 -c 1 -V1 -
| aplay -r 24k -f S16_LE -t raw -c 1
-M wbfm | play -r 32k ...
-s 22050 | multimon -t raw /dev/stdin