My Slim 2AA Battery Node
-
@flopp I doubt there are any electrolytes in the pF range seen here. If you mean the pF caps in the example pictures, they are not part of the Slim Node base concept and just a random choice I did for myself. If you mean all the 100nF caps in the base concept, it's a matter of the "smd free" design criteria I apply from time to time.
@m26872 said:
@flopp I doubt there are any electrolytes in the pF range seen here. If you mean the pF caps in the example pictures, they are not part of the Slim Node base concept and just a random choice I did for myself. If you mean all the 100nF caps in the base concept, it's a matter of the "smd free" design criteria I apply from time to time.
OK. Yes, I saw that there was cap in pictures.
-
@flopp ... or if you refer to the standard pair of 22pF caps used when there is an external crystal - no, you wont need them.
-
Hi together,
as first i have to say, its a nice node, that you build.
So i tried to build one. I ordered an atmega 328p. Flashed the bootloader from the forum. This is the boards.txt:atmega328_1mhz_4800baud.name=ATmega328 on a breadboard 1MHz internal clock, fast start, 1.8V BOD, 4800baud upload atmega328_1mhz_4800baud.upload.protocol=arduino atmega328_1mhz_4800baud.upload.maximum_size=32256 atmega328_1mhz_4800baud.upload.speed=4800 atmega328_1mhz_4800baud.bootloader.low_fuses=0x42 atmega328_1mhz_4800baud.bootloader.high_fuses=0xDE atmega328_1mhz_4800baud.bootloader.extended_fuses=0x06 atmega328_1mhz_4800baud.bootloader.file=atmega/atmega328_1b.hex atmega328_1mhz_4800baud.bootloader.unlock_bits=0x3F atmega328_1mhz_4800baud.bootloader.lock_bits=0x2F atmega328_1mhz_4800baud.build.mcu=atmega328p atmega328_1mhz_4800baud.build.f_cpu=1000000L atmega328_1mhz_4800baud.build.core=arduino:arduino atmega328_1mhz_4800baud.build.variant=arduino:standard atmega328_1mhz_4800baud.bootloader.tool=arduino:avrdude atmega328_1mhz_4800baud.upload.tool=arduino:avrdudeNow i have measured the current draw, and the arduino alone draws 6.8mA (without crystal, nrf ...)
I tried some sketches, (binaryswitchsleepsensor) but the current is not really gone down.
The only sketch is this:// **** INCLUDES ***** #include "LowPower.h" void setup() { // No setup is required for this library } void loop() { // Enter power down state for 8 s with ADC and BOD module disabled LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF); // Do something here // Example: Read sensor, data logging, data transmission. }With this sketch is the current 0.02mA
OK, 0.02mA is not bad, but when i read that some of you have few µa, i dont understand why the current on my atmega is so "high"
Can somebody tell me what bootloader is good, wich fuses are good. And maybe what i have to do to get the current so small as possble
Thank you very much
Greets Eddie -
Hi together,
as first i have to say, its a nice node, that you build.
So i tried to build one. I ordered an atmega 328p. Flashed the bootloader from the forum. This is the boards.txt:atmega328_1mhz_4800baud.name=ATmega328 on a breadboard 1MHz internal clock, fast start, 1.8V BOD, 4800baud upload atmega328_1mhz_4800baud.upload.protocol=arduino atmega328_1mhz_4800baud.upload.maximum_size=32256 atmega328_1mhz_4800baud.upload.speed=4800 atmega328_1mhz_4800baud.bootloader.low_fuses=0x42 atmega328_1mhz_4800baud.bootloader.high_fuses=0xDE atmega328_1mhz_4800baud.bootloader.extended_fuses=0x06 atmega328_1mhz_4800baud.bootloader.file=atmega/atmega328_1b.hex atmega328_1mhz_4800baud.bootloader.unlock_bits=0x3F atmega328_1mhz_4800baud.bootloader.lock_bits=0x2F atmega328_1mhz_4800baud.build.mcu=atmega328p atmega328_1mhz_4800baud.build.f_cpu=1000000L atmega328_1mhz_4800baud.build.core=arduino:arduino atmega328_1mhz_4800baud.build.variant=arduino:standard atmega328_1mhz_4800baud.bootloader.tool=arduino:avrdude atmega328_1mhz_4800baud.upload.tool=arduino:avrdudeNow i have measured the current draw, and the arduino alone draws 6.8mA (without crystal, nrf ...)
I tried some sketches, (binaryswitchsleepsensor) but the current is not really gone down.
The only sketch is this:// **** INCLUDES ***** #include "LowPower.h" void setup() { // No setup is required for this library } void loop() { // Enter power down state for 8 s with ADC and BOD module disabled LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF); // Do something here // Example: Read sensor, data logging, data transmission. }With this sketch is the current 0.02mA
OK, 0.02mA is not bad, but when i read that some of you have few µa, i dont understand why the current on my atmega is so "high"
Can somebody tell me what bootloader is good, wich fuses are good. And maybe what i have to do to get the current so small as possble
Thank you very much
Greets Eddie@meddie I don't really get what you've ruled out in your troubleshooting. Do you "test the arduino alone" using MySensors lib and example sketches? Using Lowpower lib directly works ok as it seems. Next step would be to connect the nRF24L01+ and run some MySensors lib example.
Ext fuses 0x07 (BOD disabled) instead of 0x06 (BOD 1.8V) could save you a few uA.
-
@m26872 said:
Do you "test the arduino alone" using MySensors lib and example sketches?
Yes, on the bredboard is only the atmega 328p. nothing else. Connected to 5v
Using Lowpower lib directly works ok as it seems.
Yes using the LowPower lib i came down to 0.01mA current draw.
Next step would be to connect the nRF24L01+ and run some MySensors lib example.
Ok, i will try it today evening.
Ext fuses 0x07 (BOD disabled) instead of 0x06 (BOD 1.8V) could save you a few uA.
OK, i try this too.Thank you very much.
Greets Eddie -
ok, i tried to burn with 0x07 Fuse. And i tried to power the atmega with 3.3 v and not 5v.
Now i came down to 4µA in sleep mode with the lowpower sketch.
When i try to flash a mysensors sketch the the atmega has a current draw 1mA. -
ok, i tried to burn with 0x07 Fuse. And i tried to power the atmega with 3.3 v and not 5v.
Now i came down to 4µA in sleep mode with the lowpower sketch.
When i try to flash a mysensors sketch the the atmega has a current draw 1mA. -
yes of course, i just connected a nrf to the atmega an uploaded the binaryswitchsleepsensor sketch. Now i have a current draw 95.6µA
But when i take the door contact off the atmega draws only 1.3µA
When the door contact is closed (from 3 to GND) the the current is rising to 95.6µA -
Makes sense to me. By closing the contact you get a path from 3V3 via the pullup resistor to ground.
The current is (for a pullup resistor value around 30KOhm) around 100uA.
Try NOT using the internal pullup resistor of pin D3, and using an external pullup resistor of 1MOhm or more.
You will see lower current when the contact is closed.
-
-
@m26872 I see it in the BOM. But now, i can't see where it goes (5 hours... I ask a question, and 5 hours later I can't see what i was talking about....)
C4 is cool for the NRF pic of tension, but -just for information- it could be wherever between 0Vcc and 5Vcc, not necessarily near the NRF ?
As an electrician, and not an electronician, I don't understand why so many 0.1uF capacitor are needed (but i put them too) as we can see in MySlimNode2-sch.pdf that they are virtually at the same place... :sweat_smile:
Thanks for the answer !
-
Board releases
(other colors might be selected when ordering)- Version 2.0 (black) [order] Now designed in KiCad. "Final release". I'm not developing it further atm, but I know others have some projects going.
- Version 1.4 (red) My latest version in Eagle. Known issues are wrong references due to panelization and broken circuit diagram links.
- Version 1.2 (blue) Some less convienient placed components and the panelized verision has a faulty via.
- Version 1.0 (green) The one described below in this first post. Working but not panelized and lacks a few features.
Share stats and info
The panelized versions 2.0, 1.4 and 1.2 have until today (2019-02-24) been shared 230 (!) times at boardhouse. Together with a few shares of the non-panelized version and my own orders, and the usual 3x10-11 boards/order, it means a lot of boards! Guess very few build nodes with every board, but at least the design should be well proven by now. This also means a few $ to MySensors.org, since 1 $/order will be donated. Great thanks to everyone who has orderd this board! I'll keep this share-info updated for transparency purposes. IMPORTANT: Please understand that DirtyPCBs.com is a non-profit community service, with a lot of manual support required. So please be patient and nice to their support in general. A new site is under development. Read more at their support site. EDIT 2017-06-22: Despite the new site it is still a hassle every time to get a reply from them and then the share credits. If anyone have some more info on this, please let me know.Introduction
This project describes a successor Node concept to my first 2AA battery sensor. I have combined a few simple design options to a result that I find rather useful myself and I think should be shared. The application specific sensor/-s of your own choice has to be added to this Node design, nor here any example sketches provided here except from a few links further below. I use this design for all my door and window reed switches, temperature (calibrated internal or thermistor), LDR and similar simple sensor types. But, nothing prevents the use of more sophisticated sensors like Si7021 here as well. A few links to sensor examples based on this node will be presented further down in this post.Features
- Simple, in the sense that it consists of a minimum number of components and common available material.
- Cheap regarding choice of components, assembly work effort, energy storage and power consumption (battery type and life time).
- Flexible universal design base equipped with various sensors. PCB pads used as port connections or prototyping area for extensions.
- Small and discrete to fit in confined spaces and to reach WAF level
And more concrete:
The uC
Hardware
A "bare bones" ATMega328p 28pin PDIP (with or without socket). Bought from here and here. My reasons to not use Arduino Pro Mini here are- The APM width is too big.
- APM has no prototyping/near connection area. There's no spare pads for separate connections unless you accept to use pads connected to softwise inactive ports.
- Radio module connection has to be manually made to the APM.
- Low power hacks like removing power led and voltage regulator are needed.
- Necessary support components (resistors and capacitors) are few and can easily be added to a custom pcb.
Software
Since I prefer Arduino IDE for programming (flash) and debugging, I need a bootloader. Bootloader instructions are found all over the internet, but here's anyway how I do it. I use this precompiled bootloader from here. It's an Optiboot with 1MHz internal clock and 9600 baud serial communication. Fuse changed to BOD disable. According to this you should use minimal startup time to reduce power in every 8s sleep cycle, but for the moment I don't care and stick to the default 65ms. I use Avrisp mkII avr programmer for fuse and bootloading similar to this procedure. Arduino as ISP, Avr/USBtiny or whatever any other should of course be just as good. Avr Studio 4.19 is a good choice for Avrisp mkII (perhaps for others too) and 4.19 is the last version before the gigantic (and for me useless) IDEs were released.
I add this new board to my "boards.txt". Fuse settings, don't forget to set the lock bits. If programming a large batch, the ELF production file is handy.
Here's a great tutorial for those who use Arduino Uno as ISP.
UPDATE 1: Today (2017) a lot has happen since I wrote about this. Some things has made it easier for us. A very good selection of precompiled bootloaders is now found here at MySensors. And you don't need to (and shouldn't) mess with the boards.txt any more. Instead I recommend the installation of MiniCore to the Arduino IDE.
UPDATE 2: There have been reported issues with MySensors 2.x freezing on SlimNodes running at 1MHz, which I've confirmed. Recommended solution when using MyS 2.x, is to use 8MHz (internal) instead.The Radio
A standard NRF24L01+ radio module is used. The width align with the AAs and no mods is needed (like with my other one). As always I try to keep the antenna part of the module free from shading metal.
2020-12-14: On using RFM69 - here's a hint from @joaoabs at this page: I've been troubleshooting this slimnode with RFM69 radios and realized that a shunt between RFM69's DIO0 and Mega328's INT0 is required, otherwise the node will not "hear" the gateway. Even if the nrf2rmf69 board is used this shunt is required. It seems this is a re-current issueThe Board
At first I planned the build on a proto board, just to stick to the cheap-and-standard concept. But with today's low prices on custom made PCBs, it wasn't any longer an option. Space, quality and work effort are so much more attractive.
Latest design files are open and available at the openhardware.io site. Please click on the image-link below to access openhardware.io where all design files such as latest BOM, kicad-files and circuit diagram (pdf) are found.
https://www.openhardware.io/view/10/My-Slim-2AA-Battery-NodeBoard (v2.0) Top Side:

