Occupancy Product Description#


The Novelda Occupancy sensor is a short range Ultra-Wideband (UWB) based radar sensor designed to detect presence of people in home or office environments.

The maximum detection range of the sensor corresponds approximately to a circular zone with a radius of 5 meters. The sensor has absolute range bounding which means that it has full sensitivity out to the configured range limit, and full rejection outside the configured limit.

The sensor is designed to detect major and minor motion, as defined by NEMA. It is also capable of detecting “working motion” which is Novelda’s definition of a single person sitting doing typical office work. Novelda recommends using a 2 minute hold time in the application logic with the sensor.

The Occupancy sensor product is based on the Novelda X4F103 UWB radar sensor module which measures only 12 x 12 mm, is SMD capable, and designed to be mounted directly into luminaires or stand-alone (ceiling mounted) sensors.

The Novelda Occupancy sensor is a turn-key solution that comes with all required hardware and software for simple integration into existing systems.

Key Spesifications#



Mounting recommendation


Detection capabilities

Major motion (walking as defined by NEMA), Minor motion (arm moving as defined of NEMA), Working motion (typical sitting/working motion in front of laptop)

Typical range

4m line of sight

Max range

5m line of sight

Typical detection latency

~ 500 ms at 3.6m, highest sensitivity

Field of View

~360 degrees (horizontal plane)


Detection / No-detection signal

External host

No external signal processing required. Only basic MCU to boot and configure the sensor over I2C (8 kB Flash / 1 kB RAM) is needed.

Power Consumption

< 20 mW @ 1.8V

Detection Zone#

The sensor has close to 180 degrees field of view vertically and 360 degrees field of view horizontally. The detection range, line of sight from the sensor, can be configured between 1 m and 5 m. The resulting detection zone thus has the shape of a half sphere protruding from the ceiling. The sensor detection range should be configured such that the zone encompasses all areas of the room where motion is to be detected.


Sensor Operation#

The Novelda UWB radar sensor is a pulsed radar system. This means that the sensor transmits electromagnetic pulses that are very short in time (a few nanoseconds) and thus very wide in frequency (hence “Ultra-wide band”). These pulses are reflected from the surrounding environment and the sensor receives and samples the reflections. Pulses are transmitted and received in bursts and multiple pulse samples are used to build a single radar frame which constitutes an image of the surrounding environment at a single moment in time. By repeating this process the sensor provides a continuous stream of data about the environment.

The radar frames are then subject to signal processing to output meaningful data to the host application. This processing is described below.

The transmitted pulse sequences are bi-phase coded which means that the pulses change ploarity in a unique pattern. This allows each radar sensor to only receive pulse trains transmitted by itself and thus reducing co-radar interference to practically zero.

Detection Algorithm#

The Occupancy sensor algorithm is designed specifically to detect humans with the Novelda X4F103 radar sensor. It can be grouped into three main parts: Signal conditioning, detector and application logic. The algorithm is configurable from the host device in two dimensions: Range and sensitivity.

Signal Conditioning#

The signal conditioning stage takes raw RF data from the radar as input. The frames are down-mixed, decimated, filtered and goes through noise suppression. The output is signal power in a 1D array where the x-axis is range.


The detector logic takes the 1D power array as input. It does thresholding of the signal power and outputs hits, whenever the signal has exceeded threshold values.

Application Logic#

The application logic takes hits as input. It performs light-weight logic on the hits to reduce the probability of false alarms. The main parts of the logic check that the hits are consistent over time using binary integration (aka. M-of-N logic). The sensor logic outputs detections to the host device running the user application.

Range Configuration#

The maximum detection range of the sensor can be configured from 70 to 500 cm. Range settings above 400 cm are considered experimental and comes with reduced detection accuracy.

Sensitivity Configuration#

