Write new firmware to bladeRF

From YateBTS
Jump to: navigation, search

Check bladeRF firmware version

Telnet in YateSDR console and ask bladeRF infos, type control and hit [tab] and you will see available interfaces.

By typing 'control [interface_name] show' informations about that interface/channel will be printed.

If your firmware version is other than 1.8.0, you must flash it with bladeRF_fw_v1.8.0.img

[root@ybts_unconfig_mg5 ~]# telnet 0 5037
Trying 0.0.0.0...
Connected to 0.
Escape character is '^]'.
YateSDR (backend YATE 5.5.1-devel1) ready on node ybts_unconfig_mg5.
control 
bladerf bladerf/3       gsmtrx  radiotest
control bladerf/3 show
Interface 'bladerf/3' info=status time=2017-03-31_14:24:51.077552  [0x7fd5740403e0]
-----
RxVGA1=30
RxVGA2=0
RxDCCorrI=10
RxDCCorrQ=16
TxVGA1=-14
TxVGA2=25
RxFreq=824.8MHz
TxFreq=869.8MHz
FreqOffset=128
RxSampRate=2166667
TxSampRate=2166667
RxLpfBw=1500000
TxLpfBw=1500000
RxRF=on
TxRF=on
Address=USB/2/4
Serial=3047d0e0d1d9fcc71344847ae2547052
Speed=SUPER
Firmware=1.6.1
FPGA=0.1.2 - /usr/share/yate/data/hostedx40.rbf - MD5: ff681baa275d3f01af3d864e737a23ae
LMS_Ver=0x22 (2.2)
-----
Control 'bladerf/3' OK
quit
Goodbye!
Connection closed by foreign host.
[root@ybts_unconfig_mg5 ~]# 

Add YateBTS public repository for Mageia 5

Next add YateBTS repository and install bladeRF-utilities

[root@ybts_unconfig_mg5 ~]# urpmi.addmedia --update YateBTS http://repo.yatebts.com/mga5/x86_64
[root@ybts_unconfig_mg5 ~]# urpmi bladeRF-utilities 

Stop YATE services

Check what yate services are running and stop all running yate services.

[root@ybts_unconfig_mg5 ~]# systemctl |grep yate
  session-c1.scope                                 loaded active running   Session c1 of user yatebts
  session-c2.scope                                 loaded active running   Session c2 of user yatebts
  session-c4.scope                                 loaded active running   Session c4 of user yatebts
  session-c5.scope                                 loaded active running   Session c5 of user yatebts
  yate-sdr.service                                 loaded active running   YATE based Software Defined Radio
[root@ybts_unconfig_mg5 ~]# systemctl stop yate-sdr.service

Download firmware version

Download pre-built firmware bladeRF_fw_v1.8.0.img from Nuand.

[root@ybts_unconfig_mg5 ~]# wget http://nuand.com/fx3/bladeRF_fw_v1.8.0.img
--2017-03-31 08:27:09--  http://nuand.com/fx3/bladeRF_fw_latest.img
Resolving nuand.com (nuand.com)... 198.23.74.122
Connecting to nuand.com (nuand.com)|198.23.74.122|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 118704 (116K)
Saving to: ‘bladeRF_fw_v1.8.0.img’

100%[====================================================================================================>] 118,704      203KB/s   in 0.6s   

2017-03-31 08:27:10 (203 KB/s) - ‘bladeRF_fw_v1.8.0.img’ saved [118704/118704]

[root@ybts_unconfig_mg5 ~]# 

Upgrade bladeRF firmware

Write new firmware to the bladeRF's SPI flash.

[root@ybts_unconfig_mg5 ~]# bladeRF-cli -f bladeRF_fw_v1.8.0.img
Flashing firmware...
[INFO] Erasing 0x00020000 bytes starting at address 0x00000000.
[INFO] Writing 0x00020000 bytes to address 0x00000000.
[INFO] Verifying 0x00020000 bytes at address 0x00000000
Done.
[root@ybts_unconfig_mg5 ~]#

Check new bladeRF version

Execute bladeRF command line interface with interactive mode on. Type version and the new firmware version will be shown.

[root@ybts_unconfig_mg5 ~]# bladeRF-cli -i
bladeRF> ?

  calibrate           Calibrate transceiver
  clear               Clear the screen
  echo                Echo each argument on a new line
  erase               Erase specified sectors of SPI flash
  flash_backup        Back up flash data to a file with metadata.
  flash_image         Print a flash image's metadata or create a new flash image
  flash_init_cal      Write new calibration data to a device or to a file
  flash_restore       Restore flash data from a file
  help                Provide information about specified command
  info                Print information about the currently opened device
  jump_to_boot        Jump to FX3 bootloader
  load                Load FPGA or FX3
  mimo                Modify device MIMO operation
  open                Open a bladeRF device
  peek                Peek a memory location
  poke                Poke a memory location
  print               Print information about the device
  probe               List attached bladeRF devices
  quit                Exit the CLI
  recover             Load firmware when operating in FX3 bootloader mode
  run                 Run a script
  rx                  Receive IQ samples
  tx                  Transmit IQ samples
  set                 Set device settings
  version             Host software and device version information
  correct             Correct for IQ Imbalances

bladeRF> version

  bladeRF-cli version:        0.10.7-git-unknown
  libbladeRF version:         0.14.0-git-unknown

  Firmware version:           1.8.0
  FPGA version:               0.1.2

bladeRF> quit
[root@ybts_unconfig_mg5 ~]# 

With bladeRF Firmware version: 1.8.0 auto calibration will work smoothly.