Board (v2.0) Bottom Side:

The Enclosure
UPDATE: If you dont't like my primitive casing descibed below, in this post the user @buxtronix made a nice 3D-printed case which you can find here.An important overall part of this design idea was to align minimum dimensions of the components and get rid of "expensive" parts like battery holder. It turn out (see below) that the enclosure's functionality as battery holder wasn't needed even though it was the initial idea. The cable duct case has been discussed earlier, but rejected by some due to lack of ways to seal the endings. I still haven't the perfect solution, but I've since many years simply used (cheap) white tape. With some care it looks ok, and still does 5-10 years later. There are often proper terminators/endings to buy, but for some reason to unrealistic high prices.
I used this cable duct with the dimension 17x20mm. Unfortunately it turned out that this particular type I used (Thorsman TMK T20) is now "professional grade" and dimension 17x20 is no longer very commercially available for consumers (here in Sweden at least). Eg. to get it, you have to pay >5$/m from places like this or buy it in bulk (50m) from a professional store (preferably as a professional with discount). The 50m bulk batch will give you 263 sensor nodes of standard length (19cm).
Standard consumer dimension cable duct is e.g. 15x15mm from what I've seen. It'd be nice to design a 2AAA node in that one. If only there is a thin radio module? (Future project.)


The Battery pack
Easy home made 2AA battery pack. Maybe it looks more demanding and time consuming than it is. (Usually its the other way around in my experience.)- Start by taping the two (connecting) batteries together.
- Prepare the wires and make a small bun at the battery connecting ends.
- Attach the wires with tape.
- Tighten the cable ties and carefully note
- that the wires are pressed to make good contact with the battery poles
- how the cable tie ends must be placed to not steal lateral space
- that the wire from the bottom must be routed near the cable tie to not steal space.
- Make the pack more rigid by taping one or two times around at the top, bottom and middle.
- Trim wires and solder the female connector. If desired, leave at least a small part of one wire naked for current measurements.
A battery change is done fast when cables a already made (use solid wires that preserves its shape). So why pay for a battery holder when you can remake a pack with fresh batteries in 1-2 min and your low power sensor will live 5-10 years before anything needs to be done?

