I can`t upload my version chprintf.c to ChibiOS\os\hal\lib\streams upload it to root :( now support print float and Suffix if use example %.1F on 1.234e-3 print 1.234m, %F print 1.23m now support + flag %+d on 8 print +8, %+d on -8 print -8 now support freq output if use %q example %q on 1234567890 print 1.234 567 890 GHz, %.8q print 1.234567GHz fix rounding errors on print float example if print use %.2f on 2.199 print 2.20 (before 2.19) Use it in code - made more compact (save about 2k bytes) and easy display values (set output more digits after . for some values) Made some font glyph more compact, allow 3px glyph More correct create frequencies table on big span (not use float operations), also produce more compact code Use double value input from keyboard (not lost Hz on input) Set sweep_points as uint Optimize set_sweep_frequency size Fix freq commands broken after freq set as uint32 (add str to uint32 functions for freq bigger then 2 147 483 647): cmd_freq cmd_offset cmd_threshold cmd_scan cmd_sweep Define _isdigit macro (replace isdigit() function, its too big) Rewrite std universal atoi() to more compact my_atoi and write new unsigned variant my_atoui |
||
|---|---|---|
| .circleci | ||
| .vscode | ||
| ChibiOS@669d4bbc8d | ||
| doc | ||
| NANOVNA_STM32_F072 | ||
| python | ||
| .gdbinit | ||
| .gitignore | ||
| .gitmodules | ||
| adc.c | ||
| chconf.h | ||
| chprintf.c | ||
| dsp.c | ||
| ffconf.h | ||
| fft.h | ||
| flash.c | ||
| Font5x7.c | ||
| halconf.h | ||
| ili9341.c | ||
| main.c | ||
| Makefile | ||
| mcuconf.h | ||
| nanovna.h | ||
| numfont20x22.c | ||
| plot.c | ||
| prog.sh | ||
| README.md | ||
| si5351.c | ||
| si5351.h | ||
| STM32F072xB.ld | ||
| tlv320aic3204.c | ||
| ui.c | ||
| usbcfg.c | ||
| usbcfg.h | ||
NanoVNA - Very tiny handheld Vector Network Analyzer
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 gcc-arm-none-eabi-8-2018-q4-major-linux.tar.bz2 -C /usr/local
$ 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 and without installing arm toolchain, you can build the firmware.
$ 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
Companion Tools
There are seveal numbers of great companion PC tools from third-party.
- NanoVNASharp Windows software by hugen79
- NanoVNA WebSerial/WebUSB by cho45
- Android NanoVNA app by cho45
- NanoVNASaver by mihtjel
- TAPR VNAR4 supports NanoVNA by erikkaashoek
- see python directory to use NanoVNA with Python and Jupyter Notebook.
Documentation
- NanoVNA User Guide (google translate) by cho45
Reference
- Schematics
- PCB Photo
- Block Diagram
- Kit available from https://ttrf.tk/kit/nanovna
Note
Hardware design material is disclosed to prevent bad quality clone. Please let me know if you would have your own unit.