The detection works fine when you know exactly how this sensor works. Sort of wish there was better documentation. It takes a few seconds to calibrate so make sure at boot up you have it in a good position. After that, when it detects motion, it will output a digital 1. However, if you want it to go back to a digital 0, you must wait with no movement for ~20 seconds or so. Of course, when you don't know how it works, it just seems broken as it is always detecting movement even when you hold it still for a few seconds. I can't comment on its distance as my application is fairly small in distance.