The Interface/Connections
Convenient there's the 6 pin standard serial interface exactly like on the Arduino Pro Mini. Perhaps it's mirrored here, but I think everybody double checks Gnd and Vcc before connecting. The Vcc and Gnd pins also serves as a connector for the battery pack. (CTS is connected to GND on the PCB.)
"Under" the radiomodule are pads for the ICSP pins. The idea was to have a socket for the radiomodule instead of the "expensive" 328p socket and still have easy future access to the SPI/ICSP interface. Perhaps not very useful. But nice to have Gnd and Vcc in this end of the board for general purpose.The Sleep Mode Power Consumption
I measured the sleep mode current draw to be 1.5uA when it's set to interrupt wake up and 5.8uA when it's set to timer wake up.

Sensor Examples and more
Reed Switch Sensor: post 116
Humidity Sensor: Slim Node Si7021 sensor example
Motion Sensor 1: Slim Node as a Mini 2AA Battery PIR Motion Sensor
Motion Sensor 2: Slim CR123A (2AA) battery node..
Scene Controller: Slim Node scene controller/ keypad
(work in progress to collect more examples here)Not Sensor exemples, but some nice to see "node variations" from @AWI:
Here (post 88) and here (post 233). And now there's also @AWI 's My Slim 2AA Battery Node Tools.Still not "slim" enough? Check out Very Narrow and Minimal Switch Node ! by @GertSanders
And also, there's this 5V-slim-node a 5V-slim-node mod by @Soloam
Feature Requests
Here's a collection of suggestions and development ideas for future versions of the board (or other parts). If anyone else make their own board where some of this is included, I'd be happy to reference it from here.- Pin labels/references also on board top side.
- Turn the nRF footprint to make the assembly shorter.
- Make the board suitable for the nRF SMD version.
More Pictures
Some photos. First a comparison next to My (old) 2AA battery sensor, one painted and one not. (Note the high WAF of the colour even without the paint.) Then some placement examples. Reed switch nodes for all my doors and windows are my first priority.

