lunedì 18 gennaio 2021

ARINST VNA-PR1 vector network analyzer

Shared Link:

ARINST VNA-PR1 is a portable vector network analyzer for frequencies from 1 to 6200 MHz. The device allows you to build VSWR graphs and measure the input impedance of antennas, measure the frequency response / phase response of filters and amplifiers, find breakdown points in coaxial cables, and solve other practical problems. The retail price is $ 560. Let's look at the pros and cons of the device, carry out several experiments with it, and also find out what is inside.

Note: I would like to thank the again patrons of this blog . Such reviews are possible thanks to your support. I am also grateful to Crocs for the special conditions for providing the device for review.

Main characteristics

ARINST VNA-PR1 looks like this:


This is a box measuring 135 x 80 x 27 mm (excluding connectors) and weighing 367 g. Attentive readers may already have noticed a slight oddity in the photo. The device uses RP-SMA connectors, into which adapters to SMA are inserted. Moreover, factory calibration is performed with adapters. This is done to extend the life of the device. It is not the device connectors that wear out, but the adapters. They are easy to replace.

The device is powered by a built-in 5000 mAh Li-Ion battery. The claimed battery life is 2.5 hours. In reality, it turned out to be more than 4 hours. But perhaps this is because the battery is brand new. Full charge time is 3.5 hours, according to the documentation. The measured time turned out to be slightly longer, by 20 minutes. Charging is carried out via the mini USB connector.

The touchscreen is resistive, with a diagonal of 4 "and a resolution of 800 x 480. Technically, you can use it without a stylus. But pressing work with varying success, and the screen quickly collects handprints. Better to start a stylus. It is not included in the kit.

It is allowed to input a signal with a level of up to +10 dBm and a constant component of up to 25 V. The signal power of the tracking generator does not exceed -5 dBm. The declared dynamic range when measuring S21 is > 60 dB at 1-1.5 MHz, > 80 dB at 1.5-4500 MHz, > 70 dB at 4.5-6.2 GHz. According to the documentation, the error in measuring the magnitude is 0.25 dB, and the phase is 0.7 °. The last statement is true provided that the device is warmed up for 5 minutes and the room temperature changes by no more than ± 3 ° C. Frequency resolution - 100 Hz at 1-100 MHz and 10 kHz at 100-6200 MHz.


First of all, it was decided to measure the antenna SWR from the TP-Link N600 router, on which we at one time installed OpenWrt :

Antenna SWR from Wi-Fi router TP-Link N600

Unfortunately, ARINST VNA-PR1 cannot save screenshots in BMP or PNG, and I had to photograph all the graphics. Don't judge strictly the quality of the pictures.

The router has two RF connectors and two antennas, which are completely indistinguishable in appearance. Most likely, an antenna operating simultaneously on the 2.4 GHz and 5.8 GHz bands was used. It was decided to put this antenna together with the router in duplicate, so that the user would definitely not confuse anything. In this case, the SWR at 2.4 GHz is a bit high, but considering the influence of any metal objects on my desk, this is normal. Other antennas have been tested for these frequencies. In all cases, the device showed something believable.

For example, here is the input impedance of a conventional 2.4 GHz dipole:

Dipole input impedance

The dipole was made from an SMA connector and two copper wires. to suppress Ferrites were common-mode currents used . The measurement was carried out through a short piece of LMR-200 cable with low losses at this frequency. The theory says that we should see an input impedance of ~ 73 ohms. We got it.

In the spectrum analyzer mode, the device also works:

Frequency response of the notch filter at 88-108 MHz

Here the frequency response of the "reference" notch filter at 88-108 MHz is measured. Previously, we measured it with NanoVNA , RTL-SDR and noise generator , as well as Rigol DSA815-TG . It is easy to make sure that the graph is identical to those obtained earlier. In the photo you can see that the device is also aware of the phase response of the filter.

Let's complicate the task and measure the CW quartz bandpass filter :

Frequency response of a quartz band-pass filter for a telegraph

The device copes. But the bandwidth of this filter is only 320 Hz! The filter insertion loss is the same as previously measured, up to the stated device uncertainty.

I won't bore you with a bunch of graphs. I will just say that I did many other measurements with the ARINST VNA-PR1. The device coped with the task in all but one case. I was unable to measure the inductance of the coils at 1 MHz. Instead of inductance, the device always showed "inf uH". If we translate the displayed complex resistance into inductance, then we get some kind of nonsense. I contacted the manufacturer about this. It turned out that this is indeed a bug. It has already been eliminated in the new firmware version.

We open the case

