DIY active / HiZ / high impedance probe design.

I’ve been wanting to have an high-impedance (Hi-Z) probe for some time now. 

Up until now I’ve been searching for something like an HP 85024a which comes up on the secondhand market from time to time. It would be overkill for my needs, but still nice… :)

Recently I came across an old Elektor/Elektuur article from April 2004 titled “Poor man’s 1GHz active probe” by David Jewsbury. Some more research turned up the bachelor thesis of Thomas Hirschbuechler titled “Design of a low-cost 1GHz active probe“.

I decided it would be a good learning experience to try and recreate/adapt the design and make some measurements on it. 

Design

The board measures 60 by 25mm. As I do not intend to use the probe up to 1GHz I did not bother to use Rogers or some other high-performance material and opted for regular FR4. Design is done in Diptrace V4 which I can recommend as an easy-to-learn EDA.

The current state of the design is in my Github repository although I need to update the schematic with the revisions I made during prototyping.

v0.1prototype board with many changes.

The total cost of the current version is well below €50 where the SMA connector is probably the most expensive part.

Measurements

After tweaking and making some changes on the initial design, measurements turned out pretty good (taking in to account thatI do not intend to use the probe much above 200-300MHz). I made a bode plot 0-25MHz with my MSO5074 scope which has a 25MHz signal generator build-in:

Bode plot to 25MHz

For higher frequenties I turned to my 300kHz-1.3GHz HP vector network analyser (csv at the end):

S21 and S11 from 300kHz to 1GHz
Frequency(MHz); S21(Log Mag),dB;  S11(Log Mag),dB

