Now that i have no more PIR sensors in stock, I had to find me an alternative. The requirements: low power of course, it should be able to fit in the PIR enclosure i already have in use and not too expensive, cause I’ll need a lot of them. The ELV PIR13 seems to be the right candidate for the job; this would bring down the PIR power usage from 170 µA to 40 µA. I don’t have to tell you what that will do to battery life
I’ve ordered a couple of these ELV PIR13′s and will build a 3rd motion sensor with one of these. In the meantime I also changed some things in the code to reduce the JeeNode power usage in power down mode even more: it went down from 20 µA to 6.5 µA. Calculations show a theoretical battery life of 200 weeks… well, i think the internal discharge will have screwed up the battery before that…
BTW, the 2 motion sensors that are currently being used, are still running fine on their first set of batteries.


September 7th, 2010 at 13:28
Hi!
Nice work.
Do you have any plans to share the code or is it just me who have missed it somewhere?
I am a great beliver in open source and hope that you will share all your hard work to the community. Not only the code but the schematics too. I don’t think I’m skilled enough to connect a jeenode with a xbee and start from scratch.
Hoping you will build a door sensor soon or maybe a matt sensor.
As I said, nice work!
Greetings from Sweden
September 7th, 2010 at 16:41
Hi Jesper,
Thanks. There’s a link to the code somewhere, but here it is: http://www.hekkers.net/files/Motionv2_20100729.txt
And here you can find info about the Sleep library i used and extended (also read the linked article).
I don’t have a schematic; i hope the pictures will do; the JeeNode pins I use can be found in the code. If you have any more questions just let me know!
Door/Window sensor is high on the list, so stay tuned
September 7th, 2010 at 23:13
What specifically did you do to get the JeeNode power usage down to 6.5uA? I’m building my own domotica system and sensors as well and your blog has been a great help thus far. Thanks!
September 8th, 2010 at 19:13
Hi Greg,
In the top of the Sleep library i use i changed the original define to:
#define set_sleep_mode_and_sleep(mode) \do { \
byte prrSave = PRR, adcsraSave = ADCSRA; \
ADCSRA &= ~ bit(ADEN); \
PRR = 0xFF; \
set_sleep_mode(mode); \
cli(); \
sleep_enable(); \
MCUCR = MCUCR | bit(BODSE) | bit(BODS); \
MCUCR = MCUCR & ~ bit(BODSE) | bit(BODS); \
sei(); \
sleep_cpu(); \
sleep_disable(); \
PRR = prrSave; \
ADCSRA = adcsraSave; \
}while(0);
Now brown out detection is disabled too.
Based upon recent weblog posts on Jean-Claude Wipplers weblog, a great source of information, you should visit that one too, really!