• Stars
    star
    155
  • Rank 240,864 (Top 5 %)
  • Language
    C
  • License
    GNU General Publi...
  • Created about 7 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

a simple and cheap vector network analyzer, including support software

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