Calibration problems

Having issues with the site, hardware, source code, or any other issues?
Post Reply
ekoloski
Posts: 6
Joined: Fri Mar 01, 2013 5:33 pm

Calibration problems

Post by ekoloski »

Hi,

Has anyone run across an invalid DC_REGVAL while attempting to calibrate the lms rxlpf? I've been chasing after some alisaing issues and what appears to be a DC peak, in calibrating the radio I came across this error which prevented the operation from completing.

bladeRF> calibrate lms rxlpf
Calibrating LMS RX LPF modules...
[WARNING] Bad DC_REGVAL detected. DC cal failed.

Calibrating the individual components on their own completes fine, with the exception of the rxlpf.

I'm on the following builds:

bladeRF-cli version: 0.11.1-git-421b8d8
libbladeRF version: 0.16.2-git-421b8d8

Firmware version: 1.7.1-git-ca697ee
FPGA version: 0.0.6
ekoloski
Posts: 6
Joined: Fri Mar 01, 2013 5:33 pm

Re: Calibration problems

Post by ekoloski »

Quick update. After a calibration the RX LPF Q filter is set to 0. The I filter looks like it was set during the autocalibrate:

bladeRF> calibrate lms show
LPF tuning module: 23

TX LPF I filter: 30
TX LPF Q filter: 29

RX LPF I filter: 35
RX LPF Q filter: 0

RX VGA2 DC reference module: 25
RX VGA2 stage 1, I channel: 29
RX VGA2 stage 1, Q channel: 29
RX VGA2 stage 2, I channel: 25
RX VGA2 stage 2, Q channel: 35

I am able to set it to an arbitrary value and subsequently read it back.
jynik
Posts: 455
Joined: Thu Jun 06, 2013 8:15 pm

Re: Calibration problems

Post by jynik »

Hi there,

Admittedly, there are still known issues with the calibration, so I'm not terribly surprised. However, fixing RXVGA2 issues has been the current "work in progress"... I haven't seen the RXLPF act so weird like that. There's definitely more wrinkles to iron out in TX auto calibration, as well as the DC calibration table generation (e.g., accounting for DC offset variations with gain -- not just frequency).

Could you post the same output, but with running bladeRF-cli with -v verbose. This should show us the contents of LMS registers so we can try to understand what funny business is going on under the hood. To avoid a huge post, you can wrap the output in:

Code: Select all

[code] ... 
[/code]

If you have access to another device, do you see different behavior?

Best regards,
Jon
ekoloski
Posts: 6
Joined: Fri Mar 01, 2013 5:33 pm

Re: Calibration problems

Post by ekoloski »

I do have access to a second bladeRF for testing, this one is able to calibrate consistently. I do get the occasional '31's you've seen however this is fairly infrequent and I've had luck just waiting a moment then retrying the calibration. Due to the character limit on posts, the verbose output from this one is omitted. I will gladly post it if it's of any help.

The other bladeRF has not been able to calibrate successfully, it always seems to stop at the same place. A typical output from an attempted calibration looks like:

Code: Select all

