tuto_fpga_pico
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| tuto_fpga_pico [2016/05/18 10:51] – [Create the scenario] lbeseme | tuto_fpga_pico [2017/11/15 16:22] (current) – [Create the scenario] onicolas | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | # Using a custom bitstream with a PicoSDR | + | # Using a custom bitstream with a PicoSDR |
| - | This tutorial shows how to use a custom bitstream when you are making experiments with PicoSDR. For this we will be using a Nutaq exemple | + | This tutorial shows how to use a custom bitstream when you are making experiments with PicoSDR. For this we will be using a Nutaq example |
| - | This exemple | + | This example |
| - | + | ||
| - | The GRC file can be found at ''/ | + | |
| + | The GRC file can be found at ''/ | ||
| ## Edit the .grc file | ## Edit the .grc file | ||
| - | Let's take a look at '' | + | Let's take a look at '' |
| + | |||
| + | First, what it is intended to do: we send a video file to RTDEX Sink, and from RTDEX Source we get the constellation points of the OFDM demodulation and the video file is sent to a UDP Sink (in order to open it with VLC for example). We have also a lot of parameter | ||
| - | This example can be used straight away when you are working on your setup, but not in CortXlab | + | This example can be used straight away when you are working on your setup, but not in CorteXlab |
| Line 19: | Line 20: | ||
| - | Let's back to the idea of sending a constant number to the PicoSDR and see if we get it back. First thing to do is to add a '' | + | Let' |
| - | Add a Python Block, open it, and click on 'Open in Editor' | + | Add a Python Block (from category '' |
| < | < | ||
| """ | """ | ||
| Embedded Python Blocks: | Embedded Python Blocks: | ||
| - | Each this file is saved, GRC will instantiate the first class it finds to get | + | Each time this file is saved, GRC will instantiate the first class it finds to get |
| - | ports and parameters of your block. The arguments to __init__ | + | the ports and parameters of your block. The arguments to __init__ |
| parameters. All of them are required to have default values! | parameters. All of them are required to have default values! | ||
| """ | """ | ||
| Line 82: | Line 83: | ||
| ## Create the scenario | ## Create the scenario | ||
| - | In order to run the experiment in CorteXlab we need a description called scenario. Create a file named '' | + | In order to run the experiment in CorteXlab we need a description called scenario. Create a file named '' |
| < | < | ||
| # Example scenario description file | # Example scenario description file | ||
| Line 91: | Line 92: | ||
| # Scenario textual description | # Scenario textual description | ||
| # | # | ||
| - | desc base 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 5 | + | duration: 300 |
| # Node list | # Node list | ||
| Line 102: | Line 103: | ||
| # | # | ||
| # | # | ||
| - | # | + | # nodes: |
| - | # entry (entry point script relative to the task root) | + | # (machine): |
| - | # exit (exit point script relative to the task root. Use " | + | # command: |
| - | node31: | + | nodes: |
| - | entry ofdm.py | + | |
| - | | + | |
| + | bitstreamA: OFDM_6_6_0_sx315.bit | ||
| </ | </ | ||
| - | If you trasnlate | + | If you translate |
| Line 122: | Line 124: | ||
| │ ├── ofdm.py | │ ├── ofdm.py | ||
| │ ├── epy_block_0.py | │ ├── epy_block_0.py | ||
| - | │ ├── scenario.desc | + | │ ├── scenario.yaml |
| │ ├── ofdm.grc | │ ├── ofdm.grc | ||
| │ └── OFDM_6_6_0_sx315.bit | │ └── OFDM_6_6_0_sx315.bit | ||
| Line 128: | Line 130: | ||
| </ | </ | ||
| - | The .grc will not be used by CorteXlab but you can let it in the same directory. '' | + | The .grc will not be used by CorteXlab but you can let it in the same directory. '' |
| ### Upload the files on airlock | ### Upload the files on airlock | ||
| Line 208: | Line 210: | ||
| </ | </ | ||
| - | So we see that we have a folder for each task and inside each folder one compressed file per participant node. Let' | + | So we see that we have a folder for each task and inside each folder one compressed file per participant node. Let' |
| < | < | ||
| Line 217: | Line 219: | ||
| you@srvairlock: | you@srvairlock: | ||
| epy_block_0.py | epy_block_0.py | ||
| - | epy_block_0.pyc | + | epy_block_0.pyc |
| _impactbatch.log | _impactbatch.log | ||
| </ | </ | ||
| - | We see that all of the files we used to create the task are inside. The other two are: | + | We see that all of the files we used to create the task are inside. The others |
| * '' | * '' | ||
| * '' | * '' | ||
| - | * '' | + | * '' |
| - | * '' | + | * '' |
| Let's take a look inside '' | Let's take a look inside '' | ||
| Line 234: | Line 236: | ||
| </ | </ | ||
| - | You should get a long file that looks more or less like this: | + | You should get a file looking |
| < | < | ||
| Line 283: | Line 285: | ||
| </ | </ | ||
| - | Here we have 98% valid reveived | + | Here we have 98% valid received |
| ## What's next | ## What's next | ||
| - | Obviously, the next step for you is to try an experiment with your own bitstream. But you can also try to adapt other Nutaq exemple | + | Obviously, the next step for you is to try an experiment with your own bitstream. But you can also try to adapt other Nutaq example |
tuto_fpga_pico.1463561492.txt.gz · Last modified: (external edit)
