My own board (50mm x 30mm)
-
@gloob There are two connections on the board to allow soldering the battery holder. Both the AA and AAA versions I use have the same pin spacing (seems standard), so you can use an AA battery holder as @alexsh1 does, or an AAA as I have.
http://forum.mysensors.org/uploads/files/1446751714416-image.jpeg
The red arrows show where the batteryholder pins should go. If you have individual AAA battery holders, then the pins surrounded by yellow circle are also used to connect the batteries in series. If the battery holder holds 2 batteries, then only the pins pointed to by red arrows are used.

The PLUS sign next the the pin on the lower right of the above image is for the LED, the polarity of the pins from the battery is marked on the silkscreen of the bottom side. Looking at it from the top side, the pin above right is for Positive, the pin on below right is for Negative (or GND).
Jumper J2 is to connect the IRQ pin from the NRF24 to pin 2 (INT0) of the atmega328. You could also use that to connect a switch between the top jumper pad (connected to pin 2) and the extra ground pin of C5, to use with a doorswitch. I have used this with the internal pull up, but that would not be very good for the battery-use. It is better to use a 1MOhm pull up resistor wich can also be connected using the extra hole connected to pin 2 and Vcc
-
@alexsh1 I completely switched off the BoD in my fuse settings, this saves the battery even more. I found that the processor kept working down to around 1,64V. Even my NRF24 worked to that low level, because the last message I received in my Domoticz from that node gave a battery voltage of 1.64V
Anyway, since I monitor all battery levels via a script in Domoticz, there is no need for BoD.@GertSanders said:
@alexsh1 I completely switched off the BoD in my fuse settings, this saves the battery even more. I found that the processor kept working down to around 1,64V. Even my NRF24 worked to that low level, because the last message I received in my Domoticz from that node gave a battery voltage of 1.64V
Anyway, since I monitor all battery levels via a script in Domoticz, there is no need for BoD.How is 1.64v possible,It was my understanding that 8Mhz requires a minimum of 2.4v?
-
@rmtucker The firmware itself does not need to be changed to use the internal oscillator. You accomplish that by using a different set of fuse values:
atmega328pO4M8i.bootloader.low_fuses=0xE2
atmega328pO4M8i.bootloader.high_fuses=0xDE
atmega328pO4M8i.bootloader.extended_fuses=0x07This sets the processor to a mode using the internal oscillator.
Add the call to divide the frequency by 8 (can be done in the sketch itself) and you have a 1MHz internal clock.
-
@rmtucker The firmware itself does not need to be changed to use the internal oscillator. You accomplish that by using a different set of fuse values:
atmega328pO4M8i.bootloader.low_fuses=0xE2
atmega328pO4M8i.bootloader.high_fuses=0xDE
atmega328pO4M8i.bootloader.extended_fuses=0x07This sets the processor to a mode using the internal oscillator.
Add the call to divide the frequency by 8 (can be done in the sketch itself) and you have a 1MHz internal clock.
@GertSanders So have you never found it a problem running at 8Mhz?
Do most of your sensors work ok below the 2.4v threshold?
Guess i will find out when the pcb boards arrive:smiley: -
@rmtucker Short answer: yes. So far most my sensors are working fine and all sit above 2.4V but I have not had problems when they do below 2.4V
There is one sensor now that has a battery in decline. This sensor uses a lot of power and goes through it's batteries very fast. So it is a good test for this low voltage work. It is now at 2.11V and still sends messages every 5 minutes. On the first graph you can see it is still working fine wel below 2.4V and it is clocked at 8MHz with a crystal.

I have a notification on all my sensors so that when the battery voltage goes below 2V I get a Prowl from Domoticz. This has only happened on this sensor (twice so far), because I was using NiMH batteries (which discharge faster than alkaline). Around 2 november I put in 2 alkaline batteries (AAA), but these were not brand new.
Most of my sensors have a discharge pattern as here below:

-
@rmtucker Short answer: yes. So far most my sensors are working fine and all sit above 2.4V but I have not had problems when they do below 2.4V
There is one sensor now that has a battery in decline. This sensor uses a lot of power and goes through it's batteries very fast. So it is a good test for this low voltage work. It is now at 2.11V and still sends messages every 5 minutes. On the first graph you can see it is still working fine wel below 2.4V and it is clocked at 8MHz with a crystal.

I have a notification on all my sensors so that when the battery voltage goes below 2V I get a Prowl from Domoticz. This has only happened on this sensor (twice so far), because I was using NiMH batteries (which discharge faster than alkaline). Around 2 november I put in 2 alkaline batteries (AAA), but these were not brand new.
Most of my sensors have a discharge pattern as here below:

@GertSanders What rate is the sensor in the very bottom graph sending messages?
That discharge rate looks very nice.@GertSanders said:
@rmtucker The firmware itself does not need to be changed to use the internal oscillator. You accomplish that by using a different set of fuse values:
atmega328pO4M8i.bootloader.low_fuses=0xE2
atmega328pO4M8i.bootloader.high_fuses=0xDE
atmega328pO4M8i.bootloader.extended_fuses=0x07This sets the processor to a mode using the internal oscillator.
Add the call to divide the frequency by 8 (can be done in the sketch itself) and you have a 1MHz internal clock.
Problem with using div/8 in the sketch and not altering the bootloader is that all the timings are off for baud rates and pwm etc.
Where if it is altered in the bootloader it all works as it should.Last question i promise :yum:
I currently use the arduino mini pro and when uploading sketches to it using ftdi,i have to press the reset button to get the upload to work.
Will i have the same problem with your boards? -
@rmtucker On my board I do not need to press a reset to be able to upload sketches, since I connected the RESET pin to the FTDI header via a capacitor.
So if the FTDI interface does the reset via RTS pin, then it will reset the board and you can upload sketches.
The sensor in the last graph sends it's voltage and temperature every 5 minutes, even if the value is sometimes the same as the previous one. It also sends it's battery voltage every 5 minutes.
In my last version of the sketch I have now added a change based on the Sensebender sketch. That sketch sends it's temperature or humidity only if the change is a minimal difference with the previously sent temperature or humidity. It always sends it's battery level every half hour. That should make it last minimum a year on 2 AAA batteries.
Below is a graph of another sensor sending data every 5 minutes.

