Baby’s First RF – 2.4GHz WiFi downconverter

Currently I’m working on creating an FPGA phased array “radio telescope” for 2.4GHz WiFi signals? Why would I bother doing all that you ask? Well it’s a combination of two reasons, I want to eventually make a proper radio telescope for the 1.42GHz Hydrogen line. Secondly I’m in my 3rd year of EE, which here in Australia means now is when we need to do our practical experience – and just between you, me and the internet I don’t feel like I can rely on my WAM to carry me into an internship, luckily I feel as though I’m damn good at making practical use of what I’ve learnt, I just need to show it. So with the intro out of the way, lets dig into the nitty gritty of the design, bring on the dancing monkey highly advanced block diagram!

The section in red is what we’ll be taking a look at today. Component selection was pretty straight forward, head on to octopart/mouser/digikey select 2.4GHz for the relevant frequencies and sort by price ascending. Going from there after removing options which weren’t in stock, or required lots of fiddly integration or impedance matching on board I had my stars of the show:
LNA: Analog Devices ADL5523ACPZ-R7
VCO: Maxim MAX2750AUA+
Mixer: Analog Devices LT5525EUF#PBF

The only differences between this block diagram and the schematic would be the addition of a few bypass caps, a BPF on both 2.4GHz lines and a signal transformer to create a differential signal for transmission to the digital board. Now this was tangentially inspired by Henrik’s blog post(s) about creating an FMCW radar system as an individual. In that he used OSHPark’s four layer process for PCBs as they were the only cheap manufacturer to use the slightly nice FR-408, as such I’ve done the same. Thankfully my case was much simpler, I don’t require the longer traces or distributed elements he did, so impedance matching to 50Ohm was pretty straightforward – just use 0.419mm wide traces (according to Saturn tools) everywhere and hope for the best. That hope was all I had, unfortunately I don’t have access to any of the ludicrously expensive EM simulation packages and it was down to ground planes and dream.

Schematic and Board

Now you may notice that I’ve used four layer boards and barely even used two layers here. And you would be correct. I just wanted to get the ground plane as close as possible to the signals, this entire process overshadowed by me being acutely aware that I don’t know all the rules of microwave design and as such I tried to cover my ass in terms of board design as much as possible. Additionally by have this as a separate assembly to the digital/FPGA section I could both take advantage of OSHPark’s minimum order quantity of three and give me three attempts at getting these tricky QFN components onto the board – once again trying to design with CYA in mind.

The RF boards and one of the FPGA shields. Not happy Jan :/

The boards were ordered on the 10th of August and they arrived in Sydney on the 27th, total cost $144 USD including shipping. And they couldn’t even align the soldermask, luckily I designed for mistakes – I just didn’t expect the mistakes to come from OSHPark. Especially noticeable on the center RF board, the solder mask is so far off every single pin of the LNA would be bridged with the one next to it if soldered on, completely unusable. This is the first time I’ve used OSHpark, and given the time taken, cost and quality I’m not sure what the point was. I may end up doing a second run through one of the Chinese manufacturers, because if RF performance is close enough I don’t see any reason to OSHPark at all. Luckily at least one of the RF boards was good, off to the oven it goes.

Now you may think that’s a lot of solder paste, and you would be correct. After going through the toaster oven while I was babysitting the thermocouple taped to the bottom it came out looking correct. However there was a bridge between the mixer’s LO pin and ground, and as a result I had to remove and reattach it twice with hot air before everything was all squared away correctly.

Now you know how earlier I mentioned I was kinda doing this to make my resume look better and I’m at uni? Well half way through I got a job doing R&D at uni. With the nanophotonics group. All of a sudden my gear woes are (mostly) gone.

It’s not all perfect though, yes that’s a $200k network analyser but we’ve only got one oscilloscope in the lab. And the function generator is ancient. And there’s only on multimeter. And no digital power supplies. Hot damn though we can fab our own semiconductors, so I’ll call it a wash – it’s all more than I would have access to otherwise.

The test set up was simple as shown below, put the random antenna I took off the back of my PC’s old WiFi card, sit my phone’s hotspot right next to it (the red rectangle drawn in, I took the picture with my phone) and see if anything appears on the scope. The power supply used for the VCO has analog controls from 0V – 30V, as a result the VCO couldn’t be tuned precisely. I also forgot to check which channel my hotspot was on, so that’s another stuff up.

Excerpt of saved traced from oscilloscope, fs = 250MSps

IT WORKED! Oh my god, I can’t believe it actually worked! one thing I’ve realised now I’m home it that I put the final signal straight into the oscilloscope, which has 1MOhm input impedance so the amplitudes don’t reflect what I would have seen across a 50Ohm load. But the waveform is there. The raw data is also available here, just some random baseband I half captured – something I wish I had when embarking just so I had a waveform to mess about with in matlab/jupyter.

Edit: regarding output voltages of an actual signal I just realised my antenna was also a female connection, so when screwed on it didn’t actually make proper contact with the SMA terminal on the board. All of a sudden my 40mVpp (-24dBm) signal strength doesn’t sound so bad even though I had my phone reasonably close by.


Now onto something more scientific, not like I actually know what is good or not – but I at least know what S-parameters mean. I didn’t want to mess with the network analyser since others in the lab already had it set up, so instead of using the N5234A, I had to slum it with the N5230A – out of the real estate price range and into the car price range.

Unfortunately at 2.4GHz S11 was -8.035dB, much higher than I would have liked. Although beggars can’t be choosers, I wasn’t expecting miracles.



One thing I’m not sure of though is why when the device was powered off S11 was appropriately halved? If anyone knows knows why I would love to know.

Powered off. Damn cursor blocking the only important part.

That is that, I’m honestly kind of surprised this even worked at all, it was my first time designing a ‘proper’ RF circuit – I guess it just goes to show that all those rules exist for a reason.

All files used to make this are available in this git repo, it is still very much a mess and a work in progress whilst I keep working on the FPGA section though.

I’ll catch you next time

Leave a Reply

Your email address will not be published.