51 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
The primary firmware source code for USB HackRF devices is hackrf_usb.  Most of
 | 
						|
the other directories contain firmware source code for test and development.
 | 
						|
The common directory contains source code shared by multiple HackRF firmware
 | 
						|
projects.  The cpld directory contains HDL source for the CPLD.
 | 
						|
 | 
						|
 | 
						|
The firmware is set up for compilation with the GCC toolchain available here:
 | 
						|
 | 
						|
https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads
 | 
						|
 | 
						|
Required dependency:
 | 
						|
 | 
						|
https://github.com/mossmann/libopencm3
 | 
						|
 | 
						|
If you are using git, the preferred way to install libopencm3 is to use the
 | 
						|
submodule:
 | 
						|
 | 
						|
$ cd ..
 | 
						|
$ git submodule init
 | 
						|
$ git submodule update
 | 
						|
 | 
						|
To build and install a standard firmware image for HackRF One:
 | 
						|
 | 
						|
$ cd hackrf_usb
 | 
						|
$ mkdir build
 | 
						|
$ cd build
 | 
						|
$ cmake ..
 | 
						|
$ make
 | 
						|
$ hackrf_spiflash -w hackrf_usb.bin
 | 
						|
 | 
						|
If you have a Jawbreaker, add -DBOARD=JAWBREAKER to the cmake command.
 | 
						|
If you have a rad1o, use -DBOARD=RAD1O instead.
 | 
						|
 | 
						|
It is possible to use a USB Device Firmware Upgrade (DFU) method to load
 | 
						|
firmware into RAM.  This is normally only required to recover a device that has
 | 
						|
had faulty firmware loaded, but it can also be useful for firmware developers.
 | 
						|
 | 
						|
For loading firmware into RAM with DFU you will need:
 | 
						|
 | 
						|
http://dfu-util.sourceforge.net/
 | 
						|
 | 
						|
To start up HackRF One in DFU mode, hold down the DFU button while powering it
 | 
						|
on or while pressing and releasing the RESET button.  Release the DFU button
 | 
						|
after the 3V3 LED illuminates.
 | 
						|
 | 
						|
A .dfu file is built by default when building firmware.  Alternatively you can
 | 
						|
use a known good .dfu file from a release package.  Load the firmware into RAM
 | 
						|
with:
 | 
						|
 | 
						|
$ dfu-util --device 1fc9:000c --alt 0 --download hackrf_usb.dfu
 |