Let's see what's inside. The user manual [PDF] describes how to properly disassemble and assemble the instrument. You may need to do this when the battery is used up. The block diagram of the device is also provided.

Let's start with the display. This is how it looks from the reverse side:

Internals ARINST VNA-PR1: display

These displays can be found on eBay for “4 inch lcd module 800 x 480”. It's good. If something happens to the display, it will be easy to replace.

There is a battery under the display:

Internals ARINST VNA-PR1: battery

The battery, as we have already found out, is Li-Ion with a capacity of 5000 mAh. Its size is 90 x 60 x 7 mm. The battery is glued to the board with double-sided tape. As far as I could figure out, there is nothing under the battery. Therefore, I did not tear it off.

In the photo you can see small boards that are attached to the main one with bolts. They provide electrical contact with the housing. The side boards are 1mm thick, just like the main board. Why this is done is not entirely clear. Perhaps at some stage in the development of the project, a certain building was chosen, and with this technique it was possible to accurately fit into its size.

From the reverse side, the board looks like this:

ARINST VNA-PR1 internals: main components

The marking reads "07/31/2020". Here we see all the main components:

  • Microcontroller STM32H743;
  • 40 MHz crystal oscillator;
  • The three chips labeled "9939 AUB" are most likely the MAX9939AUB programmable two-channel amplifiers ( datasheet [PDF] );
  • Six white cubes "LTC 455DU" - piezoceramic bandpass filters with IF 455 kHz and bandwidth 20 kHz ( datasheet [PDF] );
  • Winbond 25Q32JVSIO - ordinary SPI flash ( datasheet [PDF] );
  • BQ24297 - Li-Ion battery charge controller ( datasheet [PDF] );
  • QUK TI38K ADXD and QUJ TI73X 1619 are voltage regulators manufactured by Texas Instruments. According to the structural diagram, one should be at 3.3 V, and the second at 5 V;

Some of the components are hidden under the screens. The screens could be ripped off, but I didn't want to. There is a risk that the calibration will go down the drain. Fortunately, you can find out what is under them using the materials on the manufacturer's website :

  • The two chips labeled "2871E" are MAX2871, 23.5 MHz to 6 GHz ( synthesizers datasheet [PDF] ). These chips are located under two different screens;
  • Under one of the screens, the MAX2871 is located along with the good old Si5351 . According to the structural diagram, it can be assumed that it uses two channels (Gen 2.1, Gen 2.2). Considering the frequency resolution of the device, I wouldn't be surprised if the Si5351 is used at frequencies of 1-100 MHz, and the MAX2871 comes into play higher;
  • The ADL5801ACPZ are used in a quantity of three. These are mixers for 10-6000 MHz ( datasheet [PDF] );

On identifying the main components, my interest in the internal structure of the ARINST VNA-PR1 waned, and it was decided to return the device to its previous form.


There is a lot going on at frequencies between 1 GHz and 6 GHz. It houses the 2.4 and 5.8 GHz ISM bands along with Wi-Fi, Bluetooth and ZigBee. Equipment and FPV for quadcopters and many radio modules work here. Here the radio amateur band is 23 cm (1240 MHz), which, in particular, is used by the satellite AO-92 . Also here are ADS-B (1090 MHz), Inmarsat (1546 MHz), Iridium (1620 MHz), GPS (1228 MHz, 1575 MHz), 3G and 4G mobile networks, and much more.

In Russia, an “adult” spectrum analyzer and directional coupler for these frequencies (for example, Rigol DSA875-TG and Mini-Circuits ZHDC-16-63-S +) cost $ 9000 + at the time of this writing. ARINST VNA-PR1 for significantly less money allows you to solve the same problems. Besides the price, ARINST VNA-PR1 has other advantages. These include, for example, the ability to measure phase response, portability, and quiet operation. Of course, the device also has its limitations. Its dynamic range, frequency resolution, and uncertainty are inferior to serious laboratory instruments.

I hope you found this review interesting. If you still have questions about the device, feel free to ask them in the comments, and I will try to answer.

TAG: #GiammaIoT @GiammaIoT #SoftwareDefinedRadio #SoftwareDefinedRadios #ARINST #VNA-PR #VNA #NanoVNA #VectorNetworkAnalyzer #banggood #4YANG #HF #VHF #UHF

UpDate: Open source SDR hardware based on ZYNQ+AD936X

Shared Link: &

For more related content, please visit github

The pluto-sdr firmware transplantation work is all completed, and the firmware is inserted without operating system. The default is AD9364.