-
Battery-monitoring
The capacitor between AREF and ground (C3 in my schematic) is not to pull that pin to ground, but to stabilise this reference. Not strickly needed I think, but I prefer it since my sensors will live in a "noisy" environment.The code to check the level of VCC using the internal 1.1V reference is found here:
http://provideyourown.com/2012/secret-arduino-voltmeter-measure-battery-voltage/The error of 10% is something I can live with, since I need to be able to measure the supply-voltage and monitor it. It does not need to be super exact, since I plan to replace the batteries when I see levels around 2.2V. I'm mostly interested in the trend graph.
When using a DC stepup converter, you will of course need to use a pin to measure the original battery level, because the step up will make VCC always 3V3. I like your idea of dual use, so I will implement the pins to hold a voltage divider anyway. It is indeed a good use of PCB space.
I also ordered some step up converters (from Aliexpress) and I will measure them once I get them. Not all China stepups are crap it seems (as far as I read on various websites).
LED
As for the LEDs, I have only 1 LED on my boards. The LED blinks very shortly (5ms) every minute to show that a message is sent. It flashes three times if there is an error. So no need to have two leds. It is also the same LED that is flashed by the bootrom (I'm compiled nmy own version of Optiboot to used pin 14 of the atmega328. On a atmega1284p I use pin 1. This is personal preference.I checked your schematic. You will need to change the value of C1 (it is now 22pF, will need to be 100nF).
I will need to read the datasheet of the atmega328 again to understand the exact use of AREF. I'm not sure that pulling this to VCC is a good idea.
It seems you have removed the crystal and capacitors and plan to use the internal oscillator, I did this as well. Works most of the time, but uploading of sketches can give transmission errors of you go above 57K6 baud. Better to transmit at 36Kbit then (needs a change in the BOARDS.TXT file of Arduino IDE). Slower, but not a problem if you do not plan to change the sketch every 5 minutes.
Here is a preview of my new board:
It will be able to work both as a repeater (NRF24 with antenna) as well as a normal sensor board (small NRF24). The voltage divider on A0 is not yet implemented here. Still some empty spaces :-)
@GertSanders said:
It seems you have removed the crystal and capacitors and plan to use the internal oscillator, I did this as well. Works most of the time, but uploading of sketches can give transmission errors of you go above 57K6 baud. Better to transmit at 36Kbit then (needs a change in the BOARDS.TXT file of Arduino IDE)
76K8 baud works better than 57K6 (division from 8 MHz has less error), and there are Optiboot variants which support it (with theBOARDS.TXT change you mention). Or 38K4 baud (half that) as you suggest, which is no more timing accurate than 76K8 but by being slower still may give more margin for sloppy edges or the like - if needed.
-
Hi GertSanders,
After ordered and make 3 of 50mm x 30mm board with success. Now I ordered the AC Capable 50mm x 50mm board. I try to read the schema and I have some question. If I want to use this board with only 2 AAA battery, Do I need to use AMS1117? and witch jumper do I need to close? It is optional to use AT24C ?
Thank you for your help
-
@Carl-H To use the board with AA batteries you do NOT need to place the AMS1117. But you will need to short the jumper "BAT" which you will find on the same surface as the AMS1117 if you want to feed the NRF24 with the same power.
The batteries are connected to the Vcc power line. The NRF24 is connected to the 3V3 power line. There is no interconnection, unless you use the AMS1117 or you short the jumper "BAT".The AT24C's are optional. If you do plan to use them, you will also need to place the I2C pull resistors and you will need to short the jumpers RSCL and RSDA. These two jumpers connect the pull-up resistors to the SCL and SDA lines.
If you use a sensor connected to the pins SCL/SDA of the extension connector you sometimes have no need for pull-ups as the sensor itself has them.
The jumpers SCL-SDA and SDA-SCL are there to allow switching the signals of the SCL/SDA pins on the extension connector. The jumper closest to the board edge is for the pin on the very edge of the connector, the jumper close to the ATSHA is for the second pin. Without shorting these two jumpers, the pins on the extension connector have no function.
Some sensor-boards have a SDA-SCL-GND-3V3 connector, others have a SCL-SDA-GND-3V3 pattern. The jumpers are there to be able to use both types.
-
@Carl-H It is part of the expansion connector.
I added more info on the OpenHardware.io site.
-
Ok my boards arrived from DirtyPCB.
A couple of questions:-1.I am not using NR2 (The radio socket that protrudes),Also i am using the internal osc and not the xtal.
So can i leave out C9,NR2 Socket,C5,C6,Xtal ?
2.What are C2,C3 doing.
The socket for the cpu i have fitted will not let me squeeze them in.Should i solder them in underneath or can they be left out?

