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]
Hi,
I solved the problem. For those who also cannot see the transmission, please add the parameters "--sdr-rx-gain" and "--sdr-tx-gain" on startup. Everything works great, it was only a problem of too weak tx/rx.
osmocom-analog@lists.osmocom.org