Skip to content

Explicit tuning following device reset no longer configures the correct center frequency on pre-release builds. #1785

Description

@antoinevg

What type of issue is this?

permanent - occurring repeatedly

What issue are you facing?

Following a device reset (or a previously configured auto-tuned frequency which differs from the tested configuration), setting the center frequency using explicit values for FREQUENCY_IF and FREQUENCY_LO no longer behaves as expected.

This only occurs on firmware built on current HEAD, released firmware versions are not affected.

What are the steps to reproduce this?

Set center frequency via auto-tune works and gives us a nice spike at 500 MHz:

hackrf_transfer -c 127 -s 5000000 -f 500000000

Set center frequency using explicit IF & LO frequencies without device reset also works:

# HackRF Pro
hackrf_transfer -c 127 -s 5000000 -i 2380000000 -o 2890000000 -m 1

# HackRF One
hackrf_transfer -c 127 -s 5000000 -i 2578749990 -o 3078750000 -m 1

Reset device and set center frequency using explicit IF & LO frequencies does not work:

  • On HackRF Pro we get a few bumpies centered around 160 MHz and the following registers do not match the auto-tuned configuration: FREQUENCY_RF, FREQUENCY_LO, ROTATION, XCVR_TX_LPF, XCVR_RX_LPF
  • On HackRF One we get a much wider slew of bumpies also centered around 160 Mhz and the following registers do not match the auto-tuned configuration: FREQUENCY_RF, FREQUENCY_LO

Can you provide any logs? (output, errors, etc.)

HackRF Pro

Works: Auto-tune.

bank 0 register [ 1] -> 0x001dcd6500000000 # RF
bank 0 register [ 2] -> 0x008ddbeb00000000 # IF
bank 0 register [ 3] -> 0x00ac41e680000000 # LO
bank 0 register [ 4] -> 0x0000000000000001 # IMAGE_REJECT
bank 0 register [ 5] -> 0x00000000c0000000 # ROTATION
bank 0 register [ 6] -> 0x04c4b40000000000 # SAMPLE_RATE
...
bank 0 register [16] -> 0x00000000016a6570 # RADIO_XCVR_TX_LPF
bank 0 register [17] -> 0x00000000016a6570 # RADIO_XCVR_RX_LPF

Works: Explicit tune after an auto-tune:

bank 0 register [ 1] -> 0x001dcd6500000000 + # RF
bank 0 register [ 2] -> 0x008ddbeb00000000 + # IF
bank 0 register [ 3] -> 0x00ac41e680000000 + # LO
bank 0 register [ 4] -> 0x0000000000000001 + # IMAGE_REJECT
bank 0 register [ 5] -> 0x00000000c0000000 + # ROTATION
bank 0 register [ 6] -> 0x04c4b40000000000 + # SAMPLE_RATE
...
bank 0 register [16] -> 0x00000000016a6570 + # RADIO_XCVR_TX_LPF
bank 0 register [17] -> 0x00000000016a6570 + # RADIO_XCVR_RX_LPF

Does not work: Explicit tune after device reset:

bank 0 register [ 1] -> 0x00b4018b00000000 ! # RF
bank 0 register [ 2] -> 0x008ddbeb00000000 + # IF
bank 0 register [ 3] -> 0x0141dd7600000000 ! # LO
bank 0 register [ 4] -> 0x0000000000000001 + # IMAGE_REJECT
bank 0 register [ 5] -> 0x0000000000000000 ! # ROTATION
bank 0 register [ 6] -> 0x04c4b40000000000 + # SAMPLE_RATE
...
bank 0 register [16] -> 0x0000000000393870 ! # RADIO_XCVR_TX_LPF
bank 0 register [17] -> 0x0000000000393870 ! # RADIO_XCVR_RX_LPF

HackRF One

Works: Auto-tune.

bank 0 register [ 1] -> 0x001dcd6509896800 # RF
bank 0 register [ 2] -> 0x0099b49a26769800 # IF
bank 0 register [ 3] -> 0x00b781ff30000000 # LO
bank 0 register [ 4] -> 0x0000000000000001 # IMAGE_REJECT
bank 0 register [ 5] -> 0x0000000000000000 # ROTATION
bank 0 register [ 6] -> 0x04c4b40000000000 # SAMPLE_RATE

Works: Explicit tune after an auto-tune:

bank 0 register [ 1] -> 0x001dcd6509896800 + # RF
bank 0 register [ 2] -> 0x0099b49a26769800 + # IF
bank 0 register [ 3] -> 0x00b781ff30000000 + # LO
bank 0 register [ 4] -> 0x0000000000000001 + # IMAGE_REJECT
bank 0 register [ 5] -> 0x0000000000000000 + # ROTATION
bank 0 register [ 6] -> 0x04c4b40000000000 + # SAMPLE_RATE

Does not work: Explicit tune after device reset:

bank 0 register [ 1] -> 0x00a828dbd9896800 ! # RF
bank 0 register [ 2] -> 0x0099b49a26769800 + # IF
bank 0 register [ 3] -> 0x0141dd7600000000 ! # LO
bank 0 register [ 4] -> 0x0000000000000001 + # IMAGE_REJECT
bank 0 register [ 5] -> 0x0000000000000000 + # ROTATION
bank 0 register [ 6] -> 0x04c4b40000000000 + # SAMPLE_RATE

Metadata

Metadata

Labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions