Sara Chérif | 19 Apr 00:26 2014
Mike Willis | 18 Apr 22:48 2014
Picon

Build problems with pybombs

Yet more difficulties. Having found a work around for the Usb issue with the B200, I was then unable to get any of the audio examples to run again due to /dev/dsp not being present and gnuradio insisting on using oss. I Decided I must not have built it correctly so I tried re-building yet again with pybombs. This is slow as I have only access to slow broadband here. Now I have total build failure in uhd. Not sure how to proceed as I don't know what I am doing wrong here. It worked fine last time.

Mike

[  4%] Built target man_page_gzips
[  4%] [  4%] [  4%] [  5%] Building CXX object lib/CMakeFiles/uhd.dir/usrp/cores/radio_ctrl_core_3000.cpp.o
Building CXX object lib/CMakeFiles/uhd.dir/usrp/dboard/db_sbx_version3.cpp.o
Building CXX object lib/CMakeFiles/uhd.dir/usrp/dboard/db_sbx_version4.cpp.o
Building CXX object lib/CMakeFiles/uhd.dir/usrp/dboard/db_cbx.cpp.o
In file included from /home/mike/pybombs/src/uhd/host/lib/usrp/cores/radio_ctrl_core_3000.hpp:21:0,
                 from /home/mike/pybombs/src/uhd/host/lib/usrp/cores/radio_ctrl_core_3000.cpp:18:
/home/mike/pybombs/src/uhd/host/include/uhd/utils/msg_task.hpp: In static member function ‘static std::vector<unsigned char> uhd::msg_task::buff_to_vector(boost::uint8_t*, size_t)’:
/home/mike/pybombs/src/uhd/host/include/uhd/utils/msg_task.hpp:51:36: error: ‘uint8_t’ was not declared in this scope
                 return std::vector<uint8_t>();
                                    ^
/home/mike/pybombs/src/uhd/host/include/uhd/utils/msg_task.hpp:51:36: note: suggested alternative:
In file included from /usr/local/include/boost/integer_fwd.hpp:17:0,
                 from /usr/local/include/boost/integer.hpp:18,
                 from /usr/local/include/boost/function/function_base.hpp:21,
                 from /usr/local/include/boost/function/detail/prologue.hpp:17,
                 from /usr/local/include/boost/function.hpp:24,
                 from /home/mike/pybombs/src/uhd/host/include/uhd/utils/msg_task.hpp:24,
                 from /home/mike/pybombs/src/uhd/host/lib/usrp/cores/radio_ctrl_core_3000.hpp:21,
                 from /home/mike/pybombs/src/uhd/host/lib/usrp/cores/radio_ctrl_core_3000.cpp:18:
/usr/local/include/boost/cstdint.hpp:211:30: note:   ‘boost::uint8_t’
      typedef unsigned char   uint8_t;
                              ^
In file included from /home/mike/pybombs/src/uhd/host/lib/usrp/cores/radio_ctrl_core_3000.hpp:21:0,
                 from /home/mike/pybombs/src/uhd/host/lib/usrp/cores/radio_ctrl_core_3000.cpp:18:
/home/mike/pybombs/src/uhd/host/include/uhd/utils/msg_task.hpp:51:43: error: template argument 1 is invalid
                 return std::vector<uint8_t>();
                                           ^
