User Tools

Site Tools


bokehgui_for_cortexlab

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
bokehgui_for_cortexlab [2025/05/16 15:38] cmorinbokehgui_for_cortexlab [2025/05/16 16:59] (current) cmorin
Line 53: Line 53:
 ## Connect to the Bokehgui node ## Connect to the Bokehgui node
  
-Once the task is running, we connect to the node with the bokehgui image directly from you local computer. This is because we need to forward the bokehgui data-stream directly from the node to your local computer. This command, to be run in another terminal, will connect you to the node and set up the jump through Airlock: +Once the task is running, we connect to the node with the bokehgui image directly from you local computer. This is because we need to forward the bokehgui data-stream directly from the node to your local computer. This command, to be run in another terminal, will connect you to the node and set up the jump through Airlock (It may start working after a few tens of seconds once it's properly started)
  
 <code> <code>
Line 87: Line 87:
 {{ :remote_grc_opening_rx.png?600 |}} {{ :remote_grc_opening_rx.png?600 |}}
  
 +As we are opening this file from our home folder on the gateway, when we save it, it will be recorded even after the task finishes.
 +
 +And now we can see the full reception flowgraph with all its blocks.
 +You can resize the window, and pan/scroll/zoom to look around the graph.
  
 {{ :remote_grc_opened_rx.png?600 |}} {{ :remote_grc_opened_rx.png?600 |}}
  
 +Feel free to take some time to look at the graph to see what it does.
  
  
 +## Add the gr-bokehgui blocks
  
-On the node, you will find two files, the GRC flowgraph and the python executable of the project+We will now add the elements to visualise.
  
-{{ :grc_flowgraph_bokehgui.png?600 |}}  +We will add a couple of things: 
 + * A Waterfall to look at the received frequency spectrum 
 + * A Time Sink to look at the received bit sequence
  
-You can ran the python executable with the following command +And we will add a couple of widgets to control the receiver's parameters while it's running: 
 + * A Slider for center frequency 
 + * A slider for gain
  
-<code> +You will find the blocks to add in the right side panel containing the block library, in the ''Bokeh GUI'' section
-root@mnode17:~# ./cxlb_bokehgui.py +
-</code>+
  
-**Remarq** The sample rate is set at 35kHz by default but can be modified by updating the python file using ''apt''The same procedure can be used to change the default frequency and gain.  +{{ :remote_grc_bokeh_waterfall_select.png?600 |}}
  
 +You can also type ''Ctrl+F'' and type to search a block name
 +
 +So first, add a Waterfall Sink right at the beginning of the flowgraph, connected to UHD USRP Source block, and fill in its parameters by double clicking on it. The main one to change here is the ''placement'' param to specify where the plot will appear in the browser. 
 +
 +{{ :remote_grc_waterfall_params.png?600 |}}
 +
 +Now add a ''Time Sink'' at the end, following a ''Char to float'' to convert the sample types to one that can be displayed.
 +
 +{{ :remote_grc_time_sink_params.png?600 |}}
 +
 +That's it for the plots
 +
 +We can now add the ''Sliders'' to play with some of the parameters during execution
 +These can be placed anywhere in the canvas.
 +Before opening the block's parameters, make sure to disable the ''freq'' and ''gain'' Parameter blocks at the top by right clicking on them and selecting Disable.
 +
 +Now fill in the parameters as follow:
 +
 +{{ :remote_grc_freq_slider.png?600 |}}
 +{{ :remote_grc_gain_slider_params.png?600 |}}
 +
 +The very last step before execution is to set the flowgraph's option to use Bokeh GUI, for that open the ''Options'' block at the top left corner, and select ''Bokeh GUI'':
 +
 +{{ :remote_grc_options.png?300 |}}
 +
 +You can now press play to run the modified flowgraph. 
 +You will probably encounter this warning window, just ignore it and hit OK:
 +
 +{{ :xterm_warning.png?200 |}}
 +
 +
 +If you had done these modifications on your own computer, simply hit the ''Generate'' button, just left to the Play button to generate a python script to execute and [copy it with scp](https://www.cortexlab.fr/doku.php?id=exp_upload) on airlock. 
 +And execute it, just like we did in previous tutorial.
 +
 +
 +## Visualize your signal 
  
 Now that the bokehgui flowgraph is running, you can access the visualization tool available at the following address on your local computer internet browser : Now that the bokehgui flowgraph is running, you can access the visualization tool available at the following address on your local computer internet browser :
  
 <code> <code>
-http://localhost:5006/bokehgui?bokeh-session-id=cxlb_bokehgui+http://localhost:5006/bokehgui
 </code> </code>
  
-All timefrequency and waterfall visualization tool are now up and runningHowever, they are just displaying noise at this time+You should see our two sliders, Waterfall, and an empty Time plot. 
 +That one is empty because there are no decoded bits as we haven't started the transmitter.
  
-## Start the OFDM transmission +{{ :bokeh_browser_no_signal.png?600 |}}
  
-To start the OFDM transmission, you can access the OFDM node from airlock as follow :+You can play with the gain silder to see what that changes. 
 + 
 +Let's now start the transmitter:
  
 <code> <code>
-username@srvairlock:~$ ssh -p 2222 root@mnode16+# From node 14 
 +root@mnode14:~/ /cortexlab/homes/[username]/Tutorials/Tuto_3/examples/ofdm_benchmark/ofdm_tx_example.py -g 15 -b 4 -r 1000000 -f 1350000000
 </code> </code>
  
-Then you can run the following command to start the OFDM transmitter flowgraph +You now should see something displayed in the Time Sink, and prints in the console resembling what we had in previous tutorials. If not, make sure you haven't changed the frequency slider. 
 + 
 +{{ :bokeh_browser_w_signal.png?600 |}} 
 + 
 +You may not see much difference in the waterfall display (maybe a line once in a while) because packets are not transmitted very often and there is a high chance the Waterfall display misses them. 
 +To ensure you can see it, you can change the transmission period to something like 1ms using the ''-t'' option:
  
 <code> <code>
-root@mnode16:~#  ./examples/my_task/benchmark_tx.py --antenna="TX/RX" --tx-amplitude=0.2 -v -W 2M -f 2.49G+# From node 14 
 +root@mnode14:~/ /cortexlab/homes/[username]/Tutorials/Tuto_3/examples/ofdm_benchmark/ofdm_tx_example.py -g 15 -b 4 -r 1000000 -f 1350000000 -0.001
 </code> </code>
  
-## Visualize your signal  +Note that this will probably flood your console and cause GNU Radio Companion to stop responding. 
- +To remedy that, simply stop the transmitter (''Ctrl+C''and wait bit for prints to stop.
-You can go back to your browser and have look at your signal.+
  
-{{ :signal_vis.png?600 |}}+Feel free to play with the sliders and displays.
  
-## What's next ?+## Conclusion
  
 Congratulations, you can now visualize any signal transmitted within the CorteXlab platform ! Feel free to replace the OFDM transmission with your project... Congratulations, you can now visualize any signal transmitted within the CorteXlab platform ! Feel free to replace the OFDM transmission with your project...
bokehgui_for_cortexlab.1747402732.txt.gz · Last modified: 2025/05/16 15:38 by cmorin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki