Skip to content

Getting Started: Windows

Jon Szymaniak edited this page Jul 20, 2014 · 57 revisions

Table of Contents

Using an Installer

Building from source

Tools and Dependencies

Installing git for Windows

  1. Download and install msysgit. If you plan to submit patches to the bladeRF project, please select the _Checkout as-is, commit Unix-style line endings_ option in the installer.
  2. Download and install tortoisegit.
For more information, see the mysysgit and tortoisegit wiki pages about their install procedures.

Installing Visual Studio Express 2013 for Windows Desktop

  1. Download Visual Studio Express 2013 for Windows Desktop from Microsoft.
  2. Follow the installation instructions, including any post-install updates.
Note: Visual Studio Express 2013 for Windows Desktop corresponds to Visual Studio 12 in CMake.

Installing libusb

  1. Download the latest Windows binary release of libusb, which also include development headers libusb-1.0.19.7z
    1. Note: you may need to download and install 7-zip from 7-zip.org to open this file.
  2. Extract the contents to a location of your choice. Make note of this location so that you can later provide it to CMake. The default configuration assumes that files will be in C:/Program Files (x86)/libusb-1.0.19 If you wish to change the directory, use the -DLIBUSB_PATH= option for CMake.
  3. Get the device driver installer (zadig): http://sourceforge.net/projects/libwdi/files/zadig/
  4. Open Zadig.
  5. Go to Device->Create New Device.
  6. Type a device name (i.e., "bladeRF") in the text box. In the driver spinbox, select libusbK. Specify the VID/PID (1d50/6066) in the USB ID fields.
  7. Plug the device into the computer and open Device Manager. A new device called bladeRF should show up with a yellow bang next to it in device manager.
  8. Right-click on the bladeRF entry and select "Update Driver Software...".
    1. Choose "Browse my computer for driver software"
    2. "Let me pick from a list of device drivers on my computer".
    3. Click "Have Disk..." and point it to the location that Zadig installed the driver to (C:\usb_driver).
    4. Select "bladeRF" and continue through the wizard.
  9. Device Manager should now show bladeRF under libusbK USB Devices.

Installing pthreads-win32

The pthreads library is required to build libbladeRF and its utilities. A few steps are required to install this pthreads implementation. See the pthreads-win32 website for more information.

  1. Download the latest release. Currently this is the pthreads-win32 website.
  2. Extract the contents of the release zip.
  3. Copy the contents of the Pre-built.2 directory to C:\Program Files (x86)\pthreads-win32

Installing CMake

Download and install CMake for Windows: http://www.cmake.org/cmake/resources/software.html

Building with CMake and Visual Studio 2013

Configuring with CMake

  1. Run the CMake GUI utility.
  2. Under "Where is the source code", browse to preferred_directory/bladeRF/host.
  3. Create a new directory, preferred_directory/bladeRF/host/build.
  4. Under "Where to build the binaries", browse to the newly created preferred_directory/bladeRF/host/build. Click the Configure button.
  5. Select your appropriate version of Visual Studio. For Visual Studio 2013, select "Visual Studio 12" or "Visual Studio 12 Win64". Select "Use default native compilers", then click "Finish".
  6. If the configuration fails, double check the values for LIBUSB_PATH and LIBPTHREADSWIN32_PATH, and re-run the configuration.
  7. Click on the Generate button.
  8. A visual studio solution should now be available, build/host/bladeRF.sln

Compiling

  1. CMake has created a bladeRF.sln file. Open Visual Studio, and open this file.
  2. The following projects should show up in the Solution Explorer.
    1. ALL_BUILD
    2. bladeRF-cli
    3. INSTALL
    4. libbladerf_shared
    5. libbladerf_test_async
    6. libbladerf_test_repeater
    7. uninstall
    8. win_postbuild
    9. ZERO_CHECK
  3. Run Build -> Build Solution
  4. After the build completes, you should see an host\output directory in the build directory, containing either a Debug or Release subdirectory. These directories will contain generated executables, libraries, and will contain copies of the required DLLs.

Verifying basic functionality

Open up a cmd.exe window and navigate to the output directory associated with your build:

C:\Users\jon\Documents\projects\bladeRF\host\build\host\output\Debug>dir
 Volume in drive C is Windows7_OS
 Volume Serial Number is D632-7BC2

 Directory of C:\Users\jon\Documents\projects\bladeRF\host\build\host\output\Debug

