Giter Club home page Giter Club logo

xaxaxa-dev / vna Goto Github PK

View Code? Open in Web Editor NEW
152.0 32.0 44.0 8.37 MB

a simple and cheap vector network analyzer, including support software

Home Page: https://www.kickstarter.com/projects/1759352588/xavna-a-full-featured-low-cost-two-port-vna

License: GNU General Public License v2.0

Makefile 0.17% C 37.62% M4 0.39% C++ 11.51% AGS Script 1.45% GLSL 16.08% Python 3.77% VHDL 25.78% QMake 1.23% Shell 0.73% CMake 1.26%
vna fpga rf pcb geda

vna's People

Contributors

cbalint13 avatar kezii avatar roman3017 avatar ryandesign avatar xaxaxa avatar xaxaxa-dev-0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vna's Issues

Spectrum Analyzer mode

Would it be possible to add a Spectrum Analyzer function/mode?
Just scan the desired band and display the input of Rx port.
Maybe could include a "Thru" measurement to calibrate the receiver for power measurement for the Band that will be scanned.

Linux build issues

I do not usually use QT, and am not particularly familiar with the finer points of OT development. I prefer to use Mint 18.3 (Sarah) Cinnamon on Ubuntu Xenial.

I first attempted to build according to the instructions on in the README.md. I was unable to locate libqt5charts5-dev (or libqt5charts5) for retrieval. It is not in the APT repository, and I don't know where to find it elsewhere.

Fortunately (sort of) I have Ubuntu 18.04 LTS Bionic Beaver on a couple of machines for the moment. I was able to build it successfully there..

I also wondered if the command line "../run ./vna_qt" is always required to run the software? It might be nicer to have a standalone executable.

Dave

USB feature - question

I am using your ulpi_serial module to implement a simple usb fs peripheral. I am using it on an Artix A7 FPGA. I have no problem with the compilation. On connecting, Windows recognises that a device has been connected and tries to enumerate it but always fails. I could use the Xilinx ILA to see that the usb device receives the GET_DESCRIPTOR request and also sends an acknowledge by writing 0x42 to the ULPI chip. It appears though that the necessary USB transmission is never generated as the PC keeps repeating the GET_DESCRIPTOR message till the whole operation times out.

My PHY is a USB3300. Did you guys face any similar issues whe trying to get USB to work? Any tips would be appreciated.

Regards,

HW and SW review

I received the XaVNA in Netherlands and tested it with a WG antenna at 2700-3000 MHz.

  1. The board seems to be of high built quality, however it appears to be a problem with the port SMA connectors and the aluminum housing. As the connectors are not secured on the enclosure, any movement of the measurement cables is transferred to the edge SMA connectors and to the board itself making the measurements jump around by 2-3 db or more. Not good for consistency. Is this issue has also been identified above as "Port Length Extension Support"? Or refers to electrical extension of the ports? It should have an easy fix at the following production batch.

  2. I used the device with a Windows 10 DELL notebook. The SW is intuitive, easy to use and fast responding. However, I could not find a way to adjust the vertical scale in order to zoom into the measurements as the full dynamic range is always being displayed. That restricted the displayed accuracy to a few db. In this way could not take advantage of the measurement precision. It would be absolutely necessary to provide the option to adjust the min and the max value of the vertical scale (mainly in db and secondary in deg).

  3. The measurement export function is available only for Touchstone format and thus a specialized viewer is required to view and manipulate the measurements . It would be very helpful if there could be an output of the measurements in db and deg units as a generic Delimited Text File (DTF) that could be easily imported into Excel, MATLAB or any other application. Screen exports as .jpg or .pdf would also be helpful although there is always the workaround of screen capture.

  4. The device applications would be vastly expanded if the Transmit and Receive functions could be used independently as a CW RF generator (adjust frequency and power) and as a calibrated Spectrum Analyzer and Peak Power meter (using the cursor). I think that almost all the code is there, just need some user interface.

Thanks for a really good product with a potential to become much better and versatile.

Time/Space vs Frequency VNA measurements

There are several cases where VNA measurements need to be taken at a single frequency over time or space instead of frequency. For example, when testing a multi-element (phased array) antenna and need to check amplitude and phase (S21) from feed point to each element and/or reverse.
Would it be possible to select first a single Frequency and Power setting and then select:
(a) either a Time period of measurement (in Seconds)
or (b) a number of discrete measurement steps (and advance manually from one to next) ?
You would then need to rescale the x-axis to accommodate the selected time period (in sec) or the number of discrete steps.
You could also ask user specify the number of samples to average at each step.
Finally, save the measurement to a text delimited file format for further processing, like Near-to-Far field transformation by MATLAB.
If such a measurement mode could be possible, would open for xaVNA a whole new range of applications that are not found at any low-cost VNAs.

