WARP Project Forums - Wireless Open-Access Research Platform

You are not logged in.

#26 2014-Nov-17 09:20:30

warp_user
Member
Registered: 2014-Feb-27
Posts: 70

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

Hi Murphpo,
I haven’t renamed the Xilinx tool folder, but managed to solve this problem by installing missing 32bit support libraries.
Also for successful compilation of 802.11 Reference Design v1.0, I had to rename ‘Xio.h’ file as ‘xio.h’ in the c files which use this header in ‘wlan_mac_high_ibss’, ‘wlan_mac_high_ap’ and ‘wlan_mac_high_sta’ projects.

Offline

 

#27 2014-Nov-17 09:52:35

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

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

Thanks for the update. We'll fix the Xio/xio error (we missed this because we use the SDK in Windows, which doesn't care about case for include filenames).

Can you share what libraries you needed to install to get the SDK working? It's likely other users could face the same issue.

Offline

 

#28 2014-Nov-18 03:04:10

warp_user
Member
Registered: 2014-Feb-27
Posts: 70

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

Need to install the following 32 bit support libraries
    sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0

Offline

 

#29 2015-Jun-29 04:38:54

warp_user
Member
Registered: 2014-Feb-27
Posts: 70

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

Hi,
Would it be possible to have OFDM Reference Design project for ISE 14.7?
I get following errors when using the existing Reference Design;
fatal error: xparameters.h: No such file or directory compilation terminated.
Unable to read in MSS file

