Summary of Arduino Network Analyzer
This article describes a DIY Arduino network analyzer shield featuring an AD9851 DDS chip for generating sine waves up to 72MHz and an AD8307 power detector covering LF to 500MHz. The device functions as a signal generator, power meter, or scalar network analyzer. It includes a Butterworth low-pass filter and a two-transistor amplifier on the output, with SMA connectors for input and output. The project uses Python software for control and trace display.
Parts used in the Network Analyzer Shield:
- Analog Devices AD9851 DDS chip
- Butterworth LPF (Low Pass Filter)
- Two transistor amplifier
- Analog Devices AD8307 power detector
- SMA connectors
- Arduino board
- Python program
Description
The license is the MIT License, as it seems to have almost no restrictions on use. Do what you will with it, just don’t hold me liable if it goes wrong.
Details
As an electrical engineer, I love test kit. However, it’s really expensive. I have the idea of building a Spectrum Analyzer with a dual conversion superheterodyne architecture. It would cover DC to daylight and be everything I’d ever wanted…
But I decided to start smaller. Besides, one of the most important parts of a Spec An is the RBW filter. How do I know if I had a good one? I could use the Spec An itself to tell me or I could make a simpler piece of test kit (this Network Analyzer shield) that would help out in building all manner of RF things.
This was a great way to get my feet wet and learn many things about building circuit boards for RF work. What you see here is Rev 2. Rev 1 had many issues, the worst of which was the amplifier on the output. I used an Op Amp which couldn’t swing rail to rail so I was getting lot’s of distortion (that I could see on my Rigol 70MHz scope) and also made a really great oscillator at ~600MHz (which I only found when I put it on a Spec An at work (+3dBm… my bad, FCC, when I hooked it up to a short piece of wire and briefly listened to my sine wave signal on a short wave receiver)). I also screwed up the DC biasing… Oh well, that’s why I made Rev 2!
I wrote a program to display the trace and control the board in Python. It has a known error where sometimes when decreasing the number of samples in a sweep, it throws an index out of array bounds error and stops working. I could fix it by putting a state machine into the program, but it works pretty well as is so I haven’t done that yet.
Read more: Arduino Network Analyzer
- What frequency range does the DDS chip output?
The AD9851 DDS chip outputs a sine wave at any frequency from 0Hz to 72MHz. - How much power does the shield output into 50 Ohms?
The shield outputs approximately 0dBm, potentially reaching 1-2dBm if the Pot is turned up. - Does the power detector require filtering on its input?
No, there is no filtering on the input of the power detector so it responds from very low frequencies up to 500MHz. - Can this device function as a spectrum analyzer?
It acts as three tools in one: a sine wave generator, a power detector, and a scalar network analyzer when used together. - What license governs this project?
The project is released under the MIT License with almost no restrictions on use. - What was the main issue with Rev 1 of the circuit board?
Rev 1 had issues with the Op Amp amplifier causing distortion and creating an unintended oscillator at ~600MHz. - Is there a known error in the Python software?
Yes, sometimes decreasing the number of samples in a sweep throws an index out of array bounds error. - Why did the author build this network analyzer instead of a spectrum analyzer first?
The author wanted to learn about building RF circuit boards and needed a simpler tool to verify RBW filters.
