I had the AD8307 power meter working, and compared it against the Chinese SNA in watt meter mode. The SNA has a built in step attenuator, using that I found the linearity to be very good. Only thing I was not sure of was the accuracy of the calibration on the SNA.
Looking around the web I found several articles on using a CMOS crystal oscillator can and adjusting for a certain DC output level. I really wanted something that I could just build and not have to worry about adjusting. I would also like to use one as an internal reference for the spectrum analyzer I am building.
I found a circuit from W1GHZ that looked like it would do nicely.
His circuit uses a crystal oscillator and then takes its output and feeds a pair of back to back diodes. This should give a very accurate and stable output signal. This is fed through a low pass filter to remove harmonics of the square wave to a attenuator to set the final output level at -10 dBm.
Looking around I found a 20 Mhz. oscillator that I had form another project. I used ELSIE to design a 5 pole low pass filter using component values I had on hand. A small circuit board was built using mostly surface mount components except for the two molded RF chokes in the low pass filter. I made room on the board so I could parallel resistors and capacitors to make the values needed. Checking the output level on my scope I fund the output to be around 208 mv. p-p Close enough the the 200 mv. value for -10 dBm.
The method I used to compute dBm. from the ADC reading on the Arduino does not have a calibration routine. The correct value has to be determined by trial and error, and entered into the sketch.
While I was trying to find the correct value I noticed something interesting. When I had the AD8307 meter powered by a battery the reading was very constant.
But, when I powered it from the PC when I was uploading the sketch with a different cal value the reading jumped around quite a bit, and was much higher. Indicating that a lot of noise was coupled from the PC to the power meter. Having the battery connected at the same time greatly reduced the noise but did not eliminate it completely.
This indicates that any test instrument powered from the PC might be the cause of noise found during testing. Powering from battery if possible would probably be the better choice.
It only took me 3 tries at setting the calibration value to get the AD8307 meter to read within 0.1 dBm. of the -10 dBm reference signal. Now I still need to cut up another Altoids tin to put the meter in.