Once checked through the forum it seems they are due to a version mismatch.
(http://warpproject.org/forums/viewtopic.php?id=2289)

I am using ​w3_OFDM_ReferenceDesign_v18p1.zip (17MB) which is built for ISE 13.4.

Thanks

Offline

 

#30 2015-Jun-29 09:01:03

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

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

It should be possible to revup the OFDM Reference Design to ISE 14.7, but we have not tried this. I would guess you will need to rev up the hardware project in XPS first, replacing any obsolete pcores with their new versions, re-build the hardware, then export this to the SDK. It is unlikely the SDK project will work with the existing hardware project, as the hardware project uses versions of Xilinx pcores from ISE 13.4 that were replaced by ISE 14.7.

fatal error: xparameters.h: No such file or directory compilation terminated.

This error usually indicates a problem building the BSP. If the BSP compilation fails the software application (CSMAMAC, NOMAC, etc) will not build. Click on the BSP project in the SDK workspace and check the Console tab for errors. Alternatively check the libgen.log file in the BSP project folder.

Offline

 

#31 2015-Jul-29 09:13:04

warp_user
Member
Registered: 2014-Feb-27
Posts: 70

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

I have purchased two WARP v3 boards over a year ago. They were both working perfectly and managed to run most example reference designs without any problem.
Now in one of the boards USB-UART is not functioning at all. I have used Putty and gtkterm terminal software with FTDI in the past to connect to USB-UART. Once connected does not appear in dmesg,  operating system is a Ubuntu 14.04.1.
Any help is appreciated as I cannot proceed further with my work.
Many thanks

Offline

 

#32 2015-Jul-29 09:28:19

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

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

Have you tried a different PC (ideally a different OS)? How about a different USB cable? Has the micro-USB connector on the WARP board been damaged? The solder joints at the USB signal pins can be broken by too much force.

Offline

 

#33 2015-Jul-29 09:35:42

warp_user
Member
Registered: 2014-Feb-27
Posts: 70

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

I have tried with different machines and different USB cables but always on Ubuntu, will retry with Windows. There hasn't been any damage or too much force on micro-USB connectors both as boards were connected to two machines for some time and was working well until last week.

Offline

 

#34 2015-Jul-29 09:55:03

warp_user
Member
Registered: 2014-Feb-27
Posts: 70

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

Unfortunately it is not working on Windows as well. I would like to discuss options for this offline.
Thanks

Offline

 

#35 2015-Aug-18 07:08:35

warp_user
Member
Registered: 2014-Feb-27
Posts: 70

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

Hi,
I have come across an error when importing Mango 802.11 reference design version 1.3.0 with ISE 14.7.
Have followed the suggestions in http://warpproject.org/forums/viewtopic.php?id=2321 without any success.

These are the error messages and memory configuration from executable map is also shown below. Any assistance highly appreciated.
Many thanks

wlan_mac_high_ibss.elf section `.text' will not fit in region `mb_high_ilmb_bram_cntlr_0_mb_high_dlmb_bram_cntlr_0'   
section .init loaded at [00023028,00023063] overlaps section .rodata loaded at [00020010,000249cf]   
region `mb_high_ilmb_bram_cntlr_0_mb_high_dlmb_bram_cntlr_0' overflowed by 12420 bytes   
wlan_mac_high_sta.elf section `.text' will not fit in region `mb_high_ilmb_bram_cntlr_0_mb_high_dlmb_bram_cntlr_0'   
wlan_mac_high_ap.elf section `.text' will not fit in region `mb_high_ilmb_bram_cntlr_0_mb_high_dlmb_bram_cntlr_0'   
section .ctors loaded at [00020000,00020007] overlaps section .text loaded at [00000050,00023027]   
section .ctors loaded at [00020000,00020007] overlaps section .text loaded at [00000050,00022703]   
section .init loaded at [00022704,0002273f] overlaps section .rodata loaded at [00020010,00024bef]   
region `mb_high_ilmb_bram_cntlr_0_mb_high_dlmb_bram_cntlr_0' overflowed by 10080 bytes   
region `mb_high_ilmb_bram_cntlr_0_mb_high_dlmb_bram_cntlr_0' overflowed by 9860 bytes   
section .ctors loaded at [00020000,00020007] overlaps section .text loaded at [00000050,00022627]   
section .init loaded at [00022628,00022663] overlaps section .rodata loaded at [00020010,00024a3b]   


Memory Configuration

Name             Origin             Length             Attributes
mb_high_ilmb_bram_cntlr_0_mb_high_dlmb_bram_cntlr_0 0x00000050         0x0001ffb0
mb_high_ilmb_bram_cntlr_1_mb_high_dlmb_bram_cntlr_1 0x00020000         0x00020000
mb_high_init_bram_ctrl_S_AXI_BASEADDR 0x50000000         0x00001000
pkt_buff_tx_bram_ctrl_S_AXI_BASEADDR 0xbf570000         0x00010000
pkt_buff_rx_bram_ctrl_S_AXI_BASEADDR 0xbf560000         0x00010000
mac_log_bram_ctrl_S_AXI_BASEADDR 0x90000000         0x00002000
mb_high_aux_bram_ctrl_S_AXI_BASEADDR 0xbf540000         0x00010000
ddr3_sodimm_S_AXI_BASEADDR 0xc0000000         0x40000000
*default*        0x00000000         0xffffffff

Offline

 

#36 2015-Aug-18 09:26:05

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

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

The codebase of the 802.11 Reference Design is big and requires a hand-tweaked linker script to get everything to fit. This linker script is provided in the project zip in each of the (AP, STA, IBSS) high level project source folders and another similar script is provided in each of the (DCF, NOMAC) low level project source folders. Make sure the scripts from the zip file are present in those folders when you are using the SDK. Note: if you use the "generate linker script" command from the SDK, the linker script will be overwritten. The automatically generated linker scripts aren't sophisticated enough to support the design. If you've done this, you should replace the scripts from the original zip file.

Offline

 

#37 2015-Aug-18 09:33:33

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

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

Also, I would strongly recommend using ISE 14.4 with our reference designs. The designs don't benefit from the minor improvements Xilinx made from 14.4 to 14.7, and Xilinx introduced at least one serious SDK bug in 14.7. If your ISE license works with ISE 14.7 it will work with 14.4. You can install both versions on one PC in case you need 14.7 for other projects.

Offline

 

#38 2015-Aug-18 10:21:40

welsh
Administrator
From: Mango Communications
Registered: 2013-May-15
Posts: 612

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

One more comment:  Due to the code size of the 802.11 reference design, you must enable optimization in the build settings.  In general, the default project builds with either "-O2" or "-Os".

Just note that "-Os" has a bug with the right shift operator in the 14.7 toolchain.

Offline

 

#39 2015-Aug-20 09:55:44

warp_user
Member
Registered: 2014-Feb-27
Posts: 70

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

Many thanks for your advice. Build is successful with ISE 14.4.

Offline

 

#40 2015-Nov-30 06:25:39

warp_user
Member
Registered: 2014-Feb-27
Posts: 70

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

Determination of minimum user sensitivity in WARP radio:
I would like to find out the sensitivity measurements of WARP radio in both AP to STA and STA to AP for simplex communication (with the use of WARP 802.11 Reference Design). To achieve this I am using two Radios each attached to a PC (with static IP addresses), configured with WARP 802.11 AP and WARP 802.11 STA designs (driven using an SD card); radios are connected via a coaxial cable and running an iPerf client/server session. 
Ideally I would like to see the radios switch between different modes during the transmission in achieving the best throughput for given conditions (varied path loss). Therefore I need to find out how to change the Tx power at the AP. The only thing I can see from the AP user interface is the change of rate (thus transmission modes).
I have investigated application of WARPnet framework which also allows option to change the rate as well. I would like to use iPerf setting as this will allow measuring TCP and UDP throughput.
Can you please let me know:
1. Does the radio switch between different modes during data transmission using WARP 802.11 Reference Design?
2. Is there a way to change the Tx power of the radio once used in an experimental framework using iPerf data transfer?
3. Can iPerf be used instead of LTG module in WARPnet?
4. What will be the best practical way of achieving the above using WARP radio?

Many thanks in advance

Offline

 

#41 2015-Nov-30 07:01:48

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

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

First, you must have >30dB attenuation between Tx and Rx. Anything less, including a direct connection, can damage the Rx circuits.

1. Does the radio switch between different modes during data transmission using WARP 802.11 Reference Design?

The 802.11 Tx PHY controls the Tx/Rx state of the transceiver. The transceiver is in Rx mode at all times except when the Tx PHY is actively transmitting.

2. Is there a way to change the Tx power of the radio once used in an experimental framework using iPerf data transfer?

The wlan_exp Python framework can set the Tx power for each type of traffic (management, control, unicast data and multicast data). Refer to the wlan_exp docs for the node methods.

3. Can iPerf be used instead of LTG module in WARPnet?

This is probably possible in theory, but we have not built an interface between iperf and wlan_exp. I'm not sure if iperf provides an API. If not you would need to interface them via the shell and capturing stdout. The only advantage I can see in using iperf is TCP traffic flows. If you're using iperf and UDP flows, you can mimic this almost exactly with constant-bit-rate LTGs in wlan_exp.

4. What will be the best practical way of achieving the above using WARP radio?

We detail our Rx sensitivity methodology in the Rx characterization section of the user guide. We used an external Wi-Fi test set as the transmitter in order to fully separate our Tx and Rx performance.

You should get comparable results using a WARP node as the transmitter. It would also be good practice to control Rx power via external attenuation instead of sweeping Tx power. We often use a variable attenuator (we use an Aeroflex 4205-95.5) for tests like this. If you decide to stick with Tx power as the independent variable, our Tx power accuracy and Rx power accuracy characterizations will be helpful in interpreting your results.

Offline

 

#42 2015-Nov-30 08:38:35

warp_user
Member
Registered: 2014-Feb-27
Posts: 70

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

Many thanks for your prompt response.
In addition can you let me know whether the WARP radio adapts to variable rates (switch between different rates) during data transmission?

Offline

 

#43 2015-Nov-30 09:17:34

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

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

In addition can you let me know whether the WARP radio adapts to variable rates (switch between different rates) during data transmission?

The latest 802.11 ref design (v1.3) does not implement any auto-rate protocol. However the reference code has hooks that are designed to facilitate auto-rate implementations. Chris posted some details in this thread.

Offline

 

#44 2016-Oct-14 09:57:04

warp_user
Member
Registered: 2014-Feb-27
Posts: 70

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

I would like to know procedure for debugging an entire system in Xilinx SDK debugger.
I managed to debug successfully for a single design (either in CPU HIGH or CPU LOW) as suggested in the link http://warpproject.org/trac/wiki/howto/SDK_debugger
I want to use SDK debugger for CPU LOW (in this case MAC design). As suggested in the link I have programmed AP and STA designs to CPU HIGH and attached bootloop for CPU LOW (for both AP and STA radio boards). I need to invoke the SDK debugger for CPU LOW and test the entire system design. I am not sure whether this can be done with Xilinx running in a single PC or multiple machines are needed. Can you please let me know of any methodology for doing this or point me of any documentation of this?

Thanks in advance

Offline

 

#45 2016-Oct-16 11:58:21

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

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

Are you trying to run the debugger with two boards at the same time? If so you will need two JTAG cables and two SDK instances. You could use two PCs for this. Alternatively you should be able to run multiple instances of the SDK, connecting each instance to one JTAG+FPGA. I've never actually tried this but I think it should work. You can customize which JTAG cable the SDK uses via the Xilinx -> Advanced Cable Setup menu. You might need to customize this to ensure each SDK instance uses a different JTAG cable.

Offline

 

#46 2017-May-16 09:38:29

hubmun
Member
Registered: 2017-May-09
Posts: 20

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

warp_user wrote:

Many thanks for your reply.
The reason for this project is to understand control and design of different MAC implementations in WARPnet python framework.  Nodes are connected by coax cable with 60dB attenuation. Both nodes are connected to a single laptop (with IP 10.0.0.250) using a Gbit Ethernet switch.
After following instructions in the link http://warpproject.org/trac/wiki/WARPnet1/Installation and copying download-warpnet.bit to SD cards (each node displays 0 and 1 at the start) , once tried with TxPower_vs_PER.py and TxPower_vs_BER.py cannot see any Tx and Rx packets recorded in twoNode_PER_Test_v0.m (this confirmed with running WireShark as well).
Would like to have your feedback on this issue.

Thanks

The server, client and ber_processor show the following:

===========================================================
warpnet_server:sudo python warpnet_server.py eth0 10101 dc:0e:a1:30:6b:10
Started WARPnet Server. Listening on port 10101.


Connected to 1
Unhandled Error
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/twisted/python/log.py", line 88, in callWithLogger
    return callWithContext({"system": lp}, func, *args, **kw)
  File "/usr/local/lib/python2.7/dist-packages/twisted/python/log.py", line 73, in callWithContext
    return context.call({ILogContext: newCtx}, func, *args, **kw)
  File "/usr/local/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext
    return self.currentContext().callWithContext(ctx, func, *args, **kw)
  File "/usr/local/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext
    return func(*args,**kw)
--- <exception caught here> ---
  File "/usr/local/lib/python2.7/dist-packages/twisted/internet/posixbase.py", line 614, in _doReadOrWrite
    why = selectable.doRead()
  File "/usr/local/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 214, in doRead
    return self._dataReceived(data)
  File "/usr/local/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 220, in _dataReceived
    rval = self.protocol.dataReceived(data)
  File "/usr/local/lib/python2.7/dist-packages/twisted/protocols/basic.py", line 180, in dataReceived
    self._consumeData()
  File "/usr/local/lib/python2.7/dist-packages/twisted/protocols/basic.py", line 225, in _consumeData
    self._consumePayload()
  File "/usr/local/lib/python2.7/dist-packages/twisted/protocols/basic.py", line 352, in _consumePayload
    self._processPayload()
  File "/usr/local/lib/python2.7/dist-packages/twisted/protocols/basic.py", line 398, in _processPayload
    self.stringReceived(self._payload.getvalue()[:-1])
  File "warpnet_server.py", line 478, in stringReceived
    self.factory.processor.controllerMsg(self.id, dataDict)
  File "warpnet_server.py", line 303, in controllerMsg
    self.procFunc[data['pktType']](controllerID, data)
  File "warpnet_server.py", line 433, in pc_data
    self.factory.nodeManager.sendToNode(controllerID, group, structID, node, dataToSend, availability, ETH_HEADER)
  File "warpnet_server.py", line 565, in sendToNode
    self.existingConnections[nodeID][2].sendStruct(cID, cGrp, structID, nodeID, data, access, ethernetType)
  File "warpnet_server.py", line 636, in sendStruct
    self.connection.sendData(structPacket, ethernetType)
  File "warpnet_server.py", line 733, in sendData
    ethPkt.set_ether_type(ethernetType)
  File "/usr/local/lib/python2.7/dist-packages/impacket/ImpactPacket.py", line 565, in set_ether_type
    self.set_word(12 + 4*self.tag_cnt, aValue)
exceptions.AttributeError: WARPnetEthernetHeader instance has no attribute 'tag_cnt'
Lost connection to 1



=================================================
ber_processor: sudo ./ber_processor
Starting WARPnet BER Processor
Attaching to device eth0
Applied filter 'ether proto 0x9494'

=======================================================

warpnet_client:python TxPower_vs_PER.py
Successfully connected to WARPnet Server
Registered Group ID 0
Connected to nodes
resending after timeout data 13
resending after timeout data 13
resending after timeout data 13
resending after timeout data 13
resending after timeout data 13
resending after timeout data 13
....
Request timed out
resending after timeout data 27
resending after timeout data 27
resending after timeout data 27
resending after timeout data 27
resending after timeout data 27
resending after timeout data 27
resending after timeout data 27
resending after timeout data 27
resending after timeout data 27
resending after timeout data 27
Request timed out
############################################
############# Experiment Done! #############
############################################

Just for those that might have the same trouble:

I just added the attribute 'tag_cnt' to the WARPnetEthernetHeader-definition in warpnet_server.py and initialized it with 0 and the problem disappeared.

Offline

 

#47 2018-Jan-09 10:17:43

warp_user
Member
Registered: 2014-Feb-27
Posts: 70

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

Hi,
I have the following question on linker script.
For the Mango Reference Design 802.11 version 1.3 the linker script is defined to place all sections (Code, Data and Stack & Heap sections) in

Code:

mb_high_ilmb_bram_cntlr_0_mb_high_dlmb_bram_cntlr_0

This is for the AP and STA projects.
Is this the correct way of doing it?
Reason for this question is when I assigned values to global variables they get discarded due to the use of the function

Code:

wlan_mac_high_heap_init();

in AP and STA project.

Many thanks in advance

Offline

 

#48 2018-Jan-10 09:31:15

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

Re: w3_OFDM_ReferenceDesign_v18p1 within WARPNet framework

Is this the correct way of doing it?

Yes. The ILMB/DLMB is the shared instruction-data memory attached to the MicroBlaze's Local Memory Bus interface.

The wlan_mac_high_heap_init() function re-initializes the metadata used by malloc/free to manage the heap. It shouldn't affect any other memory sections, including sections that store global variables.

Offline

 

Board footer