/home/mike/pybombs/src/uhd/host/include/uhd/utils/msg_task.hpp:51:43: error: template argument 2 is invalid
make[2]: *** [lib/CMakeFiles/uhd.dir/usrp/cores/radio_ctrl_core_3000.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [lib/CMakeFiles/uhd.dir/all] Error 2
make: *** [all] Error 2
ERROR:root:PyBOMBS Make step failed for package (uhd) please see bash output above for a reason (hint: look for the word Error)
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio <at> gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Mike | 18 Apr 22:44 2014
Picon

Build issues

Yet more difficulties. Having found a work around for the Usb issue with 
the B200, I was then unable to get any of the audio examples to run 
again due to /dev/dsp not being present and gnuradio insisting on using 
oss. I Decided I must not have built it correctly so I tried re-building 
yet again with pybombs. This is slow as I have only access to slow 
broadband here. Now I have total build failure in uhd. Not sure how to 
proceed as I don't know what I am doing wrong here. It worked fine last 
time.

Mike

[ 4%] Built target man_page_gzips
[ 4%] [ 4%] [ 4%] [ 5%] Building CXX object 
lib/CMakeFiles/uhd.dir/usrp/cores/radio_ctrl_core_3000.cpp.o
Building CXX object lib/CMakeFiles/uhd.dir/usrp/dboard/db_sbx_version3.cpp.o
Building CXX object lib/CMakeFiles/uhd.dir/usrp/dboard/db_sbx_version4.cpp.o
Building CXX object lib/CMakeFiles/uhd.dir/usrp/dboard/db_cbx.cpp.o
In file included from 
/home/mike/pybombs/src/uhd/host/lib/usrp/cores/radio_ctrl_core_3000.hpp:21:0,
from 
/home/mike/pybombs/src/uhd/host/lib/usrp/cores/radio_ctrl_core_3000.cpp:18:
/home/mike/pybombs/src/uhd/host/include/uhd/utils/msg_task.hpp: In 
static member function ‘static std::vector<unsigned char> 
uhd::msg_task::buff_to_vector(boost::uint8_t*, size_t)’:
/home/mike/pybombs/src/uhd/host/include/uhd/utils/msg_task.hpp:51:36: 
error: ‘uint8_t’ was not declared in this scope
return std::vector<uint8_t>();
^
/home/mike/pybombs/src/uhd/host/include/uhd/utils/msg_task.hpp:51:36: 
note: suggested alternative:
In file included from /usr/local/include/boost/integer_fwd.hpp:17:0,
from /usr/local/include/boost/integer.hpp:18,
from /usr/local/include/boost/function/function_base.hpp:21,
from /usr/local/include/boost/function/detail/prologue.hpp:17,
from /usr/local/include/boost/function.hpp:24,
from /home/mike/pybombs/src/uhd/host/include/uhd/utils/msg_task.hpp:24,
from 
/home/mike/pybombs/src/uhd/host/lib/usrp/cores/radio_ctrl_core_3000.hpp:21,
from 
/home/mike/pybombs/src/uhd/host/lib/usrp/cores/radio_ctrl_core_3000.cpp:18:
/usr/local/include/boost/cstdint.hpp:211:30: note: ‘boost::uint8_t’
typedef unsigned char uint8_t;
^
In file included from 
/home/mike/pybombs/src/uhd/host/lib/usrp/cores/radio_ctrl_core_3000.hpp:21:0,
from 
/home/mike/pybombs/src/uhd/host/lib/usrp/cores/radio_ctrl_core_3000.cpp:18:
/home/mike/pybombs/src/uhd/host/include/uhd/utils/msg_task.hpp:51:43: 
error: template argument 1 is invalid
return std::vector<uint8_t>();
^
/home/mike/pybombs/src/uhd/host/include/uhd/utils/msg_task.hpp:51:43: 
error: template argument 2 is invalid
make[2]: *** 
[lib/CMakeFiles/uhd.dir/usrp/cores/radio_ctrl_core_3000.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [lib/CMakeFiles/uhd.dir/all] Error 2
make: *** [all] Error 2
ERROR:root:PyBOMBS Make step failed for package (uhd) please see bash 
output above for a reason (hint: look for the word Error)
Hoàng Ngô Khắc | 18 Apr 10:59 2014
Picon

How to implement TDM on USRP1 and GNU Radio

Hello everyone,

I'm working on implementation of two-way relaying model using GNU Radio (with GNU Radio Companion as interface) and 3 USRP1s (each has one RFX2400 daughterboard and one VERT2450 antena). The relay node (R) decodes messages from two end nodes (A and B) separately and performs a bitwise XOR on these messages before transmitting the XORed data to end nodes. This model runs well with short message.

However, at the moment, nodes A and node B are running on their own and user can just start/stop transmitting/receiving by hand. It's needed to have timing synchronization. This can be done by adding a beacon in node R. This beacon is a pulse, transmitted each time before node R is able to receive signal. Node A and node B transmit their message once the end of the beacon is received. This process requires system to perform TDM. The flow chart for each node can be found here: https://www.dropbox.com/s/456s3lucpfa5wnc/AB%20protocol.png

My problem is that I don't know how to design a TDM to manage the transmit/receive phase. In particular, in end nodes, we need to notice the transmitter when the beacon is received and tell it to transmit; in relay node, we need to tell it when to transmit the beacon, when to receive (not simultaneously). 

Does anyone have experience with TDM on USRP and GNU Radio? Please give me some clue for that. Should I write some new blocks or modify the python script generated by GNU Radio Companion?

Any help would be greatly appreciated.

Hoang from Vietnam.

--
Ngo Khac Hoang
Faculty of Electronics and Telecommunications -
University of Engineering and Technology (UET) - Vietnam National University, Hanoi (VNU)
Vice-president of Student Association of UET
Alternative email:  hoangnk_55 <at> vnu.edu.vn
Mobilephone:  +84.163.682.7874
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio <at> gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Philip Balister | 17 Apr 21:41 2014

April Developer Call Video online

Enjoy,

http://youtu.be/fbcYt0UGX9k

Philip
Philip Balister | 17 Apr 17:10 2014

Developer Call today at 1700 UTC

I'll be starting the hangout promptly at 1700 UTC. (That's 1 PM EDT)

I am 99.9% certain I will start the hangout by inviting one person, then
posting a link in the #gnuradio irc channel. This worked an hour ago, so
I expect things to go smoothly today.

Philip
iftah giladi | 17 Apr 16:12 2014
Picon

help on exception on using the uhd.dll i think...

Hey,

 

In order to start my on application code using the uhd code, I tried creating a new blank project ,and did all

The necessary includes, and library include in the linker an compiler and so on..

As a starter I copied the uhd_find_devices.cpp to my project lib and build it.

 

It's run o.k , and then I tried to use the exe and it has this exception:

 

First-chance exception at 0x0f62763b in uhd_find_devices.exe: 0xC0000005: Access violation reading location 0x02796000

 

What can I do next??

 

Thanks,

iftah

 

 

 

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio <at> gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Jonathan Fox | 17 Apr 15:50 2014

How to Access Received Data for Use In Changing RX Parameters

Hey List,

I have two scripts I am running, the ofdm_v1_tx_freq_test.py and the RX version of it (see flow graph images and attached transmitter Python script). I am transmitting a sinusoid using OFDM modulation over the USRP, it works perfectly.

I have made an alteration to the transmitter script by adding a frequency change function that goes off every 2.5 seconds. The frequency will inclemently go up 1 MHz 20 times before going back to the default. That code works; what I want to do now is to cease the sinusoid broadcast at every 2.5 seconds so I can transmit the new frequency to the receiver right before I change it. I think I can figure that part out, I may just use another vector source with the new frequency and have transmit five times. Probably use another flow graph to implement it. If there is a better way to do, I am open for ideas.

Now for my question: after receiving this new frequency on the RX side, how do I get my script to read this data and use it to change frequencies? I have a feeling that this may be simple to do but I am at a loss in figuring it out.

Please note, this is more of a proof of concept work, so there is a reason why I do not have identical frequency change functions in both TX and RX, the goal down the road is to get some DSA capabilities.

Thanks,

Jon
#!/usr/bin/env python
##################################################
# Gnuradio Python Flow Graph
# Title: OFDM Transmitter
# Generated: Mon Mar 31 09:59:15 2014
##################################################

from gnuradio import blocks
from gnuradio import digital
from gnuradio import eng_notation
from gnuradio import gr
from gnuradio import uhd
from gnuradio.digital.utils import tagged_streams
from gnuradio.eng_option import eng_option
from gnuradio.gr import firdes
from grc_gnuradio import wxgui as grc_wxgui
from optparse import OptionParser
import ConfigParser
import numpy
import time
import wx

class ofdm_v1_tx_freq_test(grc_wxgui.top_block_gui):

        def __init__(self):
                grc_wxgui.top_block_gui.__init__(self, title="OFDM Transmitter")

                ##################################################
                # Variables
                ##################################################
                self.tx_signal = tx_signal = [numpy.sin(2 * numpy.pi * 1.0/8 * x) for x in range(8*2)]
                self._tx_ip_config = ConfigParser.ConfigParser()
                self._tx_ip_config.read("default")
                try: tx_ip = self._tx_ip_config.get("main", "key")
                except: tx_ip = "addr=10.2.8.104"
                self.tx_ip = tx_ip
                self.samp_rate = samp_rate = 100e3
                self.len_tag_key = len_tag_key = "packet_len"
                self.freq = freq = 500e6
                self.fft_len = fft_len = 64

                ##################################################
                # Blocks
                ##################################################
                self.uhd_usrp_sink_0 = uhd.usrp_sink(
                        device_addr="addr=10.2.8.104",
                        stream_args=uhd.stream_args(
                                cpu_format="fc32",
                                channels=range(1),
                        ),
                )
                self.uhd_usrp_sink_0.set_samp_rate(samp_rate)
                self.uhd_usrp_sink_0.set_center_freq(freq, 0)
                self.uhd_usrp_sink_0.set_gain(20, 0)
                self.digital_ofdm_tx_0 = digital.ofdm_tx(
                          fft_len=fft_len, cp_len=fft_len/4,
                          packet_length_tag_key=len_tag_key,
                          bps_header=1,
                          bps_payload=1,
                          rolloff=0,
                          debug_log=False
                         )
                self.blocks_vector_to_stream_0 = blocks.vector_to_stream(gr.sizeof_char*1, 4)
                self.blocks_vector_source_x_0 = blocks.vector_source_f(tx_signal, True, 1,
tagged_streams.make_lengthtags((8*2*gr.sizeof_float,), (0,), tagname=len_tag_key))
                self.blocks_multiply_const_vxx_0 = blocks.multiply_const_vcc((0.05, ))

                ##################################################
                # Connections
                ##################################################
                self.connect((self.blocks_vector_source_x_0, 0), (self.blocks_vector_to_stream_0, 0))
                self.connect((self.blocks_vector_to_stream_0, 0), (self.digital_ofdm_tx_0, 0))
                self.connect((self.digital_ofdm_tx_0, 0), (self.blocks_multiply_const_vxx_0, 0))
                self.connect((self.blocks_multiply_const_vxx_0, 0), (self.uhd_usrp_sink_0, 0))

        def get_tx_signal(self):
                return self.tx_signal

        def set_tx_signal(self, tx_signal):
                self.tx_signal = tx_signal

        def get_tx_ip(self):
                return self.tx_ip

        def set_tx_ip(self, tx_ip):
                self.tx_ip = tx_ip

        def get_samp_rate(self):
                return self.samp_rate

        def set_samp_rate(self, samp_rate):
                self.samp_rate = samp_rate
                self.uhd_usrp_sink_0.set_samp_rate(self.samp_rate)

        def get_len_tag_key(self):
                return self.len_tag_key

        def set_len_tag_key(self, len_tag_key):
                self.len_tag_key = len_tag_key

        def get_freq(self):
                return self.freq

        def set_freq(self, freq):
                self.freq = freq
                self.uhd_usrp_sink_0.set_center_freq(self.freq, 0)

        def get_fft_len(self):
                return self.fft_len

        def set_fft_len(self, fft_len):
                self.fft_len = fft_len

        def incr_new_freq(self):
                self.freq = self.freq + 1e6
                # return self.freq
                self.uhd_usrp_sink_0.set_center_freq(self.freq, 0)

        def decr_new_freq(self):
                self.freq = 500e6
                return self.freq

def main(tb):
        i = 0
        while 1:
                print "Current Frequency: %0.1f" % (tb.freq)
                time.sleep(2.5)
                if i == 20: 
                        tb.decr_new_freq()
                        i = 0
                else:
                        tb.incr_new_freq()
                        i += 1

if __name__ == '__main__':
        parser = OptionParser(option_class=eng_option, usage="%prog: [options]")
        (options, args) = parser.parse_args()
        tb = ofdm_v1_tx_freq_test()
        tb.Run(True)
        main(tb)

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio <at> gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Tigor Christian | 17 Apr 15:50 2014
Picon

Digital voice encryption block

Hi all,

I want to simulate a voice transmission system in GNURadio Companion (GRC) before I build a real one. My system configuration is as follows.

TX:
mic --> encoder --> encryption --> modulator --> RF

Rx:
speaker <-- decoder <-- decryption <-- demodulator <-- RF

I have succeed in simulating the above configuration in Ubuntu 12.04 LTS machine but without encryption/decryption blocks.

I want to encrypt my digital voice using AES (128/192/256, either one) algorithm, but so far, I couldn't find suitable blocks for my purpose.

I know that GNURadio will synthesize a python code when you compile your blocks configuration in GRC. On the other hand, every python dev installation in Ubuntu will also install PyCrypto lib in your machine, this library has a ready-to-use function of AES algorithm. Furthermore, I also know the concept of Out-of-Tree Module (OoTM) of GNURadio.

My questions a re:

1. My first thought is to get data stream of certain block and do encryption process with PyCrypto (not in the OoTM, but directly in synthesized python code) then put them back to the next block. Would it be possible and how to achieve this?

2. Do GNURadio has a ready-to-use GRC blocks or OoTM of digital encryption algorithm (not scrambler)? and how do I get it (a tutorial would be fine)?
So far, I can not found the block either in GRC or https://www.cgran.org

3. Last question may be off topic a bit. Is it common to use AES algorithm to encrypt voice data, or is there any common encryption method (preferably could be implemented in GRC)?

Thank you for your time and willingness to answer these questions

Regards
tc
 



_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio <at> gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
kkarranc | 16 Apr 22:27 2014
Picon

ctest -V segfault, coredump reveals nothing

Hi All,
I have a gnuradio block which I am testing through a C++ QA function.  I
call the handler function directly in C++ QA test function, and everything
runs.

My test function is structured as follows:
  - I create a pointer to the object I want to create by using the make
function, which returns a boost::shared_ptr to the object.  
  - I then do obj-->handler() to run all the tests and they pass fine (The
reason this is a handler and not a standard work() function is because this
block is based on gr-eventstream and it is a subclass of the es_trigger
block).  
  - At the end, I can see that the destructor to my object is being called
and that completes nicely.  However, after desctruction of my object, I get
a segfault from ctest (I am running the test through ctest -V to see what is
going on instead of make test).

I suspect what is going on is something w/ the boost::shared_ptr but I don't
know what exactly.  

I created a core dump through the usual methods and I can't get it to output
anything useful to help me debug the problem.  Here is the output of "i
stack"

Core was generated by `test-wifi_detector'.
Program terminated with signal 11, Segmentation fault.
#0  0x0000000000000031 in ?? ()
(gdb) i stack
#0  0x0000000000000031 in ?? ()
#1  0x00007f6a7b3ae11e in ?? ()
#2  0x00007fff8cea6d10 in ?? ()
#3  0x0000000002261ab0 in ?? ()
#4  0x00007fff8cea6cf0 in ?? ()
#5  0x00007f6a7b3b178e in ?? ()
#6  0x00007fff8cea7540 in ?? ()
#7  0x00000000022612b0 in ?? ()
#8  0x00007fff8cea6d10 in ?? ()
#9  0x00007f6a7b3a1072 in ?? ()
#10 0x0000000100000000 in ?? ()
#11 0x00000000022612b0 in ?? ()
#12 0x00007fff8cea6d30 in ?? ()
#13 0x00007f6a7b3a1101 in ?? ()
#14 0x00007fff8cea6d40 in ?? ()
#15 0x000000000226ffa0 in ?? ()
#16 0x00007fff8cea6d50 in ?? ()
#17 0x00007f6a7b3aa090 in ?? ()
#18 0x00007fff8cea7120 in ?? ()
#19 0x000000000226ff98 in ?? ()
#20 0x00007fff8cea6d70 in ?? ()
#21 0x00007f6a7b3ace28 in ?? ()
#22 0x000000000224ba88 in ?? ()
#23 0x000000000226ff90 in ?? ()
#24 0x00007fff8cea6d90 in ?? ()
#25 0x00007f6a7b3afc9a in ?? ()
#26 0x000000000226ff90 in ?? ()
#27 0x00007fff8cea6dbf in ?? ()
#28 0x00007fff8cea6dd0 in ?? ()
#29 0x00007f6a7b3aea96 in ?? ()
#30 0x000000000226ff70 in ?? ()
#31 0x000000000224ba88 in ?? ()
#32 0x0000000000000000 in ?? ()

I tried rebuilding with the debug flags enabled during compile by doing
this:  cmake -DCMAKE_BUILD_TYPE=Debug ../  && make clean && make && make
install && ctest -V  but I still get question marks.  As for the executable
I am passing into gdb, I tried: "test-wifi_detector   /bin/bash  and  
ctest)

Does anybody have any ideas as to how I can proceed to figure out what is
going on?  I am pretty convinced that the block itself is not segfaulting
because the destructor gets called and that gets cleaned up.  Another reason
why I think the block is OK is because when I run it in a grc flowgraph, it
works fine ... its just in test mode that this happens.  Another reason why
I think this is something with boost::shared_ptr is, in my unittest function
in C++, if i call sptr.reset(), it segfaults right there (I've verified the
only way I know how, which is with print statements before and after).

Thanks,
Kiran

--
View this message in context: http://gnuradio.4.n7.nabble.com/ctest-V-segfault-coredump-reveals-nothing-tp47635.html
Sent from the GnuRadio mailing list archive at Nabble.com.
Azza | 16 Apr 16:31 2014
Picon

"Error rate" block with USRP

Hi All,

I am working with GNU Radio Companion 3.6 on CentOS. I want to calculate the
BER, so I have been using the "Error rate" block. 
First, I send a random QPSK-modulated signal through a simulated noisy
channel (AWGN). I calculate the BER using the function error:
BER=0.5*erfc(sqrt(snr)) and compare it to the output of the "Error rate"
block. I find almost same results.
Second, I send a random QPSK-modulated signal through one USRP and receive
it with another USRP. Here is the problem: contrary to expections, the
output of "Error rate" block is always 0.5, and it does not vary with the
variation of SNR.
You find attached the flowgraph of this second scenario. 
<http://gnuradio.4.n7.nabble.com/file/n47625/gnu-ber.png> 
I am wondering if this block should not be used with USRPs to calculate the
BER. If not, any suggestions?
Any help is appreciated. Thank you.

Regards,
Azza

--
View this message in context: http://gnuradio.4.n7.nabble.com/Error-rate-block-with-USRP-tp47625.html
Sent from the GnuRadio mailing list archive at Nabble.com.

Gmane