User talk:Duggabe: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
=Tech writing presentation=
=Tech writing presentation=


This is a DRAFT.
<!-- Tech_writing_presentation.mediawiki -->


==Preparation==
==Preparation==
Line 20: Line 20:


==Why did I get involved?==
==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.
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 all, I am a career computer programmer and a life-long amateur radio operator, so combining the two was an appealing idea. After reading the "discuss-gnuradio" mailing list for a while, I noticed a recurring topic of "GNU Radio documentation is terrible". Trying to use it, I had to agree, and decided to do something about it.


==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 after more than four years.
* 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. There are more that 480 blocks, so it's a very daunting task to do them all.
** 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!
Line 32: Line 32:


==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. I also got some guidance from my mentor at GNU Radio based on unwritten expectations of how a block should be documented.
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. It's interesting to note that in a volunteer organization such as GNU Radio, tradition and unwritten rules are as common as formal guidelines.


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 and 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==
==Some examples==

Revision as of 12:46, 4 October 2022

Tech writing presentation

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 all, I am a career computer programmer and a life-long amateur radio operator, so combining the two was an appealing idea. After reading the "discuss-gnuradio" mailing list for a while, I noticed a recurring topic of "GNU Radio documentation is terrible". Trying to use 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. There are more that 480 blocks, so it's a very daunting task to do them all.
    • 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. It's interesting to note that in a volunteer organization such as GNU Radio, tradition and unwritten rules are as common as formal guidelines.

For the Tutorials, there was much more latitude to create and 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.