A Glimpse To The Dark Side Of Open Source

I often speak highly of the upsides of open source. Community support, knowledge for the masses, so on and so forth. But sometimes I notice things that make me reconsider.

Everybody in the (nieche) biz knows of the #NanoVNA. Some portion or another have looked at it’s block diagram. You are going to notice something missing.

Yup, no incident power coupled from the excited ports Only a single directional coupler is present. But S-Parameters are measured as a ratio between in reflected and incident power!

S_{ij}=\frac{v^-_i}{v^+_j}

So here’s the walk-around that was implemented: The reference signal is measured by toggling the ECAL switch to the “open” pin. Namely, the measured power is the signal reflected back from the open pin. Any inaccuracy that ensues is calibrated out.

If you know your RF, this should be enough to induce nightmares. But before being all critical about it, let’s review this more slowly.

  • A reference signal is synthesized in the IF frequency chosen (typically around 12 KHz), sampled at the same rate of the ADC. Reference in the source code, for your convenience.
  • The sampled IF signals (Reference and reflected) are correlated with the reference signal, to exclude synchronization errors that may result in phase errors.
  • The synthesizer frequency isn’t changed until all relevant measurements are completed, as the LO lock time is arbitrary.

Let’s talk about the positive bits in this. The directional coupler can be quite a costly device. Be it if it’s implemented with a wire transformer, or something like a Dunsmore coupler, it takes up significant real-estate and can cost up to a few dollars. In an ultra-low-cost design such as the NanoVNA, this can be significant.

The issues, however, may exceed that. For example, various measured loads may result in a large amplitude difference of the synthesized Tx signal. This may results in unwanted ripples, phase measurement errors, etc.

In the insertion loss measurements, this is even more significant. So the designer added an attenuator to the 2nd port. This can impede the dynamic range and add noise. Is this really worth not adding another switch and a proper bi-directional coupler? Even a resistive one, to help save some cost. Not even talking about adding another ADC, or just choosing a microcontroller with two of them.

You can’t argue that the NanoVNA yields somewhat consistent measurements. I will also bet that it’s more expensive (closed source) counterparts, have more sophisticated hardware within their hidden shields. One can even argue that I wouldn’t know about this issue if it wasn’t for the fact this was open source… But hey, in every purchase, you get a free pick!

Hope you enjoyed the read!

Leave a Reply

Your email address will not be published. Required fields are marked *