AdauraTech’s Attenuator Platform Linux Quick Guide Python Script Example PowerShell Example How to Upgrade Firmware How to Install Drivers Engineering Review of ADUSB4A Support PT5 & R2 Series2 & 4-Channel Overview Datasheets Mechanical Design Specifications Performance Graphs Request For Quotation Order R3 Series Attenuators4-Channel USB/Eth Overview Datasheets Mechanical Design Specifications Request For Quotation Order Review of the Adauratech 4-Channel RF Attenuator by Scott Stinson Wi-Fi Networking and Systems Developer Bose firstname.lastname@example.org January 14, 2016 Introduction As an RF engineer for more than 15 years, I’ve worked with many different types of RF test equipment: everything from cobbled together spider webs of cables and manual attenuators to fully contained RF channel simulation systems. Over this time period, I’ve seen some enormous improvements in technology. In 2001, the equipment I used was 100% manually controlled—meaning that I had to be physically present to adjust an attenuator, spectrum analyzer, or other equipment in conjunction with running a test, often repetitively over several hours. By 2003, the attenuators were mostly automated, but still based upon relay (mechanical) control. They were slow, error-prone, and became inaccurate over hundreds of test cycles. By 2006, attenuator systems were programmable, but very expensive. A set of programmable attenuators could cost upwards of $30 to 40k for testing a single-band 2x2 MIMO channel composed of a minimum of 4-8 attenuators. And now-- here comes Adauratech: which has designed and produced an inexpensive 4-port programmable attenuator for $1500. In my test setup, I would need to purchase only two of these devices, which is a significant cost reduction when compared with previous equipment. This device could enable RF testing for start-ups and any group with a low-capital budget, which has previously been prohibitive due to the high cost of most pieces of RF test equipment. An equivalent Agilent attenuator is likely to be upwards of $9 to $12k. Adauratech is not the first company to enter this market. A competing company: Vaunix—makes a similar product, which we will compare it to throughout this review. This review is organized as: Comparison of specs Out-of-box impressions Software and Programming (most important) RF Measurements Reliability Problems, Issues What the Device is Not Neither the Adauratech attenuator nor the Vaunix attenuators are full RF channel simulation systems. For a product such as this, given its price point, the device is intended for: Basic RF testing by RF engineers or test operators, where only a step-based path loss adjustment is required Testing by non-RF engineers (software and QA engineers, often working in a cube or non-lab environment) for software development Comparing the Specs: Vaunix vs. Adauratech RF Attenuator The Adauratech 4-port programmable attenuator boasts the specifications listed below, which we have compared to a similar Vaunix product. Note: we never trust the specs. Suffice to say, manufacturing quality in RF semi-conductor devices greatly impacts the specs in this type of equipment. Variation in the semi-conductors, PCB traces, components, etc. greatly impact performance. What is often measured in a lab with a small number of units varies greatly over hundreds or thousands of units. Model Vaunix Model AD-USB4A Frequency Range 6 to 6000 MHz 50 to 6000 MHz Attenuation Step Size 0.5 dB 1 dB Attenuation Accuracy +/- 0.3 dB +/- 0.6 dB Maximum Attenuation 63 dB 63 dB Return Loss 9 to 15 dB > 10 dB Power Consumption 65 mA @ 5V 50 mA @ 5 V (USB) Switching Speed 70 ns 1 ms IP1 Compression Point 22 dBm 25 dBm IP3 Point 32 dBm 45 dBm Insertion Loss 7 to 10 dB 2.5 to 9 dB RF Isolation between Chains N/A 63 dB Performance Graphs Provided Yes Yes Communication API USB HID Device USB, serial port GUI Interface Yes Yes Windows Support Yes Yes Linux Support Marginal Yes Mac OS X Support No Yes Equivalent System Price $2000 ($499 x 4) + $199 USB Hub $1500 So what specs are important in this product? How do they compare? Wins for Adauratech over Vaunix: Insertion Loss The Adauratech model boasts a lower insertion loss than the Vaunix model. This specification is critical as often the limitation in an RF test setup is in measuring the maximum input signal when other cables, fixed attenuators, phase shifters, and devices must be included in the setup. Every dB matter in the insertion loss value, and this value direct limits our testing capability at strong signal levels. The measured insertion loss was lower in the Adauratech system. Integration (Huge Win) The Adauratech has 4 ports (obvious). But what is less obvious is that to achieve a similar setup in a Vaunix system will require 4 separate USB cables and a USB hub to support it. Moreover, the USB hub required by Vaunix can’t be just any run-of-the-mill USB hub: it has to be a high-performance individually port powered hub. In fact, Vaunix recommends that you purchase their USB hub (cost = $199). But even more so—it is very difficult to route 4 filtered USB cables into any RF enclosure. In our setup, the added cost to route 4 USB cables was about $1200 extra in the RF isolation box (for the USB filters, assembly, etc). It’s also difficult to ensure that there is no indirect coupling paths within the RF isolation box between those 4 or more USB cables. And having 4 separate USB devices makes the SW more complicated. We had to write a custom program to check and query 4 USB devices each time that our test setup is power cycled or when beginning testing. Software (Huge Win) Software development was the most difficult aspect of getting a programmable attenuator system operational: We know RF engineering, and measuring the specs of an RF device is easy. What is not easy (or useful) is writing a Linux/Windows USB programm and integrating that code into existing test software. Adauratech boasts that it is as simple as opening a USB serial port (which can be easily automated with pyserial). Compratively, Vaunix requires interacting with a linux USB API. Price The overall price of the Adauratech system is simply much less than a Vaunix system. In nearly every test setup I’ve built, it has been necessary to have a minimum of 4 attenuators. To use a Vaunix system, I would have had to purchase 4 units. In reality though, I ended up purchasing a total of 12 Vaunix attenuators: meaning, I would have had to only equivalently purchase 3 Adauratech units. The operating manual also indicated that Adauratech is developing an 8 port unit. An 8-port device would be a huge win on their part. Wins for Vaunix over Adauratech: Step Size Vaunix is better in this regard, as they configure for 0.5 dB steps. In testing, we sometimes need to measure with 0.5 dB of relative accuracy. Adauratech only states 1 dB step size. To use the Adauratech system for some highly accurate tests, we would likely need to augment the test system with a 0.5 dB step attenuator. Frequency Range The Vaunix devices supports a range of 6 MHz to 6000 MHz, whereas Adauratech states its range as 50 to 6000 MHz. This is important in some of our applications, as we use these attenuators for other types of measurements– not just RF testing—at lower frequencies (typically between 10 to 80 MHz). Mechanical Orientation As I will describe below, the mechanical design is slightly better for the Vaunix unit, lending itself to better RF isolation between RF ports. Other Features Not Important The Vaunix attenuators have many other RF features which are not supported in the Adauratech device; however, these features are not important in any way. This type of device is not intended to be an RF channel simulator: it simply can’t support this test function, even if it may be able to act as a phase shifter or supports a nanosecond switching time. If you need a device that can change its attenuation within 10s of nanoseconds or you need to have an progammably adjustable phase shift, you are purchasing the wrong type equipment: you need an Azimuth system costing upwards of $200k. Out-of-Box Out of box, the Adaura 4-port programmable attenuator is fairly simple in its design. There’s no major difference between Vaunix and Adauratech in this regard. It has one port—USB, which must provide both power and control to the device Has 4 RF ports positioned on the front face Comes with a USB cable and flash drive, containing the Software We had one concern as we examined the Adauratech unit: the input and output RF ports are positioned on the same face and in the same plane. This is not the case with Vaunix. I would expect that we will not be able to use our cheapest single-shielded RF cables at the point of attachment to the Adauratech unit, but will have to use the semi-rigid bendable or semi-rigid 2 or 3-layer shield RF cables to use this device, so as to avoid substantial RF coupling between the input and output ports. Software and Programming What is most interesting and useful about this unit is its ability to be used as a USB serial port controlled device, via a CLI. We don’t want (or like) to spend a lot of our time developing or troubleshooting Linux or Windows based C++/C test software customized to specific systems, especially in conjunction with USB or other external devices. There’s no value added for the time and effort that is spent in developing windows specific code that will be thrown away the next time we need to test using a different piece of equipment. Also, most automated test groups use outdated and low-performance Windows PC systems. USB (as well as PCI-E) just aren’t very reliable in these PC systems, as they were never intended to support 10 to 20 devices. Most PCs contain a USB hub built-in (instead of USB controller supporting each port) and it’s likely that this internal USB hub is being used for other devices in the system, like the keyboard, mouse, camera, etc. The result is that when you attach more USB devices to a PC—even if it has 4 ports—it’s likely that one or more devices will fail to work, especially if we’re daisy chaining hubs together. They will usually fail due to 1) current consumption, which disables the port (500 mA max) , or 2) Enumeration failures, where one or devices fail to enumerate, or 3) Communications Reliability: daisy-chained USB hubs are bad news for an asynchronous communication system. Vaunix has recognized this problem and will gladly sell you a special 4-port USB powered hub, which they recommend on their website. Adauratech took a better approach and simply integrated 4 RF attenuators together with 1 USB port (which can be supported with the majority of PCs). Initial Attachment We plugged it in, and the power light immediately comes on. We then opened a USB serial port, using a serial port terminal emulator. The device was recognized natively as a serial port in the 7 systems we tested: 2 Windows boxes (Windows 7, 8) 2 Mac OS X systems (10.7, 10.9) 2 Linux boxes (Debian, CentOS) 1 Linux OS (CentOS) running within VirtualBox The last system is especially important, as we do our test development within VirtualBox (CentOS Linux) before attempting to deploy code or SW changes into the real test environment. Upon attachment, the serial port presents an infromation message: USB Serial Port Prompt on Startup From that we, weren’t sure what to do: so we went to the operating manual. Basic Commands and Time-to-Development (HUGE WIN) The operating manually clearly describes how to interact with the Adauratech unit. It supports only four commands: SAA X = set all attenuators to X dB SET X Y = set attenuator X to Y dB STATUS = get attenuation values RAMP (args) = ramp the attenuation up, given a dwell time for each step We tried all four commands and they worked exactly as described. In comparison, the Vaunix attenuators were not so easy to configure in Linux, Mac OS X, or Windows. Vaunix does not support a serial-port style configuration, so to get it working in Linux it was necessary to write a special program to get basic commands automated and functioning in Linux. To get it working in Windows required a driver installation (difficult considering that not all of our PC boxes are running the same version of Windows or compatibility between 32 / 64 bits). And getting a Vaunix device working in Mac OS X was an exercise in futility, given the differences between Mac OS X versions and how USB is implemented in Mac OS X. The Vaunix development effort required about 1.5-weeks of development time (C++ code provided by Vaunix), as we had to interact with the Vaunix SW team to even get example code to try-- which didn’t work initially. The Adauratech unit was amazingly easy to configure and took less than 5 minutes to get working We had the device running in our fully automated test setup within literally 5 minutes. This was due to the composition of out-of-box SW support provided: Interaction via USB serial port Python code sample It was very easy to cut and paste the python sample script into our existing python code base. In fact, the code is so simple, I’ll paste it right here. It was not even necessary to use this code, as we already have pySerial automated elsewhere in our code base. Python Code Sample To use a similar Vaunix device required approximately 80 lines of C++ code, interacting with USB Linux device drivers—which was also different between Linux, Windows, and Mac OS X. Comparatively, the Adauratech device could use the same python code between all three of our deployed operating systems. Other SW Environments, Windows, GUI The operating manual has code and examples for using VB.net. We don’t use Virtual Basic .Net, but looking at the source code example, it appears that they are just opening a serial port through VB (very similar to python). It’s very likely that this code will work. We didn’t need to use the supplied Windows drivers—nor would we, given that the device operates via a serial port. I didn’t try the GUI—I’m sure it works, as the command interface is so simple. RF Measurements Given the ease of the use in the Adauratech device, does its RF performance match up to its specs? Yes. In fact, if anything, I’d say that the RF engineers at Adauratech have been too conservative in presenting the specifications for their device. These measurements are required—in RF testing, its simply not an option to have test equipment that is inaccurate. Step Size: 1 dB (using the SAA and SET commands) Accuracy = +/- 0.2 dB to 0.4 dB We incremented the attenuation from 0 dB to 63 dB over three frequencies and found a maximum variation of 0.4 dB. Typically, the variation in attenuation was 0.2 dB, which is near the accuracy of the network analyzer being used to perform the measurement. Insertion Loss We measured the insertion loss between 100 to 5850 MHz. 100 MHz: 2.1 dB 900 MHz: 4.3 dB 2.1 GHz: 5.0 dB 2.4 GHz: 4.7 dB 3 GHz: 5.4 dB 5.15 GHz: 6.2 dB 5.5 GHz: 6.7 dB 5.7 GHz: 7.1 dB 5.85 GHz : 7.5 dB These values are better than what the specification states. Frequency / Loss Based Variation Ideally, we want to see very little variation in the loss over any frequency sub-band. The reason for this is that if there is significant variation, it implies that the device is rotating around the Smith Chart (perhaps many rotations) radically changing a complex impedance. Said another way: there should be no deep nulls across any frequency band. I have observed this problem in many pieces of active RF test equipment, This device makes no claims as to its impedance variations, and is not intended for that purpose-- but if we are testing transmit power, we can’t have too much variation in the return loss or insertion loss over frequency; otherwise, it increases the inaccuracy of any transmit power measurement, due to the possibility of reflected power enhancing or distorting the transmit gain in some way. Most CMOS silicon based transmitters are not 50 ohm systems (more likely they are 5 to 20 ohms), and the variation in matching will greatly impact the accuracy of the measurement. There was a 0.4 dB variation across the largest frequency span of 5.5 GHz to 5.7 GHz, when taking the attenuation down from 0 to 63 dB. This is within the tolerances of other equipment for other system. RAMP command To see the device in full-action we tried the RAMP command with these arguments: RAMP A E A A 0 63 1 1000 This will make RF ports 1, 3, and 4 ascend from 0 to 63 in 1 DB increments every 1000 milliseconds. As device steps through, it prints out a nice table: This is a very cool feature, especially in comparison to the Vaunix devices. Implementing a ramped attenuation is necessary for several kinds of measurements, and it was relatively difficult to do in Vaunix due to the esoteric command set required. In comparison the RAMP command over a serial port worked easily. Reliability – No Issues (But Still Testing) Because this is a device that is to be used in an automated test environment, it has to be 100% reliable. It is simply unacceptable if a piece of test equipment runs for some amount of time and then stops being accurate or fails in some way, especially when a normal test cycle may require 2-3 days to run. We want to be able to run this unit over the weekend. A whole test cycle could typically require 4 to 5 days to run: 66 802.11 RF channels 70 Attenuation steps per channel 12 PHY rates 12 to 20 seconds per channel = 184 hours for a complete test cycle We observed no reliability issues in running over a weekend. Upon returning after two days, the attenuator was still cycling and accurate to within its specification at 0.2 to 0.4 dB. We are continuing to the device over a longer period to see if it fails. Problems and Issues Problem #1: The serial port does not support the backspace key This is only a minor annoyance, as you can simply hit enter and re-input a command. It would not be a problem in an automated test. -> Not a serious problem: no impact to testing Problem #2: RAMP command shows negative numbers above 32768 ms. Someone in their SW team made an obvious error in the overflow count using 16 bit integers. However, I’m not sure if I’d every use the reported values from the RAMP command serial output for anything. -> Not a serious problem: no impact to testing (feature would never be used) Problem #3: RF Input/Output Ports Are Too Close As we discussed, the RF input and output ports are located on the same face and plane. Because of this, we suspected that there would be coupling between these ports with cheap RF cables, and we were correct. To avoid this issue, we had used semi-rigid bendable (which hold their shape) RF cables, which allowed our test setup to achieve less than 63 dB of coupling between the input and output ports. -> Not a serious problem: has a workaround by using better RF cables Problem #4: Step Size This is one aspect of the device which is was negative, and may limit the device to tests that do not require precision measurement. In lacking a 0.5 dB or less step size, it will be difficult to perform the (often high slope) of an 802.11 packet error rate measurement, where even a 0.5 dB difference may cause the PER to jump from 1% to above 10%. In our measurements, a 1 dB difference can easily cause the measurement to go from 0% or a 1% floor to upwards to 30 to 50% PER. How do we deal with this? I’m not sure. I think I can work around this issue by controlling the reference transmitter or receiver in my measurements (which do support a step increment of less than 1 dB), or in controlling some other device in my test setup. -> Major problem: has workaround, limited impact for non-precision testing Conclusions and Summary This is an excellent test device and I believe I will be deploying it into my production test environment in the near future. It allowed me to go from out-of-box to running an RF test in my existing test setup within 20 minutes, largely due to its simple command interface. Moreover, the integration of 4 RF attenuators into a single unit is a huge benefit in this device. In comparison, the primary competing product took much longer to deploy and develop software for, as well as requiring some effort to re-design the mechanical assembly to be compatible with it. Adauratech’s device software and interface was simple and elegant, and (very important) cross-platform compatible with no differences in code or the scripts used to control it. It was not necessary to utilize any custom binaries to use their device. It had only one serious drawback: the 1 dB step size of attenuation. In future models or perhaps via a SW update, it would be good to see at least a 0.5 dB step, instead of 1 dB steps. The step size can impact its usability for some precision RF testing, especially when making an 802.11 receive sensitivity packet error rate measurement.