Regarding the BOM cost, ZYNQ7010/ZYN17020 and AD9363 cost about 150-200 yuan when using the disassembled chip. The use of brand-new chips does not have bargaining power due to the small number of BOM costs around 500 yuan.

1. Hardware solution

FPGA: ZYNQ7010/7020 (ZYNQ7010 and ZYNQ7020 can be replaced with each other, if you need more hardware resources, please use ZYNQ7020)

RF: AD9361/AD9363/AD9364 (the three chips can be replaced with each other, the difference lies in the bandwidth. Among them, AD9361 has better performance, try to use the ABCZ ending chip, which is different from BBCZ)

Memory: DDR3 256M16


GMAC-PHY: RTL8211E-VL (RTL8211E has two endings, VB and VL, where VB level is 3.3V/2.5V, VL is 1.8V)


Power topology


block design


2. Software resources

Support Pluto-SDR firmware transplantation, OpenWiFi (ZYNQ7020 FPGA required), support adi official ZED+AD-FMCOMMS2/3/4 related firmware code

Software supports MATLAB, GNU Radio, SDR sharp, etc.

3. PCB board design

Design software: Altium Designer

Number of layers: 4 layers (signal layer[1], GND[2], POWER[3], signal layer[4])

Craft: Jiali Chuang Craft

Impedance: not supported

The impedance version will be tested in the middle of 2021, and the openwifi port is currently undergoing normal transceiver tests.

4. Different from Pluto-SDR:

  • Support CLG400 package XC7Z010 XC7Z020

  • Support 2R2T transceiver mode

  • Low cost of 4-layer PCB design

  • Support SD card to run a complete Linux system

  • Support Gigabit Ethernet

5. Physical picture:

PCB rendering


PCBA physical map


RF part details


1000M Ethernet test (the test environment is single-arm routing)


AD9363 initialization is normal based on the adi NO-OS test environment upload_downloader_1610892694217_26211414.png

Pluto-uboot transplanted successfully


Pluto firmware works fine


950MHZ GSM signal reception test


AD9363 cracked into AD9364 to receive FM signal


Two PCBA interactive test


Two PCBAs can be stacked to link with the host computer through a gigabit switch and router





-Continue to optimize the RF part to reach the adi official demo board indicators

-Impedance design based on four-layer PCB-will be completed from January to February 2021 to complete the transplantation of openwifi

-Design impedance version in March 2021-Conduct commercial index test on impedance version in April 2021

-When the commercial version will be launched at the end of April 2021, it will support adi's official SDR firmware (ADRV9364 data package), openwifi and openbts openbts, etc. 



TAG: #GiammaIoT @GiammaIoT @GiammaIoT2 #SoftwareDefinedRadio #SoftwareDefinedRadios #OpenSourceHardware #ZYNQ #AD9363 #Pluto-SDR #FirmwareMigration #OpenWiFi #GSM

Hackrf and usrp transceiver ( TX and RX / Receiver and Transmitter) signal software .exe executable

Shared Link:


Hackrf and usrp transceiver signal software (based on python3.7 and GNUradio3.7 environment)

Use main.exe in the main folder to run

The QT folder is the QT file that generates main.exe


For Translation keys icons code:

