This tutorial contains instructions for running the openairinterface eNB and UE on various platforms. == Prerequisites == 1. Two nodes, with appropriate hardware, within RF range 1. Currently supported: USRP x310, USRP 2974, USRP b210 1. Load the image {{{omf-baseline-oai-1804.ndz}}} onto both nodes 1. Turn the nodes on 1. If graphical display is desired, enable x11 tunneling to console and then to nodes == On node 1 == 1. run /opt/oaiscripts/build_oai.sh to build for the current hardware and kernel 1. edit the file /opt/oaiscripts/run_enb.sh for the SDR in use, for example, set SDR IP addr and max gain 1. run /opt/oaiscripts/run_enb.sh Example script, change parameters as needed: * run_enb.sh: {{{ #! /bin/bash #sdr_addrs takes standard uhd arguments, such as: #"type=x300,addr=192.168.40.2" #x310 over direct network #"type=x300,resource=rio0" #x310 over pcie #"type=b210" #b210 over usb #values for RUs.[0] override config file, must be set per usrp type # -d enables xforms charts cd /opt/openairinterface5g source oaienv cd ./cmake_targets ./lte_build_oai/build/lte-softmodem \ -O $OPENAIR_HOME/ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf \ --nokrnmod 1 --noS1 --eNBs.[0].rrc_inactivity_threshold 0 \ --RUs.[0].att_tx 40 --RUs.[0].att_rx 0 \ --usrp-args "type=b200" \ -d }}} == On Node 2 == 1. run /opt/oaiscripts/build_oai.sh to build for the current hardware and kernel 1. edit the file /opt/oaiscripts/run_ue.sh for the SDR in use, for example, set SDR IP addr and max gain 1. run /opt/oaiscripts/run_ue.sh Example script, change parameters as needed: * run_ue.sh: {{{ #! /bin/bash #sdr_addrs takes standard uhd arguments, such as: #"type=x300,addr=192.168.40.2" #x310 over direct network #"type=x300,resource=rio0" #x310 over pcie #"type=b210" #b210 over usb #values for RUs.[0] override config file, must be set per usrp type # -d enables xforms charts cd /opt/openairinterface5g source oaienv cd ./cmake_targets/lte_build_oai/build ./lte-uesoftmodem \ -C 2680000000 -r 25 \ --ue-scan-carrier --nokrnmod 1 --noS1 \ --ue-rxgain 120 --ue-txgain 30 --ue-max-power 0 \ --ue-nb-ant-tx 1 --ue-nb-ant-rx 1 \ --usrp-args "type=b200" \ -d }}} == Understanding xforms terms and plots == * Explanations from: * https://www.mathworks.com/help/lte/physical-channels.html * PBCH: physical broadcast channel * The PBCH carries part of the system information required for terminals to access the network * PUSCH: physical uplink control channel * PDCCH: physical downlink control channel * The PDCCH conveys control information, scheduling decisions for PDSCH reception, and for scheduling grants enabling transmission on the PUSCH. * PUSCH: physical uplink shared channel * PDSCH: physical downlink shared channel * The PDSCH carries user data and paging information to the terminal. == Calibration == * physical attenuation * received signal at UE * received signal at eNB * pdsch constellation at UE * pdsch constellation at eNB == Expected Performance == This depends on a number of factors, including: * the total bandwidth (number of resource blocks) * 5mhz:25prb * 10mhz:50prb * 20mhz:100prb * p(d/u)sch modulation: * qpsk * 16qam * 64qam * 256qam * FDD vs TDD * number of MIMO channels * control vs data channel split For the default config file in this tutorial, it's: * 1/1 non-mimo * FDD band 7 * 5mhz/25PRB * up to 256qam, depending on signal * control / data split of (0.25/0.75?) * so you can expect up to 19mbps downlink at 64qam, and 25mbps downlink at 256qam == Specifics per domain == === sb2.cosmos-lab.org === 1. set usrp address to "type=x3xx,resource=rio0" 1. on eNB, set att_tx=70, att_rx=10 1. use RFSWITCH service to set all switches to port 1 for antenna === sb2.orbit-lab.org === 1. set usrp address to "type=x3xx,addr=192.168.40.2" 1. bring up usrp ethernet interface, set ip to 192.168.40.1/16 === sb1.orbit-lab.org === 1. set usrp address to "type=b210" 1. UE_rxgain: 120 1. UE_txgain: 30 1. UE_maxpower: 0 1. eNB_att_tx: 40 1. eNB_att_rx: 0 === sb4.orbit-lab.org === 1. set usrp address to "type=b210" 1. configure RF matrix for 60db of attenuation between eNB and UE node chosen