ADAR1000
Recommended for New Designs
The ADAR1000 is a 4-channel, X and Ku frequency band, beamforming core chip for phased arrays. This device operates in half-duplex between receive and...
Datasheet
ADAR1000 on Analog.com
LTC5552
Recommended for New Designs
The LTC5552 is a high performance, microwave double balanced passive mixer that can be used for frequency upconversion or downconversion. The device is...
Datasheet
LTC5552 on Analog.com
LTC5553
Production
The LTC5553 is a high performance, microwave double balanced passive mixer that can be used for frequency upconversion or downconversion.
The LTC5553’s...
Datasheet
LTC5553 on Analog.com
ADF5356
Recommended for New Designs
The ADF5356 allows implementation of fractional-N or integer N
phase-locked loop (PLL) frequency synthesizers when used with an external loop filter and...
Datasheet
ADF5356 on Analog.com
In my last blog post, I introduced the CN0566, commonly called the “Phaser.” It is an 8-element FMCW phased array radar exploration platform. I’d like to share the journey of how we made a manufacturable Phaser as I think it is illustrative of the software and hardware ecosystem that Analog Devices provides to scale up a design from concept→prototyping→production.
How Did the Phaser Start?
In my very first blog, I talked about the challenges of understanding phased array beamforming systems. It can be an overwhelming combination of expertise required in RF Design, DSP signal processing, software development, digital hardware implementation, and overall system architecture.
To help with this, I proposed one approach to get started: build a simple 2-channel beamformer with the low-cost ADALM-PLUTO. But that’s not how I began. At the onset, my interest was in Analog Device’s newly released ADAR1000. It’s a 4-channel, half duplex, X band beamformer IC, and it was becoming very popular with my customers. It’s probably not the best place to start – as the ADAR1000 has more features to understand than what we built with the Pluto. But that’s where I started. Bob Broughton, design manager for ADI’s beamformers, encouraged me to build it up and learn by doing. And Matt Pierce, technical leader at Ball Aerospace, gave me his mantra of “Crawl→Walk→Run.” So start small, get something working, then scale it up.
“Crawl”
Here was my very first attempt at learning about electronically steerable arrays (ESAs) by building my own system at 10 GHz with the ADAR1000:
I cut my daughter’s hula-hoop in half (sorry Allie!) to provide a means to rotate an X band source around the array. You can see that source mounted on the left side of the hula hoop. Beneath that is a 4-element 10 GHz patch antenna array (files here if anyone wants to try it out). Then I used the ADAR1000 and LTC5552 eval boards, along with the ADALM-PLUTO, to construct a simple phased array system. Here’s the arrangement of it:
I used a Python script, running in GNU Radio Companion, to control the ADAR1000 and plot the receive pattern. Much to my surprise, this worked! I found I could do quite a bit with this setup. Here’s a 90-minute workshop on some of those things here:
After that successful “crawl”, I wanted to do more. To “walk” toward a more real-world design. So, more elements, and more capabilities to exercise. But this posed a new problem: how can I scale up my “crawl” hardware without redoing all the software?
IIO to the Rescue
Fortunately, though I didn’t know much about it at the time, I was using ADI’s IIO software ecosystem. What is IIO? IIO stands for “Industrial I/O.” It is used by more than 800 companies to provide control over devices such as ADCs, DACs, clocks, beamformers, synthesizers, DSAs, VGAs, PGAs, sensors, transceivers, and many other ICs.
IIO Abstracts away low-level details of the underlying hardware and provides a single cohesive and consistent way to control and operate various products. “LibIIO” takes IIO one step further and provides high-level programming language bindings for C, C++, C#, Python, MATLAB, Java, JS, RUST, etc.
What does this mean? Using LIBIIO, I could operate on a variety of platforms, even changing out hardware, and would have minimal changes to the software implementation. Also, changing my language bindings from Python to Matlab to C, if needed. This gave me enormous flexibility during the prototyping stage meaning that I didn’t have to redo (and re-learn) new software as I progressed into more complex implementations.
“Walk”
So now I could add more hardware or change my setup while keeping software changes to a minimum. And so that’s what I did! I added another ADAR1000 eval board (to give 8 antenna elements). Then a proper 10 GHz synthesizer (to improve performance). Finally, I upgraded from Pluto to the dual channel ADRV9361-SOM (to create a hybrid analog/digital beamformer architecture). And while my software was in good shape to handle all of this (thanks to IIO!), my hardware was getting unwieldy…. Here’s what my setup looked like:
Now I’ve got 2 ADAR1000 eval boards, 2 LTC5553 mixers, a nice synthesizer for the LO (ADF5356), and a dual channel SDR (the ADRV9361-Z7035 SOM). It worked, but the rat’s nest of RF cabling, power, and data routing was a real challenge to setup. And it would get even worse if I wanted to do 16 or 32 elements! If this is “walking”, then things were not looking good for “running”!
X-Microwave to the Rescue!
To clean up the hardware, I turned to an X-microwave solution. X-Microwave makes RF “breadboarding” modules and has thousands of RF components in its library – including the ADAR1000, LTC5552, and ADF5356. After converting to their system, and leaving the software unchanged, I had this nice setup:
That is quite a difference! And that is a 1:1 translation – everything in the lab rats nest above, is now on the X-microwave prototyping plate. This whole setup made everything easier to debug and prototype with. And was also a great path to the production of the Phaser – which is the final phase: “Run.”
Conclusion
There’s more I want to get into – so I’m going to save “Run” for the next blog post here. Until then, if you’ve had experience with IIO or X-Microwave prototyping, I’d love to hear about it in the comments.