π¬ Button size radionode with sensors swarm extension
-
-
Nice board, but where are the design files?
-
Already shared
-
Nice, thanks for that
-
Well done!
-
Nice job! Looks very professional.
It says it uses "version 3" RFM69. Which one is that?
-
Really a nice sensor !
What software design file are these ?
-
@Koresh
Nice project
But i'm not sure if this is the smallest sensor
-
@Nca78 said:
Really a nice sensor !
What software design file are these ?Do not worry, I will share software source code.
@scalz
It was about original board (21x21mm)
-
Aaah, but the original board had no sensors
-
@Anticimex rfm69 module has draft temperature sensor + it is possible to solder a lot of small sensors ))
-
Aah, ok then I have given up on trying to keep track of all the boards now so I won't dispute your claim. But @scalz also rock some awesome small ones. But it is open source hardware. Everybody can share and pick the aspects of the various boards they like the most.
Do you have a link to where the radio can be sourced and some reference to footprint specifications?
-
@Anticimex said:
Aah, ok then I have given up on trying to keep track of all the boards now so I won't dispute your claim. But @scalz also rock some awesome small ones. But it is open source hardware. Everybody can share and pick the aspects of the various boards they like the most.
Do you have a link to where the radio can be sourced and some reference to footprint specifications?It is not a dispute, I hope It was sarcasm. When I designed previous board I really needed relatively small universal board with rfm69...
Do you have a link to where the radio can be sourced and some reference to footprint specifications?
Can you a little clarify what do you mean? Schamatic of rfm69 module?
-
@Koresh said:
Can you a little clarify what do you mean? Schamatic of rfm69 module?
I mean a link to where the module can be bought, and a link to some datasheet or similar, where the specification for the module footprint is so that it can be possible to make footprint in open source cad tools like kicad. Your design files looks like Altium.
Of course you are welcome to contribute a footprint to the MySensors kicad repositories on github
-
@Anticimex said:
@Koresh said:
Can you a little clarify what do you mean? Schamatic of rfm69 module?
I mean a link to where the module can be bought, and a link to some datasheet or similar, where the specification for the module footprint is so that it can be possible to make footprint in open source cad tools like kicad. Your design files looks like Altium.
Of course you are welcome to contribute a footprint to the MySensors kicad repositories on githubThanks! Clear now I will try convert all sourses to open formats and add more information to projects (documentation, design notes and components information) asap.
-
@Koresh
hihihi, me too, was for fun, i knew it was about the node! like i said, i like your boards but i do mine. i was saying this because i've improved my previous multisensors design, for smaller and cheaper. but i've quitted 8bits 328 serie..for my others projects too.Keep the good work.
-
@scalz said:
@Koresh
but i've quitted 8bits 328 serie..for my others projects too.What did you switch to?
-
@Koresh said:
Do not worry, I will share software source code
Thank you but I was just asking for the name of the design software to have a closer look at the board. Altium it seems so I can't have a look at your routing
Was curious to see the details closer as you seem to squeeze 2 routes through the corner of the atmega, I can't do that with my current settings.
-
@Nca78 said:
@Koresh said:
Do not worry, I will share software source code
Thank you but I was just asking for the name of the design software to have a closer look at the board. Altium it seems so I can't have a look at your routing
Was curious to see the details closer as you seem to squeeze 2 routes through the corner of the atmega, I can't do that with my current settings.This board was routed according 5mil width/5mil clearance rules.
-
Always impressed by the quality of your designs @koresh !
-
Hey, looks great!
is it possible tot get some Eagle files?
Thnx!
-
was it possible to buy this board assembled from you?
-
@Cliff-Karlsson The local factory starts assembly today (button size node, insertable switch node, wall socket insertable node and mini relay box). ETA is one-two week (max).
This board is avaliable with two radios - rfm69hw and rfm69cw (with adapter shown below). Price will be the same. Which radio is preferred for you? If you plan to use this board with battery I suggest to use rfm69cw module to extend battery life (it has lower but enouogh power and works down to ~2V).
-
@Koresh said in Button size radionode with sensors swarm extension:
rfm69cw
yes rfm69cw is fine, as I understand it will still be compatible with rfm69(H)W gateway?. Also are you using 868 MHz band or any other?
I don't remember where I read the prices, could you give them again? And can you buy the atmega/rfm -board separate from the sensorboard or do I have to buy them as a set?
-
Will it be available preassembled?
-
@gohan Yes. Of course
-
Unfortunately I can't open my ebay shop right now. While I'm trying to open it, you can buy this board here: https://www.ebid.net/eu/for-sale/arduino-ide-compatible-coincell-powered-controller-rfm69cw-hcw-433-mhz-radio-156694991.htm
-
Best of luck for your shop
-
Great! One question though, is everything already soldered and if so is there an option to for 868MHz?
-
@bjornhallberg if you want you can just order pcb and build your own node
-
@gohan Yeah I could but I'm just too lazy There are a lot of components to source from AliExpress before anyone can build these boards. It would take months even if there aren't any errors in the BOM or lost packages from China.
-
@bjornhallberg since @Koresh is still in the early production stage, I think he can manage to make a few with a different radio, given of course he has the 866 mhz modules available
-
@gohan Thankfully I do have some CW 868 radios (~5 left) available that I bought ahead of time. I think everyone can solder the radio to the board by hand and so I personally would prefer that @Koresh would consider selling the parts separately.
-
If possible I would also like the option to chose 868 Mhz or be able to buy board without radio.
-
@Cliff-Karlsson
@bjornhallberg
I have some assembled boards without the radio. You can buy them here https://www.ebid.net/eu/for-sale/arduino-ide-compatible-coincell-powered-controller-ready-for-rfm69cw-hcw-radio-156711327.htm . I just reminding this board has a rfm69HCW footprint but you can solder rfm69CW modules with the pcb adapter which I made. Of course I will supply the adapter with the main board.
-
@Koresh Thanks! Great solution with the adapter board as well, you really do think of everything. Do you have the other boards without radio as well? Specifically the Switch Controller?
-
@bjornhallberg
I have some insertable switch boards without radio. I planned to solder nrf24 into them but can sell them without radio too (it supports only cw modules). Will put up for sale soon.
-
@Koresh Sounds great! Oh and btw, any idea how customs will handle the packages, any chance of taxes and customs fees? You're outside of the EU customs union right?
-
@bjornhallberg I do not know exactly, but I don't think there should be any fees. Try to find out tomorrow.
-
@Koresh I got one of boards and would like to add Si1132-A10-GMR. What else I need to add? C8?
Why are you not using this sensor on your board?
-
@alexsh1 yes, you should solder the sensor and the bypass capacitor. I have a lot of si1132 sensors, but I can't find the correct library. Almost promo videos of commertial sensors based on the si1132 shows incorrect data ))) It shows correct UV and IR level, but incorrect visible light value. So I decided to not solder this sensor yet.
-
@Koresh I would only use it for UV so this is good for me.
No need to use a lib:
// Distributed with a free-will license. // Use it any way you want, profit or free, provided it fits in the licenses of its associated works. // SI1132 // This code is designed to work with the SI1132_I2CS I2C Mini Module available from ControlEverything.com. // https://www.controleverything.com/content/Light?sku=SI1132_I2CS#tabs-0-product_tabset-2 #include<Wire.h> // SI1132 I2C address is 0x60(96) #define Addr 0x60 int response = 0; void setup() { // Initialise I2C communication as MASTER Wire.begin(); // Initialise Serial Communication, Baud rate = 9600 Serial.begin(9600); // Enable UVindex measurement coefficients // Start I2C Transmission Wire.beginTransmission(Addr); // Select COFF-1 register Wire.write(0x13); // Default value Wire.write(0x29); // Stop I2C Transmission Wire.endTransmission(); // Start I2C Transmission Wire.beginTransmission(Addr); // Select COFF-2 register Wire.write(0x14); // Default value Wire.write(0x89); // Stop I2C Transmission Wire.endTransmission(); // Start I2C Transmission Wire.beginTransmission(Addr); // Select COFF-3 register Wire.write(0x15); // Default value Wire.write(0x02); // Stop I2C Transmission Wire.endTransmission(); // Start I2C Transmission Wire.beginTransmission(Addr); // Select COFF-4 register Wire.write(0x16); // Default value Wire.write(0x00); // Stop I2C Transmission Wire.endTransmission(); // Start I2C Transmission Wire.beginTransmission(Addr); // Select PARAM_WR register Wire.write(0x17); // Enable uv, Visible, IR Wire.write(0xF0); // Stop I2C Transmission Wire.endTransmission(); // Start I2C Transmission Wire.beginTransmission(Addr); // Select command register Wire.write(0x18); // Select CHLIST register in RAM Wire.write(0x01 | 0xA0); // Stop I2C Transmission Wire.endTransmission(); delay(10); // Start I2C Transmission Wire.beginTransmission(Addr); // Select PARAM_RD register Wire.write(0x2E); // Stop I2C Transmission Wire.endTransmission(); // Request 1 byte of data Wire.requestFrom(Addr, 1); // Read 1 byte of data response = Wire.read(); // Start I2C Transmission Wire.beginTransmission(Addr); // Select HW_KEY register Wire.write(0x07); // Default value Wire.write(0x17); // Stop I2C Transmission Wire.endTransmission(); // Start I2C Transmission Wire.beginTransmission(Addr); // Select PARAM_WR register Wire.write(0x17); // Small IR photodiode Wire.write(0x00); // Stop I2C Transmission Wire.endTransmission(); // Start I2C Transmission Wire.beginTransmission(Addr); // Select COMMAND register Wire.write(0x18); // Select ALS_IR_ADCMUX register in RAM Wire.write(0x0E | 0xA0); // Stop I2C Transmission Wire.endTransmission(); delay(10); // Start I2C Transmission Wire.beginTransmission(Addr); // Select PARAM_RD register Wire.write(0x2E); // Stop I2C Transmission Wire.endTransmission(); // Request 1 byte of data Wire.requestFrom(Addr, 1); // Read 1 byte of data response = Wire.read(); // Start I2C Transmission Wire.beginTransmission(Addr); // Select PARAM_WR register Wire.write(0x17); // Set ADC Clock divided / 1 Wire.write(0x00); // Stop I2C Transmission Wire.endTransmission(); // Start I2C Transmission Wire.beginTransmission(Addr); // Select COMMAND register Wire.write(0x18); // Select ALS_IR_ADC_GAIN register in RAM Wire.write(0x1E | 0xA0); // Stop I2C Transmission Wire.endTransmission(); delay(10); // Start I2C Transmission Wire.beginTransmission(Addr); // Select PARAM_RD register Wire.write(0x2E); // Stop I2C Transmission Wire.endTransmission(); // Request 1 byte of data Wire.requestFrom(Addr, 1); // Read 1 byte of data response = Wire.read(); // Start I2C Transmission Wire.beginTransmission(Addr); // Select PARAM_WR register Wire.write(0x17); // Set 511 ADC Clock Wire.write(0x70); // Stop I2C Transmission Wire.endTransmission(); // Start I2C Transmission Wire.beginTransmission(Addr); // Select COMMAND register Wire.write(0x18); // Select ALS_IR_ADC_COUNTER register in RAM Wire.write(0x1D | 0xA0); // Stop I2C Transmission Wire.endTransmission(); delay(10); // Start I2C Transmission Wire.beginTransmission(Addr); // Select PARAM_RD register Wire.write(0x2E); // Stop I2C Transmission Wire.endTransmission(); // Request 1 byte of data Wire.requestFrom(Addr, 1); // Read 1 byte of data response = Wire.read(); // Start I2C Transmission Wire.beginTransmission(Addr); // Select PARAM_WR register Wire.write(0x17); // Set ADC Clock divided / 1 Wire.write(0x00); // Stop I2C Transmission Wire.endTransmission(); // Start I2C Transmission Wire.beginTransmission(Addr); // Select COMMAND register Wire.write(0x18); // Select ALS_VIS_ADC_GAIN register in RAM Wire.write(0x11 | 0xA0); // Stop I2C Transmission Wire.endTransmission(); delay(10); // Start I2C Transmission Wire.beginTransmission(Addr); // Select PARAM_RD register Wire.write(0x2E); // Stop I2C Transmission Wire.endTransmission(); // Request 1 byte of data Wire.requestFrom(Addr, 1); // Read 1 byte of data response = Wire.read(); // Start I2C Transmission Wire.beginTransmission(Addr); // Select PARAM_WR register Wire.write(0x17); // High Signal Range Wire.write(0x20); // Stop I2C Transmission Wire.endTransmission(); // Start I2C Transmission Wire.beginTransmission(Addr); // Select COMMAND register Wire.write(0x18); // Select ALS_IR_ADC_MISC register in RAM Wire.write(0x1F | 0xA0); // Stop I2C Transmission Wire.endTransmission(); delay(10); // Start I2C Transmission Wire.beginTransmission(Addr); // Select PARAM_RD register Wire.write(0x2E); // Stop I2C Transmission Wire.endTransmission(); // Request 1 byte of data Wire.requestFrom(Addr, 1); // Read 1 byte of data response = Wire.read(); // Start I2C Transmission Wire.beginTransmission(Addr); // Select PARAM_WR register Wire.write(0x17); // Set 511 ADC Clock Wire.write(0x70); // Stop I2C Transmission Wire.endTransmission(); // Start I2C Transmission Wire.beginTransmission(Addr); // Select COMMAND register Wire.write(0x18); // Select ALS_VIS_ADC_COUNTER register in RAM Wire.write(0x10 | 0xA0); // Stop I2C Transmission Wire.endTransmission(); delay(10); // Start I2C Transmission Wire.beginTransmission(Addr); // Select PARAM_RD register Wire.write(0x2E); // Stop I2C Transmission Wire.endTransmission(); // Request 1 byte of data Wire.requestFrom(Addr, 1); // Read 1 byte of data response = Wire.read(); // Start I2C Transmission Wire.beginTransmission(Addr); // Select PARAM_WR register Wire.write(0x17); // High Signal Range Wire.write(0x20); // Stop I2C Transmission Wire.endTransmission(); // Start I2C Transmission Wire.beginTransmission(Addr); // Select COMMAND register Wire.write(0x18); // Select ALS_VIS_ADC_MISC register in RAM Wire.write(0x12 | 0xA0); // Stop I2C Transmission Wire.endTransmission(); delay(10); // Start I2C Transmission Wire.beginTransmission(Addr); // Select PARAM_RD register Wire.write(0x2E); // Stop I2C Transmission Wire.endTransmission(); // Request 1 byte of data Wire.requestFrom(Addr, 1); // Read 1 byte of data response = Wire.read(); delay(300); } void loop() { unsigned int data[4]; // Start I2C Transmission Wire.beginTransmission(Addr); // Select COMMAND register Wire.write(0x18); // Start ALS conversion Wire.write(0x0E); // Stop I2C Transmission Wire.endTransmission(); delay(500); // Start I2C Transmission Wire.beginTransmission(Addr); // Select data register Wire.write(0x22); // Stop I2C Transmission Wire.endTransmission(); // Request 4 byte of data Wire.requestFrom(Addr, 4); // Read 4 bytes of data // visible lsb, visible msb, ir lsb, ir msb if (Wire.available() == 4) { data[0] = Wire.read(); data[1] = Wire.read(); data[2] = Wire.read(); data[3] = Wire.read(); } float visible = (data[1] * 256.0 + data[0]); float ir = (data[3] * 256 + data[2]); // Start I2C Transmission Wire.beginTransmission(Addr); // Select data register Wire.write(0x2C); // Stop I2C Transmission Wire.endTransmission(); // Request 2 bytes of data Wire.requestFrom(Addr, 2); // Read 2 bytes of data // uv lsb, uv msb if (Wire.available() == 2) { data[0] = Wire.read(); data[1] = Wire.read(); } // Convert the data float uv = (data[1] * 256 + data[0]); // Output data to screen Serial.print("Visible Light of Source : "); Serial.print(visible); Serial.println(" lux"); Serial.print("IR Of Source : "); Serial.print(ir); Serial.println(" lux"); Serial.print("UV Of the Source : "); Serial.print(uv); Serial.println(" lux"); delay(500); }
-
@Koresh BTW, Found this library - working fine for my needs
https://github.com/hardkernel/WEATHER-BOARD/tree/master/libraries/ODROID_Si1132
I am using this sensor purely for UV Index.
PS Got your sensor. Soldered it to the mote. Works just fine
-
@Koresh I can see Si1132 visible light is twice more than BH1750.
Not sure what's wrong, but as you said it reports incorrect value.UV Index is in line with VEML6070
-
The sensor looks more complicated that I thought:
2.2. Ambient Light
The Si1132 has photodiodes capable of measuring both vi
sible and infrared light. Howe
ver, the visible photodiode
is also influenced by infrared light. The measurement of illuminance require
s the same spectral response as the
human eye. If an accurate lux measurement is desired, the
extra IR response of the vi
sible-light photodiode must
be compensated. Therefore, to allow the host to make corrections to the infrared lightβs influence, the Si1132
reports the infrared light measurement on a separate channel. The separate visible and IR photodiodes lend
themselves to a variety of algorithmic solutions. The
host can then take these two measurements and run an
algorithm to derive an equivalent lux level as perceive
d by a human eye. Having
the IR correction algorithm
running in the host a
llows for the most flexibility in adjusting for system-dependent
variables. For example, if the
glass used in the system blocks visibl
e light more than infrared light, the
IR correction needs to be adjusted.I will have to spend more time to understand how to extract the correct ambient light
-
This post is deleted!
-
The sketch I posted above contains some errors
(it sets COFFs 0x29, 0x89, 0x02 and 0x00 to the 0x13, 0x14, 0x15 and 0x16 registers).The correct UCOEF values are 0x7B, 0x6B, 0x01, and 0x00
The sensor is quite complex.
-
I got the following values from the sensor:
- V_VOLTAGE (3.21)
- V_HUM (51
- V_TEMP (30)
- V_LIGHT_LEVEL (4466)
- V_UV (1.74)
- V_LIGHT_LEVEL (3367)
- V_LIGHT_LEVEL (3367)
Clearly, Si1132 is not in line with BH1750. VEML6075 is giving me UV Index 1.65, which is close to the Si1132.
Moreover, depending where it is used, the coeff in formula has to change (I am using 0.282 for the direct sunlight) :
Visible Photodiode Response Sunlight ALS_VIS_ADC_GAIN=0 VIS_RANGE=0 β 0.282 2500K incandescent bulb ALS_VIS_ADC_GAIN=0 VIS_RANGE=0 0.319 βCool whiteβ fluorescent ALS_VIS_ADC_GAIN=0 VIS_RANGE=0 0.146
-
@Koresh My 2032 died in 2 days and I noticed that power consumption is 3.5mA. OK, maybe bad soldering - I desoldered Si1132, but the consumption is still 0.14mA while sleeping. For 2032 this is a huge consumption. Did you measure consumption at all? I am using CW radio
Si1132 must be consuming around < 500 nA standby current according to the datasheet. Not sure why consumption was increased with Si1132.
-
@alexsh1 Do not forget put BH1750 into sleep mode. Unfortunatelly standart library do not put the sensor into this mode. I described it on the github page.
/* Please comment out private declaration in BH1750.h * Otherwise you can't call lightMeter.write8(BH1750_POWER_DOWN); and BH1750 will not sleep! * * //private: * void write8(uint8_t data); */ lightMeter.write8(BH1750_POWER_DOWN);
-
@Koresh I did it on the first day I got the sensor. The consumption above is with BH1750 in the sleeping mode as per your github
-
@alexsh1 said in Button size radionode with sensors swarm extension:
it on the first day I got
Could you post the code you use? and links for the libs. we will check tomorrow consumption with your code . mysensors 2.0 or 2.2?
-
@yury It is the latest bh1750 lib -> https://github.com/claws/BH1750
I am using MySensors 2.2.0b
I am using a default code :
https://github.com/EasySensors/ButtonSizeNode/blob/master/ButtonSizeNode.ino
-
@yury One thing I did notice is this. To put BH1750 into a sleep mode (1uA consumption), it has to be called as follows:
void setup() { lightMeter.begin(BH1750_ONE_TIME_HIGH_RES_MODE); }
After a one time measurement it goes to sleep automatically.
Please see -> https://github.com/claws/BH1750/blob/master/examples/BH1750advanced/BH1750advanced.inoI have tried above, but still getting 0.14mA consumption in a sleep mode. Very odd!
-
@alexsh1 Very strange. I can't see a method write8 in current lib version (https://github.com/claws/BH1750). So I can't understand how is it possible to compile default code with this string
lightMeter.write8(BH1750_POWER_DOWN);
I couldn't put this sensor into power down mode without this.
-
@alexsh1 said in Button size radionode with sensors swarm extension:
...
After a one time measurement it goes to sleep automatically.
...
I have tried above, but still getting 0.14mA consumption in a sleep mode. Very odd!I've read the claws library briefly again. I'm a litte doubt that this code:
_delay_ms(10);
is enough to ensure correctly timings and sensors work
-
@Koresh It does work, I have just test it, but there is a delay, i.e. the sensor is lagging one reading behind.
-
@Koresh said in Button size radionode with sensors swarm extension:
@alexsh1 Very strange. I can't see a method write8 in current lib version (https://github.com/claws/BH1750). So I can't understand how is it possible to compile default code with this string
lightMeter.write8(BH1750_POWER_DOWN);
I couldn't put this sensor into power down mode without this.
I tried it with the original (old) library -> https://github.com/mysensors/MySensorsArduinoExamples/tree/master/libraries/BH1750
I commended out "private" in bh1750.h
Consumption has not changed - 0.14mA
-
@Koresh One more observation. If I comment out:
//lightMeter.write8(BH1750_POWER_DOWN);
from the original sketch, the consumption goes up to 0.27mA.
So BH1750 is not a problem. Something else is eating up a few milliamps.
-
@alexsh1 said in Button size radionode with sensors swarm extension:
Something else is eating up a few milliamps
yes seems your board has bad capacitors. After rechecking many boards we found one eating a lot - 0.4 mA. Replacing caps fixed issue.
can you check?
-
@yury There are two yellow caps in your photo. Do I have to change both of them? What's nominal please?
EDIT: both are 107J SMD Tantalum
-
@yury I was suspecting EEPROM (CS pin with pull-up resistor?) to be a culprit
-
combined capacitance of booth should be 100 --200 microfarads . It is input capacitors.
please try replacing themre:
I was suspecting EEPROM (CS pin with pull-up resistor?) to be a culpritnot pullups...
-
0.4 ma here with the bad cap
-
@alexsh1 you can solder one or two capacitors ~50-200uf. But you should remove both because we do not know which of them is bad. Do not forget about polarity Dot-key on the board means positive, so tantalum has positive key, but electrolitic capacitors has negative key.
-
@Koresh thanks. It does not matter which caps, right?
I have a few 1206 100uF ceramic caps. They are not polarised and may be a good fit size wise
-
@yury what's your estimate of battery life based on a new consumption of about 25uA and the default sketch?
-
@alexsh1 220 mAh(Duracell) / 0.025 (mA) = 8800 hrs = 366 days.
-
@alexsh1 There is no problem to use your capacitors. 1206imp = 3216metric (type A) so they are fit perfect
About consumption... This is quite universal board. If you plan to use CR2032 battery it can be worth to omit LDO. You can do it using existing 0603 jumper footprint near right storage capacitor.
-
@yury said in Button size radionode with sensors swarm extension:
@alexsh1 220 mAh(Duracell) / 0.025 (mA) = 8800 hrs = 366 days.
Not exactly - 25uA is a sleeping current.
There will be sending periods every 10 mins.
So I suppose the lifetime is less than a year
-
@Koresh yes, I'm using it with the 2032 battery.
Which pads to your refer to please?
-
@alexsh1 said in Button size radionode with sensors swarm extension:
@yury said in Button size radionode with sensors swarm extension:
@alexsh1 220 mAh(Duracell) / 0.025 (mA) = 8800 hrs = 366 days.
Not exactly - 25uA is a sleeping current.
There will be sending periods every 10 mins.
So I suppose the lifetime is less than a yearYes, it is sleeping time estimate. When it wakes up it compares first, like : if ( abs(d) > 50 ) send(msg_vis.set(VIS_LIGHT), true); so it might send or not.
But this is just example sketch and you are very welcome to create pull-request or make suggestion how to improve.
-
@alexsh1 You can fit juper (or any small wire, R10 on the schematic) or remove LDO at all and short top two pads.
-
@yury ok, you took the best case scenario (no messages as all) and if we take worst case scenario - sending every 10 mins in any case (suppose no if statement).
Then we take life time somewhere in between.
I think it make sense to take 18uA as a sleeping current removing the LDO from equation
-
@Koresh said in Button size radionode with sensors swarm extension:
@alexsh1 You can fit juper (or any small wire, R10 on the schematic) or remove LDO at all and short top two pads.
More neat solution is to remove LDO and solder 0 ohm resistor (R10). Looks nice
Ok, 18uA - this is more like it.
Thank you very much for helping to get it sorted. Now I need to understand why the consumption has gone when using Si1132@yury Did you test power consumption of modules with Si1132 please? I hope it was a bad soldering on my side
-
@yury I suggest we use this:
http://oregonembedded.com/batterycalc.htm
Based on non-LDO board consumption of 18uA the battery life assuming constant updates 10 mins and 140ms wake-up time (120ms is needed by bh1750) is 1.03 years. Excellent
-
@alexsh1 said in Button size radionode with sensors swarm extension:
Did you test power consumption of modules with Si1132 please? I hope it was a bad soldering on my side
Could not find good code to send it to sleep. without it Si1132 was eating a lot...
-
@yury Hmmmm. Datasheet is stating that the standby current < 500 nA
However, actively measuring current - 4.5mA
This would kill 2032 very quickly
-
@Koresh another alternative would be using Si1145 it is pin-for-pin compatible with Si1132 and
This low-power sensing family enables long battery life with standby less than 500 nA and an average power of as little as 1.2 uA with once per second real-time UV Index measurements.
However, I still think that Si1132 can be working with the battery nicely. 0x18 register is a key:
The COMMAND Register is the primary mailbox register into the internal sequencer. Writing to the COMMAND register is the only I2C operation that wakes the device from standby mode.
The only question is how to put the sensor into the standby mode after all measurements are taken
-
@alexsh1 said in Button size radionode with sensors swarm extension:
However, actively measuring current - 4.5mA
This would kill 2032 very quicklyMatter of hours I guess, it's half more than the max continuous discharge current of a CR2032.
-
@Nca78 said in Button size radionode with sensors swarm extension:
@alexsh1 said in Button size radionode with sensors swarm extension:
However, actively measuring current - 4.5mA
This would kill 2032 very quicklyMatter of hours I guess, it's half more than the max continuous discharge current of a CR2032.
It is 4.mA for 120ms for less just for measurements
However, I agree that this is not very battery friendly
-
@alexsh1 said in Button size radionode with sensors swarm extension:
@Nca78 said in Button size radionode with sensors swarm extension:
@alexsh1 said in Button size radionode with sensors swarm extension:
However, actively measuring current - 4.5mA
This would kill 2032 very quicklyMatter of hours I guess, it's half more than the max continuous discharge current of a CR2032.
It is 4.mA for 120ms for less just for measurements
However, I agree that this is not very battery friendlyAh ok I completely misunderstood But yes seems high for a CR2032 sensor...
-
This post is deleted!
-
@Koresh,
I tried to buy some of these on the link you provided, but couldn't do it. Do you still have this component in your stock ? I like to buy 865mhz HW/W versions.
-
@Abdu-Sahin said in Button size radionode with sensors swarm extension:
865mhz HW/
Hi
They will be ready end of this week. do you need both HCW and CW versions?
-
@yury
I like to try both 865 HW/W versions. I need sensors with long battery life and good RF distance coverage for my project. I've noticed some people suggested using only 'W' version for battery powered nodes, but from my initial experience I didn't have good distance with 'W' version.
-
@Abdu-Sahin said in Button size radionode with sensors swarm extension:
I need sensors with long battery life and good RF distance coverage
)) either good battery life or good coverage though... or good coverage and 2-3 AA batteries. CW is 20 mA when sending signal and HCW is about 100 mA. CR2032 battery will be drained by HCW pretty fast.
HW/W versions have bigger footprints (Module Size:19.7X16mm) and not compatible with the "Button size".
HCW/CW (Module Size:16X16mm) are equivalents for HW/W.
-
@yury
I think I can start with CW version as start. Battery life is important for me.
-
@Abdu-Sahin said in Button size radionode with sensors swarm extension:
Battery life is important
sent you a message in the chat...
-
@yury
You can email me if you like.
My email is uk.asahin at gmail com
-
@Abdu-Sahin I was interested in reading your conversation about battery life etc. I hope you will continue the conversation on the forum instead of in private.
Thanks.
-
It is possible to buy only PCB ? Upload PCB to OSH Park, or send PCB in eagle. I do not have Altium Designer... Thx
-
@Miroslav-KadanΔ I've just uploaded latest gerbers (rfm reset pin was connected to controller, connection of si1132 was fixed, reverse battery polarity protection was added). You can place PCB order at any factory.
-
Maybe a stupid question but how do you connect the FTDI adapter? I only know the ISP pins
-
Few months ago, I've ordered some of your nodes, which work perfectly by the way, but I needed something that could speed up testing of any sensors.
So following our conversation on Github with Yury, I've created a PCB based on your Button size node, with a field for an extension board. The aim is to have a versatile board, and extensions that could handle virtually any sensors, like NodeManager project, but for hardware
And it's also a first time experiment in the land of PCBs
Apart 2 errors ( maybe more in the future !), it seems to be well routed, as tests been proving, but i still not tried the FOTA function.
Errors was a badly routed button and it seems that, after the RFM chip is soldered, communication with USBasp gets bad! Is it because SCK and MISO route ( from pin headers to atmega328 ) goes through the RFM chip before atmega ?You were mentioning some mods in dualoptiboot in order to flash M25P40, https://forum.mysensors.org/topic/3160/ota-flash-types-for-mysensors/43.
Would it be possible to share these ?And just out of curiosity, how did you manage to solder SI7021 and TSL2561 ?
By now, it seems like a mystery for me...
-
@getlarge said in Button size radionode with sensors swarm extension:
after the RFM chip is soldered, communication with USBasp gets bad
Did you solder R4 (from your schematic https://github.com/getlarge/Cosmonode/blob/master/Cosmonode_sch.pdf)? I can't find it on the boards photo.
PS
Will share compiled bootloader and sources soon.
-
@Koresh said in Button size radionode with sensors swarm extension:
Sorry, picture's quality is not too good!
R4 ( 10Kohm) is soldered. I read about that pullup resistor that is needed to sync with atmega SCK. Any other hint on what could cause that ?
Maybe, that was a mistake when i changed the fuse? but I didn't have problem before with these settings.So I'll have to be patient to use M25P40!
-
@chbla said in Button size radionode with sensors swarm extension:
Maybe a stupid question but how do you connect the FTDI adapter? I only know the ISP pins
Can anyone quickly tell me how to do it correctly? I thought it didn't work but I'm unsure.
-
@chbla This board has standard FTDI header (see attached screenshot).
But it also has all of ISP pins (mosi, miso, sck, rst)
-
@Koresh Might be a dumb question I am planning to work on this board, where do I find the complete part list.
Suggested Topics
-
MAX6675
Development • • Mrlynx