any way to stretch low end down to ~75MHz?

This is a fascinating project, thank you for your hard work!

I am wondering if it is possible to tweak the component selection to extend the low end down to include the broadcast FM range (88-108MHz), as I'd like to experiment with some filters in that area. Is such a thing possible with this design?

Timing for new batch available for order

Hi,

I sent an email to the email at the 'contact us' page on the xaxax web site but didn't hear back. Another batch for sale was apparently due in April, have these arrived or sold out? Do let me know how I can order an xaVNA T/R two port.

Thanks - and nice work with the development of this.

Regards,
Dean

Directional coupler detail

Is there any documentation on the directional coupler? It looks like some kind of large ferrite over part of the board, but I can't see any information other than that the PCB has a stripline.

TODO: add user manual

Add a readme/wiki page detailing how to use the software, perform calibration and measurements, etc.

Feature request: SCPI control of the VNA

I have the 2-port version of the VNA and I really like it, but the one feature I really would like to see is ability to control the software remotely. The standard method for controlling electronic test equipment is through SCPI commands. Would it be possible to add in the software network connectivity remote control interface? A headless app with no gui, and just the remote interface would work great for this kind of application.

pcb/sym is missing eight symbols

When starting gschem main3_2.sch after doing the setup recommended in the README.md, I still get the following missing symbols. Please add these files.

Component [ADV7123.sym] was not found in the component library
Component [ada4932-1.sym] was not found in the component library
Component [adc10065.sym] was not found in the component library
Component [bgs12pl6.sym] was not found in the component library
Component [ics511.sym] was not found in the component library
Component [pl133.sym] was not found in the component library
Component [rfsw6024.sym] was not found in the component library
Component [s27kl0641.sym] was not found in the component library

Interpolate calibration for changed frequency range

Is it realistic to have the way to calibrate across the whole frequency range, with a lot of points, save this calibration, and then scan only a subset of the frequency range for the actual usage?

For example, I can set everything up, start a super big 10 minute calibration, save it, and from that point I can change all the frequency & resolutions I want and it interpolates the calibration

I don't think that it would matter that much given the relatively limited precision of the instrument

Part numbers for U204, U205 and U206

Hey,

I'm missing the part numbers for these filters. I guess one of them is LP0603A2140ANTR and another is LP0603A0947ANTR, but which filter is used where?

Also, there is a mismatch between PE4302 in the schematic and PE4312 in the description and AP4329 in the schematic and AP4319 in the BOM.

I would love to get some clarification, and ideally an up-to-date BOM for main2_2. Thanks!

Best
Niklas

Crash when applying SOLT UXYZ or modified UXYZ calibration

App crash on Mac and Windows when applying SOLT UXYZ or modified UXYZ calibration data.

Process: vna_qt [62307]
Path: /Applications/vna_qt.app/Contents/MacOS/vna_qt
Identifier: vna_qt
Version: 0
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: vna_qt [62307]
User ID: 501

Date/Time: 2019-01-14 15:35:06.379 -0800
OS Version: Mac OS X 10.14.1 (18B2107)
Report Version: 12
Bridge OS Version: 3.1 (16P1582)
Anonymous UUID: 874C6354-2402-A038-F2C8-536EF4AFFF94

Sleep/Wake UUID: 1F95E6F7-4F14-4962-8174-6D0DD3298828

Time Awake Since Boot: 1900000 seconds
Time Since Wake: 26000 seconds

System Integrity Protection: enabled

Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY

Application Specific Information:
abort() called
terminating with uncaught exception of type std::runtime_error: matrix rank is not full! should be 4, is 3

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff7eeccb86 __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff7ef82c50 pthread_kill + 285
2 libsystem_c.dylib 0x00007fff7ee361c9 abort + 127
3 libc++abi.dylib 0x00007fff7c4b8231 abort_message + 231
4 libc++abi.dylib 0x00007fff7c4b83b5 default_terminate_handler() + 241
5 libobjc.A.dylib 0x00007fff7dcc1c8f _objc_terminate() + 105
6 libc++abi.dylib 0x00007fff7c4c3dfe std::__terminate(void (*)()) + 8
7 libc++abi.dylib 0x00007fff7c4b786e __cxa_rethrow + 99
8 libobjc.A.dylib 0x00007fff7dcbfb6e objc_exception_rethrow + 40
9 com.apple.CoreFoundation 0x00007fff51baaac3 CFRunLoopRunSpecific + 618
10 com.apple.HIToolbox 0x00007fff50e43b35 RunCurrentEventLoopInMode + 293
11 com.apple.HIToolbox 0x00007fff50e43774 ReceiveNextEventCommon + 371
12 com.apple.HIToolbox 0x00007fff50e435e8 _BlockUntilNextEventMatchingListInModeWithFilter + 64
13 com.apple.AppKit 0x00007fff4f0ffeb7 _DPSNextEvent + 997
14 com.apple.AppKit 0x00007fff4f0fec56 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1362
15 com.apple.AppKit 0x00007fff4f0f8cb9 -[NSApplication run] + 699
16 libqcocoa.dylib 0x00000001050873ad 0x10505e000 + 168877
17 org.qt-project.QtCore 0x0000000102fa9a72 QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag) + 418
18 org.qt-project.QtCore 0x0000000102fae692 QCoreApplication::exec() + 402
19 com.yourcompany.vna-qt 0x0000000101f7a94f main + 383
20 libdyld.dylib 0x00007fff7ed8e08d start + 1

