from_gnuradio_to_cortxlab_pico
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
from_gnuradio_to_cortxlab_pico [2016/12/12 18:28] – [Book the testbed with OAR] onicolas | from_gnuradio_to_cortxlab_pico [2017/11/15 16:19] (current) – [Create the scenario] onicolas | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | # From GNU Radio to CorteXlab | + | # From A to Z: GNU Radio with CorteXlab |
- | This tutorial goes through the process of executing an experiment on CorteXlab starting from an empty project on your computer. (and is quite similar to [[from_gnuradio_to_cortxlab|this tutorial]], but this time we are using PicoSDRs). | + | This tutorial goes through the process of executing an experiment on CorteXlab starting from an empty project on your computer (and is quite similar to [[from_gnuradio_to_cortxlab|this tutorial]], but this time we are using PicoSDRs). |
- | For practical purposes, we will use some GnuRadio | + | For practical purposes, we will use some GNU Radio examples instead of starting from a clean sheet, but it's exactly the same as if you had your own project you wanted to run on CorteXlab. |
##Setup | ##Setup | ||
- | The purpose of this tutorial is to execute an OFDM transmission between two PicoSDR nodes. One node will be the transmitter and the other one will be the receiver. Instead of starting from an empty project, we are going to use 2 GNU Radio Companion examples. Copy the files '' | + | The purpose of this tutorial is to execute an OFDM transmission between two PicoSDR nodes. One node will be the transmitter and the other one will be the receiver. Instead of starting from an empty project, we are going to use a GNU Radio example. Copy the files '' |
As you can guess '' | As you can guess '' | ||
Line 27: | Line 27: | ||
### tx_ofdm.grc | ### tx_ofdm.grc | ||
- | Open '' | + | Open '' |
- | The first thing to do is to change the generate options in order to have a 'No GUI' project (the results will be stored in a file). Open the Options block (in the top left corner) and switch the Generate Options from '' | + | The first thing to do is to change the generate options in order to have a 'No GUI' project (the results will be stored in a file). Open the Options block (in the top left corner) and switch the Generate Options from '' |
- | Set the samp\_rate variable to 5000000 (5 MHz) using the corresponding variable block located | + | Set the samp\_rate variable to 5000000 (5 MHz) using the corresponding variable block located |
- | Then we need to add some mandatory blocks | + | Then we need to add some mandatory blocks in order to use a PicoSDR : |
Line 138: | Line 138: | ||
Then we need the same mandatory blocks as with tx\_ofdm, which are '' | Then we need the same mandatory blocks as with tx\_ofdm, which are '' | ||
- | + | ||
+ | We need to modify the frequency on the Tx block so as not to interfere with the transmitting node: | ||
+ | |||
+ | * Radio420 RX (to set up RX radio front end) | ||
+ | -> **TX frequency** : 2590000000 | ||
+ | |||
The next thing to do is to replace the encoding and transmission parts to put a '' | The next thing to do is to replace the encoding and transmission parts to put a '' | ||
-> **Target ID** : nutaq\_carrier\_perseus\_0 | -> **Target ID** : nutaq\_carrier\_perseus\_0 | ||
Line 163: | Line 169: | ||
## Create the scenario | ## Create the scenario | ||
- | The experiment description file called `scenario.desc` will be looked for and read by the experiment scheduler to get which nodes and what software will be used during the experiment. It also gives the necessary startup scripts and parameters that the user provides for his experiment. | + | The experiment description file called `scenario.yaml` will be looked for and read by the experiment scheduler to get which nodes and what software will be used during the experiment. It also gives the necessary startup scripts and parameters that the user provides for his experiment. |
- | Here is a simple example of a `scenario.desc` file: | + | Here is a simple example of a `scenario.yaml` file: |
< | < | ||
# Example scenario description file | # Example scenario description file | ||
Line 174: | Line 180: | ||
# Scenario textual description | # Scenario textual description | ||
# | # | ||
- | desc OFDM tx-rx example scenario for CorteXlab | + | description: |
# Experiment maximum duration | # Experiment maximum duration | ||
# Time after which the experiment is forced to stop | # Time after which the experiment is forced to stop | ||
- | # | + | # |
- | durat 2 | + | duration: 120 |
# Node list | # Node list | ||
Line 185: | Line 191: | ||
# | # | ||
# | # | ||
- | # | + | # nodes: |
- | # entry (entry point script relative to the task root) | + | # (machine): |
- | # exit (exit point script relative to the task root. Use " | + | # command: |
- | + | ||
- | node29: | + | |
- | entry rx_ofdm.py | + | |
- | node31: | + | nodes: |
- | entry tx_ofdm.py | + | node29: |
+ | command: ./ | ||
+ | | ||
+ | | ||
</ | </ | ||
- | This file uses its own syntax and is self-documented. Here the params line is mandatory even if it is not used (This will be changed in a future version). Adapt this example to suit your needs. | + | This file uses the yaml syntax and is self-documented. Adapt this example to suit your needs. |
Line 207: | Line 213: | ||
│ ├── tx_ofdm.py | │ ├── tx_ofdm.py | ||
│ ├── rx_ofdm.py | │ ├── rx_ofdm.py | ||
- | │ ├── scenario.desc | + | │ ├── scenario.yaml |
│ ├── tx_ofdm.grc | │ ├── tx_ofdm.grc | ||
│ └── rx_ofdm.grc | │ └── rx_ofdm.grc | ||
Line 255: | Line 261: | ||
Now, we have booked the testbed and we have a `.task` file containing our experiment. In order to run it, we need to submit it to the testbed scheduler. | Now, we have booked the testbed and we have a `.task` file containing our experiment. In order to run it, we need to submit it to the testbed scheduler. | ||
- | For now, the scheduler is a simple FIFO queue, but a more advanced scheduling mechanism will be implemented in next versions of CorteXlab. | + | For now, the scheduler is a simple FIFO queue, but a more advanced scheduling mechanism will be implemented in upcoming |
To submit a task to the scheduler, use the Minus CLI: | To submit a task to the scheduler, use the Minus CLI: | ||
Line 270: | Line 276: | ||
< | < | ||
you@srvairlock: | you@srvairlock: | ||
- | Testbed status: | + | num total tasks: 2540 |
- | ID count so far: 6 | + | num tasks waiting: 0 |
- | Number of awaiting jobs: 0 | + | num tasks running: 0 |
- | ID of the running | + | tasks currently |
+ | | ||
</ | </ | ||
Line 301: | Line 308: | ||
you@srvairlock: | you@srvairlock: | ||
you@srvairlock: | you@srvairlock: | ||
- | rx_ofdm.grc | + | rx_ofdm.grc |
rx_ofdm.py | rx_ofdm.py | ||
</ | </ |
from_gnuradio_to_cortxlab_pico.1481563729.txt.gz · Last modified: 2016/12/12 18:28 by onicolas