This project describes an easy way to evaluate the link budget of the Wireless Gecko EFR32 devices using Silicon Labs’ Radio Abstraction Interface Layer (RAIL) to perform a range test between two nodes.
Range Test is a standalone test application that creates a radio link between two evaluation kits and sends predefined amount of packets from the transmitter side to the receiver. The range test demo implements packet error rate (PER) measurement. PER is a commonly-used technique for measuring the quality of RF links in wireless systems under particular conditions.
First, Simplicity Studio has to be run. Once the required software is installed, the EFR32 development kit can be connected to the PC using a mini-USB cable. This should be done before running the RAIL test. Make sure the 3-way power switch in the bottom left is set to AEM. If you want to connect to your WSTK over Ethernet, you should also plug in an Ethernet cable at this time. The IP address will be printed to the LCD screen during startup of the WSTK but may be lost when the app starts. To see this again, reboot the WSTK and press the reset button for several seconds to prevent the EFR32 from loading its application.
Fig: EFR32FG Radio Board with Main Board
The steps included in this stage are a selection of the Range Test application, generating and building the application, loading the binary onto your device/flash programming.
Second, some basics of the Range Test application must be noted. Range Test creates a radio link between two evaluation kits and sends predefined amount of packets from the transmitter side to the
receiver. The application can be configured through the on-screen menu system of the board and does not require a PC connection. The receiver calculates packet error rate (PER). It also displays the current RSSI level in dBm units and draws a chart of the RSSI historical data. For long tests, the transmitter can be set up to transmit continuously. It is not necessary to start both sides synchronously.
Next, the menu system can be examined. After starting the demo, the first screen is the Welcome Screen, which shows Silicon Labs logo, the carrier frequency and the RF power level. This is followed by a menu which allows the user to see important information about the settings and change them. All the RF settings of the radio, as data rate, modulation, frequency settings and output power are listed in the menu.
Fig 1: Radio Board Welcome Screen
Fig 2: RF Configuration Menu
Finally, the range test can be performed. This test can be performed inside a building if indoor propagation is tested. The steps are as follows:
Fig 3: TX mode
6. The test needs to be started at the transmit side by pressing [START].
7. Confirm that the transmitter sends packets and the receiver answers
8. If PER<1%, reset the PER on the boards and try to walk further in the area. Propagation conditions usually improve if the user distances himself from a possibly faded area.
Fig 4: RX mode
Demo is available in Simplicity Studio - Software Examples - Silicon Labs Flex SDK Examples - RAIL: Range Test
To read the complete, detailed user guide click here.
I realize your post is a bit old but I figured I'd comment anyhow in case someone chances upon it at a later time.
Having done some range test stuff myself I can tell you that the height of the antenna can certainly make a difference, performance wise.
Some of it has to do with the wavelength of the band you're operating on, in this case the 2.4-2.5GHz range of the ISM band.
The formula for wavelength is:
λ = c / f
c = speed of light in vacuum, a constant ~ 300,000,000 meters/sec
f = frequency = 2.4 gHz
λ = wavelength in meters
So the wavelength at 2.4GHz is:
λ = 0.3 / 2.4GHz = 0.125 meter = 12.5 cm
It's usually a good idea to keep your antenna at least 1.5X to 2X times the wavelength above ground or your photons are going to do all sorts of silly things.
1.5 meters is a nice number because it gives a standard baseline of comparison that is easy for most humans to manage (it's about 5 feet) without an antenna mast.
Some of it also has to do with radiation patterns:
With sufficient height, you're less likely to be bouncing the strongest part of your "lobes" off of the ground in a way that would interfere with ideal operation.
For the most part, any obstruction will tend to reduce ideal performance, some more so than others.
Will your module explode if it's 5cm above the ground?
Probably not, but it's certainly not ideal and you won't see optimal performance.
As for your second question, I think I recall that the WSTK uses something like an LP3878 regulator, so I would suspect you should be fine with a single cell Li-ion.
Just be careful, those 18650s can often source a LOT of current (some up to 40A), so don't short it out!
I am using two EFR32FG14 ic in my PCB. In one PCB it is configured as transmitter and in the other it is configured as receiver. I debug using EFR eval board. I would like to get the RSSI value in dBm for the receiver. When i try to use the function x = getRssi , x(float) gives value -512.
1. How to get the RSSI value in dBm?
Any help will be greatly appreciated
See the RAIL API reference:
int16_t RAIL_GetRssi (RAIL_Handle_t railHandle, bool wait)
Returns RAIL_RSSI_INVALID if the receiver is disabled and an RSSI value can't be obtained. Otherwise, return the RSSI in quarter dBm, dbm*4
So to get it in dBm you need to divide the result by 4. Note that the function returns int16_t, not float. The value depends on the current PHY and the PCB and has part-to-part variation. You need to characterize the RSSI values on your hardware to get accurate results.