To control the bladeRF-board you have to deal with
two areas:
·
Outside of the bladeRF-board is a system with Windows or linux
·
Inside the bladeRF-board there are two sub-systems:
o
The FX3 Cypress USB subsystem to be programmed in C
there is a non-volatile flash-memory for an initial program
there is a non-volatile flash-memory for an initial program
o
The FPGA subsystem to be programmed in VHDL or Verilog
the FPGA is empty at startup, so has to be loaded to perform its virtual hardware function
the FPGA is empty at startup, so has to be loaded to perform its virtual hardware function
To use the bladeRF you have to boot the whole system:
1.
The outside system: a laptop, a PC or perhaps a
Raspberry Pi connected by USB3 to the bladeRF
2.
The bladeRF has a flash memory with the software for
the FX3 USB subsystem
3.
The bladeRF gets a new FX3 program
4.
The bladeRF gets a fresh FPGA image
5.
From now on the bladeRF is able to communicate with
the controlling program: bladerf.cli
the bladeRF command line interpreter
the bladeRF command line interpreter
·
The bladeRF-board has a JTAG-interface-connector. So
it is possible to program the FPGA more or less independent form the remaining
hardware.
·
With a suitable program in the FX3-USB-Cypres-chip,
the programming of the FPGA can be done without the JTAG-interface, directly
from the FX3-chip.
·
On the outside of the board is the bladeRF.cli. This
program takes care of loading the FX3-program and the program for the FPGA.
‘Everybody’ seems to use linux for the outside system.
So, may be it is better for me to follow the crowd if I want support and
results.
To connect the bladeRF to a Windows system there are
in fact two possibilities:
1.
Use the Cypress FX3 system with the wizard that
generates the INF-file. From then on you can use the FX3-Cypres diagnostic
tools to load programs
2.
Use the libusb-system. There seem to be a few flavors
of that. Anyway version 0.1 or 1.0. The Zadig software seems to be a keystone
for success.
Whether linux or Windows the bladeRF-board can be
controlled by a program written in java, python or C. The bladeRF.cli is
written in C.
There is also gnu radio, either in Windows or in
linux. There is a module, OsmoSDR, that can be used to connect a bladeRF-board.
The above ramblings are sort of start-point-issues.
Now about my dream, my ultimate goal, my ultimate
process:
I want to understand GNSS (Global Navigation Satellite
Systems) by building a GPS-receiver. Perhaps also a GPS-simulator or a
GPS-spoofer. In the past I did some experiments, programming in java, with a
file with a few minutes GPS-signal from a wideband receiver. I built a function
to read the samples. I built a correlator and could ‘see’ the satellites. I
built a phase-locked-loop and got stuck in this very PLL. I did not manage to
get the loop stable, but did manage to
recover some almanac-data.
For me, it is not the end-result that counts, but the
process itself. By doing, experimenting, programming, testing, debugging and
reading I get a deep understanding of GNSS’s. Furthermore a system containing an
RF-subsystem, an FPGA and an FX3—USB-system controlled by a program on a laptop
is really fascinating. A high level language like python, the C-program in the
FX3-chip and VHDL on an FPGA. This is a piece of hardware that should be able
to do anything you can imagine. Cognitive radio for example. Combined with an
inertial system and Kalman filtering one can do miracles with GNSS. The boys and
girls of Pentex have the real stuff! But the bladeRF-board is such a marvelous
piece of hardware!
I am very confused which route to take:
·
I have a laptop, an old but usable one, I could
replace Windows and put genuine Ubuntu on it.
·
I might try to solve the Windows gnuradio opengl problem and go for the
gnuradio solution
·
I might stubbornly stay with Windows and python
·
I might try to go on with Ubuntu in VMware under
Windows 7 professional (64 bit)
So far I tried almost everything a little bit, but I
don’t yet know which route to take!
a painting, a reproduction, whatever?
This beautiful picture we found in VilaCha, Portugal.
Very nice write up on the BladeRF. Thanks. Very interested in which platform you discover to be the most beneficial.
ReplyDeleteSince you mention the JTAG interface. Which cable would you suggest for connecting the FPGA JTAG to the host computer over USB. I found this USB blaster cable, but its 300 bucks
ReplyDelete