This repository contains all the source code required to program and interact with a bladeRF platform, including firmware for the Cypress FX3 USB controller, HDL for the Altera Cyclone IV FPGA, and C code for the host side driver, library, and command line interface.
The source is organized as follows:
Directory | Description |
---|---|
common | Source and header files common across the platform |
fx3_firmware | Firmware for the Cypress FX3 USB controller |
hdl | All HDL code associated with the Cyclone IV FPGA |
linux | The linux kernel driver, library and command-line interface for interacting with a bladeRF device |
It is not necessary to rebuild the Cypress FX3 firmware (hooray!), and there are pre-built FPGA images that will get you underway.
- Compile and install the kernel driver, libbladeRF library, and command-line application, in that order.
- Download pre-compiled FPGA binaries from http://nuand.com/fpga. You'll want
hostedx40.rbf
if you've got the 40 kLE board, orhostedx115.rbf
if you have a 115 kLE board. - Attach the bladeRF board to your fastest USB port.
- You should have a
/dev/bladerf0
character device file. Make sure it is chowned and/or chmodded as you'd like it. (Please seelinux/kernel/README.md
for a note about udev.) - Try
./bladeRF-cli -d /dev/bladerf0 -l /path/to/fpga.rbf
to load an FPGA image and open a dialogue with your bladeRF board, per the advice inlinux/apps/README.md
.
If you've made it this far, congratulations! You can read (or write) raw samples in a variety of formats using the bladeRF-cli
tool, or you can use third-party tools that support the bladeRF.
Directions for building and using this with GNU Radio have been compiled by kb3gtn.
Each subsection of the source code can be built by itself and maintains their own README files for building. The recommended build flow is as such:
- Build FX3 firmware under
fx3_firmware
- Build FPGA image under
hdl
- Build linux kernel driver under
linux/kernel
- Build linux libbladeRF library under
linux/lib
- Build command-line application under
linux/apps