10/19/2013  05:36 PM    <DIR>          .
10/19/2013  05:36 PM    <DIR>          ..
10/19/2013  05:36 PM           122,880 bladeRF-cli.exe
10/19/2013  05:36 PM           506,340 bladeRF-cli.ilk
10/19/2013  05:36 PM           921,600 bladerf-cli.pdb
10/19/2013  05:36 PM           139,776 bladeRF.dll
10/19/2013  05:36 PM            10,351 bladeRF.exp
10/19/2013  05:36 PM           388,640 bladeRF.ilk
10/19/2013  05:36 PM            17,676 bladeRF.lib
10/19/2013  05:36 PM           839,680 bladerf.pdb
10/19/2013  05:36 PM            36,352 libbladeRF_test_async.exe
10/19/2013  05:36 PM           273,580 libbladeRF_test_async.ilk
10/19/2013  05:36 PM           552,960 libbladerf_test_async.pdb
10/19/2013  05:36 PM            54,272 libbladeRF_test_repeater.exe
10/19/2013  05:36 PM           330,296 libbladeRF_test_repeater.ilk
10/19/2013  05:36 PM           618,496 libbladerf_test_repeater.pdb
10/19/2013  05:35 PM            92,160 libusb-1.0.dll
10/19/2013  05:35 PM            55,808 pthreadVC2.dll
              16 File(s)      4,960,867 bytes
               2 Dir(s)  80,010,641,408 bytes free

C:\Users\jon\Documents\projects\bladeRF\host\build\host\output\Debug>

Note the presence of the libusb-1.0.dll and pthreadVC2.dll in this directory. These are placed here so that the bladeRF-cli and other tests may be run from this directory.

Detecting the bladeRF

First run bladeRF-cli.exe --help to view the list of command-line functionality. Run bladeRF-cli.exe -p to probe for attached devices:

C:\Users\jon\Documents\projects\bladeRF\host\build\host\output\Debug>bladeRF-cli.exe -p

    Backend:        libusb
    Serial:         f12ce1037830a1b27f3ceeba1f521413
    USB Bus:        3
    USB Address:    3

If you do not see your device listed, see the Troubleshooting wiki page before continuing

Viewing additional device information

Next, enter the interactive mode and issue the version and info commands to view some additional information about the host software and the attached device.

C:\Users\jon\Documents\projects\bladeRF\host\build\host\output\Debug>bladeRF-cli.exe -i
bladeRF> help

... Help text shown here ...

bladeRF> version

  bladeRF-cli version:        0.6.0-git-70f4ed1
  libbladeRF version:         0.7.0-git-70f4ed1

  Firmware version:           1.5.3-git-
  FPGA version:               Unknown (FPGA not loaded)

bladeRF> info

  Serial #:                 f12ce1037830a1b27f3ceeba1f521413                          
  VCTCXO DAC calibration:   0x894e
  FPGA size:                40 KLE
  FPGA loaded:              no
  USB bus:                  3
  USB address:              3
  USB speed:                SuperSpeed
  Backend:                  libusb
  Instance:                 0

bladeRF>

Note: If you see the following message, it is required that you update the firmware before continuing to the next section. See this wiki page for more information on updating your firmware.

********************************************************************************
* ENTERING LEGACY MODE, PLEASE UPGRADE TO THE LATEST FIRMWARE BY RUNNING:
* wget http://nuand.com/fx3/latest.img ; bladeRF-cli -f latest.img
********************************************************************************

Loading the FPGA

Support for loading the FPGA from flash automatically is currently supported and undergoing further testing. See the bladeRF-cli --help text for information on how to write an FPGA image to flash for autoloading.

For simplicity, this guide shows how to load the FPGA without storing it into flash for autoloading. (As a result, you'll have to load the FPGA each time the device is reset or plugged in.)

FPGA images can be obtained from Nuand website or from a build of "bleeding edge" images.

To load an image from the command line.

bladeRF-cli -l <path/to/fpga/file>

Or to load an image while in interactive mode:

bladeRF> load fpga <path/to/fpga/file>

You should see LEDs begin blinking after the FPGA load completes. At this point, you're ready to start using your device!

Clone this wiki locally