WARP Project Forums - Wireless Open-Access Research Platform

You are not logged in.

#1 2016-May-04 14:57:29

ainun
Member
Registered: 2016-May-04
Posts: 6

radio board displacement

hi all..i'm new comer in this group..wanna ask about radio board displacement..in my thesis, i must use 4 transmitter antennas and 2 receiver antennas. i'm confused using warp board weather use 2 boards or just 1 board. if i use 2 warp boards,in each board consist of 2 radio boards, and if i use 1 warp board, so the board consist of 4 radio boards and the consequence is we must take down 2 radio boards from 1 board and then insert these to another board that have had 2 radio boards before, so the total become 4 radio boards for 4 antennas. the question are: is there any special procedure to take down and insert the radio board? is very risky if i do that?

thank you..hope you can give me some explanation.

Offline

 

#2 2016-May-04 17:01:39

chunter
Administrator
From: Mango Communications
Registered: 2006-Aug-24
Posts: 1212

Re: radio board displacement

I'm assuming from your question you are using either WARP v1 or WARP v2 where each radio is a separate daughter board. Is this correct?

Building a 4-radio WARPv1 or WARPv2 board is feasible, but it's prone to damaging the hardware through ESD or physical force if you are not extremely careful. Furthermore, if all you have are kits that are configured for 1-radio or 2-radio, you may not have clocking cables that are long enough to reach the slots that are further away (Slot 1 and Slot 4). Depending on your project, you might be able to get away with dealing with 2 different 2-radio WARP setups and sharing clocks via the WARP Clock Board. The legacy WARPLab 6 framework is capable distributing a transmission across multiple radios and multiple kits. It is similarly able to pull received samples from multiple kits for MIMO processing in MATLAB.

For WARP v3, 2-radios are built-in to the WARPv3 kit and the hardware can be extended to a total of 4 radios using the Mango FMC-RF-2X245 board.

Offline

 

#3 2016-May-12 19:39:09

ainun
Member
Registered: 2016-May-04
Posts: 6

Re: radio board displacement

you'r right, i'm using warp v.2
thanks a lot for your explanation cause i really need the reason whether i must rearrange the board in one module or separate the board in two modules..thanks ya :)

Last edited by ainun (2016-May-12 19:51:57)

Offline

 

#4 2016-May-12 20:32:27

ainun
Member
Registered: 2016-May-04
Posts: 6

Re: radio board displacement

once more question chunter..i wanna show you my warp transceiver program with stbc-tarokh-mimo-4x2 using WARPLab 7 and using 2 warp modules for transmit and 1 warp modules for receive..would you mind to correct my program? because i've run that, but the result still not good,BER is still 0,5, and the lamp indicator showing transmitting (green) and receiving (orange) still light (but not blink) when process transmit-receive is end. is this condition oke for warp or not??


Code:

 function [rx_signals,rx_RSSI] = mimo_txrx2(tx_signals,TxGainRF,TxGainBB,...
    RxGainRF,RxGainBB)

%Check dimension of input matrix
        [n,m] = size(tx_signals);
        if n < m %if column matrix change to row matrix
            tx_signals = tx_signals.';%tx_signal bisa diganti dengan m_upconv
        else     %if row matrix not change
            tx_signals = tx_signals;
        end

%% ---------- Prepare for Transmit Using WARP ---------
USE_AGC = false;

NUMNODES = 3;

%Create a vector of node objects
nodes = wl_initNodes(NUMNODES);

%Create a UDP broadcast trigger and tell each node to be ready for it
eth_trig = wl_trigger_eth_udp_broadcast;
wl_triggerManagerCmd(nodes,'add_ethernet_trigger',[eth_trig]);

%Get IDs for the interfaces on the boards. Since this example assumes each
%board has the same interface capabilities, we only need to get the IDs
%from one of the boards
[RFA,RFB] = wl_getInterfaceIDs(nodes(1));

%Set up the interface for the experiment
% TxGainBB = 3; %Rx BB Gain in [0:3]
% TxGainRF = 63; %Rx RF Gain in [0:63]
wl_interfaceCmd(nodes,RFA+RFB,'tx_gains',TxGainBB,TxGainRF);
wl_interfaceCmd(nodes,RFA+RFB,'channel',2.4,11);

if(USE_AGC)
    wl_interfaceCmd(nodes,RFA+RFB,'rx_gain_mode','automatic');
    wl_basebandCmd(nodes,'agc_target',-10);
    wl_basebandCmd(nodes,'agc_trig_delay', 500);
    wl_basebandCmd(nodes,'agc_dco', true);
else
    wl_interfaceCmd(nodes,RFA+RFB,'rx_gain_mode','manual');
%     RxGainRF = 1; %Rx RF Gain in [1:3]
%     RxGainBB = 10; %Rx Baseband Gain in [0:31]
    wl_interfaceCmd(nodes,RFA+RFB,'rx_gains',RxGainRF,RxGainBB);
end

%% ---------------- Signal Processing for 4 Antennas ---------------
txData_A = tx_signals(:,1); %Deretan upconverted signal untuk ant1(di ambil deretan data pd kolom_1)
txData_B = tx_signals(:,2); %Deretan upconverted signal untuk ant2(di ambil deretan data pd kolom_2)
txData_1 = [txData_A,txData_B];%berisi 2 kolom yaitu kolom txData_A pada kolom 1 dan txData_B pada kolom 2

