Skip to content

xaxaxa-dev/vna

Folders and files

NameName
Last commit message
Last commit date

Latest commit

272fc6f · Aug 6, 2020
Jun 4, 2018
Mar 27, 2018
Dec 17, 2017
Feb 19, 2018
Aug 6, 2020
Jul 10, 2019
Apr 10, 2018
Apr 6, 2020
Jun 17, 2019
Sep 12, 2018
Sep 8, 2018
Apr 6, 2020
Apr 6, 2020
Feb 13, 2019
Feb 19, 2018
Dec 7, 2018
Feb 5, 2018
Feb 28, 2018
Aug 16, 2018
Apr 6, 2020
Aug 16, 2018
Apr 19, 2018
Aug 16, 2018
Apr 11, 2018
Mar 4, 2018
Jan 25, 2018
Jan 25, 2018
Jan 25, 2018
Aug 16, 2018

Repository files navigation

vna

A simple and cheap vector network analyzer, including support software.

As seen on kickstarter: https://www.kickstarter.com/projects/1759352588/xavna-a-full-featured-low-cost-two-port-vna

Directory layout

  • libxavna: C & C++ library for accessing the hardware, see README.md in subdirectory for more info
  • vna_qt: QT GUI
  • pcb: schematics, pcb layouts, and simulation files
  • vhdl: circuitry implemented on the fpga

Specifications

  • Frequency range: guaranteed 137MHz - 2500MHz, typical 135MHz - 3500MHz
  • Output signal level (configurable in software): -20dBm to 10dBm, with 1dB increments

Interfacing

  • The main board connects to a PC through usb and communicates via a virtual serial port device; the PC software sets the frequency and other parameters by sending two-byte register write commands, and the device sends averaged vector values representing magnitude and phase of measured waves.

Table of Contents

Downloads

For pre-compiled executables go to: https://github.com/xaxaxa-dev/vna/releases

Building the software

Building on linux

Build libxavna (required for QT GUI):

sudo apt-get install automake libtool make g++ libeigen3-dev libfftw3-dev
cd /PATH/TO/vna
autoreconf --install
./configure
make
cd libxavna/xavna_mock_ui/
/PATH/TO/qmake
make

Build & run QT GUI:

sudo apt-get install libqt5charts5-dev
cd /PATH/TO/vna
cd vna_qt
/PATH/TO/qmake
make
export QT=/PATH/TO/QT # e.g. ~/qt/5.10.1/gcc_64
../run ./vna_qt

Building on mac os

brew install automake libtool make eigen fftw
cd /PATH/TO/vna
./deploy_macos.sh
# result is in ./vna_qt/vna_qt.app

Cross-compile for windows (from linux)

Download and build MXE:

cd ~/
git clone https://github.com/mxe/mxe.git
cd mxe
export QT_MXE_ARCH=386
make qt5 qtcharts cc eigen fftw pthreads

Edit mxe/settings.mk and add i686-w64-mingw32.shared to MXE_TARGETS.

Build

cd /PATH/TO/vna
export PATH="/PATH/TO/MXE/usr/bin:$PATH"
./deploy_windows.sh

Pictures

Main board (release 2)

Calibration standards (Short, Open, Load)

Screenshots

Open circuited coax stub

Antenna

Time to fault (measuring coax cable)

Block diagram

Overall architecture

Receivers & interfacing

Signal generator

FPGA logic

Parts selection

T/R version

  • fpga: XC6SLX9-2TQG144C
  • adc: AD9200
  • mixer: AD8342
  • synthesizers: ADF4350
  • rf switches: BGS14GA14
  • programmable attenuator: PE4312

Full two port version

  • fpga: XC6SLX9-2TQG144C
  • adc: ADC10080
  • adc driver: ADA4932-1
  • mixer: AD8342
  • synthesizers: ADF4351
  • rf switches: RFSW6024, BGS12PL6
  • programmable attenuator: PE4312