Getting started with crc-dabmod

105 views
Skip to first unread message

linds....@gmail.com

unread,
Apr 21, 2013, 1:17:16 PM4/21/13
to crc-mm...@googlegroups.com
Hi,
I have been trying to set up my USRP1 with WBXrev3 to transmit a DAB multiplex from an ETI file.  I have had some issues! 
One of the main basis level problems is that I haven't done any coding for 10 years and so I'm a bit rusty on the basics!

I am running Ubuntu 11.04... I started on 12.04 LTS but could get nothing working, so I used Ulrik Brinck's post to take me through setup, only to discover that the v3 board needs UHD. 
Anyway I have some success but still no DAB mux.  I have implemented an FM transmitter and receiver using
grc and they work (no complaints about my 1kHz tone instead of KISS100, but they have few listeners in my neighbourhood!)

One of the things that I get is a lot of Us printed out.  I think from a post of Pascal's that this means underrun, but I can't find any
doc to confirm this.  However, if I insert a bfr or mbuffer the Us disappear, so there maybe something in that.

I also wonder if my machine has enough grunt after reading the posts of Rash/Pascal on the B100/crc-dabmod thread - I am using an Intel Centrino Duo
which runs at 1.2GHz on each core.

When I use Mathias's coinwap_uhd_full3.py I also get a threads error:

lindsay@SDR:~$ coinwap_uhd_full3.py
linux; GNU C++ version 4.5.2; Boost_104200; UHD_003.005.002-56-g34052015

GThread-ERROR **: file /build/buildd/glib2.0-2.28.6/./gthread/gthread-posix.c: line 348 (g_thread_create_posix_impl): error 'Invalid argument' during 'pthread_attr_setschedparam (&attr, &sched)'
aborting...
Aborted

Which I have no idea on!

Any thoughts or suggestions (or plain sympathy) appreciated!
Lindsay

Matthias P. Braendli

unread,
Apr 21, 2013, 2:51:02 PM4/21/13
to crc-mm...@googlegroups.com
Hi Linds,


On 21. 04. 13 19:17, linds....@gmail.com wrote:
> I also wonder if my machine has enough grunt after reading the posts of
> Rash/Pascal on the B100/crc-dabmod thread - I am using an Intel Centrino Duo
> which runs at 1.2GHz on each core.

It's difficult to say without trying... There is one important
difference between the setup with a USRP1 and a B100: since the B100 is
more flexible with respect to clocking, you can configure it in a way
that allows you to avoid re-sampling the RF signal on the host. With the
USRP1 this is (as far as I recall) not possible. And resampling is
costly in resources.


> One of the things that I get is a lot of Us printed out. I think from a post of Pascal's that this means underrun, but I can't find any
> doc to confirm this. However, if I insert a bfr or mbuffer the Us disappear, so there maybe something in that.

Yes, that's correct. The U gets printed by UHD, not by dabmod, when the
host cannot give enough data to the USRP, and the data stream breaks. An
additional buffer between dabmod and the gnuradio script can be helpful
because dabmod can be a bit too bursty sometimes.

If you keep getting underruns, verify that the sampling rates are correct.


> When I use Mathias's coinwap_uhd_full3.py I also get a threads error:
>
> lindsay@SDR:~$ coinwap_uhd_full3.py
> linux; GNU C++ version 4.5.2; Boost_104200; UHD_003.005.002-56-g34052015
>
> GThread-ERROR **: file
> /build/buildd/glib2.0-2.28.6/./gthread/gthread-posix.c: line 348
> (g_thread_create_posix_impl): error 'Invalid argument' during
> 'pthread_attr_setschedparam (&attr, &sched)'
> aborting...
> Aborted


Ooh, that looks bad... It might depend on the way you installed it. I
don't know if I can really help, I've only ever installed all these
tools from source in the git repositories, and on other distributions
than ubuntu.

Good luck !

mpb

linds....@gmail.com

unread,
Apr 22, 2013, 3:40:09 PM4/22/13
to crc-mm...@googlegroups.com
So things went well today!  I was actually in the lab and so put a spectrum analyser on the URSP output... it was OFDM at the right centre frequency but not wide enough!  I had used the "simple_sender" instead of the lovely coinwap - the GUI was throwing the Gthread error.  But I had failed to notice that simple_sender samples at 2M by default.  Changing that to 3.2M instantly gave proper DAB output.

The PC is underpowered though - over 80% cpu according to the dabmod stats, and of that 57% is resampling.  It works as long as I don't try to surf at the same time...
So two things sprang to mind - one was trying to put the resampler on the second cpu core... probably beyond me!  The other is to build it all over again on a more powerful machine and under Unbuntu 12 - hopefully that will be much quicker now I've done it once and hopefully learnt a few tricks.

The Gthread thing is annoying, though, I hope that won't recur on another build!

Matthias P. Braendli

unread,
Apr 23, 2013, 1:58:31 PM4/23/13
to crc-mm...@googlegroups.com, linds....@gmail.com
Hi Linds,

I'm not sure if my answer to your first email went through. Did you
receive it ?

When you run something like dabmod | coinwap, you can already take
advantage of the two cores, since there is more than one process
involved in your pipeline. However, you are right about the fact that
the original dabmod is single-threaded, so it can only use one core.

regards,

mpb
> --
> You received this message because you are subscribed to the Google
> Groups "mmbtools" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to crc-mmbtools...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

Youri Westerman

unread,
Apr 24, 2013, 11:47:53 AM4/24/13
to crc-mm...@googlegroups.com
Hi Lindsay,

Seems to me you are trying to build glib yourself. That should not be necessary. It might be a good idea to install the glib package from the ubuntu apt repo. ("sudo apt-get install glib" maybe you'll need to specify a version or something making the package name glib2).
Or did you get that glib build by using the build-gnuradio script?

Kind regards,

Youri


Reply all
Reply to author
Forward
0 new messages