USRP1 control GPIOs on SBX boards

Hi everyone,

I have been trying to make a gnuradio out-of-the-tree block that is able
to
control the four GPIOs, currently attached to LED’s, of the SBX
daughter-boards working with an USRP motherboard.

I wonder if anyone can help me on this, making a functional draft code
of
such a block:

1 integer input - that will define the state of the GPIOs
1 parameter - to define the motherboard serial number

I believe that for people with knowledge of C++, and Python this is a
very
simple module, unfortunately that is not my area since I’m a hardware
engineer and I only work with C.

I tried some approaches, using the gr_modtool to create the module, but
it
always fails with GRC running errors like:


Traceback (most recent call last):
File
“/home/to-nelsonpina/Desktop/locus_gnuradio/GRC_files/top_block.py”,
line 16, in
import gpio
File “/usr/local/lib/python2.7/dist-packages/gpio/init.py”, line
45,
in
from gpio_swig import *
File “/usr/local/lib/python2.7/dist-packages/gpio/gpio_swig.py”, line
26,
in
_gpio_swig = swig_import_helper()
File “/usr/local/lib/python2.7/dist-packages/gpio/gpio_swig.py”, line
22,
in swig_import_helper
_mod = imp.load_module(‘_gpio_swig’, fp, pathname, description)
ImportError: /usr/local/lib/libgnuradio-gpio.so: undefined symbol:
_ZN3uhd4usrp10multi_usrp4makeERKNS_13device_addr_tE


I will appreciate all the help I can get from you guys.

Best regards,
__
Nelson Pina
Product Developer
Hardware

[email protected]
T +351 220 301 596 (PT)
T +44 114 213 2712 (UK)

*www.tomorrow-options.com
*Porto // Portugal
Sheffield // United Kingdom

http://www.tomorrow-options.com/
http://www.linkedin.com/company/tomorrow-options
http://www.facebook.com/pages/Porto-Portugal/Tomorrow-Options/214846405104
http://twitter.com/TomorrowOptions
http://www.youtube.com/user/TomorrowOptionsTube

On 04/23/2013 02:06 PM, Nelson Pina wrote:

1 parameter - to define the motherboard serial number
Traceback (most recent call last):
File “/usr/local/lib/python2.7/dist-packages/gpio/gpio_swig.py”,
line 22, in swig_import_helper
_mod = imp.load_module(’_gpio_swig’, fp, pathname, description)
ImportError: /usr/local/lib/libgnuradio-gpio.so: undefined symbol:
_ZN3uhd4usrp10multi_usrp4makeERKNS_13device_addr_tE


This is most likely a failure to define the SWIG header file
appropriately, or possibly you’ve declared a class that SWIG found but
you haven’t defined it. Finally because I just found this out the hard
way, if you’re using the new code structure with block.h, block_impl.h,
and block_impl.cc, be aware that block.h needs to declare an abstract
class and its method declarations need to be pure virtual. block_impl.h
declares the concrete class and block_impl.cc provides concrete method
definitions.

If you want to unmangle that symbol, type this:

c++filt _ZN3uhd4usrp10multi_usrp4makeERKNS_13device_addr_tE

_mod = imp.load_module('_gpio_swig', fp, pathname, description)

ImportError: /usr/local/lib/libgnuradio-gpio.so: undefined symbol:
_ZN3uhd4usrp10multi_usrp4makeERKNS_13device_addr_tE

I think this would indicate that this swig module was not linked against
UHD. There is a GR_SWIG_LIBRARIES variable that needs to have
${UHD_LIBRARIES} in it.

-josh