Wednesday, March 2, 2016

Arduino Nano + LCD + Mini Circuits ZX47-60+ Power Detector

10 MHz to 8000 Mhz!

The beacon project I've been working on requires that I have some sort of weak signal RF Power Detector.  Something that can provide me with a dBm measurement between -60 and +10 dBm. (approximately).  This doesn't really have to be perfect.  But I need to have an idea that I'm close to spec's for things like Mixer input/output and the like.

We're talking about millwatt values here.  So these signal strength are far below (for most part) what most off the shelf "RF Watt meters" can provide.  I don't really want to spend a bunch of money on a power meter for this.

Here's what I'm thinking about doing.

I have several spare Arduino Nano 3.0's laying around.  They cost about $8 USD.  So they're fairly cheap.  I've used a bread-board (and I frigging HATE using these things) for a mocked up demo.  Just to make sure the idea works.  Once I have the Mini Circuits ZX47-60+ in hand I'll use soldered connections instead.

My gripe about a bread boards is that connections can be too loose or too tight so that the wire end plugged into it can either be contacting, or NOT.  Which can lead to thinking something in the circuit isn't wired properly, or actually damaging things while constructing it.  Every single time I use these things it takes me 3 times longer to do than if I just created a circuit board and soldered things up.  ANYWAY.  That's probably just me.  

Here's a diagram of how things are connected for this so far.

And below is what it looks like wired up and running.

Basically, this is just a DC Voltmeter capable of reading 0 to +5vdc.

Now the Mini Circuits ZX47-60+ isn't really cheap it's about $80 USD.  BUT it's able to operate from 10 MHz to 8000 MHz.  Here's a link to a PDF.  Below is a graph which shows how this operates.  When the power detector receives RF which is between -60 and +5dBm
it outputs a DC Voltage from +0.4 to about +2.2vdc.
So all that's left is to obtain a ZX47-60+ and connect it's output up to the Arduino pin "A0" which is able to read an analog voltage between 0-5vdc.

Then with a little math in some code (fairly simple) I can output the volts DC on one line of the display (to help me visually verify what the dBm power level is), and on the second line I'll output the conversion from Volts to dBm IN dBm! 

So when it's all done I'll have the actual volts DC measurement output from the ZX47, as well as dBm, and I'll display the conversion from dBm to Watts/Milliwatts as well.

This can be extended to read levels much higher than the Power Detector would normally be able to measure by adding inline to it, an RF attenuator, and in code calculate the offset from the added attenuation. 

That's the plan anyway.  I'll post updates on this as things progress.  But I need this to work to move forward on the beacon project so it's at the top of the 'project' list for now.

Here's the SIMPLE code I'm using in the photo above...


As well as the ZX47-60+ this past Friday.  Both should be here in a few days.  I'll mount them all in the Red Case (see the link above) and add an SMA bulkhead connector on the case as well as a small Buck converter to drive everything including the Arduino Nano from input voltages of between 12-24vdc.  This way I can power the devices at 5vdc, from 12vdc, 13.8vdc and 24vdc.  Good for just about every environment I might use such a device.  

I'll post photo's and test results in another post.

I'm planning to try to add some code and an optical encoder to the the mix as well as a menu select button so that I can alter the output of it when I add a large attenuator to match the input at higher levels.    

I've since posting the above code modified the code to provide VDC from the ZX47-60+ on the LCD, as well as calculated dBm, and femtowatts, nanowatts, picowatts, microwatts,  millwatts and Watts.

I'll demo that in my next post as well.