txData_C = tx_signals(:,3); %Deretan upconverted signal untuk ant3(di ambil deretan data pd kolom_3)
txData_D = tx_signals(:,4); %Deretan upconverted signal untuk ant4(di ambil deretan data pd kolom_4)
txData_2 = [txData_C,txData_D];%berisi 2 kolom yaitu kolom txData_C pada kolom 1 dan txData_D pada kolom 2

txData = [txData_1,txData_2];

node_tx1 = nodes(1);%seven segment 001
node_tx2 = nodes(2);%seven segment 002
node_rx  = nodes(3);%seven segment 003

%We'll use the transmitter's I/Q buffer size to determine how long our
%transmission can be
% txLength = length(txData_1);
% txLength = length(txData_2);
txLength = length(txData);

%% We'll use the transmitter's I/Q buffer size to determine how long our
%transmission can be
% txLength = nodes(1).baseband.txIQLen;
% 
% %Set up the baseband for the experiment
% wl_basebandCmd(nodes,'tx_delay',0);
% wl_basebandCmd(nodes,'tx_length',txLength);

%% Set up the baseband for the experiment
wl_basebandCmd(nodes,'tx_delay',0);
wl_basebandCmd(nodes,'tx_length',txLength);
% wl_basebandCmd(nodes,'tx_length',txLength_1);
% wl_basebandCmd(nodes,'tx_length',txLength_2);
Ts = 1/(wl_basebandCmd(nodes(1),'tx_buff_clk_freq'));
Ts_RSSI = 1/(wl_basebandCmd(nodes(1),'rx_rssi_clk_freq'));
%-----------------------------------------------------------------
% Transmit & receive signal using WARPLab
%-----------------------------------------------------------------
wl_basebandCmd(node_tx1,[RFA,RFB], 'write_IQ', txData_1);
wl_basebandCmd(node_tx2,[RFA,RFB], 'write_IQ', txData_2);
wl_interfaceCmd(node_tx1,RFA+RFB,'tx_en');
wl_interfaceCmd(node_tx2,RFA+RFB,'tx_en');
wl_interfaceCmd(node_rx,RFA+RFB,'rx_en');

wl_basebandCmd(node_tx1,RFA+RFB,'tx_buff_en');
wl_basebandCmd(node_tx2,RFA+RFB,'tx_buff_en');
wl_basebandCmd(node_rx,RFA+RFB,'rx_buff_en');

eth_trig.send();

% rx_IQ1 = wl_basebandCmd(node_rx,[RFA],'read_IQ', 0, txLength);
rx_IQ = wl_basebandCmd(node_rx,[RFA,RFB],'read_IQ', 0, txLength);
% rx_IQ2 = wl_basebandCmd(node_rx,[RFB],'read_IQ', 0, txLength);
% rx_IQ = [rx_IQ1,rx_IQ2];
% rx_RSSI1 = wl_basebandCmd(node_rx,[RFA],'read_RSSI');
rx_RSSI = wl_basebandCmd(node_rx,[RFA,RFB],'read_RSSI',0,txLength/(Ts_RSSI/Ts));
% rx_RSSI2 = wl_basebandCmd(node_rx,[RFB],'read_RSSI');
% rx_RSSI = [rx_RSSI1,rx_RSSI2];

rx_signals = rx_IQ;% data rx_IQ1 tersusun kontinyu dengan data rx_IQ2 dalam satu baris yang sama
% rx_signals = [rx_IQ1,rx_IQ2];
end.

Last edited by ainun (2016-May-12 20:34:26)

Offline

 

#5 2016-May-13 15:14:02

chunter
Administrator
From: Mango Communications
Registered: 2006-Aug-24
Posts: 1212

Re: radio board displacement

If you have any questions about any of our examples or about the hardware generally then I can help. Otherwise, no, I'm not able to debug code that we haven't written.

Offline

 

#6 2016-May-15 22:54:15

ainun
Member
Registered: 2016-May-04
Posts: 6

Re: radio board displacement

i'm so sorry for asking you a forbidden question

i'm still confused about sharing clock board..should i pull a cable from 1'st node warp to 2'nd node warp to connecting their clock? but in each node already exist clock board that connecting between two radio boards for two antennas. i've run my program and indicator lamp for transmitting in 1'st node warp and 2'nd node warp is simultaneously light up..is this condition indicated that two board operate in same clock ??

thanks before for your explanation

Offline

 

#7 2016-May-17 14:41:25

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: radio board displacement

Sharing clocks between WARP v2 Clock Boards requires 2 long MMCX/coax cables connected between the External Clock In/Out connectors (diagrams in the user guide).

Offline

 

#8 2016-Jun-10 03:55:15

ainun
Member
Registered: 2016-May-04
Posts: 6

Re: radio board displacement

by the way, would you like tell me the online shop that handle the coax cable with MMCX connector ? because i have been looking for in my city, but i didn't find it..

thanks before

Offline

 

#9 2016-Jun-10 07:25:08

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: radio board displacement

We bought the short cables w/ right-angle MMCX jacks from RF Industries in the US. I'm not sure if they sell them online. Cables with MMCX plugs are easier to find (for example Digikey stocks many options). You can use an MMCX plug/plug cable plus MMCX jack-to-jack adapters (Digikey example) to build an MMCX jack/jack cable.

Offline

 

#10 2016-Jun-13 02:45:00

ainun
Member
Registered: 2016-May-04
Posts: 6

Re: radio board displacement

thanks a lot for your suggest

Offline

 

Board footer