= ALOE OFDM Transmitter Demo = We describe in this page how to download the OFDM transmitter demo we presented at COST-Terra Summer School 2012. Main Features: * Bandwidth 2-20 MHz * FFT size 128-2048 points * Turbo-encoding * Cyclic-Prefix * Run-time reconfiguration * '''E2E Latency: 4 ms''' (constant and non-random) * Distributed processing (tested with 2 processors and GigaEthernet) * GUI: signal visualization, execution time monitoring, etc. == Download and install == 1) Prerequisites: * Linux operating (tested on Ubuntu) * Only the 'readline' and 'termcap' libraries are required to install ALOE. Ask your OS vendor how to install these libraries. If you want to use the USRP, make sure you have the UHD drivers is installed before installing ALOE. 2) Download the latest ALOE unstable version from http://flexnets.upc.edu/downloads/aloe-ctss-demo-1.5.0.tar.gz 3) Untar, uncompress and cd into created directory 4) Configure, compile and install {{{ ./configure make sudo make install }}} 5) Add the following lines to /etc/sysctl.conf file {{{ kernel.msgmnb=1048576 kernel.msgmax=10485760 kernel.msgmni=128 }}} and run {{{ sudo sysctl -p }}} 6) Run the MAC-TEST to obtain your processor performance: {{{ sudo runcf -t NOFCORES 1000000 }}} replacing NOFCORES with the number of cores in your processor. For example, in a quad-core you would type: {{{ sudo runcf -t 4 1000000 }}} And you will see something like this: {{{ child 2: 1344192127:118 -> 1344192127:1561 diff: 0:1443 693 MMACS child 3: 1344192127:117 -> 1344192127:1561 diff: 0:1444 692 MMACS child 1: 1344192127:214 -> 1344192127:1597 diff: 0:1383 723 MMACS child 0: 1344192127:214 -> 1344192127:1597 diff: 0:1383 723 MMACS parent: 1344192126:183204->1344192127:3329 diff: 0:820125 }}} Now set the ''mops'' field in /usr/local/etc/platform.conf option to the MMACS obtained in the test. == Running the Demo application == 1) Run core framework. Requires root privileges to set real-time scheduler {{{ sudo runcf }}} 2) In the command prompt, run {{{ load ofdm128 init ofdm128 run ofdm128 }}} to load, initialize and run the OFDM-128 application. Now you can check the waveform is running with the command {{{ execinfo ofdm128 }}} 3) The OFDM bandwidth can be modified at run-time with: {{{ statset ofdm128 source fftsize 256 statset ofdm128 source fftsize 512 }}} Which set the fft size to 256 and 512 tones respectively (4 and 8 MHz bandwidth). By default, the framework will use one processor only from your computer. If you have a multi-core processor, edit the 'nof_cores' option in /usr/local/etc/platform.conf file. In our tests, the OFDM application runs perfectly in a 2.5 GHz Intel processor using one core only. The 512 mode produces frequent real-time faults (printed stdout). This mode works correctly in a dual-processor environment. == USRP == If the [http://ettus-apps.sourcerepo.com/redmine/ettus/projects/uhd/wiki/ UHD] driver is installed before running ALOE's configure script, the option {{{ dac=uhd }}} in '''/usr/local/etc/platform.conf''' file allows ALOE to send samples to the USRP. Now run the OFDM-128 waveform as described in the previous section. The device sampling frequency is automatically configured by ALOE. Since not all devices can work with the same sampling frequencies, the execution period (time-slot) can differ slightly from one set-up to another. You may experience with different sampling frequencies and time-slots editing the file /usr/local/etc/usrp.conf. By setting different sampling frequencies == Distributed Processing == 1) Download and install ALOE in two computers 2) Setup your network, making sure you have full TCP and UDP connectivity between both computers. 3) Edit file /usr/local/etc/xitf1.conf and replace 192.168.1.1 by the ip address of your MASTER node. 4)