RCWL-0516 Microwave Motion Sensor Review

This is the RCWL-0516, a mini-radar motion sensor module that features the RCWL-9196 chip. The modules function is based on doppler radar and has a range of about 5 to 8m. Microwave radar sensors can have a much higher sensitivity and better detection rate than traditional IR sensors.

The main advantages that these sensors have over PIR sensors are that they are much more compact, totally silent and have no moving parts. Another is that they work through many types of materials and can be invisibly installed. The PCB itself is less than 4mm thick. They are also very sensitive to movement and can detect small movements by people.

The other major advantage these sensors have is that they are very cheap. You can buy these sensors for less than £1.50 each and if you buy them in larger volumes, they work out at less than £1 each. An absolute bargain given what my extensive testing has revealed!

Note:  These sensors are safe. They put out very low levels of microwaves at 3.2GHz.

These sensors do not measure distance and they have a digital output. When triggered, the digital output goes high for about 2 seconds. This makes it very easy to use with an Arduino or Raspberry Pi, where you would poll each input in turn and it avoids the need to use interrupts.

I initially bought 2 sensors from a vendor on eBay for £2.95 delivered. I was impressed enough to buy 3 more (£3.75 delivered) to allow me to undertake more longer-term testing. I then bought another 10 for £9.35 delivered.

Note that if you order several of these sensors, they are likely to arrive combined, as one single PCB with break/snap lines.

Specification

The PCB has an onboard 3.3V voltage regulator that can supply up to 100mA if required. I don't plan to use this capability but it is useful when testing, to power local visual or audible indicators.

Connections

The module features 5 connections but you only really need to use 3 of them: VIN, GND and OUT.

The output pin uses a 3.3V logic level and this goes HIGH when motion is detected. 3.3V is enough to allow it to be connected directly to the input pin of an Arduino and work reliably.

It is easy to connect these sensors using a 4-way Molex connector to my Smartisant Arduino Shield SHLD1.

The PCB also features 2 connections (labelled CDS) at the sensor end for a light sensor (LDR). I have no plans to use this functionality. The CDS pin is also exposed at the other end of the PCB. This basically works by the LDR pulling the CDS pin (close) to ground when the light level is higher. You don't need to connect this pin in normal operation but, it could be used with an Arduino output pin to disable the sensor.

I like to use 12V dc power and logic levels for dumb sensors in my contextual smart home, to maximise reliability and minimise interference when connected via longer wires. The output of this sensor can switch a 12V dc signal by using a local 4N26 opto-coupler and this can then be used with my 12V opto-input board.

Note that this powers the microwave sensor via 12V dc and the input to the Arduino is now connected via a 10KΩ pull-up resistor, so the Arduino input is now active LOW.

Initial Testing

Enclosures & Mounting

Note:  This sensor needs to be rigidly mounted and so do the leads leading to it. If the connecting leads are subject to movement and vibration, this will trigger the sensor.

Microwaves can pass through plastic, so the sensor works equally well, when enclosed in a plastic case. I 3D printed a test enclosure and this means they could potentially be used outside or in other damp or wet locations. My first enclosure is just 4mm deep and 45mm in diameter. The plan is to resin encapsulate them in enclosures like this, to make them fully waterproof.

I've updated my 3D printed mount design, so make it easier to resin encapsulate the sensor, route the wires and optionally mount this part inside a reflector if required. This design was designed using Autodesk Fusion 360, sliced using Cura and takes about 23 minutes to print on my Ender 3 Pro 3D printer.

And this is how the sensor fits inside. It can be stuck in with double sided tape, sealant or simply resin encapsulated to make it fully waterproof and fixed in place. My preference is to do resin encapsulation.

Orientation

The sensor appears to have a back (component side) and a front (bottom of the PCB) but, my testing shows it to be be sensitive in both directions. If you want it to be uni-directional, then it needs a metal shield on the rear side.

The sensor PCB has a clear area for the wave guides and the electronics. If the wave guide is at the 'top', then I'm still not sure it makes any difference which way up it is. I'm going to be doing a lot more testing to find out though.

Materials