def  retranslateUi ( self , MainWindow ):
        _translate  =  QtCore . QCoreApplication . translate
        MainWindow . setWindowTitle ( _translate ( "MainWindow" ,  "hackrf_usrp" ))
        self . label . setText ( _translate ( "MainWindow" ,  "GNUradio_bin路径:" ))
        self . label_7 . setText ( _translate ( "MainWindow" , "HackRF and USRP signals are automatically sent and received" ))
        self . only_tran_btn . setText ( _translate ( "MainWindow" , "Send only" ))
        self . rece_tran_btn . setText ( _translate ( "MainWindow" ,  "收发" ))
        self . only_rece_btn . setText ( _translate ( "MainWindow" , "receive only" ))
        self . f_tran_ad_btn . setText ( _translate ( "MainWindow" , "Query Address" ))
        self . f_rece_ad_btn . setText ( _translate ( "MainWindow" , "Query Address" ))
        self . label_4 . setText ( _translate ( "MainWindow" , "Receiver Type:" ))
        self . rece_kind_box . setItemText ( 0 ,  _translate ( "MainWindow" ,  "hackrf" ))
        self . rece_kind_box . setItemText ( 1 ,  _translate ( "MainWindow" ,  "usrp" ))
        self . label_6 . setText ( _translate ( "MainWindow" , "Receiver Address:" ))
        self . label_3 . setText ( _translate ( "MainWindow" , "Transmitter Type:" ))
        self . tran_kind_box . setItemText ( 0 ,  _translate ( "MainWindow" ,  "hackrf" ))
        self . tran_kind_box . setItemText ( 1 ,  _translate ( "MainWindow" ,  "usrp" ))
        self . label_5 . setText ( _translate ( "MainWindow" , "Transmitter Address:" ))
        self . label_8 . setText ( _translate ( "MainWindow" , "data storage file path:" ))
        self . label_2 . setText ( _translate ( "MainWindow" , "Signal modulation type:" ))
        self . tran_model_box . setItemText ( 0 ,  _translate ( "MainWindow" ,  "GMSK" ))
        self . tran_model_box . setItemText ( 1 ,  _translate ( "MainWindow" ,  "BPSK" ))
        self . tran_model_box . setItemText ( 2 ,  _translate ( "MainWindow" ,  "QPSK" ))
        self . tran_model_box . setItemText ( 3 ,  _translate ( "MainWindow" ,  "8PSK" ))
        self . tran_model_box . setItemText ( 4 ,  _translate ( "MainWindow" ,  "QAM8" ))
        self . tran_model_box . setItemText ( 5 ,  _translate ( "MainWindow" ,  "QAM16" ))
        self . tran_model_box . setItemText ( 6 ,  _translate ( "MainWindow" ,  "QAM64" ))
        self . tran_model_box . setItemText ( 7 ,  _translate ( "MainWindow" ,  "others" ))
        self . label_9 . setText ( _translate ( "MainWindow" , "transmission file path:" ))

 No more info...

TAG: #GiammaIoT @GiammaIoT #SoftwareDefinedRadio #SoftwareDefinedRadios #HackRF #USRP #RX #TX #Receiver #Transmitter #GNURadio #GMSK #BPSK #QPSK #8PSK #QAM8 #QAM16 #QAM64

domenica 17 gennaio 2021

gr-radio_astro: Radio Astronomy designs for observations of Neutral Hydrogen by WVURAIL

Shared Link:

This repository contains Radio Astronomy designs for observations of Neutral Hydrogen

These designs, in the examples directory, build on Gnuradio capabilities.
The different design names indicate the bandwidths of the observations and provide a hint as to the type of Software Defined Radio (SDR) used.

There are two major groups of designs, one for integration observations of spectra (NsfIntegrate??) and one for simultaneous detection of transient events and also observations of radio spectra (NsfWatch??). Because the computer load for transients and spectra the some of the plotting functions are removed in the NsfWatch?? design.

A summary of different Designs and devices is listed below:

  1. NsfIntegrate30 - RTL-SDR compatible devices operating with 3.0 MHz bandwidth
  2. NsfIntegrate45 - PlutoSdr devices operating at 4.5 MHz and not dropping any samples
  3. NsfIntegrate60 - AIRSPY Mini devices at 6.0 MHz
  4. NsfIntegrate70 - PlutoSdr devices operating at 7.0 MHz but dropping samples (as high as 12 MHz works, but more samples are dropped).
  5. NsfIntegrate90 - SDRPlay RSP 1A at 9.0 MHz
  6. NsfIntegrate100 - AIRSPY at 10.0 MHz.

The data analysis tools for gr-radio_astro usually run on different computers than the data acqusition. The analysis software and documentation have moved to the repository:

These designs use custom python and C++ code. These programs must be built in the usual manner.

A build and trouble shooting guide was kindly provided by Dr. Joshua Smith and Zerina Kapetanovic of Univesity of Washington.

Install Guide

  1. Clone the repository and within the gr-XXX folder create a build folder

mkdir build

  1. Change directory into the build folder

cd build

  1. run the following commands
cmake ../
sudo make
sudo make install
sudo ldconfig
  1. Run GNU Radio Companion to check if the modules were installed. Search for ra in the GRC block search are on the right side of the GRC console.


If you happen to get an error along the line of "no module found xxx" then make sure that the python files from gr-XXX are in your PYTHONPATH. You can added them to your path following the steps below

  1. Open your .bashrc file in an editor

  2. In the file add the following command

export PYTHONPATH="${PYTHONPATH}:path/to/gr-XXX/python/"

where path/to/gr-XXX/python/ should be changed to the appropriate path on your PC

Example Interface - Tests with NeSDR, NooElec HI amplifier and Small metal Horn.