0.300;         -33.06;            -0.38
5.298;         -20.14;             0.00
10.297;        -17.76;            -0.08
15.296;        -17.05;            -0.16
20.294;        -16.81;            -0.33
25.293;        -16.79;            -0.45
30.291;        -16.85;            -0.55
35.289;        -16.90;            -0.59
40.288;        -16.91;            -0.62
45.286;        -16.89;            -0.61
50.285;        -16.79;            -0.59
55.283;        -16.68;            -0.60
60.282;        -16.60;            -0.64
65.281;        -16.58;            -0.73
70.279;        -16.62;            -0.81
75.278;        -16.78;            -0.87
80.276;        -16.96;            -0.87
85.275;        -17.11;            -0.85
90.273;        -17.16;            -0.81
95.272;        -17.11;            -0.75
100.270;       -16.96;            -0.76
105.269;       -16.71;            -0.80
110.267;       -16.48;            -0.94
115.266;       -16.36;            -1.13
120.264;       -16.39;            -1.31
125.263;       -16.58;            -1.40
130.261;       -16.85;            -1.42
135.260;       -17.10;            -1.30
140.258;       -17.27;            -1.14
145.256;       -17.31;            -0.99
150.255;       -17.22;            -0.94
155.254;       -17.01;            -0.95
160.252;       -16.78;            -1.12
165.250;       -16.60;            -1.39
170.249;       -16.48;            -1.70
175.248;       -16.52;            -1.94
180.246;       -16.70;            -2.03
185.244;       -16.89;            -1.92
190.243;       -17.07;            -1.67
195.242;       -17.17;            -1.44
200.240;       -17.18;            -1.24
205.238;       -17.10;            -1.16
210.237;       -16.97;            -1.22
215.236;       -16.84;            -1.44
220.234;       -16.74;            -1.75
225.232;       -16.64;            -2.12
230.231;       -16.58;            -2.42
235.230;       -16.58;            -2.47
240.228;       -16.57;            -2.32
245.226;       -16.58;            -2.01
250.225;       -16.63;            -1.72
255.224;       -16.68;            -1.49
260.222;       -16.76;            -1.40
265.221;       -16.83;            -1.47
270.219;       -16.87;            -1.68
275.217;       -16.83;            -2.03
280.216;       -16.73;            -2.40
285.214;       -16.56;            -2.68
290.213;       -16.40;            -2.77
295.212;       -16.30;            -2.61
300.210;       -16.31;            -2.27
305.209;       -16.43;            -1.91
310.207;       -16.58;            -1.65
315.205;       -16.75;            -1.51
320.204;       -16.82;            -1.54
325.202;       -16.76;            -1.74
330.201;       -16.58;            -2.10
335.200;       -16.31;            -2.58
340.198;       -16.05;            -3.04
345.197;       -15.94;            -3.27
350.195;       -16.00;            -3.15
355.193;       -16.24;            -2.72
360.192;       -16.51;            -2.22
365.190;       -16.74;            -1.83
370.189;       -16.85;            -1.62
375.188;       -16.80;            -1.59
380.186;       -16.59;            -1.79
385.185;       -16.27;            -2.20
390.183;       -15.90;            -2.83
395.182;       -15.63;            -3.51
400.180;       -15.54;            -3.96
405.178;       -15.62;            -3.83
410.177;       -15.85;            -3.21
415.175;       -16.09;            -2.48
420.174;       -16.27;            -1.93
425.173;       -16.35;            -1.65
430.171;       -16.30;            -1.63
435.170;       -16.15;            -1.90
440.168;       -15.93;            -2.45
445.166;       -15.70;            -3.19
450.165;       -15.54;            -3.97
455.163;       -15.46;            -4.34
460.162;       -15.48;            -4.02
465.161;       -15.58;            -3.20
470.159;       -15.69;            -2.36
475.158;       -15.81;            -1.75
480.156;       -15.88;            -1.49
485.154;       -15.85;            -1.53
490.153;       -15.75;            -1.88
495.151;       -15.56;            -2.50
500.150;       -15.31;            -3.34
505.149;       -15.03;            -4.15
510.147;       -14.77;            -4.45
515.145;       -14.62;            -3.93
520.144;       -14.59;            -2.93
525.143;       -14.76;            -2.02
530.141;       -15.01;            -1.48
535.139;       -15.30;            -1.27
540.138;       -15.47;            -1.38
545.136;       -15.52;            -1.77
550.135;       -15.42;            -2.40
555.134;       -15.16;            -3.19
560.132;       -14.85;            -3.91
565.130;       -14.51;            -4.17
570.129;       -14.30;            -3.68
575.128;       -14.22;            -2.80
580.126;       -14.35;            -1.92
585.125;       -14.54;            -1.39
590.123;       -14.75;            -1.17
595.121;       -14.85;            -1.27
600.120;       -14.86;            -1.63
605.119;       -14.73;            -2.22
610.117;       -14.50;            -2.97
615.115;       -14.20;            -3.69
620.114;       -13.94;            -4.06
625.112;       -13.76;            -3.74
630.111;       -13.73;            -2.86
635.110;       -13.86;            -1.96
640.108;       -14.06;            -1.33
645.106;       -14.23;            -1.09
650.105;       -14.34;            -1.11
655.104;       -14.35;            -1.43
660.102;       -14.22;            -1.98
665.101;       -13.98;            -2.80
670.099;       -13.65;            -3.72
675.097;       -13.32;            -4.27
680.096;       -13.06;            -3.99
685.095;       -12.93;            -2.96
690.093;       -12.98;            -1.85
695.091;       -13.18;            -1.06
700.090;       -13.42;            -0.69
705.088;       -13.58;            -0.69
710.087;       -13.61;            -1.04
715.086;       -13.46;            -1.73
720.084;       -13.14;            -2.69
725.082;       -12.71;            -3.77
730.081;       -12.26;            -4.40
735.080;       -11.98;            -3.87
740.078;       -11.91;            -2.54
745.077;       -12.14;            -1.27
750.075;       -12.49;            -0.48
755.073;       -12.85;            -0.17
760.072;       -13.07;            -0.33
765.071;       -13.13;            -0.83
770.069;       -12.98;            -1.68
775.067;       -12.64;            -2.81
780.066;       -12.18;            -3.99
785.064;       -11.75;            -4.41
790.063;       -11.46;            -3.46
795.062;       -11.37;            -1.86
800.060;       -11.48;            -0.62
805.058;       -11.69;             0.02
810.057;       -11.90;             0.07
815.056;       -12.02;            -0.37
820.054;       -12.07;            -1.25
825.053;       -12.08;            -2.47
830.051;       -12.06;            -3.95
835.049;       -12.09;            -5.28
840.048;       -12.13;            -5.44
845.047;       -12.16;            -4.01
850.045;       -12.16;            -2.23
855.043;       -12.16;            -0.88
860.042;       -12.24;            -0.25
865.040;       -12.36;            -0.19
870.039;       -12.50;            -0.62
875.038;       -12.61;            -1.36
880.036;       -12.64;            -2.42
885.034;       -12.55;            -3.57
890.033;       -12.34;            -4.36
895.032;       -12.05;            -4.07
900.030;       -11.78;            -2.84
905.029;       -11.60;            -1.52
910.027;       -11.61;            -0.67
915.025;       -11.80;            -0.45
920.024;       -12.09;            -0.69
925.023;       -12.37;            -1.35
930.021;       -12.55;            -2.27
935.019;       -12.55;            -3.42
940.018;       -12.39;            -4.53
945.016;       -12.13;            -5.09
950.015;       -11.88;            -4.58
955.014;       -11.74;            -3.37
960.012;       -11.77;            -2.24
965.010;       -11.98;            -1.61
970.009;       -12.27;            -1.54
975.008;       -12.49;            -1.99
980.006;       -12.55;            -2.87
985.005;       -12.38;            -4.19
990.003;       -11.99;            -5.91
995.001;       -11.55;            -7.75
1.000.000;     -11.21;            -8.23

