NanoVNA - Very tiny handheld Vector Network Analyzer
DIY的矢量网络分析仪,原项目地址https://github.com/ttrftech/NanoVNA,修改了部分电路,增加了电池管理电路,重新设计了PCB。改进了的频率算法,可以利用si5351的奇次谐波扩展支持到900MHz的测量频率,设计了金属屏蔽片,可以减少外部干扰提高测量精度,si5351直接输出的50K-300MHz频段提供优于70dB的动态,扩展的300M-600MHz波段可以提供优于50dB的动态,600M-900M波段优于40dB的动态。 起先我在38hot分享我的修改,但是后来抄板的商家无耻的宣称是他们自己修改了设计,我非常气愤,并一度暂停了相关的分享,现在重新把修改后的代码分享到github,希望这样能够方便参与改进NanoVNA的爱好者,而不是那些粗制滥造的抄板者。 我在gen111.taobao.com出售安装完整的NanoVNA,如果您是海外用户,您可以通过alibaba购买我制作的硬件。您也可以自己参考原理图设计您自己的PCB,需要指出的是模拟电路部分屏蔽与隔离都是重要的,电桥部分是经过严格匹配的,如果你需要使用谐波扩展300M以上测量需要尤为注意。在网络商发现的一些克隆品为了简化安装都错误的进行了修改,这样做是可能导致800M左右的动态小于20dB,失去了测了测量的意义。 另外设计了简单实用的PC控制软件NanoVNASharp,可以通过PC端软件导出Touchstone(snp)文件用于各种无线电设计和仿真软件,NanoVNASharp是一个单独的项目,暂无开源计划。
We remade NanoVNA based on edy555 (https://github.com/ttrftech/NanoVNA) , but modified some circuits, added battery management circuits, and redesigned the PCB. The improved frequency algorithm can use the odd harmonic extension of si5351 to support the measurement frequency up to 900MHz. The metal shield is designed to reduce the external interference and improve the measurement accuracy. The 50k-300MHz frequency range of the si5351 direct output provides better than 70dB dynamic. The extended 300M-600MHz band provides better than 50dB of dynamics, and the 600M-900M band is better than 40dB of dynamics. I share my changes on the forum(http://bbs.38hot.net/thread-756047-1-1.html) and provide the original code to users who have purchased my hardware. But a bad clone appeared and claimed to have made improvements by themselves. I was very angry and once suspended the relevant sharing. Now I will share the modified code to github, hoping to participate in the improvement of NanoVNA enthusiasts. Not those bad clones. I'm selling the full NanoVNA at gen111.taobao.com, if you are an overseas user, you can purchase the hardware I made through alibaba. you can also design your own PCB by reference schematic, it should be noted that analog circuit partial shielding and isolation are important, the bridge part is strictly matched, if you need to use harmonic extension 300M or more measurements need to pay special attention. Some clones found in the network have been modified incorrectly in order to simplify the installation, which may result in a dynamic of about 800M less than 20dB, which has lost the significance of measuring. NanoVNASharp is a PC control software can export Touchstone (snp) files which can be used for various radio design and simulation software. NanoVNASharp is a separate project with no open source plans.
编译
Build firmware
It is recommended to compile with gcc-arm-none-eabi 8, and exceptions may occur with other versions of the compiler. Please sync the CibiOS submodule before compiling.
$ git submodule update --init --recursive
MacOSX
Install cross tools and firmware updating tool.
$ brew tap px4/px4
$ brew install gcc-arm-none-eabi-80
$ brew install dfu-util
Linux
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
Normal version
$ make
AA version
$ make ANTENNA_ANALYZER=YES
Windows
Follow these instructionsto install gnu-mcu-eclipse.
Existing Code as Makefile Projiect. Project > Properties > C/C++ Build > Setting: Confirm that Toolchains is "GNU MCU Eclipse ARM Embedded GCC (arm-none-eabi-gcc)"
Project > Properties > C/C++ Build > Tool Chain Editor:
Current toolchain: ARM Cross GCC
Current builder: Gnu Make Builder
Normal version
just Build Project.
AA version
Project > Properties > C/C++ Build > Environment >Add:
Name: ANTENNA_ANALYZER
Value: YES
Build Project.
Debug use Eclipse + cmsis-dap +openocd
Debugger Configurations > GBD OpenOCD Debugging, Double click to create a new setting, Select “Debugger“ label, add config option.
-f NanoVNA_DAP.cfg
感谢edy555创建了这个项目,所有软件版权归edy555所有。 Thanks to edy555 for creating this project, all software copyrights are owned by edy555 https://github.com/ttrftech/NanoVNA; 感谢cho45对项目做出重大改进。 Thanks to cho45 for making major improvements to the project. https://github.com/cho45/NanoVNA
以下为原项目自述
The following is the original project readme
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
- Schematics
- PCB Photo
- Block Diagram
- Kit available from https://ttrf.tk/kit/nanovna