I'd like to start by thanking Rohde & Schwarz and Element14 for the opportunity to do this special project. Special thanks to rscasny for his diligence and perseverance to secure an instrument for the project.
I've learned a lot about testing the BLE transmitter PHY on IoT development boards from a user perspective. And in the process I gained experience with an excellent spectrum analyzer - the Rohde & Schwarz FPC1500. Both the FPC1500 and FPC1000 Spectrum Analyzers have been road tested earlier on Element14. The specific upgrades (options) that I needed for BLE testing were the frequency range upgrades to 3 GHz (BLE range is 2.4 to 2.4835 GHz) and the K7 Modulation Analysis option to capture and analyze the GFSK packet bursts.
Spectrum Analyzer Performance
- Setup and configuration
Setting up the FPC1500 to capture the BLE binary GFSK packet bursts was extremely easy.
The following instrument settings must be selected:
Mode -> Digital Demod
Freq -> Center Frequency -> 2.402 GHz
Ampt -> Reference Level -> (I set this to -20 dBM for antenna tests and +10 dBm for direct connect tests)
Sweep -> Trigger -> I/Q Power -> (set to level appropriate for the measured carrier power)
Meas -> FSK (2FSK)
The Modulation Analysis option has a "Standard" preset for BLE that sets key measurement parameters such as frequency deviation, filter type, and symbol rate. The other standard measurement preset is Tire Pressure. The configuration is "sticky" so that the Digital Demod mode and its configuration will persist between power cycles. The only Demod parameter that needed to be reselected was Burst Processing.
The instrument can also be preset using the configuration data stored in a saved dataset. This allows quick setup of measurements that need to be reproduced. - Measurement capability
The Digital Demod mode has 4 measurement displays:
Eye Diagram: Shows the modulation accuracy in that it analyzes the transitions from one modulation state to the other
Symbols: Shows the stream of symbols or binary digits transmitted by the signal
Modulation Deviation: Shows the frequency shift of the signal vs time
Modulation Error: Shows the modulation error (Hz) vs time
Measurement values displayed in Eye Diagram (updated per trigger)
Frequency deviation: Shows the frequency deviation between measured signal and reference signal
Modulation error: Shows the modulation deviation between measured signal and reference signal
Carrier frequency error: Shows the mean carrier frequency offset in Hz
Carrier frequency drift: Shows the drift in the carrier frequency of the measured signal
Carrier power: Shows the power of the measured carrier signal
Magnitude error: Shows the difference between the measured magnitude and the magnitude of the reference signal - Remote operation
R&S has an InstrumentView app for Windows PCs that allows you to control the instrument remotely via LAN or USB interface.
InstrumentView supports various R&S Spectrum Analyzers, Oscilloscopes, and Receivers.
InstrumentView was extremely useful for this project as I was able to control and observe the FPC1500 remotely over Ethernet which mitigated any proximity interference while taking measurements.
R&S also has VISA (Virtual Instrument Software Architecture) and Forum (Python scripting) applications, but I did not use them for this project. - Project specific issues
I/Q Power Trigger Level limitation of - 50 dBm
Prevents making measurements using antennas at normal default TX power settings (0 dBm, 3 dBm) except at very short distances (< 1m).
I was not able to get a specification or detailed description of the Digital Demod option, but R&S Support verified that this was the limit. They suggested using the Preamplifier which amplifies signals by 20 dB, but it had no effect.
shabaz suggested that since the Digital Demod is designed to characterize the modulation performance of the TX PHY rather than antenna performance that this limit might be reasonable.
I/Q Power Trigger Offset
I observed in testing that it I was able to get the cleanest and most consistent (repeatable) eye and data captures when the Trigger level was set to just above (+0.5 dBm) the Measured Carrier Power.
I was not able to verify whether this was expected or acceptable behavior, but since it was consistent - it did not interfere with data collection. - Overall assessment
The FPC1500 is a pleasure to use - it is quiet (fanless), compact, has an excellent display and controls. As noted in prior roadtests, it has a shallow viewing angle but that isn't an issue when operating remotely.
The +30 dBm max input range allows it to do direct connection to Bluetooth and BLE transmitters at full power setting (+20 dBm).
The -50 dBm min I/Q Power Trigger setting precludes making medium to long range antenna measurements.
The BLE Standard preset allows rapid configuration of Digital Demod parameters.
The BLE data measurement capability will make the FCP1500 a very useful tool in my arsenal. As I struggled with trying to program device firmware to set TX PHY parameters (specifically TX power and TX channel), I realized the value of being able to easily verify that the PHY was operating correctly.
Project objectives
- Characterization of modulation performance
I was able to measure the modulation performance of 3 different chipset families (ESP32, nRF52, CYW43). I did not expect any surprises as these chipset designs have been tested for specification compliance. Any bad measurements would have represented defective hardware. I did notice eye degradation at lower power levels in testing with antennas, probably due to the reduced signal to noise ratio. Otherwise, the modulation performance of all the boards was good at the power levels I was able to test. - Characterization of antenna performance
I had hoped to try antenna testing to a distance of 5 to 7 meters, but due to the trigger level constraints I couldn't test beyond the 2 meters set up on my workbench. In my test environment, the ambient noise level was in the -70 dBm range so I would have expected the eye to collapse as the DUT RSSI reduced into that range. The frequency (channel) hopping technology is really required for BLE to work consistently. I was surprised at how many BLE sources I have present in my house if I don't actively mitigate them.
One lesson I learned when using directional antennas is that measurement repeatability is difficult due to not being able to maintain antenna orientation without fixturing. - Common application configuration
My attempt at this was to use a reasonably common BLE advertising program, iBeacon, as I believed that it would be easy to implement across the various development boards. Unfortunately, the "Devil is in the details" and it turns out that while IBeacon programs are available for the different board types, the ability to set the TX power and advertising channel was difficult for some of the development platforms - in particular using ArduinoBLE with Mbed OS.
The ability to program these parameters will be a future constraint when I choose BLE boards for applications that require performance optimization. - Comparison of board performance
Comparing modulation performance was straightforward, but that doesn't appear to be the primary differentiator between boards.
The largest performance variations are in the TX power and TX path implementation. I had not realized that the chipsets had such a large range and value difference in the TX power settings. The nRF parts are clearly optimized for lower power operation, the CYW parts for higher power, and the ESP32 chips spanning the middle. In the context of this project, I've gained some insight into how to measure this performance and the FPC1500 provides the means to do so. I'll need to develop some additional device programs to enable the measurements.
Future work
- Antenna characterization using FPC1500 VNA capability
I have not yet used the VNA capability of the FPC1500. This is primarily because I don't have an auto-calibrator and I haven't figured out how to add the calibration data manually. Once I figure that out, I'd like to compare the measurements against a NanoVNA that I have been using for antenna testing. Then I'd like to use the FPC1500 to capture datasets for antenna types that I use so that I have a reference to compare new antennas. - Port Direct Test Mode application program to boards tested in this project
I used the iBeacon program to set up the operation of the various development boards. The disadvantage of iBeacon is that I could not modify the TX power or TX channel dynamically at run time. Changing parameters required recompiling the program. I'd like to get Direct Test Mode working with the 3 chipsets that I tested. The advantage of DTM is that I could configure parameters at run time via UART. That would allow me to write test scripts to automatically run tests by controlling both the development board and the FPC1500 using the Forum application. - Fix TX power setting issues for the different device libraries
It bothers me that I could not set the TX power in some of the iBeacon programs. I'd like to figure that out because these are chipsets that I use all the time and I'd like to take advantage of using something other than the default TX power setting (lower for low power or higher for longer range).