HI all,
Yesterday-evening, we did a small workshop 'getting started to GNU Radio
for CTFs', to 'kickstart' some people using GNU Radio.
Afterwards, I was thinking that workshops do take up quite a bit of
time, and not every student has time to do a workshop during the
timeslot that is there is a teacher available; so perhaps we can also do
this in another way.
One thing -I think- would help for this, is the possibility to create
'interactive getting started guides' for GR. That way, we should be able
to reach more people.
The idea I have in mind is to create 'interactive learning-flows'. To
allow people to learn GNU Radio -step by step- how to use GRC, how to
analyse a CTF, how to create signals, ...
The model is a 'learning-flow', a course is divided into multiple GRC
flow-graphs, and where every 'tab' on GRC is the next step in process to
build/ explain/ ... a GRC flow-graph.
- GRC tab 1: option-block + 'samp_rate' var block + file source
- GRC tab 2: option-block + 'samp_rate' var block + file source +
throttle-block
- GRC tab 3: option-block + 'samp_rate' var block + file source +
throttle-block + QT time sink
- GRC tab 3: option-block + 'samp_rate' var block + file source +
throttle-block + complex-to-amp2 + QT time sink
(...)
So, my question. Could it be possible to change / enhance GRC a little
it to make it better suited for creating this kind of interactive
learning courses?
(Perhaps some of the things noted below are already possible. So please
excuse my ignorance)
Find below some 'feature-requests' for GRC that I think would help to
make this possible (or at least, more easy):
1. GRC has the ability to use tabs, multiple flowgraphs loaded into GRC.
However, every flowgraph is independent, and you can can load/save every
one of them independently.
Would it be possible to create the concept of a 'flowgraph bundle', i.e.
a number of flowgraphs that are groups together, and that are combined
in one file.
When you load the 'bundle', all flow-graphs will be loaded at different
tabs of GRC, in a predefined order as documented in the bundle.
2. Most workshops / how-tos use files. (e.g. i/q files)
Currently, this means that you must distribute that i/q file separately,
and you must tell the user 'now point the file-sink block to the i/q
file you have downloaded. It can be in Downloads, or in documents, or in
your home-folder so look around if you do not find it immediately'.
This is kind-of OK in a real 'live' workshop, but -I think- not what you
would want in a learning-project somebody has downloaded from the
internet and doing this without the 'live' aid of a teacher.
So, considering the bundles mentioned about, would it be possible to
have them also include -say- an i/q files?
When the user loads a bundle into GRC, this should then also place that
the i/q file in a predefined location on the computer of the student.
- The goal would be to be able to pre-configure the file-source block
in such a way that it will find that I/q file, no matter what the
directory-structure of the user's computer might be.
- And it would make distributing a learning-flow a lot easier as you
only have to distribute one single file.
3/ (This is probably a lot more difficult)
To create a real 'step by step' flow, it would be interesting that the
student can only access a certain tab (i.e. a step in the learning
path), when the flow-graph of the previous tab has been 'finished'
To give an example:
Tab 1: options block, variable block 'samp-rate' and file-source block
+ a "note" block with this text:
- "when loading a file into GRC, the data-type of the file-source output
port should corresponds to the signal in the file.
The example-file has the extension 'iq', so the datatype is 'complex'.
Change the datatype of the file-source block to the correct setting"
- "One of the most important features of a stream is it sample-rate. The
example-file is called file1_48000sps.iq
What is the sample-rate of the signal in that file. Set the variable
samp_rate to the correct value"
Only when those two conditions are met, then the student should be able
to access the 2nd tab.
Tab 2:
Comment block "When creating a GRC without any actual hardware, you need
to add a throttle-block. If not, GRC will use all CPU-cycles of your
computer when run. Please add a throttle-block after the file-source
block, connect these two blocks and then go to tab3."
...
(But I guess that this kind of requirement is a lot harder then points 1
and 2 above).
4/ Can you please make the 'note' block larger, and to allow multiple
lines of text?
Currently, it is quite small, so it is not really possible to add the
kind of comments (see 3/ above) to the graph.
What would also be nice is the ability to add URLs in the note blocks.
This would allow the note to link to -say- a video: " Change the
datatype of the file-source block to the correct setting. Click here for
a video on the different data-types used in GNU Radio"
I know that some of these feature-requests are probably not that easy.
But as the quite steep learning-curve of GNU Radio is the main reason
people are scared away from GR, I do think that providing a good
learning-tool can be one of the best ways to get the, over that hurdle.
73
kristoff - ON1ARF
No comments:
Post a Comment