Skip to content
Alexey Shamrin edited this page May 27, 2014 · 6 revisions

This guide will help you test UmTRX and/or UHD release.

  1. Build and install UHD

The usual procedure (change git clone argument if you want to install Fairwaves version of UHD):

git clone https://github.com/EttusResearch/uhd.git
cd uhd/host
mkdir build
cd build
cmake ../
make
make test
sudo make install
sudo ldconfig

(Currently, if you want to test UHD-Fairwaves umtrx_update branch, you need to do the above and then install UHD from umtrx_update again.)

  1. Boot UmTRX

Connect UmTRX USB debug port to your computer USB port, listen to it:

picocom -b 230400 /dev/ttyUSB0 

(run sudo apt-get install picocom if picocom is not installed; run C-a C-x to exit)

Now turn on UmTRX. You should see something this from picocom:

USRP N210 UDP bootloader
FPGA compatibility number: 8
Firmware compatibility number: 11
Production image = 0
Checking for valid production FPGA image...
Valid production FPGA image found. Attempting to boot.

USRP N210 UDP bootloader
FPGA compatibility number: 9
Firmware compatibility number: 12
Production image = 1
Valid production firmware found. Loading...
Finished loading. Starting image.

TxRx-UHD-ZPU
FPGA compatibility number: 9
Firmware compatibility number: 12
LMS1 chip version = 0x0
LMS2 chip version = 0x0
00:1F:11:02:19:37
192.168.10.2
ethernet flow control: WE_TX
Speed set to 1000

eth link changed: speed = 1000
  1. Find UmTRX

Test if UHD can find UmTRX:

uhd_find_devices

Expected output:

linux; GNU C++ version 4.6.3; Boost_104800; UHD_003.007.001-68-gc4b1f810

-- UHD Device 0

Device Address:
    type: umtrx
    addr: 192.168.10.2
    name: UmTRX
    serial: 55
  1. Probe UmTRX

Show detailed UmTRX information:

uhd_usrp_probe

Expected output:

linux; GNU C++ version 4.6.3; Boost_104800; UHD_003.007.001-68-gc4b1f810

-- Opening a UmTRX device... 192.168.10.2
-- user_mtu.recv_mtu = 1472
-- user_mtu.send_mtu = 1472
-- Time register self-test... pass
  |_____________________________________________________
 /