bladeRF> calibrate lms
[VERBOSE] usb_lms_read: 0x54 0x02
[VERBOSE] usb_lms_read: 0x20 0x34
[VERBOSE] usb_lms_read: 0x21 0x15
[VERBOSE] usb_lms_read: 0x22 0x55
[VERBOSE] usb_lms_read: 0x23 0x55
[VERBOSE] usb_lms_read: 0x25 0x95
[DEBUG] Reading MS1
[VERBOSE] usb_si5338_read: 0x25 0x01
[DEBUG] Read enable register: 0x01
[VERBOSE] usb_si5338_read: 0x40 0x66
[DEBUG] Read regs[0]: 0x66
[VERBOSE] usb_si5338_read: 0x41 0x9c
[DEBUG] Read regs[1]: 0x9c
[VERBOSE] usb_si5338_read: 0x42 0x08
[DEBUG] Read regs[2]: 0x08
[VERBOSE] usb_si5338_read: 0x43 0x00
[DEBUG] Read regs[3]: 0x00
[VERBOSE] usb_si5338_read: 0x44 0x00
[DEBUG] Read regs[4]: 0x00
[VERBOSE] usb_si5338_read: 0x45 0x00
[DEBUG] Read regs[5]: 0x00
[VERBOSE] usb_si5338_read: 0x46 0x05
[DEBUG] Read regs[6]: 0x05
[VERBOSE] usb_si5338_read: 0x47 0x00
[DEBUG] Read regs[7]: 0x00
[VERBOSE] usb_si5338_read: 0x48 0x00
[DEBUG] Read regs[8]: 0x00
[VERBOSE] usb_si5338_read: 0x49 0x00
[DEBUG] Read regs[9]: 0x00
[VERBOSE] usb_si5338_read: 0x20 0xc8
[DEBUG] Read r register: 0xc8
[DEBUG] Unpacked P1: 0x00009c66 (40038) P2: 0x00000002 (2) P3: 0x00000005 (5)
[DEBUG] Unpacked a + b/c: 316 + 4/5
[DEBUG] Unpacked r: 4
[DEBUG] Calculated samplerate: 1000000 + 0/1
[VERBOSE] usb_lms_read: 0x54 0x02
[VERBOSE] usb_lms_write: 0x54 0x02
[VERBOSE] usb_lms_read: 0x55 0x0c
[VERBOSE] usb_lms_read: 0x54 0x02
[VERBOSE] usb_lms_write: 0x54 0x3e
[DEBUG] Setting integer sample rate: 3000000
[DEBUG] Found r value of: 1
[DEBUG] MSx a + b/c: 422 + 2/5
[DEBUG] MSx a + b/c: 422 + 2/5
[DEBUG] MSx P1: 0x0000d133 (53555) P2: 0x00000001 (1) P3: 0x00000005 (5)
[DEBUG] Calculated samplerate: 3000000 + 0/1
[DEBUG] Writing MS1
[VERBOSE] usb_si5338_read: 0x25 0x01
[DEBUG] Wrote enable register: 0x01
[VERBOSE] usb_si5338_write: 0x25 0x01
[VERBOSE] usb_si5338_write: 0x40 0x33
[DEBUG] Wrote regs[0]: 0x33
[VERBOSE] usb_si5338_write: 0x41 0xd1
[DEBUG] Wrote regs[1]: 0xd1
[VERBOSE] usb_si5338_write: 0x42 0x04
[DEBUG] Wrote regs[2]: 0x04
[VERBOSE] usb_si5338_write: 0x43 0x00
[DEBUG] Wrote regs[3]: 0x00
[VERBOSE] usb_si5338_write: 0x44 0x00
[DEBUG] Wrote regs[4]: 0x00
[VERBOSE] usb_si5338_write: 0x45 0x00
[DEBUG] Wrote regs[5]: 0x00
[VERBOSE] usb_si5338_write: 0x46 0x05
[DEBUG] Wrote regs[6]: 0x05
[VERBOSE] usb_si5338_write: 0x47 0x00
[DEBUG] Wrote regs[7]: 0x00
[VERBOSE] usb_si5338_write: 0x48 0x00
[DEBUG] Wrote regs[8]: 0x00
[VERBOSE] usb_si5338_write: 0x49 0x00
[DEBUG] Wrote regs[9]: 0x00
[DEBUG] Wrote r register: 0xc0
[VERBOSE] usb_si5338_write: 0x20 0xc0
[DEBUG] Set actual integer sample rate: 3000000
[VERBOSE] usb_lms_read: 0x34 0x02
[VERBOSE] usb_lms_read: 0x10 0x34
[VERBOSE] usb_lms_read: 0x11 0x15
[VERBOSE] usb_lms_read: 0x12 0x55
[VERBOSE] usb_lms_read: 0x13 0x55
[VERBOSE] usb_lms_read: 0x15 0x95
[DEBUG] Reading MS2
[VERBOSE] usb_si5338_read: 0x26 0x03
[DEBUG] Read enable register: 0x03
[VERBOSE] usb_si5338_read: 0x4b 0x66
[DEBUG] Read regs[0]: 0x66
[VERBOSE] usb_si5338_read: 0x4c 0x9c
[DEBUG] Read regs[1]: 0x9c
[VERBOSE] usb_si5338_read: 0x4d 0x08
[DEBUG] Read regs[2]: 0x08
[VERBOSE] usb_si5338_read: 0x4e 0x00
[DEBUG] Read regs[3]: 0x00
[VERBOSE] usb_si5338_read: 0x4f 0x00
[DEBUG] Read regs[4]: 0x00
[VERBOSE] usb_si5338_read: 0x50 0x00
[DEBUG] Read regs[5]: 0x00
[VERBOSE] usb_si5338_read: 0x51 0x05
[DEBUG] Read regs[6]: 0x05
[VERBOSE] usb_si5338_read: 0x52 0x00
[DEBUG] Read regs[7]: 0x00
[VERBOSE] usb_si5338_read: 0x53 0x00
[DEBUG] Read regs[8]: 0x00
[VERBOSE] usb_si5338_read: 0x54 0x00
[DEBUG] Read regs[9]: 0x00
[VERBOSE] usb_si5338_read: 0x21 0xc8
[DEBUG] Read r register: 0xc8
[DEBUG] Unpacked P1: 0x00009c66 (40038) P2: 0x00000002 (2) P3: 0x00000005 (5)
[DEBUG] Unpacked a + b/c: 316 + 4/5
[DEBUG] Unpacked r: 4
[DEBUG] Calculated samplerate: 1000000 + 0/1
[VERBOSE] usb_lms_read: 0x34 0x02
[VERBOSE] usb_lms_write: 0x34 0x02
[VERBOSE] usb_lms_read: 0x35 0x0c
[VERBOSE] usb_lms_read: 0x34 0x02
[VERBOSE] usb_lms_write: 0x34 0x3e
[DEBUG] Setting integer sample rate: 3000000
[DEBUG] Found r value of: 1
[DEBUG] MSx a + b/c: 422 + 2/5
[DEBUG] MSx a + b/c: 422 + 2/5
[DEBUG] MSx P1: 0x0000d133 (53555) P2: 0x00000001 (1) P3: 0x00000005 (5)
[DEBUG] Calculated samplerate: 3000000 + 0/1
[DEBUG] Writing MS2
[VERBOSE] usb_si5338_read: 0x26 0x03
[DEBUG] Wrote enable register: 0x03
[VERBOSE] usb_si5338_write: 0x26 0x03
[VERBOSE] usb_si5338_write: 0x4b 0x33
[DEBUG] Wrote regs[0]: 0x33
[VERBOSE] usb_si5338_write: 0x4c 0xd1
[DEBUG] Wrote regs[1]: 0xd1
[VERBOSE] usb_si5338_write: 0x4d 0x04
[DEBUG] Wrote regs[2]: 0x04
[VERBOSE] usb_si5338_write: 0x4e 0x00
[DEBUG] Wrote regs[3]: 0x00
[VERBOSE] usb_si5338_write: 0x4f 0x00
[DEBUG] Wrote regs[4]: 0x00
[VERBOSE] usb_si5338_write: 0x50 0x00
[DEBUG] Wrote regs[5]: 0x00
[VERBOSE] usb_si5338_write: 0x51 0x05
[DEBUG] Wrote regs[6]: 0x05
[VERBOSE] usb_si5338_write: 0x52 0x00
[DEBUG] Wrote regs[7]: 0x00
[VERBOSE] usb_si5338_write: 0x53 0x00
[DEBUG] Wrote regs[8]: 0x00
[VERBOSE] usb_si5338_write: 0x54 0x00
[DEBUG] Wrote regs[9]: 0x00
[DEBUG] Wrote r register: 0xc0
[VERBOSE] usb_si5338_write: 0x21 0xc0
[DEBUG] Set actual integer sample rate: 3000000
[VERBOSE] usb_lms_read: 0x08 0x00
[VERBOSE] usb_lms_read: 0x46 0x00
[VERBOSE] usb_lms_read: 0x71 0x80
[VERBOSE] usb_lms_write: 0x71 0x80
[VERBOSE] usb_lms_read: 0x72 0x80
[VERBOSE] usb_lms_write: 0x72 0x80
[DEBUG] Enable Module: RX - True
[VERBOSE] usb_lms_read: 0x70 0x00
[VERBOSE] usb_lms_write: 0x70 0x01
[DEBUG] Enable Module: RX - True
[VERBOSE] usb_lms_read: 0x70 0x01
[VERBOSE] usb_lms_write: 0x70 0x01
[VERBOSE] usb_lms_read: 0x44 0x0b
[VERBOSE] usb_lms_write: 0x44 0x03
[VERBOSE] usb_lms_read: 0x75 0xd0
[VERBOSE] usb_lms_write: 0x75 0xc0
[VERBOSE] usb_lms_read: 0x46 0x00
[VERBOSE] usb_lms_read: 0x08 0x00
[VERBOSE] usb_lms_write: 0x46 0x00
[VERBOSE] usb_lms_write: 0x08 0x00
[VERBOSE] usb_lms_read: 0x54 0x3e
[VERBOSE] usb_lms_read: 0x55 0x0c
[VERBOSE] usb_lms_read: 0x64 0x36
[VERBOSE] usb_lms_write: 0x64 0x36
[VERBOSE] usb_lms_read: 0x54 0x3e
[VERBOSE] usb_lms_read: 0x55 0x0c
[VERBOSE] usb_lms_write: 0x54 0x3c
[VERBOSE] usb_lms_write: 0x55 0x0c
[VERBOSE] usb_lms_read: 0x46 0x00
[VERBOSE] usb_lms_read: 0x08 0x00
[VERBOSE] usb_lms_write: 0x46 0x08
[VERBOSE] usb_lms_write: 0x08 0x20
[DEBUG] Enable Module: TX - True
[VERBOSE] usb_lms_read: 0x40 0x00
[VERBOSE] usb_lms_write: 0x40 0x02
[DEBUG] sync_tx: Worker is now running.
[DEBUG] Enable Module: TX - False
[VERBOSE] usb_lms_read: 0x40 0x02
[VERBOSE] usb_lms_write: 0x40 0x00
[VERBOSE] usb_lms_read: 0x44 0x03
[VERBOSE] usb_lms_write: 0x44 0x03
[VERBOSE] usb_lms_read: 0x75 0xc0
[VERBOSE] usb_lms_write: 0x75 0xc0
[VERBOSE] usb_lms_read: 0x46 0x08
[VERBOSE] usb_lms_read: 0x08 0x20
[VERBOSE] usb_lms_write: 0x46 0x00
[VERBOSE] usb_lms_write: 0x08 0x00
[VERBOSE] usb_lms_read: 0x54 0x3c
[VERBOSE] usb_lms_read: 0x55 0x0c
[VERBOSE] usb_lms_read: 0x7d 0x00
[VERBOSE] usb_lms_write: 0x7d 0x00
[VERBOSE] usb_lms_read: 0x54 0x3c
[VERBOSE] usb_lms_read: 0x55 0x0c
[VERBOSE] usb_lms_write: 0x54 0x3e
[VERBOSE] usb_lms_write: 0x55 0x0c
[VERBOSE] usb_lms_read: 0x64 0x36
[VERBOSE] usb_lms_write: 0x64 0x36
[VERBOSE] usb_lms_read: 0x0b 0x08
[VERBOSE] usb_lms_write: 0x0b 0x08
[VERBOSE] usb_lms_read: 0x7d 0x00
[VERBOSE] usb_lms_write: 0x7d 0x00
[VERBOSE] usb_lms_read: 0x70 0x01
[VERBOSE] usb_lms_write: 0x70 0x01
[VERBOSE] usb_lms_read: 0x20 0x34
[VERBOSE] usb_lms_read: 0x21 0x15
[VERBOSE] usb_lms_read: 0x22 0x55
[VERBOSE] usb_lms_read: 0x23 0x55
[VERBOSE] usb_lms_read: 0x25 0x95
[VERBOSE] ---- Frequency ----
[VERBOSE]   x        : 4
[VERBOSE]   nint     : 104
[VERBOSE]   nfrac    : 1398101
[VERBOSE]   freqsel  : 0x25
[VERBOSE]   reference: 38400000
[VERBOSE]   freq     : 1000000000
[VERBOSE] usb_lms_read: 0x09 0x40
[VERBOSE] usb_lms_write: 0x09 0x45
[VERBOSE] usb_lms_read: 0x25 0x95
[VERBOSE] usb_lms_read: 0x08 0x00
[VERBOSE] usb_lms_read: 0x46 0x00
[VERBOSE] usb_lms_write: 0x25 0x95
[VERBOSE] usb_lms_write: 0x20 0x34
[VERBOSE] usb_lms_write: 0x21 0x15
[VERBOSE] usb_lms_write: 0x22 0x55
[VERBOSE] usb_lms_write: 0x23 0x55
[VERBOSE] usb_lms_read: 0x26 0x8c
[VERBOSE] usb_lms_write: 0x26 0x8c
[VERBOSE] usb_lms_read: 0x27 0xe0
[VERBOSE] usb_lms_write: 0x27 0xe0
[VERBOSE] usb_lms_read: 0x28 0x40
[VERBOSE] usb_lms_write: 0x28 0x40
[VERBOSE] usb_lms_read: 0x29 0x9a
[VERBOSE] usb_lms_write: 0x29 0xa0
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] Found normal at VCOCAP: 32
[VERBOSE] usb_lms_write: 0x29 0x9f
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x9e
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x9d
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x9c
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x9b
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x9a
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x99
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x98
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x97
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x96
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x95
[VERBOSE] usb_lms_read: 0x2a 0x83
[VERBOSE] Found lower limit VCOCAP: 22
[VERBOSE] usb_lms_write: 0x29 0xa0
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0xa1
[VERBOSE] usb_lms_read: 0x2a 0x43
[VERBOSE] Found upper limit VCOCAP: 32
[VERBOSE] Goldilocks VCOCAP: 27
[VERBOSE] usb_lms_write: 0x29 0x9b
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] VTUNE: 0
[VERBOSE] usb_lms_read: 0x09 0x45
[VERBOSE] usb_lms_write: 0x09 0x40
[VERBOSE] usb_lms_read: 0x08 0x00
[VERBOSE] usb_lms_read: 0x46 0x00
[VERBOSE] usb_lms_read: 0x75 0xc0
[VERBOSE] usb_lms_write: 0x75 0xd0
[VERBOSE] usb_lms_read: 0x10 0x34
[VERBOSE] usb_lms_read: 0x11 0x15
[VERBOSE] usb_lms_read: 0x12 0x55
[VERBOSE] usb_lms_read: 0x13 0x55
[VERBOSE] usb_lms_read: 0x15 0x95
[VERBOSE] ---- Frequency ----
[VERBOSE]   x        : 4
[VERBOSE]   nint     : 104
[VERBOSE]   nfrac    : 1398101
[VERBOSE]   freqsel  : 0x25
[VERBOSE]   reference: 38400000
[VERBOSE]   freq     : 1000000000
[VERBOSE] usb_lms_read: 0x09 0x40
[VERBOSE] usb_lms_write: 0x09 0x45
[VERBOSE] usb_lms_read: 0x15 0x95
[VERBOSE] usb_lms_read: 0x08 0x00
[VERBOSE] usb_lms_read: 0x46 0x00
[VERBOSE] usb_lms_write: 0x15 0x95
[VERBOSE] usb_lms_write: 0x10 0x34
[VERBOSE] usb_lms_write: 0x11 0x15
[VERBOSE] usb_lms_write: 0x12 0x55
[VERBOSE] usb_lms_write: 0x13 0x55
[VERBOSE] usb_lms_read: 0x16 0x8c
[VERBOSE] usb_lms_write: 0x16 0x8c
[VERBOSE] usb_lms_read: 0x17 0xe0
[VERBOSE] usb_lms_write: 0x17 0xe0
[VERBOSE] usb_lms_read: 0x18 0x40
[VERBOSE] usb_lms_write: 0x18 0x40
[VERBOSE] usb_lms_read: 0x19 0x9a
[VERBOSE] usb_lms_write: 0x19 0xa0
[VERBOSE] usb_lms_read: 0x1a 0x43
[VERBOSE] Too low: 32 -> 16
[VERBOSE] usb_lms_write: 0x19 0x90
[VERBOSE] usb_lms_read: 0x1a 0x83
[VERBOSE] Too high: 16 -> 24
[VERBOSE] usb_lms_write: 0x19 0x98
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] Found normal at VCOCAP: 24
[VERBOSE] usb_lms_write: 0x19 0x97
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x96
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x95
[VERBOSE] usb_lms_read: 0x1a 0x83
[VERBOSE] Found lower limit VCOCAP: 22
[VERBOSE] usb_lms_write: 0x19 0x98
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x99
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x9a
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x9b
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x9c
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x9d
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x9e
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x9f
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0xa0
[VERBOSE] usb_lms_read: 0x1a 0x43
[VERBOSE] Found upper limit VCOCAP: 31
[VERBOSE] Goldilocks VCOCAP: 26
[VERBOSE] usb_lms_write: 0x19 0x9a
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] VTUNE: 0
[VERBOSE] usb_lms_read: 0x09 0x45
[VERBOSE] usb_lms_write: 0x09 0x40
[VERBOSE] usb_lms_read: 0x08 0x00
[VERBOSE] usb_lms_read: 0x46 0x00
[VERBOSE] usb_lms_read: 0x44 0x03
[VERBOSE] usb_lms_write: 0x44 0x0b
[VERBOSE] usb_lms_read: 0x46 0x00
[VERBOSE] usb_lms_read: 0x08 0x00
[VERBOSE] usb_lms_write: 0x46 0x00
[VERBOSE] usb_lms_write: 0x08 0x00
Calibrating LMS LPF tuning module...
[VERBOSE] usb_lms_read: 0x09 0x40
[VERBOSE] usb_lms_read: 0x75 0xd0
[VERBOSE] usb_lms_write: 0x09 0x60
[VERBOSE] usb_lms_read: 0x75 0xd0
[VERBOSE] usb_lms_write: 0x75 0xd0
[DEBUG] Calibrating module 00:00
[VERBOSE] usb_lms_read: 0x03 0x08
[VERBOSE] usb_lms_write: 0x03 0x08
[VERBOSE] usb_lms_write: 0x02 0x1f
[VERBOSE] usb_lms_write: 0x03 0x18
[VERBOSE] usb_lms_write: 0x03 0x08
[VERBOSE] usb_lms_write: 0x03 0x28
[VERBOSE] usb_lms_write: 0x03 0x08
[VERBOSE] usb_lms_read: 0x01 0xe9
[VERBOSE] usb_lms_read: 0x00 0x17
[DEBUG] DC_REGVAL: 23
[VERBOSE] usb_lms_read: 0x35 0x0c
[VERBOSE] usb_lms_write: 0x35 0x17
[VERBOSE] usb_lms_read: 0x55 0x0c
[VERBOSE] usb_lms_write: 0x55 0x17
[VERBOSE] usb_lms_read: 0x75 0xd0
[VERBOSE] usb_lms_write: 0x75 0xd0
[VERBOSE] usb_lms_write: 0x09 0x40
[VERBOSE] usb_lms_write: 0x03 0x08
[VERBOSE] usb_lms_read: 0x00 0x17
[VERBOSE] usb_lms_write: 0x33 0x08
[VERBOSE] usb_lms_read: 0x30 0x1f
[VERBOSE] usb_lms_write: 0x33 0x09
[VERBOSE] usb_lms_read: 0x30 0x1f
[VERBOSE] usb_lms_write: 0x53 0x08
[VERBOSE] usb_lms_read: 0x50 0x1f
[VERBOSE] usb_lms_write: 0x53 0x09
[VERBOSE] usb_lms_read: 0x50 0x1f
[VERBOSE] usb_lms_write: 0x63 0x08
[VERBOSE] usb_lms_read: 0x60 0x1f
[VERBOSE] usb_lms_write: 0x63 0x09
[VERBOSE] usb_lms_read: 0x60 0x1f
[VERBOSE] usb_lms_write: 0x63 0x0a
[VERBOSE] usb_lms_read: 0x60 0x1f
[VERBOSE] usb_lms_write: 0x63 0x0b
[VERBOSE] usb_lms_read: 0x60 0x1f
[VERBOSE] usb_lms_write: 0x63 0x0c
[VERBOSE] usb_lms_read: 0x60 0x1f
    LPF tuning module: 23

Calibrating LMS TX LPF modules...
[VERBOSE] usb_lms_read: 0x09 0x40
[VERBOSE] usb_lms_read: 0x75 0xd0
[VERBOSE] usb_lms_write: 0x09 0x42
[VERBOSE] usb_lms_read: 0x75 0xd0
[VERBOSE] usb_lms_write: 0x75 0xd0
[VERBOSE] usb_lms_read: 0x36 0x30
[VERBOSE] usb_lms_write: 0x36 0xb0
[DEBUG] Calibrating module 30:00
[VERBOSE] usb_lms_read: 0x33 0x09
[VERBOSE] usb_lms_write: 0x33 0x08
[VERBOSE] usb_lms_write: 0x32 0x1f
[VERBOSE] usb_lms_write: 0x33 0x18
[VERBOSE] usb_lms_write: 0x33 0x08
[VERBOSE] usb_lms_write: 0x33 0x28
[VERBOSE] usb_lms_write: 0x33 0x08
[VERBOSE] usb_lms_read: 0x31 0x0b
[VERBOSE] usb_lms_read: 0x31 0x14
[VERBOSE] usb_lms_read: 0x30 0x1f
[DEBUG] DC_REGVAL: 31
[DEBUG] DC_REGVAL suboptimal value - retrying DC cal loop.
[DEBUG] Calibrating module 30:00
[VERBOSE] usb_lms_read: 0x33 0x08
[VERBOSE] usb_lms_write: 0x33 0x08
[VERBOSE] usb_lms_write: 0x32 0x00
[VERBOSE] usb_lms_write: 0x33 0x18
[VERBOSE] usb_lms_write: 0x33 0x08
[VERBOSE] usb_lms_write: 0x33 0x28
[VERBOSE] usb_lms_write: 0x33 0x08
[VERBOSE] usb_lms_read: 0x31 0x16
[VERBOSE] usb_lms_read: 0x31 0x09
[VERBOSE] usb_lms_read: 0x30 0x1e
[DEBUG] DC_REGVAL: 30
[DEBUG] Calibrating module 30:01
[VERBOSE] usb_lms_read: 0x33 0x08
[VERBOSE] usb_lms_write: 0x33 0x09
[VERBOSE] usb_lms_write: 0x32 0x1f
[VERBOSE] usb_lms_write: 0x33 0x19
[VERBOSE] usb_lms_write: 0x33 0x09
[VERBOSE] usb_lms_write: 0x33 0x29
[VERBOSE] usb_lms_write: 0x33 0x09
[VERBOSE] usb_lms_read: 0x31 0x0a
[VERBOSE] usb_lms_read: 0x31 0x09
[VERBOSE] usb_lms_read: 0x30 0x1d
[DEBUG] DC_REGVAL: 29
[VERBOSE] usb_lms_read: 0x36 0xb0
[VERBOSE] usb_lms_write: 0x36 0x30
[VERBOSE] usb_lms_read: 0x75 0xd0
[VERBOSE] usb_lms_write: 0x75 0xd0
[VERBOSE] usb_lms_write: 0x09 0x40
[VERBOSE] usb_lms_write: 0x03 0x08
[VERBOSE] usb_lms_read: 0x00 0x17
[VERBOSE] usb_lms_write: 0x33 0x08
[VERBOSE] usb_lms_read: 0x30 0x1e
[VERBOSE] usb_lms_write: 0x33 0x09
[VERBOSE] usb_lms_read: 0x30 0x1d
[VERBOSE] usb_lms_write: 0x53 0x08
[VERBOSE] usb_lms_read: 0x50 0x1f
[VERBOSE] usb_lms_write: 0x53 0x09
[VERBOSE] usb_lms_read: 0x50 0x1f
[VERBOSE] usb_lms_write: 0x63 0x08
[VERBOSE] usb_lms_read: 0x60 0x1f
[VERBOSE] usb_lms_write: 0x63 0x09
[VERBOSE] usb_lms_read: 0x60 0x1f
[VERBOSE] usb_lms_write: 0x63 0x0a
[VERBOSE] usb_lms_read: 0x60 0x1f
[VERBOSE] usb_lms_write: 0x63 0x0b
[VERBOSE] usb_lms_read: 0x60 0x1f
[VERBOSE] usb_lms_write: 0x63 0x0c
[VERBOSE] usb_lms_read: 0x60 0x1f
    TX LPF I filter: 30
    TX LPF Q filter: 29