My first set of tests, show the sensor works behind plastic and the sensitivity wasn't compromised. This is good news as it means I can 3D print custom enclosures for both indoor and outdoor use.

Wood

I've tested these sensors behind both 15mm and 18mm thick pieces of pine wood and it works perfectly well with no obvious reduction in sensitivity.

Paper

My third test was behind a 50mm thick hardback book. The sensor still worked fine.

Stud Walls

All my testing suggested that these sensors could be hidden behind plasterboard in a new build. This could be in walls or in ceilings. My testing shows that the sensor works through a stud wall, with two layers of plasterboard sandwiching wooden studs. The sensitivity is reduced slightly but, I'm confident that it would work well through just one layer of plasterboard. Obviously, this depends on what in inside the cavity of any stud walling.

Double Glazing

I did some testing of this sensor behind the normal standard double glazing in our home and it does not work through these kind of glazing panels.

Field Of View

My initial testing shows the sensor has quite a wide field of view. One thing I'm keen to test is how the sensor works when installed above the ceiling of a room. Will the coverage be constrained to the room or stray outside of it?

Sensitivity

Compared to a PIR sensor, this microwave sensor is incredibly sensitive to movement. Whilst sitting on the sofa, it would pick me up reaching for the remote control or any slight movements. This sensitivity is one reason why I don't think it will work well outside though.

It is also much quicker at detecting movement than a PIR, which typically requires a person to walk across several internal 'beams' to generate the required pulses to trigger.

False Triggering

One problem with some occupancy sensors is false triggering. A lot of this can be fixed with good positioning but, some sensors are simply susceptible to external noise. My initial testing showed this sensor to be excellent in this respect and even when run at 5v dc on a 8m long lead, I've yet to see a single false trigger.

Warning:  Having done some testing outside on a windy day, I found that these sensors are triggered by the wind. This effectively rules them out of being used outside. This is a real shame.

Use Case Testing

I have a number of use cases that I will be testing against:

TV Cabinet

Underneath my wall mounted Samsung SUHD 4K TV, I have a cabinet with STB, games console, home cinema amplifier, etc. There is also a networked Arduino, with a number of sensors connected to it. One of these is a tiny PIR sensor but it isn't the as sensitive or responsive as I'd like. My plan is to replace it with one of these RCWL-0516 sensors.

Swapping out the PIR sensor was easy, because the RCWL-0516 uses the same 3 pin connector and works the same way, so I can reuse the cable with the 4-way Molex connector too.

Initial testing shows that the sensor works really well. There is no false triggering and it is amazingly sensitive to movement when I'm sitting on the sofa. Simply operating the remote control causes it to detect movement. Since I log all sensor events for this sensor, I can see exactly what is going on and the sequence of events. This showed up an issue though, as the sensor picks up people walking past behind it, on the other side of my lounge TV wall.

I tried screening the rear of the sensor with some tin foil and this seemed to work but I wanted something easier to mount the sensor in. I thought about 3D printing a suitable enclose (and I still probably will) but then I saw this Ariel Gel cap sitting in the kitchen and it looked ideal.

My plan is to glue a few layers of tin foil over this and then mount the sensor in the round hole in the middle.

I glued 4 layers of tin foil on the outside of the Ariel Gel cap and the central hole was just the right size for my 3D printed sensor mount. In theory this should make the sensor work in one direction only.

My testing showed that this approach works brilliantly and I now have a sensor that is directional and has a narrower field of view, whilst retaining the required sensitivity.

Note:  Testing for this use case has proved so successful, that a RCWL-0516 sensor has now been permanently deployed for this application.

Bedroom Ceiling

I want to know if I can install a sensor above a ceiling and get good quality occupancy data from it. It may be that I need more than one sensor to cover a larger bedroom but this doesn't matter as the sensors are so cheap. I also need to be sure that I can constrain detection to the rooms boundaries. I don't want it to pick up people on the other side of a bedroom wall.

Installation was quite easy as I just needed a long lead with a 4-way Molex connector on it to connect it to a spare input on one of the Arduino processors in my loft. The sensor will sit under the loft insulation with a metal plate on top of it.

Wardrobes & Cupboards