The low frequency response (up to, say, 5MHz) isn’t particulary good. Starting around 5MHz, S21 is fairly flat around -17dB up to 400MHz. From there on it starts to increase.

S11 is between 0 and -4 dB up to 800MHz which I think is very good.

Final thoughts

These results are (much) better than I expected from my first attempt, so I am trying to figure out if I am measuring the correct parameters and whether my interpretation is correct…

Things I’d like to figure out:

  • First of all: are my assumptions regarding the measurements correct?
  • How do I improve the low-frequency response to be more linear?
  • What causes the response (both S21 and S11) to ripple rather continuously? Should I suspect my measurement setup?
  • Would I be better to lower the FET supply voltage (or input bias) in order to end up with an even -20dB gain, so that converting the voltage magnitude would be easier?

I’ll make a v0.2 with the changes and some additional improvements and then a properly shielded enclosure (likely pcb material).

While this is mostly an exercise and learning experience, I’m rather happy with the results so far.

Setting up Visual Studio Code for Python development (on Linux)

The following is a brief guide to reinstalling/setting up Visual Studio Code (VSC) on a new Linux system. The main use is Python development. As such, it is very brief and mostly for my own documentation.

Install VSC

sudo snap install --classic code

Install Python packages

! DO THIS OUTSIDE OF AN ACTIVE VIRTUAL ENVIRONMENT !

  • linting (flake8): python -m pip install pyflakes pycodestyle mccabe flake8
  • Refactoring (rope): python -m pip install rope
  • Formatting (Yapf): python -m pip install yapf
  • Type checking (mypy): python -m pip install -U mypy --user
  • Flake8 Bugbear: python -m pip install flake8-bugbear, then check if installed with flake8 --version (should include flake8-bugbear)
  • Sphinx/RST support: python -m pip install doc8 rstcheck sphinx-autobuild
  • Snooty languageserver: python -m pip install snooty-lextudio

Install and configure plugins

Select interpreter

Add

"python.pythonPath": "/usr/bin/python3",

to $HOME/.config/Code/User/settings.json

Set up linting

List of possible linters and how to configure them

Open user settings and

  • set Python > linting: flake8 path, to C:\Python39\Scripts\flake8.exe
  • Add max-line-length=99 to Python > Linting: Flake8 Args
  • Enable flake8

or add

    "python.linting.flake8Path": "C:\\Python39\\Scripts\\flake8.exe",
    "python.linting.flake8Args": [
        "max-line-length=99"
    ],
    "python.linting.flake8Enabled": true,

to %APPDATA%\Code\User\settings.json (Windows) or $HOME/.config/Code/User/settings.json (Linux)

MyPy:

  • Install package

python -m pip install -U mypy --user

  • Enable
    "python.linting.mypyEnabled": true,
    "python.linting.mypyArgs": [],
    "python.analysis.typeCheckingMode" :"basic",
    "python.linting.mypyPath": "C:\\Users\\dieterv\\AppData\\Roaming\\Python\\Python39\\Scripts\\mypy.exe",

to ~/.config/Code/User/settings.json

more mypy info

Autodocstring

Add the following to your settings.json

"autoDocstring.docstringFormat": "google",
"autoDocstring.guessTypes": true,
"autoDocstring.generateDocstringOnEnter": true,
"autoDocstring.includeExtendedSummary": true,
"autoDocstring.quoteStyle": "\"\"\"",