Calibrating LMS RX LPF modules...
[VERBOSE] usb_lms_read: 0x09 0x40
[VERBOSE] usb_lms_read: 0x75 0xd0
[VERBOSE] usb_lms_write: 0x09 0x48
[VERBOSE] usb_lms_read: 0x75 0xd0
[VERBOSE] usb_lms_write: 0x75 0xd0
[VERBOSE] usb_lms_read: 0x5f 0x1f
[VERBOSE] usb_lms_write: 0x5f 0x1f
[VERBOSE] usb_lms_read: 0x71 0x80
[VERBOSE] usb_lms_write: 0x71 0x00
[VERBOSE] usb_lms_read: 0x7c 0x18
[VERBOSE] usb_lms_write: 0x7c 0x1c
[VERBOSE] usb_lms_read: 0x75 0xd0
[VERBOSE] usb_lms_read: 0x75 0xd0
[VERBOSE] usb_lms_write: 0x75 0xd0
[VERBOSE] usb_lms_read: 0x76 0x78
[VERBOSE] usb_lms_write: 0x76 0x78
[VERBOSE] usb_lms_read: 0x65 0x01
[VERBOSE] usb_lms_write: 0x65 0x0a
[DEBUG] Calibrating module 50:00
[VERBOSE] usb_lms_read: 0x53 0x09
[VERBOSE] usb_lms_write: 0x53 0x08
[VERBOSE] usb_lms_write: 0x52 0x1f
[VERBOSE] usb_lms_write: 0x53 0x18
[VERBOSE] usb_lms_write: 0x53 0x08
[VERBOSE] usb_lms_write: 0x53 0x28
[VERBOSE] usb_lms_write: 0x53 0x08
[VERBOSE] usb_lms_read: 0x51 0x16
[VERBOSE] usb_lms_read: 0x51 0x05
[VERBOSE] usb_lms_read: 0x50 0x21
[DEBUG] DC_REGVAL: 33
[DEBUG] Calibrating module 50:01
[VERBOSE] usb_lms_read: 0x53 0x08
[VERBOSE] usb_lms_write: 0x53 0x09
[VERBOSE] usb_lms_write: 0x52 0x1f
[VERBOSE] usb_lms_write: 0x53 0x19
[VERBOSE] usb_lms_write: 0x53 0x09
[VERBOSE] usb_lms_write: 0x53 0x29
[VERBOSE] usb_lms_write: 0x53 0x09
[VERBOSE] usb_lms_read: 0x51 0x02
[VERBOSE] usb_lms_read: 0x51 0x00
[VERBOSE] usb_lms_read: 0x50 0x1f
[DEBUG] DC_REGVAL: 31
[DEBUG] DC_REGVAL suboptimal value - retrying DC cal loop.
[DEBUG] Calibrating module 50:01
[VERBOSE] usb_lms_read: 0x53 0x09
[VERBOSE] usb_lms_write: 0x53 0x09
[VERBOSE] usb_lms_write: 0x52 0x00
[VERBOSE] usb_lms_write: 0x53 0x19
[VERBOSE] usb_lms_write: 0x53 0x09
[VERBOSE] usb_lms_write: 0x53 0x29
[VERBOSE] usb_lms_write: 0x53 0x09
[VERBOSE] usb_lms_read: 0x51 0x02
[VERBOSE] usb_lms_read: 0x51 0x00
[VERBOSE] usb_lms_read: 0x50 0x00
[DEBUG] DC_REGVAL: 0
[WARNING] Bad DC_REGVAL detected. DC cal failed.
[DEBUG] Enable Module: RX - False
[VERBOSE] usb_lms_read: 0x70 0x01
[VERBOSE] usb_lms_write: 0x70 0x00
[VERBOSE] usb_lms_read: 0x54 0x3e
[VERBOSE] usb_lms_write: 0x54 0x3e
[VERBOSE] usb_lms_read: 0x55 0x17
[VERBOSE] usb_lms_read: 0x54 0x3e
[VERBOSE] usb_lms_write: 0x54 0x02
[VERBOSE] ---- Frequency ----
[VERBOSE]   x        : 4
[VERBOSE]   nint     : 104
[VERBOSE]   nfrac    : 1398101
[VERBOSE]   freqsel  : 0x25
[VERBOSE]   reference: 38400000
[VERBOSE]   freq     : 1000000000
[VERBOSE] usb_lms_read: 0x09 0x48
[VERBOSE] usb_lms_write: 0x09 0x4d
[VERBOSE] usb_lms_read: 0x25 0x95
[VERBOSE] usb_lms_read: 0x08 0x00
[VERBOSE] usb_lms_read: 0x46 0x00
[VERBOSE] usb_lms_write: 0x25 0x95
[VERBOSE] usb_lms_write: 0x20 0x34
[VERBOSE] usb_lms_write: 0x21 0x15
[VERBOSE] usb_lms_write: 0x22 0x55
[VERBOSE] usb_lms_write: 0x23 0x55
[VERBOSE] usb_lms_read: 0x26 0x8c
[VERBOSE] usb_lms_write: 0x26 0x8c
[VERBOSE] usb_lms_read: 0x27 0xe0
[VERBOSE] usb_lms_write: 0x27 0xe0
[VERBOSE] usb_lms_read: 0x28 0x40
[VERBOSE] usb_lms_write: 0x28 0x40
[VERBOSE] usb_lms_read: 0x29 0x9b
[VERBOSE] usb_lms_write: 0x29 0xa0
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] Found normal at VCOCAP: 32
[VERBOSE] usb_lms_write: 0x29 0x9f
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x9e
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x9d
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x9c
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x9b
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x9a
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x99
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x98
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x97
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x96
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x95
[VERBOSE] usb_lms_read: 0x2a 0x83
[VERBOSE] Found lower limit VCOCAP: 22
[VERBOSE] usb_lms_write: 0x29 0xa0
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0xa1
[VERBOSE] usb_lms_read: 0x2a 0x43
[VERBOSE] Found upper limit VCOCAP: 32
[VERBOSE] Goldilocks VCOCAP: 27
[VERBOSE] usb_lms_write: 0x29 0x9b
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] VTUNE: 0
[VERBOSE] usb_lms_read: 0x09 0x4d
[VERBOSE] usb_lms_write: 0x09 0x48
[VERBOSE] usb_lms_read: 0x08 0x00
[VERBOSE] usb_lms_read: 0x46 0x00
[VERBOSE] usb_lms_read: 0x75 0xd0
[VERBOSE] usb_lms_write: 0x75 0xd0
[DEBUG] Found r value of: 4
[DEBUG] MSx a + b/c: 316 + 4/5
[DEBUG] MSx a + b/c: 316 + 4/5
[DEBUG] MSx P1: 0x00009c66 (40038) P2: 0x00000002 (2) P3: 0x00000005 (5)
[DEBUG] Calculated samplerate: 1000000 + 0/1
[DEBUG] Writing MS1
[VERBOSE] usb_si5338_read: 0x25 0x01
[DEBUG] Wrote enable register: 0x01
[VERBOSE] usb_si5338_write: 0x25 0x01
[VERBOSE] usb_si5338_write: 0x40 0x66
[DEBUG] Wrote regs[0]: 0x66
[VERBOSE] usb_si5338_write: 0x41 0x9c
[DEBUG] Wrote regs[1]: 0x9c
[VERBOSE] usb_si5338_write: 0x42 0x08
[DEBUG] Wrote regs[2]: 0x08
[VERBOSE] usb_si5338_write: 0x43 0x00
[DEBUG] Wrote regs[3]: 0x00
[VERBOSE] usb_si5338_write: 0x44 0x00
[DEBUG] Wrote regs[4]: 0x00
[VERBOSE] usb_si5338_write: 0x45 0x00
[DEBUG] Wrote regs[5]: 0x00
[VERBOSE] usb_si5338_write: 0x46 0x05
[DEBUG] Wrote regs[6]: 0x05
[VERBOSE] usb_si5338_write: 0x47 0x00
[DEBUG] Wrote regs[7]: 0x00
[VERBOSE] usb_si5338_write: 0x48 0x00
[DEBUG] Wrote regs[8]: 0x00
[VERBOSE] usb_si5338_write: 0x49 0x00
[DEBUG] Wrote regs[9]: 0x00
[DEBUG] Wrote r register: 0xc8
[VERBOSE] usb_si5338_write: 0x20 0xc8
[DEBUG] Enable Module: RX - False
[VERBOSE] usb_lms_read: 0x70 0x00
[VERBOSE] usb_lms_write: 0x70 0x00
[DEBUG] Enable Module: TX - False
[VERBOSE] usb_lms_read: 0x40 0x00
[VERBOSE] usb_lms_write: 0x40 0x00
[VERBOSE] usb_lms_read: 0x34 0x3e
[VERBOSE] usb_lms_write: 0x34 0x3e
[VERBOSE] usb_lms_read: 0x35 0x17
[VERBOSE] usb_lms_read: 0x34 0x3e
[VERBOSE] usb_lms_write: 0x34 0x02
[VERBOSE] ---- Frequency ----
[VERBOSE]   x        : 4
[VERBOSE]   nint     : 104
[VERBOSE]   nfrac    : 1398101
[VERBOSE]   freqsel  : 0x25
[VERBOSE]   reference: 38400000
[VERBOSE]   freq     : 1000000000
[VERBOSE] usb_lms_read: 0x09 0x48
[VERBOSE] usb_lms_write: 0x09 0x4d
[VERBOSE] usb_lms_read: 0x15 0x95
[VERBOSE] usb_lms_read: 0x08 0x00
[VERBOSE] usb_lms_read: 0x46 0x00
[VERBOSE] usb_lms_write: 0x15 0x95
[VERBOSE] usb_lms_write: 0x10 0x34
[VERBOSE] usb_lms_write: 0x11 0x15
[VERBOSE] usb_lms_write: 0x12 0x55
[VERBOSE] usb_lms_write: 0x13 0x55
[VERBOSE] usb_lms_read: 0x16 0x8c
[VERBOSE] usb_lms_write: 0x16 0x8c
[VERBOSE] usb_lms_read: 0x17 0xe0
[VERBOSE] usb_lms_write: 0x17 0xe0
[VERBOSE] usb_lms_read: 0x18 0x40
[VERBOSE] usb_lms_write: 0x18 0x40
[VERBOSE] usb_lms_read: 0x19 0x9a
[VERBOSE] usb_lms_write: 0x19 0xa0
[VERBOSE] usb_lms_read: 0x1a 0x43
[VERBOSE] Too low: 32 -> 16
[VERBOSE] usb_lms_write: 0x19 0x90
[VERBOSE] usb_lms_read: 0x1a 0x83
[VERBOSE] Too high: 16 -> 24
[VERBOSE] usb_lms_write: 0x19 0x98
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] Found normal at VCOCAP: 24
[VERBOSE] usb_lms_write: 0x19 0x97
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x96
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x95
[VERBOSE] usb_lms_read: 0x1a 0x83
[VERBOSE] Found lower limit VCOCAP: 22
[VERBOSE] usb_lms_write: 0x19 0x98
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x99
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x9a
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x9b
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x9c
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x9d
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x9e
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x9f
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0xa0
[VERBOSE] usb_lms_read: 0x1a 0x43
[VERBOSE] Found upper limit VCOCAP: 31
[VERBOSE] Goldilocks VCOCAP: 26
[VERBOSE] usb_lms_write: 0x19 0x9a
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] VTUNE: 0
[VERBOSE] usb_lms_read: 0x09 0x4d
[VERBOSE] usb_lms_write: 0x09 0x48
[VERBOSE] usb_lms_read: 0x08 0x00
[VERBOSE] usb_lms_read: 0x46 0x00
[VERBOSE] usb_lms_read: 0x44 0x0b
[VERBOSE] usb_lms_write: 0x44 0x0b
[DEBUG] Found r value of: 4
[DEBUG] MSx a + b/c: 316 + 4/5
[DEBUG] MSx a + b/c: 316 + 4/5
[DEBUG] MSx P1: 0x00009c66 (40038) P2: 0x00000002 (2) P3: 0x00000005 (5)
[DEBUG] Calculated samplerate: 1000000 + 0/1
[DEBUG] Writing MS2
[VERBOSE] usb_si5338_read: 0x26 0x03
[DEBUG] Wrote enable register: 0x03
[VERBOSE] usb_si5338_write: 0x26 0x03
[VERBOSE] usb_si5338_write: 0x4b 0x66
[DEBUG] Wrote regs[0]: 0x66
[VERBOSE] usb_si5338_write: 0x4c 0x9c
[DEBUG] Wrote regs[1]: 0x9c
[VERBOSE] usb_si5338_write: 0x4d 0x08
[DEBUG] Wrote regs[2]: 0x08
[VERBOSE] usb_si5338_write: 0x4e 0x00
[DEBUG] Wrote regs[3]: 0x00
[VERBOSE] usb_si5338_write: 0x4f 0x00
[DEBUG] Wrote regs[4]: 0x00
[VERBOSE] usb_si5338_write: 0x50 0x00
[DEBUG] Wrote regs[5]: 0x00
[VERBOSE] usb_si5338_write: 0x51 0x05
[DEBUG] Wrote regs[6]: 0x05
[VERBOSE] usb_si5338_write: 0x52 0x00
[DEBUG] Wrote regs[7]: 0x00
[VERBOSE] usb_si5338_write: 0x53 0x00
[DEBUG] Wrote regs[8]: 0x00
[VERBOSE] usb_si5338_write: 0x54 0x00
[DEBUG] Wrote regs[9]: 0x00
[DEBUG] Wrote r register: 0xc8
[VERBOSE] usb_si5338_write: 0x21 0xc8
[VERBOSE] usb_lms_read: 0x44 0x0b
[VERBOSE] usb_lms_write: 0x44 0x03
[VERBOSE] usb_lms_read: 0x75 0xd0
[VERBOSE] usb_lms_write: 0x75 0xc0
[VERBOSE] usb_lms_read: 0x46 0x00
[VERBOSE] usb_lms_read: 0x08 0x00
[VERBOSE] usb_lms_write: 0x46 0x00
[VERBOSE] usb_lms_write: 0x08 0x00
[VERBOSE] usb_lms_read: 0x54 0x02
[VERBOSE] usb_lms_read: 0x55 0x17
[VERBOSE] usb_lms_read: 0x7d 0x00
[VERBOSE] usb_lms_write: 0x7d 0x00
[VERBOSE] usb_lms_read: 0x64 0x36
[VERBOSE] usb_lms_write: 0x64 0x36
[VERBOSE] usb_lms_read: 0x0b 0x08
[VERBOSE] usb_lms_write: 0x0b 0x08
[VERBOSE] usb_lms_read: 0x7d 0x00
[VERBOSE] usb_lms_write: 0x7d 0x00
[VERBOSE] usb_lms_read: 0x70 0x00
[VERBOSE] usb_lms_write: 0x70 0x00
[VERBOSE] usb_lms_read: 0x20 0x34
[VERBOSE] usb_lms_read: 0x21 0x15
[VERBOSE] usb_lms_read: 0x22 0x55
[VERBOSE] usb_lms_read: 0x23 0x55
[VERBOSE] usb_lms_read: 0x25 0x95
[VERBOSE] ---- Frequency ----
[VERBOSE]   x        : 4
[VERBOSE]   nint     : 104
[VERBOSE]   nfrac    : 1398101
[VERBOSE]   freqsel  : 0x25
[VERBOSE]   reference: 38400000
[VERBOSE]   freq     : 1000000000
[VERBOSE] usb_lms_read: 0x09 0x48
[VERBOSE] usb_lms_write: 0x09 0x4d
[VERBOSE] usb_lms_read: 0x25 0x95
[VERBOSE] usb_lms_read: 0x08 0x00
[VERBOSE] usb_lms_read: 0x46 0x00
[VERBOSE] usb_lms_write: 0x25 0x95
[VERBOSE] usb_lms_write: 0x20 0x34
[VERBOSE] usb_lms_write: 0x21 0x15
[VERBOSE] usb_lms_write: 0x22 0x55
[VERBOSE] usb_lms_write: 0x23 0x55
[VERBOSE] usb_lms_read: 0x26 0x8c
[VERBOSE] usb_lms_write: 0x26 0x8c
[VERBOSE] usb_lms_read: 0x27 0xe0
[VERBOSE] usb_lms_write: 0x27 0xe0
[VERBOSE] usb_lms_read: 0x28 0x40
[VERBOSE] usb_lms_write: 0x28 0x40
[VERBOSE] usb_lms_read: 0x29 0x9b
[VERBOSE] usb_lms_write: 0x29 0xa0
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] Found normal at VCOCAP: 32
[VERBOSE] usb_lms_write: 0x29 0x9f
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x9e
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x9d
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x9c
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x9b
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x9a
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x99
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x98
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x97
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x96
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0x95
[VERBOSE] usb_lms_read: 0x2a 0x83
[VERBOSE] Found lower limit VCOCAP: 22
[VERBOSE] usb_lms_write: 0x29 0xa0
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] usb_lms_write: 0x29 0xa1
[VERBOSE] usb_lms_read: 0x2a 0x43
[VERBOSE] Found upper limit VCOCAP: 32
[VERBOSE] Goldilocks VCOCAP: 27
[VERBOSE] usb_lms_write: 0x29 0x9b
[VERBOSE] usb_lms_read: 0x2a 0x03
[VERBOSE] VTUNE: 0
[VERBOSE] usb_lms_read: 0x09 0x4d
[VERBOSE] usb_lms_write: 0x09 0x48
[VERBOSE] usb_lms_read: 0x08 0x00
[VERBOSE] usb_lms_read: 0x46 0x00
[VERBOSE] usb_lms_read: 0x75 0xc0
[VERBOSE] usb_lms_write: 0x75 0xd0
[VERBOSE] usb_lms_read: 0x10 0x34
[VERBOSE] usb_lms_read: 0x11 0x15
[VERBOSE] usb_lms_read: 0x12 0x55
[VERBOSE] usb_lms_read: 0x13 0x55
[VERBOSE] usb_lms_read: 0x15 0x95
[VERBOSE] ---- Frequency ----
[VERBOSE]   x        : 4
[VERBOSE]   nint     : 104
[VERBOSE]   nfrac    : 1398101
[VERBOSE]   freqsel  : 0x25
[VERBOSE]   reference: 38400000
[VERBOSE]   freq     : 1000000000
[VERBOSE] usb_lms_read: 0x09 0x48
[VERBOSE] usb_lms_write: 0x09 0x4d
[VERBOSE] usb_lms_read: 0x15 0x95
[VERBOSE] usb_lms_read: 0x08 0x00
[VERBOSE] usb_lms_read: 0x46 0x00
[VERBOSE] usb_lms_write: 0x15 0x95
[VERBOSE] usb_lms_write: 0x10 0x34
[VERBOSE] usb_lms_write: 0x11 0x15
[VERBOSE] usb_lms_write: 0x12 0x55
[VERBOSE] usb_lms_write: 0x13 0x55
[VERBOSE] usb_lms_read: 0x16 0x8c
[VERBOSE] usb_lms_write: 0x16 0x8c
[VERBOSE] usb_lms_read: 0x17 0xe0
[VERBOSE] usb_lms_write: 0x17 0xe0
[VERBOSE] usb_lms_read: 0x18 0x40
[VERBOSE] usb_lms_write: 0x18 0x40
[VERBOSE] usb_lms_read: 0x19 0x9a
[VERBOSE] usb_lms_write: 0x19 0xa0
[VERBOSE] usb_lms_read: 0x1a 0x43
[VERBOSE] Too low: 32 -> 16
[VERBOSE] usb_lms_write: 0x19 0x90
[VERBOSE] usb_lms_read: 0x1a 0x83
[VERBOSE] Too high: 16 -> 24
[VERBOSE] usb_lms_write: 0x19 0x98
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] Found normal at VCOCAP: 24
[VERBOSE] usb_lms_write: 0x19 0x97
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x96
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x95
[VERBOSE] usb_lms_read: 0x1a 0x83
[VERBOSE] Found lower limit VCOCAP: 22
[VERBOSE] usb_lms_write: 0x19 0x98
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x99
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x9a
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x9b
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x9c
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x9d
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x9e
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0x9f
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] usb_lms_write: 0x19 0xa0
[VERBOSE] usb_lms_read: 0x1a 0x43
[VERBOSE] Found upper limit VCOCAP: 31
[VERBOSE] Goldilocks VCOCAP: 26
[VERBOSE] usb_lms_write: 0x19 0x9a
[VERBOSE] usb_lms_read: 0x1a 0x03
[VERBOSE] VTUNE: 0
[VERBOSE] usb_lms_read: 0x09 0x4d
[VERBOSE] usb_lms_write: 0x09 0x48
[VERBOSE] usb_lms_read: 0x08 0x00
[VERBOSE] usb_lms_read: 0x46 0x00
[VERBOSE] usb_lms_read: 0x44 0x03
[VERBOSE] usb_lms_write: 0x44 0x0b
[VERBOSE] usb_lms_read: 0x46 0x00
[VERBOSE] usb_lms_read: 0x08 0x00
[VERBOSE] usb_lms_write: 0x46 0x00
[VERBOSE] usb_lms_write: 0x08 0x00
jynik
Posts: 455
Joined: Thu Jun 06, 2013 8:15 pm