@m26872 I am about to order the v2 version of the board and I have a few questions as I have never ordered PCBs before.
The defaults on ordering are:
layers - 2
thickness - 1.2 mm
coating - HASL
stencil - noneWhat are these options? I am tempted to just order as-is...for $14 what could I complain about? I am just curious what these other options are for.
-
@m26872 I am about to order the v2 version of the board and I have a few questions as I have never ordered PCBs before.
The defaults on ordering are:
layers - 2
thickness - 1.2 mm
coating - HASL
stencil - noneWhat are these options? I am tempted to just order as-is...for $14 what could I complain about? I am just curious what these other options are for.
@wergeld
Layers - The board is designed with 2 copper layers (top and bottom) so you can't change that.
Thickness - Of your taste. Default is well proven but e.g. a little thinner could make it easier when you break the panelizing cuts.
Coating and stecil - Honestly I've never bothered to look them up. But google is your friend if you put PCB before as keywords. -
Hello @m26872 it is me again if you do remember me.
Just wanted to tell you that I ordered the boards 5 weeks ago and it was delivered to Egypt after 2 weeks, and the silly customs requested some security approvals to give me the boards which I couldn't do it till now. Something pathetic which makes me laugh :)
Can't wait to do my nodes !
-
Hello @m26872 it is me again if you do remember me.
Just wanted to tell you that I ordered the boards 5 weeks ago and it was delivered to Egypt after 2 weeks, and the silly customs requested some security approvals to give me the boards which I couldn't do it till now. Something pathetic which makes me laugh :)
Can't wait to do my nodes !
@ahmedadelhosni Welcome back! Yes I remember you had to struggle and could not buy common 433MHz remote controlled switches. Makes sense to do diy projects then I guess.
Hope you get your new nodes running. Please share your result. -
@ahmedadelhosni Welcome back! Yes I remember you had to struggle and could not buy common 433MHz remote controlled switches. Makes sense to do diy projects then I guess.
Hope you get your new nodes running. Please share your result.@m26872 You are right.
I'll go tomorrow and try to get the approval :) Well back soon
-
Finally !

11 pcbs. But I am really angry and feel bad from what happened by DHL.
I paid 29$ for shipping and here in Egypt i paid stupid fees for customs and several things equal to 38$ !!!!! I dont know wether this is something related to my country Egypt or not :(I' ll try to forget all what I paid when I do my first node.