Keyboard Shortcuts
ctrl + shift + ? :
Show all keyboard shortcuts
ctrl + g :
Navigate to a group
ctrl + shift + f :
Find
ctrl + / :
Quick actions
esc to dismiss
Likes
- Nanovna-Users
- Messages
Search
Re: Firmware Differences
DiSlord did just that in an attachment earlier in this thread. I attach it
again here for your convenience: On Fri, Oct 28, 2022 at 1:37 PM Lester Veenstra via groups.io <m0ycm= [email protected]> wrote: May I suggest (Because I am too lazy) |
Re: Firmware Differences
May I suggest (Because I am too lazy)
toggle quoted message
Show quoted text
That someone volunteer to lay out the tansformation formula from Smith Chart to real values: Smith Rm to normalized Real to actual resistance Smith Im to normalized Imaginary to actual reactance to L or C as function of Freq Lester B Veenstra K1YCM M?YCM W8YCM 6Y6Y W8YCM/6Y 6Y8LV (REformed CTM1) lester@... 452 Stable Ln (HC84 RFD USPS Mail) Keyser WV 26726 GPS: 39.336826 N 78.982287 W (Google) GPS: 39.33682 N 78.9823741 W (GPSDO) Telephones: Home: +1-304-289-6057 US cell +1-304-790-9192 Jamaica cell: +1-876-456-8898 -----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of DiSlord Sent: Thursday, October 27, 2022 12:08 PM To: [email protected] Subject: Re: [nanovna-users] Firmware Differences On Thu, Oct 27, 2022 at 07:45 AM, John N0TA wrote: Base Smitch diagram value: Re Im Also Re Im more universal for S11 and S21 some (so i use it as default) R+jX calculation depend from channel and connect mode (for S21 serial or shunt) |
Re: Firmware Differences
Hi Bob,
toggle quoted message
Show quoted text
You are correct about the type of resistors to use for measurements.? I mostly use BNC cables and devices, so I have built cal standards and measurement standards using BNC connectors as shown in the attachment.? I have tried to make my measurements as close to the reference plane as possible.? The resistors I use are 0805 film resistors and the capacitors are 0805 ceramic for the most part.? Since most of my work is done at HF, the calibration tolerances are not as tight as for VHF and UHF. Tom?? W0IVJ On 10/27/2022 6:00 AM, Bob Ecclestone VK2ZRE wrote:
Hello Tom, |
Re: NanoVNA Saver - Display Smith Cart
On 10/28/22 8:41 AM, Charlie N2MHS via groups.io wrote:
I can see the SMith Chart on my H4. Is there a way to see it on my PC (W11 64bit)Doesn't Saver display it by default? Look at the button in lower left for "Display Settings..." Then, in the dialog, you can set the plot formats.. |
On Fri, Oct 28, 2022 at 03:51 PM, Ho-Ro wrote:
Hello Martin, Thank you very much for the detailed description. My print out of the SMITH menu is: SMITH LIN LOG REIM RX RLC GB GLC RpXp RpLC <- BACK I think this discussion is of still on topic. I will try to adopt your Python program to the tinySA, which has a similar structure. I like this spectrum analyzer very much. See: /g/tinysa/messages 73, Rudi DL5FA |
On Fri, Oct 28, 2022 at 02:47 PM, Rudi wrote:
Well Rudi, the FW is organised as a tree in ui.c. The top menu is called "menu_top". This construction above searches all lines of ui.c (that I had read into the python variable ui and that I iterate all over again with "for line in ui:") for an entry that contains 'const menuitem_t menu_top[]' -> line 2071 of ui.c (line 2065 from DiSlord's src). "const menuitem_t menu_top[] = {" This python construct is called "formatted string" and it helps us poor C printf programmers to build nice strings also in python. I'm just searching for the definition of a menu block and then read all menu entries in this block until I encounter "MT_NONE" (=end of menu), if one entry is a submenu, I search for this submenu and read all entries, and if there's another submenu... you get the idea. So this line just searches for f'const menuitem_t {this_menu}[]', where the variable "this_menu" holds the name of the menu I'm currently checking, e.g. 'menu_top'. -> it's all no rocket science, years ago I used perl for this kind of parsing, but this language is to much "write only" for me, also because of TIMTOWTDI; python is more strict and can be understood also one year later (without massive commenting). BTW - how looks your part below the "SMITH" menu points? This is my 1st SMITH section: FORMAT S11 (REFL) LOGMAG PHASE DELAY SMITH LIN LOG Re + Im R + jX R + L/C G + jB G + L/C Rp + jXp Rp + L/C <- BACK Do you have the "Re + Im" entry or is it "REIM"? The s11smith menu structure in "ui.c" has only the token "MS_REIM" const menuitem_t menu_marker_s11smith[] = { { MT_ADV_CALLBACK, MS_LIN, "%s", menu_marker_smith_acb }, { MT_ADV_CALLBACK, MS_LOG, "%s", menu_marker_smith_acb }, { MT_ADV_CALLBACK, MS_REIM,"%s", menu_marker_smith_acb }, { MT_ADV_CALLBACK, MS_RX, "%s", menu_marker_smith_acb }, { MT_ADV_CALLBACK, MS_RLC, "%s", menu_marker_smith_acb }, { MT_ADV_CALLBACK, MS_GB, "%s", menu_marker_smith_acb }, { MT_ADV_CALLBACK, MS_GLC, "%s", menu_marker_smith_acb }, { MT_ADV_CALLBACK, MS_RpXp,"%s", menu_marker_smith_acb }, { MT_ADV_CALLBACK, MS_RpLC,"%s", menu_marker_smith_acb }, { MT_NONE, 0, NULL, menu_back } // next-> menu_back }; The translation is in "plot.c", where I search all "[MS_...]" lines and extract the 1st string in double quotes, e.g. "Re + Im" for "MS_REIM". const marker_info_t marker_info_list[MS_END] = { // Type name format get real get imag [MS_LIN] = {"LIN", "%.2f %+.1f" S_DEGREE, linear, phase }, [MS_LOG] = {"LOG", "%.1f" S_dB " %+.1f" S_DEGREE, logmag, phase }, [MS_REIM] = {"Re + Im", "%F%+jF", real, imag }, [MS_RX] = {"R + jX", "%F%+jF" S_OHM, resistance, reactance }, [MS_RLC] = {"R + L/C", "%F" S_OHM " %F%c", resistance, reactance }, // use LC calc for imag [MS_GB] = {"G + jB", "%F%+jF" S_SIEMENS, conductance, susceptance }, [MS_GLC] = {"G + L/C", "%F" S_SIEMENS " %F%c", conductance, parallel_x }, // use LC calc for imag [MS_RpXp] = {"Rp + jXp", "%F%+jF" S_OHM, parallel_r, parallel_x }, [MS_RpLC] = {"Rp + L/C", "%F" S_OHM " %F%c", parallel_r, parallel_x }, // use LC calc for imag [MS_SHUNT_RX] = {"R+jX SHUNT", "%F%+jF" S_OHM, s21shunt_r, s21shunt_x }, [MS_SERIES_RX] = {"R+jX SERIES","%F%+jF" S_OHM, s21series_r, s21series_x }, }; But we can move this off-topic discussion to another point in order not to clutter this topic. -> |
On Fri, Oct 28, 2022 at 01:18 PM, Ho-Ro wrote:
Hello Martin, Thank you very much for your quick help. With the source code from github it works now without flaw :-) It is amazing what you can do with Python, if you know how to use it :-) I like Python very much, but I have to learn a lot when I look at your source code. What caused me head scratching is in line 62: if f'const menuitem_t {this_menu}[]' in line: When I add in the next line: print(line, " - ", this_menu) # RR: debug I get e.g.: const menuitem_t menu_dfu[] = { - menu_dfu Do you please have a link to an explanation for that construct? 73, Rudi DL5FA |
On Thu, Oct 27, 2022 at 07:47 PM, Rudi wrote:
Hi Rudi, I have no clue what goes wrong o your side, I copy/pasted the code here from the group and it works fine. (I suspected that the forum SW did some strange formatting) As a quick check add these two lines at line 26 (directly after the line with ' ms_dict[ key ] = val # put in dictionary') without any space to the left and show the output. print( ms_dict ) exit() Nevertheless the code with a safety check for you (and maybe other mac user) is now in my GitHub: Martin |
Re: Firmware Differences
S parameter - just complex number, no unit
Range from -1 to 1 (real and imaginary part) Show how change reflect/thru signal in amplitude / phase from reference S11 = reflect / reference Re Im format not equal Amplitude Phase (you can select this format in Smitch marker type as Linear or Log values) but possible convert. But anyway no unit |
Re: How to use my NanoVNA-H4 to test resonant frequency of a tower?
Don't know of any reason why it wouldn't work. However ... I'm guessing the wire vertical is NOT grounded at the base of it, but the tower is? That may have some effect on it. Maybe if you could test further up the tower? AM broadcast towers can be either series fed, where the base of the tower is insulated from ground and the tower is fed against ground at the base, or shunt fed, where the base of the tower is grounded and the tower is fed with a wire connected some distance up the tower from ground. Consider how this may affect your ability to measure the resonant frequency. And does the tower have guy wires? If so, I assume they are grounded, shunting to ground any potential resonances, or possibility creating a number of "sub-resonances."
|
Re: How to use my NanoVNA-H4 to test resonant frequency of a tower?
This thread had me thinking and wondering if anyone has successfully determined the resonant frequency of a tower using a Nano? At a friend's recommendation I constructed a 1' x 2' loop and this worked to determine the resonant frequency of a wire vertical but no luck on a tower.
Thanks, Mike W9RE |
On Thu, Oct 27, 2022 at 05:59 PM, Ho-Ro wrote:
This is my current python code:Hello Ho-Ro, Thank you very much for this great improvement of your nanoVNA menu-map program :-) I am working with MacOS Mojave, and tried it now with Python 3.9. The files ui.c and plot.c are from Unfortunately I got a traceback: $ python3 Ho-Ro_nanoVNA_menu_readout-2.py DISPLAY TRACE TRACE 0 TRACE 1 TRACE 2 TRACE 3 STORE/CLEAR TRACE STORE/CLEAR TRACE A STORE/CLEAR TRACE B STORE/CLEAR TRACE C <- BACK FORMAT S11 (REFL) LOGMAG PHASE DELAY SMITH Traceback (most recent call last): File "/Volumes/DAT/HDA8/INSTALL/Develop/Afu/NanoVNA/Menu_map/Ho-Ro_nanoVNA_menu_readout-2.py", line 127, in <module> show_menu( 'menu_top', 0 ) File "/Volumes/DAT/HDA8/INSTALL/Develop/Afu/NanoVNA/Menu_map/Ho-Ro_nanoVNA_menu_readout-2.py", line 124, in show_menu show_menu( next_menu, level + 1 ) File "/Volumes/DAT/HDA8/INSTALL/Develop/Afu/NanoVNA/Menu_map/Ho-Ro_nanoVNA_menu_readout-2.py", line 124, in show_menu show_menu( next_menu, level + 1 ) File "/Volumes/DAT/HDA8/INSTALL/Develop/Afu/NanoVNA/Menu_map/Ho-Ro_nanoVNA_menu_readout-2.py", line 124, in show_menu show_menu( next_menu, level + 1 ) File "/Volumes/DAT/HDA8/INSTALL/Develop/Afu/NanoVNA/Menu_map/Ho-Ro_nanoVNA_menu_readout-2.py", line 106, in show_menu menu_text = f'{ms_dict[ param ]}' KeyError: 'MS_LIN' Your python code is very clever, but too complicated for me to follow :-( Could you please have a look what is the cause of the tracebak? 73, Rudi DL5FA |
Re: Firmware Differences
Not that I have any real need to know but I am just curious what the "m" abbreviation stands for in the raw data example of "644m + 53.2m"? Does it happen to represent milliVolts RMS, milliVolts PTP calculated from the ADC output >measurement values or possibly something else?m - milli u - micro M - mega G - giga And so on Re Im value - just complex number 644m + 53.2mj = 0.644 + 0.0532j |
to navigate to use esc to dismiss