Archive | February, 2013

USRP N210 and HDSDR Setup

10 Feb

Notes on setup of HDSDR software with the USRP N210 via the ExtIO interface

Instructions here
http://www.ettus.com/content/files/kb/application_note_usrp_and_hdsdr_spectrum_monitoring.pdf

Configuration as of 7/23/2013
Window 7 64-bit
Ettus USRP N210 Rev 4
UHD 003.005.003 for Windows
UHD 003.005.000 for USRP
HDSDR 2.63
ExtIO USRP 1.5.1

Install UHD driver for Windows
Install uhd_003.005.003-release_Win64.exe from:
http://code.ettus.com/redmine/ettus/projects/uhd/wiki/UHD_Windows
This will place utility file in C:\Program Files (x86)\UHD\share\uhd\utils\

Install ExtIO compatible UHD for USRP
As of 7/23/2013 must use UHD 003.005.000 from:
http://files.ettus.com/binaries/master_images

Unzip and copy usrp_n210_fw.bin and usrp_n210_r4_fpga.bin to C:\Program Files (x86)\UHD\share\uhd\utils\

Open up a shell and cd to C:\Program Files (x86)\UHD\share\uhd\utils\

Run the following:
usrp_n2xx_simple_net_burner --addr 192.168.1.13 --fw usrp_n210_fw.bin --fpga usrp_n210_r4_fpga.bin

Install HDSDR
http://www.hdsdr.de/download/HDSDR_install.exe

Install ExtIO
http://spench.net/drupal/files/ExtIO_USRP+FCD+BorIP_Setup.zip

Update USRP firmware before returning to GNU Radio
Running usrp_n2xx_simple_net_burner.exe will download and update USRP with the the latest firmware

Windows shortcut
Install USRP ExtIO Firmware
"C:\Program Files (x86)\UHD\share\uhd\utils\usrp_n2xx_simple_net_burner.exe" --addr "192.168.1.13" --fw "usrp_n210_fw.bin" --fpga "usrp_n210_r4_fpga.bin"

Windows shortcut
Restore USRP Latest Firmware
"C:\Program Files (x86)\UHD\share\uhd\utils\usrp_n2xx_simple_net_burner.exe" --addr "192.168.1.13"

Advertisements

Setting up the Ettus USRP N210

8 Feb

Changing the IP Address
The USRP N210 comes with a default IP address of 192.168.10.2 which may be changed (e.g. 192.168.1.13):
sudo /usr/local/lib64/uhd/utils/usrp2_recovery.py --ifc=em1 --new-ip=192.168.1.13

Increase Socket BUffers
sudo vi /etc/sysctl.conf

# Increase buffers for USRP
net.core.rmem_max=50000000
net.core.wmem_max=50000000

Realtime Priority
sudo vi /etc/security/limits.conf

# Add for USRP realtime priority
myusername - rtprio 99

Will require re-login

Updating N210 Firmware and FPGA
sudo /usr/local/lib64/uhd/utils/uhd_images_downloader.py

cd /usr/local/lib64/uhd/utils

./usrp_n2xx_net_burner.py --addr=192.168.1.13 --fw=/usr/local/share/uhd/images/usrp_n210_fw.bin

./usrp_n2xx_net_burner.py --addr=192.168.1.13 --fpga=/usr/local/share/uhd/images/usrp_n210_r4_fpga.bin

Cycle power on the USRP

Probe
uhd_usrp_probe --args "addr=192.168.1.13"

Benchmark
cd /usr/local/lib64/uhd/examples

./benchmark_rate --rx_rate 25E6 --tx_rate 25E6 --args "addr=192.168.1.13"

GNU Radio Build Notes

8 Feb

Assumes Fedora 25 x86_64
Instructions at http://gnuradio.org/redmine/projects/gnuradio/wiki/BuildGuide

Dependencies
Dependencies listed at http://gnuradio.org/doc/doxygen/build_guide.html
Note Qt5 needed for gqrx