Re: Calibration problems

Post by jynik »

So as you described, I see the RX LPF Q calibration failing in this chunk of your log, as indicated by "module 50:01" (register 0x50, DC_ADDR[3:0] = 001).

The procedure being carried out here is described in Section 4.7 of the LMS6002D FAQ. After we get a 31 back in register 0x52, we retry with the value set to 0x00. According to that FAQ, no chip that passed LMS production tests should read back again 0x00 at that point.

However, given that we're still debugging that strange behavior with the RXVGA2 cal, I think it's too early to make any claim that the LMS chip is the definite cause. So unfortunately, I don't have a quick answer for you. I'll be getting back to debugging the RXVGA2 issue soon. Hopefully when we idenfity and resolve any issues there, we may find that what you're seeing is related.

The part of your log that I'm looking at for the above comments:

Code: Select all

[DEBUG] Calibrating module 50:01
[VERBOSE] usb_lms_read: 0x53 0x08
[VERBOSE] usb_lms_write: 0x53 0x09
[VERBOSE] usb_lms_write: 0x52 0x1f
[VERBOSE] usb_lms_write: 0x53 0x19
[VERBOSE] usb_lms_write: 0x53 0x09
[VERBOSE] usb_lms_write: 0x53 0x29
[VERBOSE] usb_lms_write: 0x53 0x09
[VERBOSE] usb_lms_read: 0x51 0x02
[VERBOSE] usb_lms_read: 0x51 0x00
[VERBOSE] usb_lms_read: 0x50 0x1f
[DEBUG] DC_REGVAL: 31
[DEBUG] DC_REGVAL suboptimal value - retrying DC cal loop.
[DEBUG] Calibrating module 50:01
[VERBOSE] usb_lms_read: 0x53 0x09
[VERBOSE] usb_lms_write: 0x53 0x09
[VERBOSE] usb_lms_write: 0x52 0x00
[VERBOSE] usb_lms_write: 0x53 0x19
[VERBOSE] usb_lms_write: 0x53 0x09
[VERBOSE] usb_lms_write: 0x53 0x29
[VERBOSE] usb_lms_write: 0x53 0x09
[VERBOSE] usb_lms_read: 0x51 0x02
[VERBOSE] usb_lms_read: 0x51 0x00
[VERBOSE] usb_lms_read: 0x50 0x00
[DEBUG] DC_REGVAL: 0
[WARNING] Bad DC_REGVAL detected. DC cal failed.
Noble713
Posts: 5
Joined: Tue Jul 15, 2014 4:53 am

Re: Calibration problems

Post by Noble713 »

*bump*

I just had the same the error. My versions:

Code: Select all

  bladeRF-cli version:        0.11.1-git-0bb0cce
  libbladeRF version:         0.16.2-git-0bb0cce

  Firmware version:           1.6.1-git-b7e6642
  FPGA version:               0.0.6
Edit: Note that I only had this problem on 1 of my 2 bladeRF x40's, and it's the one I'm using as a transmitter right now. My receiver SDR calibrated just fine.
jynik
Posts: 455
Joined: Thu Jun 06, 2013 8:15 pm

Re: Calibration problems

Post by jynik »

Hi there,

As noted in this thread, we've been working on these issues. Some feedback on the latest changes to address these issues would be greatly appreaciated.

So give FPGA v0.1.1 a shot with the lastest libbladeRF from git, and let us know how it goes!

- Jon
Post Reply