I'm currently testing this sensor inside of a wardrobe and some cupboards. This allows invisible, fit and forget installation. Obviously, it depends on the materials but these sensors have been test successfully through 18mm of soft pine wood.

I've tested this sensor inside a fitted wardrobe and it worked well, even through a sud wall with two laters of plasterboard. It doesn't work behind mirrored glass, sliding wardrobe doors.

Porch & Driveway Sensor

I want to know if I can install this sensor above my garage door and use it to pick up people and cars on my drive. If this works, then it should also make a good porch occupancy sensor.

My initial testing shows that it works very well as a porch motion sensor, with a good range of around 7m.

Note: My testing has shown that these sensors are falsely triggered by wind and therefore cannot be used outside for this use case.

Shed Sensor

Because this sensor works through plastic and wood, it is ideal for detecting occupancy as you approach garden sheds and other external storage. I plan to install one invisibly inside my shed, and use it as another sensor to provide input into my smart path lighting. The main challenge with this particular installation is that the path has a fence to one side and my neighbours garden is on the other. I need to ensure my neighbours don't trigger the sensor.

Note: My testing has shown that these sensors are falsely triggered by wind and therefore cannot be used outside for this use case.

Animal Detection

Because this sensor is so sensitive, I'm keen to see if it can be used to detect animals such as cats or a heron arriving at my pond. More on this to come later.

Note: My testing has shown that these sensors are falsely triggered by wind and therefore cannot be used outside for this use case.

Car Detection

I know this sensor can detect people but, I want to know if it can be used to detect cars arriving home and pulling up onto my drive.

Note: My testing has shown that these sensors are falsely triggered by wind and therefore cannot be used outside for this use case.

Smart Home Integration

Over my many years doing smart home (I started in 2004), I have developed my own library of code for Arduino processors and this includes functions to integrate it into my distributed Home Control System and connect numerous types of sensors. These 'slave processors' can then do clever stuff like local control, self-monitoring of performance, local signal conditioning and rate limiting, send warnings and errors, or host some functions locally.

This maximises reuse across my many smart home projects, making it very quick and easy to develop and test new smart home capabilities. My smart home also employs the concepts of technology abstraction, meaning my smart home is also technology agnostic. This allows old technologies or broken sensors and devices to be swapped out with new ones, with minimal effort and zero reconfiguration.

Most of the Arduino processors installed in my smart home use an Ethernet IP network interface, to enable them to send and receive events with my Home Control System, using my unified communications protocol. Wired networks ensure very low latency and hence a great user experience, though occasionally I will use Wi-Fi.

Adding sensors and devices to my Home Control System is simply a matter of adding one line of JSON for each one, to the main configuration file. This defines the name, zone, object type and also the details of the slave processor it is hosted or controlled by. All the intelligence is within my Home Control System, which receives and sends encrypted events using my unified communications protocol. It sends events to update my smart home on things like the temperature, humidity, fan state, appliance and lighting state changes, occupancy, etc.

In my contextual smart home, these sensors have a object type of 'Motion'. Motion sensors generate events when motion is detected and send a value of 'On'. Depending on the type of motion sensor, the slave processor they are connected via will perform rate limiting, so that they don't generate events too frequently. This could be as low as every 2 seconds but is more usually around 9 seconds, depending on the type of zone they reside in and what other context I need them to support.

Summary

My testing has shown that this sensor is a valuable addition to the wide range of sensors that can be used in and around the smart home for accurate and timely occupancy detection. Given its amazing price, I plan to deploy many more of these within my contextual smart home.

Warning:  These sensors are NOT suitable for outside use as they can be falsely triggered by the wind. This limits the number of applications and use cases.

As with all smart home sensors, this one needs to be carefully installed and located for best possible performance. It also needs to be in a suitable enclosure for each application or use case. A screen/shield is required if the sensor needs to be uni-directional.

The cost of this sensor and the ability to connect it quickly and easily to an Arduino using 5V or 12V dc power means it is a no brainer to use it liberally around your smart home for motion detection and occupancy sensing.

My @smartest_home will sometimes tweet about these sensors installed in my contextual smart home.

Further Reading