sudo dnf install
git
cmake
boost
boost-devel
cppunit
cppunit-devel
fftw
fftw-devel
python
swig
numpy
doxygen
python-cheetah
pygtk2
gsl
gsl-devel
qt
qt-devel
qt5
qt5-devel
qwt
qwt-devel
qwt-qt5
qwt-qt5-devel
PyQt5
PyQt5-devel
PyQwt
PyQwt-devel
wxPython
wxPython-devel
python-lxml
alsa-lib
alsa-lib-devel
jack-audio-connection-kit
jack-audio-connection-kit-devel
ncurses-devel
portaudio
portaudio-devel
python-docutils
python-sphinx
python-mako
libusbx
libusbx-devel
SDL
SDL-devel
sdcc
texlive-dvips
xmlto
graphviz
orc
orc-compiler
orc-devel
scipy
PyOpenGL
zeromq
zeromq-devel
cppzmq-devel
python-zmq
thrift-devel

Add to .profile
export PATH=/usr/libexec/sdcc:$PATH
export PYTHONPATH=/usr/local/lib64/python2.7/site-packages
export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig

Build Ettus UHD
cd /usr/local/src/
git clone https://github.com/EttusResearch/uhd.git
cd uhd/host/
mkdir build
cd build
cmake ../
make
make test
sudo make install

Files will be installed in:
/usr/local/bin
/usr/local/include/uhd
/usr/local/lib64

Build GNU Radio
cd /usr/local/src
git clone --recursive https://github.com/gnuradio/gnuradio.git
cd gnuradio
mkdir build
cd build
cmake ..
make
make test
sudo make install

Update and rebuild
cd build
sudo make uninstall
cd ..
rm -rf build
git pull --recurse-submodules=on
git submodule update
mkdir build
cd build
cmake ../
make
make test
sudo make install

Fedora 20 x86_64 Linux Install Notes

7 Feb

Hardware Configuration
2 TB HDD on Intel 6G SATA port 0, /dev/sda, (Windows 7)
96 GB SSD on Intel 6G SATA port 1, /dev/sdb, (Intel RST cache for Windows 7)
2 TB HDD on Intel 3G SATA port 2, /dev/sdc, (Shared Windows / Linux)
DVD on Intel 3G SATA port 4
240 GB SSD on Marvel 6G SATA port 0, /dev/sdd, (Linux)
Asus P8Z68 Deluxe/Gen3 Bios
RAID for Intel SATA controller
Marvel controller enabled
Boot order (DVD port 4, USB, HDD port 0)
Intel RST Option ROM
RAID0(Cache) for SSD port 1
EasyBCD installed on Windows boot partition.
Boot selection for Linux (/dev/sdd1) or Windows (/dev/sda1)

Fedora Boot CD
Tab at install to modify boot commands.
Remove quiet.

Network Config
IPV4: manual
Address: 192.168.1.2
Netmask: 255.255.255.0
Gateway: 192.168.1.1
Nameserver: 64.126.4.190
IPV6: ignore
Hostname: tesla.lounix.net

Date/Time
Location: Chicago

Software Selection
XFCE Desktop (development tools, extra plugins)

Destination
Choose 2 TB HDD (the last one in the list)
Automatic partitioning

After Reboot
Create user and add to admin group
Synchronize time over network

Change to multi-user.target (e.g. runlevel 3)
sudo rm /etc/systemd/system/default.target
sudo ln -s /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

Change GRUB
sudo vi /etc/default/grub and remove rhgb quiet
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

If for some reason Intel RST was enabled during install, the above will re-scan for bootloaders

Reboot
reboot
login
startxfce4

Update the System
sudo dnf update

Enable root Account
sudo passwd

Install Custom Shell Scripts
cp .bash_profile ~
cp .bashrc ~
cp .profile ~
cp .vimrc ~
sudo cp .bashrc /root

Directory Permissions
sudo chmod 777 /usr/local/src

Add Library Path to Linker
sudo vi /etc/ld.so.conf.d/usrlocal.conf
add /usr/local/lib
add /usr/local/lib64
sudo ldconfig

Firewall
sudo /usr/bin/firewall-config
Change default zone to internal
Trust services as required

Printer
sudo system-config-printer
Search for network printer at 192.168.1.4
Use DirectJet port
Choose driver for Brother HL-5170DN
Use BR-Script3

Sound
sudo usermod -a -G audio username
(must reboot to take effect)

nm-applet
The nm-applet gives insufficent permission errors when changing WiFi due to startxfce4 instead of using a display manager. This will fix it:

sudo vi /etc/polkit-1/rules.d/50-org.freedesktop.NetworkManager.rules
polkit.addRule(function(action, subject) {
if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 && subject.isInGroup("myusername")) {
return polkit.Result.YES;
}
});

(must reboot to take effect)