Hi,
I have been interested in trying out Osmocom-analog's AMPS implementation. I purchased
an Ettus B210 clone device and built osmocom-analog from source as described on
osmocom-analog.eversberg.eu.
Everything went well until I started the program and tried to transmit, I received no Tx
(output) and the built-in graphs and visualizers had strange output unlike what was
expected:
https://imgur.com/a/Ghr1cju. I used Ubuntu 22.04 and UHD driver 4.7.0.
I am truly at a loss at what is causing the strange output, I also tried launching with
soapy and several other arguments. Additionally, the LimeSDR Mini V2 I had previously
acted the same way as well, so I'm unsure what the problem is. Any advice will be
appreciated, and more information can be provided. Thank you.
Full log with debug enabled shared below:
sudo amps --sdr-uhd --channel 334 --channel 332 --fast-math --sdr-rx-gain -12
--sdr-tx-gain 6 --samplerate 999999 -v 1
DOPTIONS INFO options.c:128 Config file '/root/.osmocom/analog/amps.conf' seems
not to exist, using command line options only.
DOPTIONS INFO options.c:296 Command line option '--sdr-uhd'
DOPTIONS INFO options.c:294 Command line option '--channel', parameter
'334'
DOPTIONS INFO options.c:294 Command line option '--channel', parameter
'332'
DOPTIONS INFO options.c:296 Command line option '--fast-math'
DOPTIONS INFO options.c:294 Command line option '--sdr-rx-gain', parameter
'-12'
DOPTIONS INFO options.c:294 Command line option '--sdr-tx-gain', parameter
'6'
DOPTIONS INFO options.c:294 Command line option '--samplerate', parameter
'999999'
DOPTIONS INFO options.c:280 Command line option '-v' ('--verbose'),
parameter '1'
Selected System ID (SID) 40 belongs to:
Salinas, CA (GTE Mobile)
San Francisco, CA (GTE Mobile)
San Jose, CA (GTE Mobile)
San Rosa, CA (GTE Mobile)
Santa Barbara, CA (GTE Mobile)
DDSP DEBUG dsp.c:150 Generating sine table for SAT signal.
DAMPS DEBUG amps.c:597 Creating 'AMPS' instance for channel = 334 of band B
(sample rate 999999).
DSENDER DEBUG sender.c:77 (chan 334) Creating 'Sender' instance
DJITTER INFO jitter.c:129 (334) Reset jitter buffer.
DJITTER INFO jitter.c:113 (334) Created jitter buffer. (samperate=8000,
target_window=60ms, max_window=1000ms, flag:latency=true flag:repeat=true)
DJITTER INFO jitter.c:129 (334) Reset jitter buffer.
DJITTER INFO jitter.c:113 (334) Created jitter buffer. (samperate=999999,
target_window=60ms, max_window=1000ms, flag:latency=true flag:repeat=true)
DDSP DEBUG dsp.c:202 (chan 334) Init DSP for transceiver.
DSENDER DEBUG sender.c:308 (chan 334) Maximum deviation: 8.0 kHz, Maximum modulation: 10.0
kHz
DSENDER DEBUG sender.c:309 (chan 334) Deviation at speech level: 2.9 kHz
DDSP DEBUG dsp.c:218 Use 99.9999 samples for full bit duration @ 999999.
DDSP DEBUG dsp.c:234 Bit window length: 100
DDSP DEBUG dsp.c:235 -> Samples in window to analyse level left of edge: 25..49
DDSP DEBUG dsp.c:236 -> Samples in window to analyse level right of edge: 50..74
DDSP DEBUG dsp.c:175 Generating smooth ramp table.
DDSP DEBUG dsp.c:259 Sat detection interval is 66 ms.
DDSP DEBUG dsp.c:927 (chan 334) SAT detector reset: Initial state.
DAMPS DEBUG amps.c:399 (chan 334) State change: (NULL) -> IDLE
DAMPS INFO amps.c:685 (chan 334) Entering IDLE state, sending Overhead/Filler frames on
combined control & paging channel.
DDSP DEBUG dsp.c:927 (chan 334) SAT detector reset: Change to FOCC.
DDSP INFO dsp.c:944 (chan 334) Change mode to FOCC
DDSP DEBUG dsp.c:967 (chan 334) Reset FSK frame transmitter, due to setting DSP mode.
DAMPS NOTICE amps.c:638 Created channel #334 (System B) of type 'CC/PC' = combined
control & paging channel
Base station on channel 334 ready (combined control & paging channel), please tune
transmitter to 880.020 MHz and receiver to 835.020 MHz. (-45.000 MHz offset)
DAMPS NOTICE amps.c:558 Channel number 332 belongs to a control channel, but your channel
type 'voice channel' requires it to be on a voice channel number. Some phones may
reject this, but all my phones don't.
DAMPS DEBUG amps.c:597 Creating 'AMPS' instance for channel = 332 of band A
(sample rate 999999).
DSENDER DEBUG sender.c:77 (chan 332) Creating 'Sender' instance
DJITTER INFO jitter.c:129 (332) Reset jitter buffer.
DJITTER INFO jitter.c:113 (332) Created jitter buffer. (samperate=8000,
target_window=60ms, max_window=1000ms, flag:latency=true flag:repeat=true)
DJITTER INFO jitter.c:129 (332) Reset jitter buffer.
DJITTER INFO jitter.c:113 (332) Created jitter buffer. (samperate=999999,
target_window=60ms, max_window=1000ms, flag:latency=true flag:repeat=true)
DDSP DEBUG dsp.c:202 (chan 332) Init DSP for transceiver.
DSENDER DEBUG sender.c:308 (chan 332) Maximum deviation: 8.0 kHz, Maximum modulation: 10.0
kHz
DSENDER DEBUG sender.c:309 (chan 332) Deviation at speech level: 2.9 kHz
DDSP DEBUG dsp.c:218 Use 99.9999 samples for full bit duration @ 999999.
DDSP DEBUG dsp.c:234 Bit window length: 100
DDSP DEBUG dsp.c:235 -> Samples in window to analyse level left of edge: 25..49
DDSP DEBUG dsp.c:236 -> Samples in window to analyse level right of edge: 50..74
DDSP DEBUG dsp.c:175 Generating smooth ramp table.
DDSP DEBUG dsp.c:259 Sat detection interval is 66 ms.
DDSP DEBUG dsp.c:927 (chan 332) SAT detector reset: Initial state.
DAMPS DEBUG amps.c:399 (chan 332) State change: (NULL) -> IDLE
DAMPS INFO amps.c:692 (chan 332) Entering IDLE state (sending silence / no RF) on voice
channel.
DDSP DEBUG dsp.c:927 (chan 332) SAT detector reset: Disable FVC.
DDSP INFO dsp.c:962 (chan 332) Change mode from FVC to OFF
DDSP DEBUG dsp.c:967 (chan 332) Reset FSK frame transmitter, due to setting DSP mode.
DAMPS NOTICE amps.c:638 Created channel #332 (System A) of type 'VC' = voice
channel
Base station on channel 332 ready (voice channel), please tune transmitter to 879.960 MHz
and receiver to 834.960 MHz. (-45.000 MHz offset)
DSDR DEBUG sdr.c:149 Open SDR device
DSDR INFO sdr.c:168 Require bandwidth of each channel is 2 * (8.0 deviation + 10.0
modulation) = 36.0 KHz
DSDR INFO sdr.c:345 We move center frequency between the two channels in the middle, to
prevent them from overlapping with DC level.
DSDR INFO sdr.c:133 TX Spectrum:
2 1
---------------------------------------+---------------------------------------
DSDR INFO sdr.c:135 Frequency 1 = 880.0200 MHz
DSDR INFO sdr.c:135 Frequency 2 = 879.9600 MHz
DSDR INFO sdr.c:357 Total bandwidth (two sidebands) for all TX Frequencies: 960
00 Hz
DSDR INFO sdr.c:365 Using center frequency: TX 879.990000 MHz
DSDR DEBUG sdr.c:370 Frequency #0: TX offset: 0.030000 MHz
DSDR DEBUG sdr.c:370 Frequency #1: TX offset: -0.030000 MHz
DSDR INFO sdr.c:391 Using gain: TX 6.0 dB
DSDR INFO sdr.c:457 We move center frequency between the two channels in the middle, to
prevent them from overlapping with DC level.
DSDR INFO sdr.c:133 RX Spectrum:
2 1
---------------------------------------+---------------------------------------
DSDR INFO sdr.c:135 Frequency 1 = 835.0200 MHz
DSDR INFO sdr.c:135 Frequency 2 = 834.9600 MHz
DSDR INFO sdr.c:469 Total bandwidth (two sidebands) for all RX Frequencies: 96000 Hz
DSDR INFO sdr.c:477 Using center frequency: RX 834.990000 MHz
DSDR DEBUG sdr.c:482 Frequency #0: RX offset: 0.030000 MHz
DSDR DEBUG sdr.c:482 Frequency #1: RX offset: -0.030000 MHz
DSDR INFO sdr.c:492 Using gain: RX -12.0 dB
DSDR INFO sdr.c:525 Using local oscillator offset: -1000000 Hz
DUHD INFO uhd.c:59 Using device args ""
DUHD INFO uhd.c:60 Using stream args ""
DUHD INFO uhd.c:61 Using tune args ""
DUHD INFO uhd.c:64 Creating USRP with args ""...
[INFO] [UHD] linux; GNU C++ version 11.4.0; Boost_107400; UHD_4.7.0.0-0ubuntu1~
jammy1
[INFO] [B200] Detected Device: B210
[INFO] [B200] Operating over USB 3.
[INFO] [B200] Initialize CODEC control...
[INFO] [B200] Initialize Radio control...
[INFO] [B200] Performing register loopback test...
[INFO] [B200] Register loopback test passed
[INFO] [B200] Performing register loopback test...
[INFO] [B200] Register loopback test passed
[INFO] [B200] Setting master clock rate selection to 'automatic'.
[INFO] [B200] Asking for clock rate 16.000000 MHz...
[INFO] [B200] Actually got clock rate 16.000000 MHz.
[INFO] [B200] Asking for clock rate 31.999968 MHz...
[INFO] [B200] Actually got clock rate 31.999968 MHz.
[INFO] [B200] Asking for clock rate 31.999968 MHz...
[INFO] [B200] OK
[INFO] [B200] Asking for clock rate 31.999968 MHz...
[INFO] [B200] OK
[INFO] [B200] Asking for clock rate 31.999968 MHz...
[INFO] [B200] OK
DUHD NOTICE uhd.c:422 Given RX gain -12.000 is not supported, we use 0.000
[INFO] [B200] Asking for clock rate 31.999968 MHz...
[INFO] [B200] OK
[INFO] [B200] Asking for clock rate 31.999968 MHz...
[INFO] [B200] OK
| |
| /|===|\
-=O=- / |\ /| \ ~
| AMPS / | X | \ ~
/ |===| \
/ | |\ \
/ /| | \ \ ~
|--| / / |===| \ \
/|\/|\ / / | | \ \
/ |--| \ / / | | \ \
/ | |\ \ / / |===| \ \
__ / /|--| \ \ / / | | \ \
\_ / / | | \ \ / / | | \ \
\ / / | | \ \______/ / | | \| \|
\=========================================================================
\_______|/\|______ _***_*__**_***___**_*_| X | |MMMM|
\__ |\/| \______/* ** * * * ** * |/ \|______________|MMMM|
_____ \_|/\| * * * * ** * * * * * * |\ /|*____/ ~ ~ ~ ~
/ ~ ~\_______I__I_________*______*_*___*__*___*__*_*_| X |/ ~ ~ _________
_______\ _ _ _ _ _ _ _ _ _ _ |/_\/ ~ ______/
_ _ _ _ _ _ _ _/~ ~ ____/ ~ ~ ~
_ _ _ _ _ _ _ /_____/ ~ ____________
__/~\______________ _ _ _ _ _/ ~ ~ __________/ ~ ~ ~
~ ~ ~ \____________________________/ / ~ ~ ~ ~ ~
DSDR DEBUG sdr.c:707 Create threads!
DFRAME INFO frame.c:2723 Transmit: Word 1 - System Parameter Overhead
DFRAME DEBUG frame.c:2734 T1T2: 3 = Overhead Message (Type field)
DFRAME DEBUG frame.c:2736 DCC: 0 (Digital color code field)
DFRAME DEBUG frame.c:2736 SID1: 20 (First part of the system identi
fication field)
DFRAME DEBUG frame.c:2734 EP: 0 = No (Extended Protocol Capabilit
y Indicator)
DFRAME DEBUG frame.c:2734 AUTH: 0 = No (Support of authentication p
rocedures described in TIA/EIA-136-510)
DFRAME DEBUG frame.c:2734 PCI: 0 = No (Set to 1 if Control Channel
can assign digital traffic channels)
DFRAME DEBUG frame.c:2736 NAWC: 4 (Number of additional words comin
g field)
DFRAME DEBUG frame.c:2734 OHD: 6 = Word 1 of system parameter messa
ge (Overhead Message Type field)
DFRAME DEBUG frame.c:2736 P: 1530 (Parity field)
DFRAME INFO frame.c:2723 Transmit: Word 2 - System Parameter Overhead
DFRAME DEBUG frame.c:2734 T1T2: 3 = Overhead Message (Type field)
DFRAME DEBUG frame.c:2736 DCC: 0 (Digital color code field)
DFRAME DEBUG frame.c:2734 S: 1 = Yes (Serial number field)
DFRAME DEBUG frame.c:2734 E: 1 = Yes (Extended address field)
DFRAME DEBUG frame.c:2734 REGH: 1 = Yes (Registration field for hom
e stations)
DFRAME DEBUG frame.c:2734 REGR: 1 = Yes (Registration field for roa
ming stations)
DFRAME DEBUG frame.c:2734 DTX Support: 0 = DTX Not Supported (Indicates th
e nature of DTX supported on an analog voice)
DFRAME DEBUG frame.c:2734 N-1: 20 = 21 (N is the number of paging
channels in the system)
DFRAME DEBUG frame.c:2734 RCF: 1 = Yes (Read-control-filler field)
DFRAME DEBUG frame.c:2734 CPA: 1 = Yes (Combined paging/access fie
ld)
DFRAME DEBUG frame.c:2734 CMAX-1: 20 = 21 (CMAX is the number of acce
ss channels in the system)
DFRAME DEBUG frame.c:2734 END: 0 = No (End indication field)
DFRAME DEBUG frame.c:2734 OHD: 7 = Word 2 of system parameter messa
ge (Overhead Message Type field)
DFRAME DEBUG frame.c:2736 P: 437 (Parity field)
DFRAME INFO frame.c:2723 Transmit: Registration ID Message
DFRAME DEBUG frame.c:2734 T1T2: 3 = Overhead Message (Type field)
DFRAME DEBUG frame.c:2736 DCC: 0 (Digital color code field)
DFRAME DEBUG frame.c:2736 REGID: 196474 (Registration ID field)
DFRAME DEBUG frame.c:2734 END: 0 = No (End indication field)
DFRAME DEBUG frame.c:2734 OHD: 0 = Registration ID (Overhead Messa
ge Type field)
DFRAME DEBUG frame.c:2736 P: 614 (Parity field)
DFRAME INFO frame.c:2723 Transmit: Registration Increment Global Action Message
DFRAME DEBUG frame.c:2734 T1T2: 3 = Overhead Message (Type field)
DFRAME DEBUG frame.c:2736 DCC: 0 (Digital color code field)
DFRAME DEBUG frame.c:2734 ACT: 2 = Registration increment (Global
action field)
DFRAME DEBUG frame.c:2736 REGINCR: 300 (Registration increment field)
DFRAME DEBUG frame.c:2736 RSVD: 0 (Reserved for future use)
DFRAME DEBUG frame.c:2734 END: 0 = No (End indication field)
DFRAME DEBUG frame.c:2734 OHD: 4 = Global action (Overhead Message
Type field)
DFRAME DEBUG frame.c:2736 P: 448 (Parity field)
DFRAME INFO frame.c:2723 Transmit: Access Type Parameters Global Action Message
DFRAME DEBUG frame.c:2734 T1T2: 3 = Overhead Message (Type field)
DFRAME DEBUG frame.c:2736 DCC: 0 (Digital color code field)
DFRAME DEBUG frame.c:2734 ACT: 9 = Access type parameters (Global
action field)
DFRAME DEBUG frame.c:2734 BIS: 0 = Ignore Idle-Busy after access (
Busy-Idle status field)
DFRAME DEBUG frame.c:2734 PCI_HOME: 0 = No (Home Protocol Capability In
dicator)
DFRAME DEBUG frame.c:2734 PCI_ROAM: 0 = No (Roam Protocol Capability In
dicator)
DFRAME DEBUG frame.c:2734 BSPC: 0 = Reserved for backward compatibil
ity (Base Station Protocol Capability field)
DFRAME DEBUG frame.c:2734 BSCAP: 0 = Reserved for backward compatibil
ity (Base Station Core Analog Protocol field)
DFRAME DEBUG frame.c:2736 RSVD: 0 (Reserved for future use)
DFRAME DEBUG frame.c:2734 END: 1 = Yes (End indication field)
DFRAME DEBUG frame.c:2734 OHD: 4 = Global action (Overhead Message
Type field)
DFRAME DEBUG frame.c:2736 P: 1790 (Parity field)
DFRAME INFO frame.c:2723 Transmit: Control-Filler Message
DFRAME DEBUG frame.c:2734 T1T2: 3 = Overhead Message (Type field)
DFRAME DEBUG frame.c:2736 DCC: 0 (Digital color code field)
DFRAME DEBUG frame.c:2736 010111: 23 (bit combination 23)
DFRAME DEBUG frame.c:2734 CMAC: 4 = -10 dbW (100 Milliwatts) (Contr
ol mobile attenuation field)
DFRAME DEBUG frame.c:2736 SDCC1: 0 (Supplementary Digital Color Code
s)
DFRAME DEBUG frame.c:2736 11: 3 (bit combination 3)
DFRAME DEBUG frame.c:2736 SDCC2: 0 (Supplementary Digital Color Code
s)
DFRAME DEBUG frame.c:2736 1: 1 (bit combination 1)
DFRAME DEBUG frame.c:2734 WFOM: 1 = Yes (Wait-for-overhead-message
field)
DFRAME DEBUG frame.c:2736 1111: 15 (bit combination 15)
DFRAME DEBUG frame.c:2734 OHD: 1 = Control-Filler (Overhead Messag
e Type field)
DFRAME DEBUG frame.c:2736 P: 1921 (Parity field)
DFRAME INFO frame.c:3515 (chan 334) Subsequent system/filler frames are not sho
wn, to prevent flooding the output.
DSDR DEBUG sdr.c:952 read delay = 2.040 ms
DSDR DEBUG sdr.c:884 write delay = 2.040 ms
DSDR DEBUG sdr.c:952 read delay = 2.040 ms
DSDR DEBUG sdr.c:884 write delay = 2.040 ms
DSDR DEBUG sdr.c:952 read delay = 2.040 ms
DSDR DEBUG sdr.c:884 write delay = 2.040 ms
DSDR DEBUG sdr.c:952 read delay = 4.080 ms
DSDR DEBUG sdr.c:884 write delay = 2.040 ms
DSDR DEBUG sdr.c:952 read delay = 2.040 ms
DSDR DEBUG sdr.c:884 write delay = 2.040 ms
DSDR DEBUG sdr.c:952 read delay = 2.040 ms
DSDR DEBUG sdr.c:884 write delay = 2.040 ms
DSDR DEBUG sdr.c:952 read delay = 2.040 ms
DSDR DEBUG sdr.c:884 write delay = 2.040 ms
DSDR DEBUG sdr.c:952 read delay = 2.040 ms
DSDR DEBUG sdr.c:884 write delay = 2.040 ms
[continues like this]