This example shows successful observations of the Milky Way with a minimum cost system. The system includes the NsfIntegrate30.grc (and observer interface in this repository.

During the observations, the interface can show spectra in raw counts or calibrated in Kelvins, as is shown by the screen captures of the interface during observations.


GnuRadio Observer Interfaces showing Raw Spectra in counts. GnuRadio Observer Interfaces showing Spectra calibrated in Kelvins.

Example Data

After the observations, all spectra are recorded in the data directory, containing a series of ascii files, taged with the observation time. The data sub-directory contains a few minutes of observations with different SDR types. Data from 2020-May-29 were made with a minimum sized horn and NeSDR device operating at 3 MHz bandwidth. Log include Hot load (the ground) and Cold Sky observations.

The log is summarized with the "analyze S command"

S 20-05-29T170*

and yields

Count  Time    Az    El   G-Lon G-Lat  Frequency  BW   Gain    Filename
   1 17:03:20 180.0,-90.0 340.6,  9.5:  1420.00, 3.00  40.0 -
   3 17:04:04 180.0,-90.0 340.7,  9.4:  1420.00, 3.00  40.0 -
   1 17:05:06 180.0, 90.0 160.8, -9.2:  1420.00, 3.00  40.0 - 20-05-29T170506.ast
  14 17:09:50 180.0, 90.0 161.5, -8.6:  1420.00, 3.00  40.0 - 20-05-29T170950.ast

The hot and cold load observations are shown with the Raw plot command,"R"

R 20-05-29T170*

The calibrated in Temperatre, Kelvins, spectra are shown with the "T" command.

T 120. 20-05-29T170*

Glen Langston --- National Science Foundation, May 29, 2020


TAG: #GiammaIoT @GiammaIoT #SoftwareDefinedRadio #SoftwareDefinedRadios #Astronomy #SDR #Spectrometer #Radiometer #Python #GNURadio #RadioTelescope #observations #Neutral #Hydrogen

gr-DoA_BladeRF: BladeRF Direction-of-Arrival (DoA) for GNU Radio

Shared Link:


Blocks for GNU Radio to DoA by BladeRF

Project made by Do Hai Son in 2020. (Tested on BladeRF x115).


The description of the installation is focussed on Ubuntu distribution and its flavours. First make sure that you have all required packages (checked on Ubuntu 16.04 and 18.04):

To compile and install gr-DoA_BladeRF run:

cd gr-DoA_BladeRF

mkdir build

cmake ..


sudo make install


Run DoA.grc in /apps

Change parameters for your system.

Thanks so much for ideas and some Blocks made by S. Whiting, D. Sorensen, T. K. Moon và J. H. Gunther

Thanks my monitor in this Project: Dr. Tran Thi Thuy Quynh at Laboratory of Faculty of Electronics and Telecommunications, University of Engineering and Technology, Vietnam National University, Hanoi.

All question:


Tag: #GiammaIoT @GiammaIoT @GiammaIoT2 #SoftwareDefinedRadio #SoftwareDefinedRadios #BladeRF #GNURadio #DoA #DirectionofArrival

Forensic Insights from Smartphones through Electromagnetic Side-Channel Analysis

Shared Link: 


The increasing use of smartphones has increased their presence in legal and corporate investigations. Unlike desktop and laptop computers, forensic analysis of smartphones is a challenging task due to their limited interfaces to retrieve information of forensic value. Electromagnetic side-channel analysis (EM-SCA) has been recently proposed as an alternative window to acquire forensic insights from computers, in particularly from Internet of Things devices. 

Along this line, this work experimentally evaluates the potential of extracting information of forensic value from smartphones through their EM radiation. Initially, a group of smartphones representing a diverse set of system-on-chip (SoC) processors were used to acquire EM radiation traces. Later, deep learning models were trained to detect various internal software behaviours running on the SoCs. The results of this work indicates that a wide variety of insights can be extracted from smartphones through EM side-channel, increasing the potential opportunities for digital forensic investigators.

Tag: #GiammaIoT @GiammaIoT @GiammaIoT2 #SoftwareDefinedRadio #SoftwareDefinedRadios #HackRF #Forensic #Smartphones #Electromagnetic #Side-Channel #Analysis

TinySDR software-defined radio platform specialized for internet-of-things networks

Shared Link:


TinySDR Board

TinySDR is the first software-defined radio platform specialized for internet-of-things networks.


TinySDR schematic is in hardware.


TinySDR firmware CCS project is in firmware.

FPGA Demos

TinySDR Bluetooth beacons and LoRa demos are in demo.



Tag: #GiammaIoT @GiammaIoT @GiammaIoT2 #SoftwareDefinedRadio #SoftwareDefinedRadios #TinySDR #IoT #Lora