Very Tiny Palmtop Vector Network Analyzer
Find a file
erikkaashoek acd944d5fa Modified FFT to avoid window function
Instead of doing a window function its better to extend the  FFT to
twice the length with the complex conjugate. Then after the FFT trow
away the imag part. As the FFT is limited to 128 point I only used the
first 64. Better would be to exten to128 and then af extending with the
complex conjugate do a 256 point FFT
2019-09-19 21:28:56 +02:00
.circleci update golang 1.10 2019-09-14 20:15:27 +09:00
.vscode env: add vscode configulation 2019-08-10 13:19:33 +09:00
ChibiOS@213d63733b UPdate to ignore FFT.c 2019-09-18 12:24:50 +02:00
doc add schematics, block diagram and pcb photo, update README.md 2017-02-03 21:25:02 +09:00
NANOVNA_STM32_F072 move enter dfu to submenu of config 2019-09-06 21:11:44 +09:00
python add time domain reflectmetry 2019-08-27 22:20:06 +09:00
.gdbinit add hard_fault handler 2017-01-22 13:03:40 +09:00
.gitignore Merge edy555 2019-09-19 08:29:56 +02:00
.gitmodules fix: correct branch of submodule ChibiOS 2019-08-11 09:48:01 +09:00
adc.c Merge all changes from edy555 release 0.1.1 2019-09-19 10:34:02 +02:00
chconf.h static inline reduce stack memory usage 2019-08-29 01:05:55 +09:00
dsp.c gain adjust for frequency 2019-08-12 20:53:49 +09:00
ffconf.h initial commit 2016-09-05 07:29:43 +09:00
fft.h change menu name to 'TRANSFORM' 2019-09-11 20:47:17 +09:00
flash.c add interpolation on cal 2017-09-15 22:13:17 +09:00
Font5x7.c view: add left arrow on menu items 2019-08-11 23:30:41 +09:00
halconf.h change adc driver not to use chibios hal 2016-12-17 13:16:56 +09:00
ili9341.c append version info screen to UI 2019-09-05 23:58:30 +09:00
main.c Modified FFT to avoid window function 2019-09-19 21:28:56 +02:00
Makefile Removed MEASURED_LENGTH and FFT.c 2019-09-19 08:10:47 +02:00
mcuconf.h change adc driver not to use chibios hal 2016-12-17 13:16:56 +09:00
nanovna.h Merge all changes from edy555 release 0.1.1 2019-09-19 10:34:02 +02:00
numfont20x24.c feat: add 'n', 'p' and pad symbol 2019-08-10 13:18:03 +09:00
plot.c Merge all changes from edy555 release 0.1.1 2019-09-19 10:34:02 +02:00
prog.sh initial commit 2016-09-05 07:29:43 +09:00
README.md doc: add contributors 2019-09-14 12:07:14 +09:00
si5351.c feat: adjust gain and frequency band, enpower LO drive strength. 2019-08-12 23:07:10 +09:00
si5351.h add argument rdiv in si5351 setupMultisynth 2017-02-02 05:18:29 +09:00
STM32F072xB.ld add save and restore dac value in flash 2017-01-02 22:03:20 +09:00
tlv320aic3204.c fix: omit adc filter 2019-08-16 05:30:55 +09:00
ui.c Merge pull request #32 from cho45/timedomain 2019-09-19 06:17:23 +09:00
usbcfg.c initial commit 2016-09-05 07:29:43 +09:00
usbcfg.h initial commit 2016-09-05 07:29:43 +09:00

NanoVNA - Very tiny handheld Vector Network Analyzer

GitHub release CircleCI

About

NanoVNA is very tiny handheld Vector Network Analyzer (VNA). It is standalone with lcd display, portable device with battery. This project aim to provide an RF gadget but useful instrument for enthusiast.

This repository contains source of NanoVNA firmware.

Prepare ARM Cross Tools

UPDATE: Recent gcc version works to build NanoVNA, no need old version.

MacOSX

Install cross tools and firmware updating tool.

$ brew tap px4/px4
$ brew install gcc-arm-none-eabi-80
$ brew install dfu-util

Linux (ubuntu)

Download arm cross tools from here.

$ wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/8-2018q4/gcc-arm-none-eabi-8-2018-q4-major-linux.tar.bz2
$ sudo tar xfj -C /usr/local gcc-arm-none-eabi-8-2018-q4-major-linux.tar.bz2
$ PATH=/usr/local/gcc-arm-none-eabi-8-2018-q4-major/bin:$PATH
$ sudo apt install -y dfu-util

Fetch source code

Fetch source and submodule.

$ git clone https://github.com/ttrftech/NanoVNA.git
$ cd NanoVNA
$ git submodule update --init --recursive

Build

Just make in the directory.

$ make

Build firmware using docker

Using this docker image without installing arm toolchain.

$ cd NanoVNA
$ docker run -it --rm -v $(PWD):/work edy555/arm-embedded:8.2 make

Flash firmware

First, make device enter DFU mode by one of following methods.

  • Jumper BOOT0 pin at powering device
  • Select menu Config->DFU (needs recent firmware)

Then, flash firmware using dfu-util via USB.

$ dfu-util -d 0483:df11 -a 0 -s 0x08000000:leave -D build/ch.bin

Or simply use make.

$ make flash

Control from PC

See python directory.

Note

Hardware design material is disclosed to prevent bad quality clone. Please let me know if you would have your own unit.

Reference

Credit

Contributors