The sensitivity of the sensor can be configured from 1 to 5. This setting affects the threshold values in the detector, and enables adapting to differences in integration and to different operation environments. Setting 1 is the least sensitive and setting 5 is the most sensitive. The typical setting and the recommended starting point for evaluation and tuning is sensitivity level 3.


Within the selected detection range all movements will be detected.
Right outside the detection zone there is a transition area of approximately 20 cm. Within this area there is a decreasing probability of detection. This is due to the pulse width of the radar signal.
Outside this transition zone, there is an absolute rejection of any movements.
The transition zone is illustrated in the figure below.

System Integration#

HW Overview#

The Novelda Occupancy Sensor runs on the X4F103 sensor module. Refer to the device data sheet for performance numbers and electrical and mechanical details.

The X4F103 sensor module requires the following connections to a host controller:

  • VDD (1.8 - 3.3 V)

  • Ground

  • I2C (2 signals) or SPI (4 signals)

  • IRQ (interrupt signal)


Either I2C or SPI can be used to communicate with the sensor. SPI can run at a significantly higher data rate than I2C (serial clock at 32 MHz for SPI vs 400 kHz for I2C), which leads to faster startup- and reconfiguring times, but requires more physical signals.

The interrupt signal is used by the sensor module to indicate to the host that there is data available to read or that the sensor state has changed, depending on which mode the sensor is in.

Pulling the enable signal low will put the sensor in a low power state. This also completely resets the sensor, including the internal memory. It is recommended to use the provided FW API for doing this rather than controlling the pin directly. It is possible to tie Enable directly to VDD, but it is then recommended to be able to turn VDD off should a sensor reset be required.

The X4F103 is SMD capable and provided in reels for simple and automated manufacturing.

The sensor is generally robust against materials in front of and around it. For detailed integration guidelines refer to the X4F103 integration guideline document.


X4F103 Application Circuit with I2C connection#


X4F103 Application Circuit with SPI connection#

SW Overview#

The X4F103 requires a host controller to store the sensor FW and upload FW and initialize the sensor during boot. After the X4F103 sensor has started it runs autonomously. The host controller is notified through an interrupt signal when needed based on the selected mode of operation.

Sensor interaction from the host controller is provided by a simple driver called Novelda X4 Sensor Library.


Host Controller Minimum Requirements#

1 kB RAM, 8 kB Flash, 8 bit MCU


Detection Latency#

Detection Performance#

Power Consumption#

The table below shows the average power and current consumption for a single radar sweep.

Occupancy v.0.8, VDD = 1.8 V




17.3 mW / 9.49 mA

17.3 mW / 9.50 mA


17.3 mW / 9.47 mA

17.3 mW / 9.49 mA

The following figures and table shows how much time the radar is in the different modes during one full frame in normal and recording mode.


One frame, Normal mode, I2C#


One frame, Recording mode, I2C#

Occupancy v.0.8, VDD = 1.8 V



Normal mode

Recording mode

Normal mode

Recording mode

1 Frame

62.54 ms

62.50 ms

62.65 ms

62.53 ms

Active (XOSC)

0.38 ms

0.38 ms

0.38 ms

0.38 ms

Active, Radar Ready 1

0.14 ms

0.14 ms

0.14 ms

0.14 ms

Radar Acquisition

7.62 ms

7.62 ms

7.62 ms

7.62 ms

Active, Radar Ready 2

0.08 ms

0.08 ms

0.08 ms

0.08 ms

Active (LPOSC)

30.80 ms

41.26 ms

30.79 ms

31.59 ms


23.56 ms

13.03 ms

23.65 ms

22.73 ms

Boot-up time#

Occupancy v.0.8

FW Upload

1st Sweep


115.4 ms

119.3 ms


42.1 ms

44.4 ms

  • FW upload: Time at FW upload completion since enable goes high (the last interrupt low before 1st Sweep).

  • 1st Sweep: Time at starting sweep since enable goes high (the first radar sweep after starting normal mode).



Boot-up sequence for I2C#



Boot-up sequence for SPI#