User talk:Duggabe: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
No edit summary
Line 14: Line 14:
* Computer programmer since 1962
* Computer programmer since 1962
* Retired 2003
* Retired 2003
* Started working on GNU Radio 2019


==What is GNU Radio==
==What is GNU Radio==
GNU Radio is a free and open-source software development toolkit that provides Digital Signal Processing blocks to implement Software Defined Radios.
GNU Radio is a free and open-source software development toolkit that provides Digital Signal Processing blocks to implement Software Defined Radios. It is an entirely volunteer organization with contributors from all over the world.


==Why did I get involved?==
==Why did I get involved?==
Line 22: Line 23:


==Learn by Doing==
==Learn by Doing==
* When I got involved, the switch to using a Wiki was new. Many of the blocks were just skeletons with no real content. For example, https://wiki.gnuradio.org/index.php?title=Cvsd_encoder is yet to be documented.
* When I got involved, the switch to using a Wiki was new. Many of the blocks were just skeletons with no real content. For example, https://wiki.gnuradio.org/index.php?title=Cvsd_encoder is yet to be documented after more than four years.
** I had to learn to use [https://www.mediawiki.org/wiki/MediaWiki MediaWiki].
** I had to learn to use [https://www.mediawiki.org/wiki/MediaWiki MediaWiki].
** I had to learn what a block did before I could write about it!
** I had to learn what a block did before I could write about it!
** After the first year of working on them, I had done about 150 blocks.
** After the first year of working on them, I had done over 150 blocks and written or updated about 10 tutorials.


==Help others to Learn==
==Help others to Learn==
I have found that the best way to learn about a technical subject is to study a turorial about it. However, there were very few tutorials, and they were out of date because of newer software releases of GNU Radio.
I have found that the best way to learn about a technical subject is to study a turorial about it. However, there were very few tutorials, and the ones which existed were out of date because of newer software releases of GNU Radio.


==Adopting a Style==
==Adopting a Style==
It was rather surprising to me that there was no formal guidance for the style of the Block Docs or for tutorials. As I started working on the Block Docs, I derived a skeleton format which covered all of the items I found in various blocks. That gave a consistent layout from one block to the next.
It was rather surprising to me that there was no formal guidance for the style of the Block Docs or for tutorials. As I started working on the Block Docs, I derived a skeleton format which covered all of the items I found in various blocks. That gave a consistent layout from one block to the next. I also got some guidance from my mentor at GNU Radio based on unwritten expectations of how a block should be documented.


For the Tutorials, there was much more latitude to create / use my own style. My basic approach was to write for a beginner with only the Prerequisites as a background. Other than that, I used an "Assume nothing" approach.
For the Tutorials, there was much more latitude to create / use my own style. My basic approach was to write for a beginner with only the Prerequisites as a background. Other than that, I used an "Assume nothing" approach.
==Some examples==
One of my more popular tutorials is https://wiki.gnuradio.org/index.php?title=Simulation_example:_FSK Along with that, I wrote the Block Doc for the https://wiki.gnuradio.org/index.php?title=VCO which is the key block in generating the FSK signal.
In doing my work on the documentation, I wanted to make sure that what I wrote actually worked. So for each of my blocks and example flowgraphs, I created and tested them before I published them. For several of them, I created a complete working system using SDR hardware to operate with an amateur radio station. For example, https://github.com/duggabe/gr-RTTY-basics implements an amateur radioteletype station.

Revision as of 16:12, 18 September 2022

Tech writing presentation

This is a DRAFT.

Preparation

  • GNU Radio Main Page
   https://wiki.gnuradio.org/index.php/Main_Page
  • A Newbie's Guide to the GNU Radio Universe
   https://www.youtube.com/watch?v=uxAW-WzuNy0

Background

  • Amateur radio operator since 1953
  • Electrical Engineering degree 1961
  • Computer programmer since 1962
  • Retired 2003
  • Started working on GNU Radio 2019

What is GNU Radio

GNU Radio is a free and open-source software development toolkit that provides Digital Signal Processing blocks to implement Software Defined Radios. It is an entirely volunteer organization with contributors from all over the world.

Why did I get involved?

I discovered GNU Radio when reading an amateur radio manual. I thought it was a fascinating concept to use software instead of hardware to create a radio. After reading the "discuss-gnuradio" mailing list for a while, I noticed a recurring topic of "GNU Radio documentation is terrible". Looking at it, I had to agree, and decided to do something about it.

Learn by Doing

  • When I got involved, the switch to using a Wiki was new. Many of the blocks were just skeletons with no real content. For example, https://wiki.gnuradio.org/index.php?title=Cvsd_encoder is yet to be documented after more than four years.
    • I had to learn to use MediaWiki.
    • I had to learn what a block did before I could write about it!
    • After the first year of working on them, I had done over 150 blocks and written or updated about 10 tutorials.

Help others to Learn

I have found that the best way to learn about a technical subject is to study a turorial about it. However, there were very few tutorials, and the ones which existed were out of date because of newer software releases of GNU Radio.

Adopting a Style

It was rather surprising to me that there was no formal guidance for the style of the Block Docs or for tutorials. As I started working on the Block Docs, I derived a skeleton format which covered all of the items I found in various blocks. That gave a consistent layout from one block to the next. I also got some guidance from my mentor at GNU Radio based on unwritten expectations of how a block should be documented.

For the Tutorials, there was much more latitude to create / use my own style. My basic approach was to write for a beginner with only the Prerequisites as a background. Other than that, I used an "Assume nothing" approach.

Some examples

One of my more popular tutorials is https://wiki.gnuradio.org/index.php?title=Simulation_example:_FSK Along with that, I wrote the Block Doc for the https://wiki.gnuradio.org/index.php?title=VCO which is the key block in generating the FSK signal.

In doing my work on the documentation, I wanted to make sure that what I wrote actually worked. So for each of my blocks and example flowgraphs, I created and tested them before I published them. For several of them, I created a complete working system using SDR hardware to operate with an amateur radio station. For example, https://github.com/duggabe/gr-RTTY-basics implements an amateur radioteletype station.