Thread 1:: com.apple.NSEventThread
0 libsystem_kernel.dylib 0x00007fff7eec6c2a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff7eec7174 mach_msg + 60
2 com.apple.CoreFoundation 0x00007fff51babda2 __CFRunLoopServiceMachPort + 337
3 com.apple.CoreFoundation 0x00007fff51bab2f1 __CFRunLoopRun + 1654
4 com.apple.CoreFoundation 0x00007fff51baaa28 CFRunLoopRunSpecific + 463
5 com.apple.AppKit 0x00007fff4f108add _NSEventThread + 160
6 libsystem_pthread.dylib 0x00007fff7ef80339 _pthread_body + 126
7 libsystem_pthread.dylib 0x00007fff7ef832a7 _pthread_start + 70
8 libsystem_pthread.dylib 0x00007fff7ef7f445 thread_start + 13

Thread 2:: Dispatch queue: NSCGSDisableUpdates
0 libsystem_kernel.dylib 0x00007fff7eec6c2a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff7eec7174 mach_msg + 60
2 com.apple.SkyLight 0x00007fff77cb7c37 CGSUpdateManager::enable_updates_common() + 539
3 com.apple.SkyLight 0x00007fff77c5b07f CGSUpdateManager::enable_update(unsigned long long) + 317
4 libdispatch.dylib 0x00007fff7ed3ed53 _dispatch_call_block_and_release + 12
5 libdispatch.dylib 0x00007fff7ed3fdcf _dispatch_client_callout + 8
6 libdispatch.dylib 0x00007fff7ed46124 _dispatch_lane_serial_drain + 618
7 libdispatch.dylib 0x00007fff7ed46bdc _dispatch_lane_invoke + 388
8 libdispatch.dylib 0x00007fff7ed4f090 _dispatch_workloop_worker_thread + 603
9 libsystem_pthread.dylib 0x00007fff7ef7f63c _pthread_wqthread + 409
10 libsystem_pthread.dylib 0x00007fff7ef7f435 start_wqthread + 13

Thread 3:
0 libsystem_pthread.dylib 0x00007fff7ef7f428 start_wqthread + 0
1 ??? 0x0000000054485244 0 + 1414025796

Thread 4:
0 libsystem_kernel.dylib 0x00007fff7eec88a6 read + 10
1 libxavna.0.dylib 0x0000000101fd3d09 readValue2(int, int) + 857
2 libxavna.0.dylib 0x0000000101fd41bb xavna_default::read_values_raw(double*, int) + 91
3 libxavna.0.dylib 0x0000000101fd5928 xaxaxa::VNADevice::_mainThread() + 408
4 libxavna.0.dylib 0x0000000101fd5629 xaxaxa::mainThread(void*) + 9
5 libsystem_pthread.dylib 0x00007fff7ef80339 _pthread_body + 126
6 libsystem_pthread.dylib 0x00007fff7ef832a7 _pthread_start + 70
7 libsystem_pthread.dylib 0x00007fff7ef7f445 thread_start + 13

Thread 5:
0 libsystem_pthread.dylib 0x00007fff7ef7f428 start_wqthread + 0
1 ??? 0x0000000054485244 0 + 1414025796

Thread 6:
0 libsystem_pthread.dylib 0x00007fff7ef7f428 start_wqthread + 0
1 ??? 0x0000000054485244 0 + 1414025796

Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x0000000000000000 rbx: 0x000000011149f5c0 rcx: 0x00007ffeedca4988 rdx: 0x0000000000000000
rdi: 0x0000000000000307 rsi: 0x0000000000000006 rbp: 0x00007ffeedca49c0 rsp: 0x00007ffeedca4988
r8: 0x00007ffeedca4848 r9: 0x00007ffeedca4a20 r10: 0x0000000000000000 r11: 0x0000000000000206
r12: 0x0000000000000307 r13: 0x0000003000000008 r14: 0x0000000000000006 r15: 0x000000000000002d
rip: 0x00007fff7eeccb86 rfl: 0x0000000000000206 cr2: 0x00007fffb1bc1188

Logical CPU: 0
Error Code: 0x02000148
Trap Number: 133

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.