# Difference between blks and blks2

**URL:** <https://www.ruby-forum.com/t/difference-between-blks-and-blks2/167613>\
**Category:** GNU Radio\
**Created:** [May 10, 2009, 10:12am UTC](https://www.ruby-forum.com/t/difference-between-blks-and-blks2/167613 "2009-05-10T10:12:53Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Colby\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/439d5e/32.png) [@Colby\_B](https://www.ruby-forum.com/u/Colby_B)\
**Post date:** [May 10, 2009, 10:12am UTC](https://www.ruby-forum.com/t/difference-between-blks-and-blks2/167613/1 "2009-05-10T10:12:53Z")

</div>

Hi all,

So I am not too familiar with the history of how GNU-Radio has evolved  
over  
the past few years and I am wondering what are the fundamental  
differences  
between blks and blks2(old revisions vs new revisions)?

A question I am asking is why did the BBN people who wrote the 802.11b  
code  
make their own DPSK mod/demod and did not use the function blocks  
provided  
by gnuradio? Were those blocks simply not available at the time?

Last question. Has the functionality of teh the DB/QPSK modulations in  
the  
blks2 library been tested? I’m in the process of cleaning up the 802.11b  
code, and if I can relay on gnu-radio libraries, rather than custom  
C++/python code, that would be better.

Thanks,  
Colby

---

<div class="post-metadata">

**Author:** ![Colby\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/439d5e/32.png) [@Colby\_B](https://www.ruby-forum.com/u/Colby_B)\
**Post date:** [May 10, 2009, 6:39pm UTC](https://www.ruby-forum.com/t/difference-between-blks-and-blks2/167613/2 "2009-05-10T18:39:27Z")

</div>

On Sun, May 10, 2009 at 1:11 AM, Colby B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> So I am not too familiar with the history of how GNU-Radio has evolved over  
> the past few years and I am wondering what are the fundamental differences  
> between blks and blks2(old revisions vs new revisions)?

The blks2 modules use the new style hierarchical blocks  
(gr.hier\_block2). The old style (gr.hier\_block) was deprecated (but  
still available) in GNU Radio 3.1, and now on the development trunk  
and in the 3.2 release, have been removed.

> A question I am asking is why did the BBN people who wrote the 802.11b code  
> make their own DPSK mod/demod and did not use the function blocks provided  
> by gnuradio? Were those blocks simply not available at the time?

Possibly, the timeline sounds right.

> Last question. Has the functionality of teh the DB/QPSK modulations in the  
> blks2 library been tested? I’m in the process of cleaning up the 802.11b  
> code, and if I can relay on gnu-radio libraries, rather than custom  
> C++/python code, that would be better.

Yes, they have been tested and used in a variety of real-world,  
commercial applications of GNU Radio. There were a couple serious  
bugs in them that have been fixed as part of 3.2.

Johnathan

---

<div class="post-metadata">

**Author:** ![Colby\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/439d5e/32.png) [@Colby\_B](https://www.ruby-forum.com/u/Colby_B)\
**Post date:** [May 13, 2009, 12:53pm UTC](https://www.ruby-forum.com/t/difference-between-blks-and-blks2/167613/3 "2009-05-13T12:53:38Z")

</div>

I agree with you doug. After reading through the BBN code, that seems  
like  
why they did that. DBPSK and DQPSK appear to be backward compatible  
decoding wise.

I think the reason why you cannot transmit/decode DQPSK packets is that  
the  
entire packet is encoded as DQPSK and not part DBPSK and part DQPSK.  
The  
decoding algorithm then fails.

–Thanks