|       Device: UmTRX Device
|     _____________________________________________________
|    /
|   |       Mboard: UMTRX-REV0
|   |   hardware: 64000
|   |   mac-addr: 00:1f:11:02:19:37
|   |   ip-addr: 192.168.10.2
|   |   subnet: 255.255.255.255
|   |   gateway: 255.255.255.255
|   |   gpsdo: none
|   |   serial: 55
|   |   name: UmTRX
|   |   tcxo-dac: 1962
|   |   FW Version: 12.0
|   |   FPGA Version: 9.0
|   |   
|   |   Time sources: none, external, _external_
|   |   Clock sources: internal, external
|   |   Sensors: 
|   |     _____________________________________________________
|   |    /
|   |   |       RX DSP: 0
|   |   |   Freq range: -13.000 to 13.000 Mhz
|   |     _____________________________________________________
|   |    /
|   |   |       RX DSP: 1
|   |   |   Freq range: -13.000 to 13.000 Mhz
|   |     _____________________________________________________
|   |    /
|   |   |       RX Dboard: A
|   |   |   ID: Unknown (0xfa07)
|   |   |   Serial: 55.A
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       RX Frontend: 0
|   |   |   |   Name: LMS-RX-FE
|   |   |   |   Antennas: RX0, RX1, RX2, RX3, CAL
|   |   |   |   Sensors: lo_locked
|   |   |   |   Freq range: 232.500 to 3720.000 Mhz
|   |   |   |   Gain range VGA1: 0.0 to 126.0 step 1.0 dB
|   |   |   |   Gain range VGA2: 0.0 to 30.0 step 3.0 dB
|   |   |   |   Connection Type: IQ
|   |   |   |   Uses LO offset: No
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       RX Codec: A
|   |   |   |   Name: RX LMS ADC
|   |   |   |   Gain Elements: None
|   |     _____________________________________________________
|   |    /
|   |   |       RX Dboard: B
|   |   |   ID: Unknown (0xfa07)
|   |   |   Serial: 55.B
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       RX Frontend: 0
|   |   |   |   Name: LMS-RX-FE
|   |   |   |   Antennas: RX0, RX1, RX2, RX3, CAL
|   |   |   |   Sensors: lo_locked
|   |   |   |   Freq range: 232.500 to 3720.000 Mhz
|   |   |   |   Gain range VGA1: 0.0 to 126.0 step 1.0 dB
|   |   |   |   Gain range VGA2: 0.0 to 30.0 step 3.0 dB
|   |   |   |   Connection Type: IQ
|   |   |   |   Uses LO offset: No
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       RX Codec: B
|   |   |   |   Name: RX LMS ADC
|   |   |   |   Gain Elements: None
|   |     _____________________________________________________
|   |    /
|   |   |       TX DSP: 0
|   |   |   Freq range: -13.000 to 13.000 Mhz
|   |     _____________________________________________________
|   |    /
|   |   |       TX DSP: 1
|   |   |   Freq range: -13.000 to 13.000 Mhz
|   |     _____________________________________________________
|   |    /
|   |   |       TX Dboard: A
|   |   |   ID: Unknown (0xfa09)
|   |   |   Serial: 55.A
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       TX Frontend: 0
|   |   |   |   Name: LMS-TX-FE
|   |   |   |   Antennas: TX0, TX1, TX2, CAL
|   |   |   |   Sensors: lo_locked
|   |   |   |   Freq range: 232.500 to 3720.000 Mhz
|   |   |   |   Gain range VGA: -35.0 to 21.0 step 1.0 dB
|   |   |   |   Connection Type: IQ
|   |   |   |   Uses LO offset: No
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       TX Codec: A
|   |   |   |   Name: TX LMS DAC
|   |   |   |   Gain Elements: None
|   |     _____________________________________________________
|   |    /
|   |   |       TX Dboard: B
|   |   |   ID: Unknown (0xfa09)
|   |   |   Serial: 55.B
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       TX Frontend: 0
|   |   |   |   Name: LMS-TX-FE
|   |   |   |   Antennas: TX0, TX1, TX2, CAL
|   |   |   |   Sensors: lo_locked
|   |   |   |   Freq range: 232.500 to 3720.000 Mhz
|   |   |   |   Gain range VGA: -35.0 to 21.0 step 1.0 dB
|   |   |   |   Connection Type: IQ
|   |   |   |   Uses LO offset: No
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       TX Codec: B
|   |   |   |   Name: TX LMS DAC
|   |   |   |   Gain Elements: None
  1. Test osmo-trx

Run osmo-trx:

osmo-trx -c 2 -s 4 -l DEBUG

Expected output:

linux; GNU C++ version 4.6.3; Boost_104800; UHD_003.007.001-68-gc4b1f810

Config Settings
   Log Level............... DEBUG
   Device args............. 
   TRX Base Port........... 5700
   TRX Address............. 127.0.0.1
   Channels................ 1
   Samples-per-Symbol...... 4
   External Reference...... Disabled
   C0 Filler Table......... Disabled
   Diversity............... Disabled
   Tuning offset........... 0

-- Opening a UmTRX device... 192.168.10.2
-- user_mtu.recv_mtu = 1472
-- user_mtu.send_mtu = 1472
-- Time register self-test... pass
-- Setting UmTRX 4 SPS
-- Transceiver active with 2 channel(s)

Watch for error messages here or on UmTRX debug port. Here is how osmo-trx could fail:

ALERT 139815784093440 19:02:10.0 UHDDevice.cpp:832:check_rx_md_err: UHD: Receive timed out

An example of UmTRX failure on USB debug:

!Error in control packet handler: Expected compatibility number 12, but got 1
!Error in control packet handler: Expected payload length 36, but got 16

If there are errors you may wish to try osmo-trx with single channel (-c 1) or with lower (GSM) samples/symbol (-s 1).

  1. tx_samples_from_file --rate 1083333 --freq 9550e5 --bw 1500000 --file multiframe_norm.dat --type float --repeat --gain 18 --subdev A:0 (OK)

linux; GNU C++ version 4.6.3; Boost_104800; UHD_003.007.001-68-gc4b1f810 Creating the usrp device with: ... -- Opening a UmTRX device... 192.168.10.2 -- user_mtu.recv_mtu = 1472 -- user_mtu.send_mtu = 1472 -- Time register self-test... pass Using Device: Single USRP: Device: UmTRX Device Mboard 0: UMTRX-REV0 RX Channel: 0 RX DSP: 0 RX Dboard: A RX Subdev: LMS-RX-FE RX Channel: 1 RX DSP: 1 RX Dboard: B RX Subdev: LMS-RX-FE TX Channel: 0 TX DSP: 0 TX Dboard: A TX Subdev: LMS-TX-FE

