Welcome to the new FlexRadio Community! Please review the new Community Rules and other important new Community information on the Message Board.
If you are having a problem, please check the Help Center for known solutions.
Need technical support from FlexRadio? It's as simple as Creating a HelpDesk ticket.
Need technical support from FlexRadio? It's as simple as Creating a HelpDesk ticket.
Need the latest SmartSDR and Power Genius Software?
SmartSDR v3.1.12 and the SmartSDR v3.1.12 Release Notes. | SmartSDR v2.6.2 and the SmartSDR v2.6.2 Release Notes.
SmartSDR v1.12.1 and the SmartSDR v1.12.1 Release Notes. | Power Genius XL Firmware v3.4.16. | Power Genius XL Utility v2.2.10.
SmartSDR v3.1.12 and the SmartSDR v3.1.12 Release Notes. | SmartSDR v2.6.2 and the SmartSDR v2.6.2 Release Notes.
SmartSDR v1.12.1 and the SmartSDR v1.12.1 Release Notes. | Power Genius XL Firmware v3.4.16. | Power Genius XL Utility v2.2.10.
ARRL FMT -- getting the most accurate frequency
Tonight is the ARRL Frequency Measuring Test (FMT) where you can test your skills, and the capabilities of your radio, measuring an on-air signal with the best accuracy you can muster:
http://www.arrl.org/frequency-measuring-test
The FLEX-6000 radios are well suited to perform in the challenge, but there's some important information you should know before having a go at it. I apologize in advance that this will not be a complete "how to" guide and I hope that some others may be able to answer questions on what I've written as they arise. I've been meaning to post this for several weeks and just haven't had the time.
In a direct sampling radio like the FLEX-6000, there is an Direct Digital Synthesizer (DDS) or Numerically Controlled Oscillator (NCO) performing the tuning of receivers in the digital domain. In the FLEX-6000, there is a complex set of DDSs and mixers that control the final output frequency of the radio. We've not previously exposed how all this works in the radio and so the opaqueness of this part of the radio makes competing in the FMT hard. So this post will provide enough information to get a much more accurate measurement for those that are interested. The capabilities here were developed for a government customer of ours and have been shown to get frequency results within a few hundred microHertz (yes, microHertz). It is important to point out that doppler shift in the ionosphere and other considerations will affect your on-air accuracy, but the FLEX-6000 should get you closer that any other amateur radio I know of.
Note that for best results, you will need to have a FLEX-6500 or FLEX-6700 with either the on-board GPS option or a 10MHz reference that is derived from a GPS locked oscillator (or cesium, rubidium, hydrogen maser, etc). A FLEX-6300 will simply not have the same level of accuracy, but you can have a go after using the WWV calibration built into the radio. Incidentally, if you are using a FLEX-6500 or 6700 that is locked to a reference, ensure that you have your frequency offset setting set to ZERO.
THEORY
When a DDS is tuned, it is supplied with a frequency tuning word (FTW). The frequency tuning word is limited to a set number of bits and most of ours in the radio are 30-32 bits. Every frequency cannot be represented with 32 bits, of course, and the error in any given DDS can be calculated by taking the sampling radio divided by 2^<# of bits>. In our case, this would be 245,760,000 / 2^32 = 57.22mHz (millihertz). This means that the radio can be off as much as 57mHz at any time. Some changes were made a few months ago that limit this to +/- 28.61mHz (SmartSDR v1.10.9 and later). In addition, a new API command was added that will actually report the error for both the receiver and transmitter:
http://wiki.flexradio.com/index.php?title=TCP/IP_slice#GET_ERROR
So you can tune a receiver and then connect to the radio using the API and request the error. Then you can use available software to measure the audio frequency of a tone in your passband and make the adjustment provided by the get_error command. Details on using the API are beyond the scope of this quick posting so you'll have to look around to get that information. The short version is that you find your radio's IP address, use a telnet client to telnet to it and then issue the get_error command after you've tuned your slice receiver.
I hope this helps someone use the FLEX-6000 in the FMT and I'd be glad to answer questions as I have time. Again, our military customers use this to get within a couple hundred microHertz so you should be able to do very well in the FMT by applying this information.
http://www.arrl.org/frequency-measuring-test
The FLEX-6000 radios are well suited to perform in the challenge, but there's some important information you should know before having a go at it. I apologize in advance that this will not be a complete "how to" guide and I hope that some others may be able to answer questions on what I've written as they arise. I've been meaning to post this for several weeks and just haven't had the time.
In a direct sampling radio like the FLEX-6000, there is an Direct Digital Synthesizer (DDS) or Numerically Controlled Oscillator (NCO) performing the tuning of receivers in the digital domain. In the FLEX-6000, there is a complex set of DDSs and mixers that control the final output frequency of the radio. We've not previously exposed how all this works in the radio and so the opaqueness of this part of the radio makes competing in the FMT hard. So this post will provide enough information to get a much more accurate measurement for those that are interested. The capabilities here were developed for a government customer of ours and have been shown to get frequency results within a few hundred microHertz (yes, microHertz). It is important to point out that doppler shift in the ionosphere and other considerations will affect your on-air accuracy, but the FLEX-6000 should get you closer that any other amateur radio I know of.
Note that for best results, you will need to have a FLEX-6500 or FLEX-6700 with either the on-board GPS option or a 10MHz reference that is derived from a GPS locked oscillator (or cesium, rubidium, hydrogen maser, etc). A FLEX-6300 will simply not have the same level of accuracy, but you can have a go after using the WWV calibration built into the radio. Incidentally, if you are using a FLEX-6500 or 6700 that is locked to a reference, ensure that you have your frequency offset setting set to ZERO.
THEORY
When a DDS is tuned, it is supplied with a frequency tuning word (FTW). The frequency tuning word is limited to a set number of bits and most of ours in the radio are 30-32 bits. Every frequency cannot be represented with 32 bits, of course, and the error in any given DDS can be calculated by taking the sampling radio divided by 2^<# of bits>. In our case, this would be 245,760,000 / 2^32 = 57.22mHz (millihertz). This means that the radio can be off as much as 57mHz at any time. Some changes were made a few months ago that limit this to +/- 28.61mHz (SmartSDR v1.10.9 and later). In addition, a new API command was added that will actually report the error for both the receiver and transmitter:
http://wiki.flexradio.com/index.php?title=TCP/IP_slice#GET_ERROR
So you can tune a receiver and then connect to the radio using the API and request the error. Then you can use available software to measure the audio frequency of a tone in your passband and make the adjustment provided by the get_error command. Details on using the API are beyond the scope of this quick posting so you'll have to look around to get that information. The short version is that you find your radio's IP address, use a telnet client to telnet to it and then issue the get_error command after you've tuned your slice receiver.
I hope this helps someone use the FLEX-6000 in the FMT and I'd be glad to answer questions as I have time. Again, our military customers use this to get within a couple hundred microHertz so you should be able to do very well in the FMT by applying this information.
8
Leave a Comment
Categories
- 67 Community Topics
- 1.9K New Ideas
- 118 The Flea Market
- 5.4K Software
- 4.9K SmartSDR for Windows
- 35 SmartSDR for Maestro and M models
- 84 SmartSDR for Mac
- 143 SmartSDR for iOS
- 149 SmartSDR CAT
- 66 DAX
- 278 SmartSDR API
- 7K Radios and Accessories
- 5.8K FLEX-6000 Signature Series
- 553 Maestro
- 14 FlexControl
- 721 FLEX Series (Legacy) Radios
- 149 Power Genius Products
- 117 Power Genius XL Amplifier
- 10 Power Genius Utility
- 22 Tuner Genius
- 41 Shack Infrastructure
- 22 Networking
- 88 Remote Operation (SmartLink)
- 50 Contesting
- 127 Peripherals & Station Integration
- 61 Amateur Radio Interests
- 403 Third-Party Software
Comments
Thanks
http://www.isup.me/www.arrl.org
LoTW and other sites on that server are up, however.
Like just now there was some weird looking pulsing signal at about 14.097.900
Thanks
I'm doing it the old fashion way with the FMT code that comes with WSPR.
73
roger
There are a few many others
http://downdetector.com
http://www.isitdownrightnow.com/
http://currentlydown.com/
etc etc
Basically a lot of bored/creative programmers etc who like creating useful things for public consumption.
AND it's not limited to websites. There are toolbars, browser extensions, and even access via REST APIs.
Ever wondered what your favorite website is running? This is an oldie but goldie:
http://toolbar.netcraft.com/site_report
Since I run a large website as my day job I spend half my day looking for tools to make my life easier (or I write my own when I don't find them).
I am assuming that all 6700 will have the same offset when tuned to the same frequency. I tried to use TELNET to use the get_error command; but have been unsuccessful so far. This is my first time trying to use the API. Just out of curiosity, I used the following frequencies:
14.120 USB
7.063 USB
3.597 USB.
I used those as the base frequency and measured the frequency of the tone with a frequency counter locked to the GPS 10 MHz.
Chances are very good that others may have used the same frequencies. If you get a chance, could you please post the error for those frequencies if you have the time.
Thanks,
Tim K8XS
I got that far. At the telnet prompt, I issue the command o 192.168.1.10 4992
(where 192.168.1.10 is the IP of my 6700) . This opens a connection with the 6700 and the responds with a boatload of status information. It appears that each item of status is separated by a LF character and not a CRLF because the data just scrolls across my telnet window and drops to the next line (without a return to column 1) for each new status item. After that and with the 6700 being tuned to the frequency of interest, I issue the command c21|slice get_error 0 CRLF to get the error for slice 0 and the terminal just hangs there. It appears that I get no response. At this point, I am stuck. Over.
Interesting that the value changes based on how you got there. I noticed something else that was interesting. I thought that even if I could not use get_error, I could measure the error. I used two different signal generators ( a Rhodes and Schwarz and a PTS) that were locked to the same GPS 10 MHz reference as the radio and frequency counter. I set the 6700 to a frequency that I used in the FMT. I then set a sig gen to a frequency 1kHz higher than the radio. That should get me a 1kHz tone when the radio is set to USB. I ran the test and I was getting what seemed to be reasonable results. I measured something like 18.6mHz on one frequency and 23.4 mHz on another , etc. The thing that seemed to give the values credibility was that I got the same answer regardless of the signal generator I used. Then for some reason, I resized the SmartSDR window. Well I was quite surprised to see that the value on the frequency counter changed. I had not changed the radio tuning or the sig gen setting but the 1kHz tone changed in value. Not by a lot. Maybe on the order of a couple of mHz or 10s of mHz. So, there must be something else going on that I do not understand.
Steve, thank you for your time.
C:> telnet
Welcome to Microsoft Telnet Client
Escape Character is 'CTRL+]'
Microsoft Telnet> o 192.168.1.10 4992
Connecting To 192.168.1.10...
V1.2.0.0
HA07786D6
M10000001|Client connected from IP 192.168.1.11
SA07786D6|radio slices=7 panadapters=7 lineout_gain=66 lineout_mute=0 headphone_gain=47 headphone_mute=0 remote_on_enabled=0 pll_done=0 freq_error_ppb=0 cal_freq=10.000000 tnf_enabled=1 snap_tune_enabled=1 nickname=FLEX-6700 callsign=K8XS binaural_rx=0 full_duplex_enabled=0 band_persistence_enabled=1 rtty_mark_default=2125 enforce_private_ip_connections=1
SA07786D6|radio filter_sharpness VOICE level=3 auto_level=0
SA07786D6|radio filter_sharpness CW level=3 auto_level=0 SA07786D6|radio filter_sharpness DIGITAL level=3 auto_level=0 SA07786D6|radio static_net_params ip= gateway=nettmask= SA07786D6|interlock timeout=0 acc_txreq_enable=0 rca_txreq_enable=0 acc_txreq_polarity=0 rca_txreq_polarity=0 tx1_enabled=1 tx1_delay=0 tx2_enabled=1 tx2_delay=0 tx3_enabled=1 tx3_delay=0 acc_tx_enabled=0 acc_tx_delay=0 tx_delay=5 SA07786D6|client 0xA07786D6 connected c21|slice get_error 0I get no response
I used my MAC and it worked perfectly. Thank you very much.
73,
Tim K8XS
I had never thought about "puttying around" the 6500!
I tested a few simple commands with success.
I didn't realize exactly how easy it was to send TCP/IP commands via Telnet.
I have programmed information exchanges for the MIDI Control project that got stalled, but This has convinced me even more that all I need to do is learn enough to open up and read a serial port and a TCP port and I should be able to write a basic MIDI controller interface in C#. Perhaps a summer vacation project.....
And, thanks to Steve for posting the FMT info. Looking forward to the next FMT.
73, Tom
K1FR
I had some trouble with no response to c21|slice get_error 0 in telnet and PuTTY on
win7
Even after connecting to the radio on its local address and the correct port.
Just now tried PuTTY on win10 64bit.
Connected OK but no response on slice 0.
Though running on Slice A in one panadapter on the Maestro the initial screen reported 3 panadapters and 3 slices.
After bit of lateral thought I tried slices 1-4.
Got a response on slices 2 and 3 of R1|0| +0.000000, +8.010864
Slice A 1.8366 MHz running WSPR.
No response for slices 0, 1 or 4 (know that for the 6500 there is no 4)
However c21|slice list (not l) returns R21|0|0
So no response if the slice numbers are wrong.
My radio must be a bit confused!
Why are RX and TX different?
Is there a simple math way of mapping any decimal frequency to an integer binary FTW?
Andrew VK5CV
Direct link.
Congrats to all!
Below is the chart I used to set my calibration in the FLEX S/W before each part of the FMT. I got pretty good results, under 1 HZ on 40 and a little over 1 HZ on the other bands.
The ppb numbers for the WWV freqs are exact numbers I discovered for those freqs and the other numbers are interpreted.
Freq ppb
2.5 9000
3.8 6750 80 mtrs
5.0 4500
7.5 3400 40 mtrs
10.0 2300
12.5 1950
15.0 1600 20 mtrs
k3Tim/6