Opendigitalradio / ODR-DabMod

ODR-DabMod is a DAB (Digital Audio Broadcasting) modulator, part of the ODR-mmbTools.

Home Page:https://www.opendigitalradio.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ODR-DabMod - 0 DAB frames encoded

sronline opened this issue · comments

I was able to receive a multiplex by edi (DCP AF) via udp and transmit it with a LimeSDR Mini.

But now I have the issue that the modulator does not transmit any frames any more:

ODR-DabMod version v2.4.2-5-g300be5d, compiled at Sep 8 2021, 15:03:03
Compiled with features: zeromq output_soapysdr output_limesdr fast-math SSE
Input
Type: edi
Source: udp://:2048
Output
SoapySDR
Device: lime
master_clock_rate: 32768000
Sampling rate: 2.0480 MHz
Configuration parsed. Starting up version v2.4.2-5-g300be5d
Soapy:Creating the device with: lime
[INFO] Make connection: 'LimeSDR Mini [USB 3.0] 1D4C3C05135XXX'
[INFO] Reference clock 40.00 MHz
[INFO] Device name: LimeSDR-Mini
[INFO] Reference: 40 MHz
[INFO] LMS7002M calibration values caching Disable
SoapySDR:Actual master clock rate: 32767.9995 kHz
SoapySDR:Actual TX rate: 2048.0000 ksps.
[INFO] Selected TX path: Band 2
SoapySDR:Actual frequency: 195935.998 kHz.
SoapySDR:Actual TX gain: 70.06
SoapySDR:Actual TX antenna: BAND1
Setting up timestamp decoder with 0 offset
Opening EDI :udp://:2048
EDI UDP input: host:0.0.0.0, source:0.0.0.0, port:2048

After CTRL+C:
^CERROR Modulator failure.
0 DAB frames encoded
0 seconds encoded
Terminating

Wireshark reports that edi packets are received:

tcpdump udp port 2048
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eno1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
17:34:16.077714 IP 192.168.XX.40.59331 > 192.168.YY.90.2048: UDP, length 2573
17:34:16.101714 IP 192.168.XX.40.59331 > 192.168.YY.90.2048: UDP, length 2573
17:34:16.125730 IP 192.168.XX.40.59331 > 192.168.YY.90.2048: UDP, length 2573
17:34:16.149718 IP 192.168.XX.40.59331 > 192.168.YY.90.2048: UDP, length 2573

What can I do to debug the issue?

config:

[log]
syslog=0
filelog=0
[input]
loop=1
transport=edi
source=udp://:2048
[modulator]
gainmode=var
digital_gain=0.8
rate=2048000
[cfr]
enable=0
clip=50.0
error_clip=0.1
[firfilter]
enabled=1
[poly]
enabled=0
polycoeffile=polyCoefs
[output]
output=soapysdr
[soapyoutput]
device=lime
master_clock_rate=32768000
txgain=70
channel=8A
tx_antenna=BAND1
[delaymanagement]
synchronous=0
mutenotimestamps=0
offset=0.002
[tii]
enable=0
comb=1
pattern=11
old_variant=0

What happens when you write a raw file in u8 format instead of using soapy?

Writing to a raw file works:

ODR-DabMod version v2.4.2-5-g300be5d, compiled at Sep 8 2021, 15:03:03
Compiled with features: zeromq output_soapysdr output_limesdr fast-math SSE
Input
Type: edi
Source: udp://:2048
Output
Name: /root/ofdm.iq
Sampling rate: 2.0480 MHz
Configuration parsed. Starting up version v2.4.2-5-g300be5d
Setting up timestamp decoder with 0 offset
Opening EDI :udp://:2048
EDI UDP input: host:0.0.0.0, source:0.0.0.0, port:2048
Initialise next_pseq to 13675
pseq 13675 timed out
EDI AF Packet initial sequence number: 13676

It strange, now after a retry, the LimeSDR transmits but only a short time:

ODR-DabMod version v2.4.2-5-g300be5d, compiled at Sep 8 2021, 15:03:03
Compiled with features: zeromq output_soapysdr output_limesdr fast-math SSE
Input
Type: edi
Source: udp://:2048
Output
SoapySDR
Device: lime
master_clock_rate: 32768000
Sampling rate: 2.0480 MHz
Configuration parsed. Starting up version v2.4.2-5-g300be5d
Soapy:Creating the device with: lime
[INFO] Make connection: 'LimeSDR Mini [USB 3.0] 1D4C3C05135XXX'
[INFO] Reference clock 40.00 MHz
[INFO] Device name: LimeSDR-Mini
[INFO] Reference: 40 MHz
[INFO] LMS7002M calibration values caching Disable
SoapySDR:Actual master clock rate: 32767.9995 kHz
SoapySDR:Actual TX rate: 2048.0000 ksps.
[INFO] Selected TX path: Band 2
SoapySDR:Actual frequency: 195935.998 kHz.
SoapySDR:Actual TX gain: 70.06
SoapySDR:Actual TX antenna: BAND1
Setting up timestamp decoder with 0 offset
Opening EDI :udp://:2048
EDI UDP input: host:0.0.0.0, source:0.0.0.0, port:2048
Initialise next_pseq to 31659
pseq 31659 timed out
EDI AF Packet initial sequence number: 31660
[ERROR] Tx Calibration: MCU error 5 (Loopback signal weak: not connected/insufficient gain?)
[INFO] Rx calibration finished
Reinit
Initialise next_pseq to 31826
WARN EDI AF Packet sequence error, 31826
ETI FCT discontinuity, expected 35 received 100
WARN Restart modulator.
97 DAB frames encoded
2.328 seconds encoded
Process time:
DabModulator: 270193 us (9.02 %)
OutputSDR(Soapy): 2725297 us (90.98 %)
total: 2995490 us (100.00 %)

What did you change between the time it worked and now? Or did it never work at all?