Setting TX Rate: 1.083333 Msps... Actual TX Rate: 1.083333 Msps...

Setting TX Freq: 955.000000 MHz... Actual TX Freq: 955.000000 MHz...

Setting TX Gain: 18.000000 dB... Actual TX Gain: 18.000000 dB...

Setting TX Bandwidth: 1500000.000000 MHz... Actual TX Bandwidth: 1500000.000000 MHz...

Checking TX: LO: locked ... Press Ctrl + C to stop streaming... ^C Done!

  1. tx_samples_from_file --rate 1083333 --freq 9550e5 --bw 1500000 --file multiframe_norm.dat --type float --repeat --gain 18 --subdev B:0 (not working!)

linux; GNU C++ version 4.6.3; Boost_104800; UHD_003.007.001-68-gc4b1f810 Creating the usrp device with: ... -- Opening a UmTRX device... 192.168.10.2 -- user_mtu.recv_mtu = 1472 -- user_mtu.send_mtu = 1472 -- Time register self-test... pass Error: AssertionError: spec[i].db_name == "A" in void umtrx_impl::update_tx_subdev_spec(const uhd::usrp::subdev_spec_t&) at /usr/local/src/new/UHD-Fairwaves/host/umtrx_io_impl.cpp:80

  1. rx_samples_to_file --freq 9512e5 --rate 1083333 --gain 18 --bw 1500000 --type float --subdev A:0 --ant RX1 --file umtrx_rx_test_6.dat (OK)

linux; GNU C++ version 4.6.3; Boost_104800; UHD_003.007.001-68-gc4b1f810 Creating the usrp device with: ... -- Opening a UmTRX device... 192.168.10.2 -- user_mtu.recv_mtu = 1472 -- user_mtu.send_mtu = 1472 -- Time register self-test... pass Using Device: Single USRP: Device: UmTRX Device Mboard 0: UMTRX-REV0 RX Channel: 0 RX DSP: 0 RX Dboard: A RX Subdev: LMS-RX-FE TX Channel: 0 TX DSP: 0 TX Dboard: A TX Subdev: LMS-TX-FE TX Channel: 1 TX DSP: 1 TX Dboard: B TX Subdev: LMS-TX-FE

Setting RX Rate: 1.083333 Msps... Actual RX Rate: 1.083333 Msps...

Setting RX Freq: 951.200000 MHz... Actual RX Freq: 951.200000 MHz...

Setting RX Gain: 18.000000 dB... Actual RX Gain: 18.000000 dB...

Setting RX Bandwidth: 1500000.000000 MHz... Actual RX Bandwidth: 1500000.000000 MHz...

Waiting for "lo_locked": ++++++++++ locked. Press Ctrl + C to stop streaming... ^C Done!

  1. rx_samples_to_file --freq 9512e5 --rate 1083333 --gain 18 --bw 1500000 --type float --subdev B:0 --ant RX1 --file umtrx_rx_test_10.dat (OK)

linux; GNU C++ version 4.6.3; Boost_104800; UHD_003.007.001-68-gc4b1f810

Creating the usrp device with: ... -- Opening a UmTRX device... 192.168.10.2 -- user_mtu.recv_mtu = 1472 -- user_mtu.send_mtu = 1472 -- Time register self-test... pass Using Device: Single USRP: Device: UmTRX Device Mboard 0: UMTRX-REV0 RX Channel: 0 RX DSP: 0 RX Dboard: B RX Subdev: LMS-RX-FE TX Channel: 0 TX DSP: 0 TX Dboard: A TX Subdev: LMS-TX-FE TX Channel: 1 TX DSP: 1 TX Dboard: B TX Subdev: LMS-TX-FE

Setting RX Rate: 1.083333 Msps... Actual RX Rate: 1.083333 Msps...

Setting RX Freq: 951.200000 MHz... Actual RX Freq: 951.200000 MHz...

Setting RX Gain: 18.000000 dB... Actual RX Gain: 18.000000 dB...

Setting RX Bandwidth: 1500000.000000 MHz... Actual RX Bandwidth: 1500000.000000 MHz...

Waiting for "lo_locked": ++++++++++ locked.

Press Ctrl + C to stop streaming... ^C Done!

Clone this wiki locally