💬 Building a Raspberry Pi Gateway
-
I just see for another app using nrf24 on cubieboard
and funcrtion to use nrf24 have GPIO defining is RF24 radio(SUNXI_GPB(10), SUNXI_GPB(11), "/dev/spidev0.0");
GPIO set using this style: SUNXI_GPB(10), this type of gpio defined in #include "gpio_sun4i.h" file. Maybe this specific defining in ARCHLINUX ARM distro. -
I hereby donate these images:

-
I just see for another app using nrf24 on cubieboard
and funcrtion to use nrf24 have GPIO defining is RF24 radio(SUNXI_GPB(10), SUNXI_GPB(11), "/dev/spidev0.0");
GPIO set using this style: SUNXI_GPB(10), this type of gpio defined in #include "gpio_sun4i.h" file. Maybe this specific defining in ARCHLINUX ARM distro.In case someone can help @артем-тихонович, please post the answer in https://forum.mysensors.org/post/95304 so we don’t unnecessarily discuss the same thing in separate threads.
-
I get weird errors when "make"ing. Branch master.
My command:
sudo ./configure --my-transport=rf24 --my-rf24-irq-pin=15 --my-signing-debug --my-signing=password --my-security-password=ZZZZZZZZZZ --my-gateway=mqtt --my-controller-ip-address=127.0.0.1 --my-mqtt-user=XXXX --my-mqtt-password=YYYYY --my-mqtt-publish-topic-prefix=mysensors-out --my-mqtt-subscribe-topic-prefix=mysensors-in --my-mqtt-client-id=mygateway1 --my-leds-err-pin=12 --my-leds-rx-pin=16 --my-leds-tx-pin=18 --my-config-file=/etc/mysensors.confM -c examples_linux/mysgw.cpp -o build/examples_linux/mysgw.o In file included from ./MySensors.h:148:0, from examples_linux/mysgw.cpp:82: ./core/MySigningAtsha204Soft.cpp: In function ‘bool signerAtsha204SoftGetNonce(MyMessage&)’: ./core/MySigningAtsha204Soft.cpp:173:55: error: no matching function for call to ‘min(unsigned int, int)’ msg.set(_signing_verifying_nonce, MIN(MAX_PAYLOAD, 32)); ^ In file included from /usr/include/c++/6/algorithm:62:0, from ./drivers/Linux/Arduino.h:32, from ./MySensors.h:39, from examples_linux/mysgw.cpp:82: /usr/include/c++/6/bits/stl_algo.h:3453:5: note: candidate: template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare) min(initializer_list<_Tp> __l, _Compare __comp) ^~~ /usr/include/c++/6/bits/stl_algo.h:3453:5: note: template argument deduction/substitution failed: In file included from ./MySensors.h:148:0, from examples_linux/mysgw.cpp:82: ./core/MySigningAtsha204Soft.cpp:173:55: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘unsigned int’ msg.set(_signing_verifying_nonce, MIN(MAX_PAYLOAD, 32)); ^ In file included from /usr/include/c++/6/algorithm:62:0, from ./drivers/Linux/Arduino.h:32, from ./MySensors.h:39, from examples_linux/mysgw.cpp:82: /usr/include/c++/6/bits/stl_algo.h:3447:5: note: candidate: template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>) min(initializer_list<_Tp> __l) ^~~ /usr/include/c++/6/bits/stl_algo.h:3447:5: note: template argument deduction/substitution failed: In file included from ./MySensors.h:148:0, from examples_linux/mysgw.cpp:82: ./core/MySigningAtsha204Soft.cpp:173:55: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘unsigned int’ msg.set(_signing_verifying_nonce, MIN(MAX_PAYLOAD, 32)); ^ In file included from /usr/include/c++/6/bits/char_traits.h:39:0, from /usr/include/c++/6/ios:40, from /usr/include/c++/6/ostream:38, from /usr/include/c++/6/iostream:39, from examples_linux/mysgw.cpp:20: /usr/include/c++/6/bits/stl_algobase.h:243:5: note: candidate: template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare) min(const _Tp& __a, const _Tp& __b, _Compare __comp) ^~~ /usr/include/c++/6/bits/stl_algobase.h:243:5: note: template argument deduction/substitution failed: In file included from ./MySensors.h:148:0, from examples_linux/mysgw.cpp:82: ./core/MySigningAtsha204Soft.cpp:173:55: note: deduced conflicting types for parameter ‘const _Tp’ (‘unsigned int’ and ‘int’) msg.set(_signing_verifying_nonce, MIN(MAX_PAYLOAD, 32)); ^ In file included from /usr/include/c++/6/bits/char_traits.h:39:0, from /usr/include/c++/6/ios:40, from /usr/include/c++/6/ostream:38, from /usr/include/c++/6/iostream:39, from examples_linux/mysgw.cpp:20: /usr/include/c++/6/bits/stl_algobase.h:195:5: note: candidate: template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&) min(const _Tp& __a, const _Tp& __b) ^~~ /usr/include/c++/6/bits/stl_algobase.h:195:5: note: template argument deduction/substitution failed: In file included from ./MySensors.h:148:0, from examples_linux/mysgw.cpp:82: ./core/MySigningAtsha204Soft.cpp:173:55: note: deduced conflicting types for parameter ‘const _Tp’ (‘unsigned int’ and ‘int’) msg.set(_signing_verifying_nonce, MIN(MAX_PAYLOAD, 32)); ^ ./core/MySigningAtsha204Soft.cpp: In function ‘void signerAtsha204SoftPutNonce(MyMessage&)’: ./core/MySigningAtsha204Soft.cpp:190:89: error: no matching function for call to ‘min(unsigned int, int)’ (void)memcpy((void *)_signing_nonce, (const void *)msg.getCustom(), MIN(MAX_PAYLOAD, 32)); ^ In file included from /usr/include/c++/6/algorithm:62:0, from ./drivers/Linux/Arduino.h:32, from ./MySensors.h:39, from examples_linux/mysgw.cpp:82: /usr/include/c++/6/bits/stl_algo.h:3453:5: note: candidate: template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare) min(initializer_list<_Tp> __l, _Compare __comp) ^~~ /usr/include/c++/6/bits/stl_algo.h:3453:5: note: template argument deduction/substitution failed: In file included from ./MySensors.h:148:0, from examples_linux/mysgw.cpp:82: ./core/MySigningAtsha204Soft.cpp:190:89: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘unsigned int’ (void)memcpy((void *)_signing_nonce, (const void *)msg.getCustom(), MIN(MAX_PAYLOAD, 32)); ^ In file included from /usr/include/c++/6/algorithm:62:0, from ./drivers/Linux/Arduino.h:32, from ./MySensors.h:39, from examples_linux/mysgw.cpp:82: /usr/include/c++/6/bits/stl_algo.h:3447:5: note: candidate: template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>) min(initializer_list<_Tp> __l) ^~~ /usr/include/c++/6/bits/stl_algo.h:3447:5: note: template argument deduction/substitution failed: In file included from ./MySensors.h:148:0, from examples_linux/mysgw.cpp:82: ./core/MySigningAtsha204Soft.cpp:190:89: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘unsigned int’ (void)memcpy((void *)_signing_nonce, (const void *)msg.getCustom(), MIN(MAX_PAYLOAD, 32)); ^ In file included from /usr/include/c++/6/bits/char_traits.h:39:0, from /usr/include/c++/6/ios:40, from /usr/include/c++/6/ostream:38, from /usr/include/c++/6/iostream:39, from examples_linux/mysgw.cpp:20: /usr/include/c++/6/bits/stl_algobase.h:243:5: note: candidate: template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare) min(const _Tp& __a, const _Tp& __b, _Compare __comp) ^~~ /usr/include/c++/6/bits/stl_algobase.h:243:5: note: template argument deduction/substitution failed: In file included from ./MySensors.h:148:0, from examples_linux/mysgw.cpp:82: ./core/MySigningAtsha204Soft.cpp:190:89: note: deduced conflicting types for parameter ‘const _Tp’ (‘unsigned int’ and ‘int’) (void)memcpy((void *)_signing_nonce, (const void *)msg.getCustom(), MIN(MAX_PAYLOAD, 32)); ^ In file included from /usr/include/c++/6/bits/char_traits.h:39:0, from /usr/include/c++/6/ios:40, from /usr/include/c++/6/ostream:38, from /usr/include/c++/6/iostream:39, from examples_linux/mysgw.cpp:20: /usr/include/c++/6/bits/stl_algobase.h:195:5: note: candidate: template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&) min(const _Tp& __a, const _Tp& __b) ^~~ /usr/include/c++/6/bits/stl_algobase.h:195:5: note: template argument deduction/substitution failed: In file included from ./MySensors.h:148:0, from examples_linux/mysgw.cpp:82: ./core/MySigningAtsha204Soft.cpp:190:89: note: deduced conflicting types for parameter ‘const _Tp’ (‘unsigned int’ and ‘int’) (void)memcpy((void *)_signing_nonce, (const void *)msg.getCustom(), MIN(MAX_PAYLOAD, 32)); ^ ./core/MySigningAtsha204Soft.cpp: In function ‘bool signerAtsha204SoftSignMsg(MyMessage&)’: ./core/MySigningAtsha204Soft.cpp:229:50: error: no matching function for call to ‘min(unsigned int, int)’ MIN(MAX_PAYLOAD-mGetLength(msg), 32)); ^ In file included from /usr/include/c++/6/algorithm:62:0, from ./drivers/Linux/Arduino.h:32, from ./MySensors.h:39, from examples_linux/mysgw.cpp:82: /usr/include/c++/6/bits/stl_algo.h:3453:5: note: candidate: template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare) min(initializer_list<_Tp> __l, _Compare __comp) ^~~ /usr/include/c++/6/bits/stl_algo.h:3453:5: note: template argument deduction/substitution failed: In file included from ./MySensors.h:148:0, from examples_linux/mysgw.cpp:82: ./core/MySigningAtsha204Soft.cpp:229:50: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘unsigned int’ MIN(MAX_PAYLOAD-mGetLength(msg), 32)); ^ In file included from /usr/include/c++/6/algorithm:62:0, from ./drivers/Linux/Arduino.h:32, from ./MySensors.h:39, from examples_linux/mysgw.cpp:82: /usr/include/c++/6/bits/stl_algo.h:3447:5: note: candidate: template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>) min(initializer_list<_Tp> __l) ^~~ /usr/include/c++/6/bits/stl_algo.h:3447:5: note: template argument deduction/substitution failed: In file included from ./MySensors.h:148:0, from examples_linux/mysgw.cpp:82: ./core/MySigningAtsha204Soft.cpp:229:50: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘unsigned int’ MIN(MAX_PAYLOAD-mGetLength(msg), 32)); ^ In file included from /usr/include/c++/6/bits/char_traits.h:39:0, from /usr/include/c++/6/ios:40, from /usr/include/c++/6/ostream:38, from /usr/include/c++/6/iostream:39, from examples_linux/mysgw.cpp:20: /usr/include/c++/6/bits/stl_algobase.h:243:5: note: candidate: template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare) min(const _Tp& __a, const _Tp& __b, _Compare __comp) ^~~ /usr/include/c++/6/bits/stl_algobase.h:243:5: note: template argument deduction/substitution failed: In file included from ./MySensors.h:148:0, from examples_linux/mysgw.cpp:82: ./core/MySigningAtsha204Soft.cpp:229:50: note: deduced conflicting types for parameter ‘const _Tp’ (‘unsigned int’ and ‘int’) MIN(MAX_PAYLOAD-mGetLength(msg), 32)); ^ In file included from /usr/include/c++/6/bits/char_traits.h:39:0, from /usr/include/c++/6/ios:40, from /usr/include/c++/6/ostream:38, from /usr/include/c++/6/iostream:39, from examples_linux/mysgw.cpp:20: /usr/include/c++/6/bits/stl_algobase.h:195:5: note: candidate: template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&) min(const _Tp& __a, const _Tp& __b) ^~~ /usr/include/c++/6/bits/stl_algobase.h:195:5: note: template argument deduction/substitution failed: In file included from ./MySensors.h:148:0, from examples_linux/mysgw.cpp:82: ./core/MySigningAtsha204Soft.cpp:229:50: note: deduced conflicting types for parameter ‘const _Tp’ (‘unsigned int’ and ‘int’) MIN(MAX_PAYLOAD-mGetLength(msg), 32)); ^ ./core/MySigningAtsha204Soft.cpp: In function ‘bool signerAtsha204SoftVerifyMsg(MyMessage&)’: ./core/MySigningAtsha204Soft.cpp:283:55: error: no matching function for call to ‘min(unsigned int, int)’ MIN(MAX_PAYLOAD-mGetLength(msg), 32))) { ^ In file included from /usr/include/c++/6/algorithm:62:0, from ./drivers/Linux/Arduino.h:32, from ./MySensors.h:39, from examples_linux/mysgw.cpp:82: /usr/include/c++/6/bits/stl_algo.h:3453:5: note: candidate: template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare) min(initializer_list<_Tp> __l, _Compare __comp) ^~~ /usr/include/c++/6/bits/stl_algo.h:3453:5: note: template argument deduction/substitution failed: In file included from ./MySensors.h:148:0, from examples_linux/mysgw.cpp:82: ./core/MySigningAtsha204Soft.cpp:283:55: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘unsigned int’ MIN(MAX_PAYLOAD-mGetLength(msg), 32))) { ^ In file included from /usr/include/c++/6/algorithm:62:0, from ./drivers/Linux/Arduino.h:32, from ./MySensors.h:39, from examples_linux/mysgw.cpp:82: /usr/include/c++/6/bits/stl_algo.h:3447:5: note: candidate: template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>) min(initializer_list<_Tp> __l) ^~~ /usr/include/c++/6/bits/stl_algo.h:3447:5: note: template argument deduction/substitution failed: In file included from ./MySensors.h:148:0, from examples_linux/mysgw.cpp:82: ./core/MySigningAtsha204Soft.cpp:283:55: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘unsigned int’ MIN(MAX_PAYLOAD-mGetLength(msg), 32))) { ^ In file included from /usr/include/c++/6/bits/char_traits.h:39:0, from /usr/include/c++/6/ios:40, from /usr/include/c++/6/ostream:38, from /usr/include/c++/6/iostream:39, from examples_linux/mysgw.cpp:20: /usr/include/c++/6/bits/stl_algobase.h:243:5: note: candidate: template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare) min(const _Tp& __a, const _Tp& __b, _Compare __comp) ^~~ /usr/include/c++/6/bits/stl_algobase.h:243:5: note: template argument deduction/substitution failed: In file included from ./MySensors.h:148:0, from examples_linux/mysgw.cpp:82: ./core/MySigningAtsha204Soft.cpp:283:55: note: deduced conflicting types for parameter ‘const _Tp’ (‘unsigned int’ and ‘int’) MIN(MAX_PAYLOAD-mGetLength(msg), 32))) { ^ In file included from /usr/include/c++/6/bits/char_traits.h:39:0, from /usr/include/c++/6/ios:40, from /usr/include/c++/6/ostream:38, from /usr/include/c++/6/iostream:39, from examples_linux/mysgw.cpp:20: /usr/include/c++/6/bits/stl_algobase.h:195:5: note: candidate: template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&) min(const _Tp& __a, const _Tp& __b) ^~~ /usr/include/c++/6/bits/stl_algobase.h:195:5: note: template argument deduction/substitution failed: In file included from ./MySensors.h:148:0, from examples_linux/mysgw.cpp:82: ./core/MySigningAtsha204Soft.cpp:283:55: note: deduced conflicting types for parameter ‘const _Tp’ (‘unsigned int’ and ‘int’) MIN(MAX_PAYLOAD-mGetLength(msg), 32))) { ^ ./core/MySigningAtsha204Soft.cpp: In function ‘void signerCalculateSignature(MyMessage&, bool)’: ./core/MySigningAtsha204Soft.cpp:307:48: error: no matching function for call to ‘min(uint8_t&, int)’ uint8_t bytes_to_include = MIN(bytes_left, 32); ^ In file included from /usr/include/c++/6/algorithm:62:0, from ./drivers/Linux/Arduino.h:32, from ./MySensors.h:39, from examples_linux/mysgw.cpp:82: /usr/include/c++/6/bits/stl_algo.h:3453:5: note: candidate: template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare) min(initializer_list<_Tp> __l, _Compare __comp) ^~~ /usr/include/c++/6/bits/stl_algo.h:3453:5: note: template argument deduction/substitution failed: In file included from ./MySensors.h:148:0, from examples_linux/mysgw.cpp:82: ./core/MySigningAtsha204Soft.cpp:307:48: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘unsigned char’ uint8_t bytes_to_include = MIN(bytes_left, 32); ^ In file included from /usr/include/c++/6/algorithm:62:0, from ./drivers/Linux/Arduino.h:32, from ./MySensors.h:39, from examples_linux/mysgw.cpp:82: /usr/include/c++/6/bits/stl_algo.h:3447:5: note: candidate: template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>) min(initializer_list<_Tp> __l) ^~~ /usr/include/c++/6/bits/stl_algo.h:3447:5: note: template argument deduction/substitution failed: In file included from ./MySensors.h:148:0, from examples_linux/mysgw.cpp:82: ./core/MySigningAtsha204Soft.cpp:307:48: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘unsigned char’ uint8_t bytes_to_include = MIN(bytes_left, 32); ^ In file included from /usr/include/c++/6/bits/char_traits.h:39:0, from /usr/include/c++/6/ios:40, from /usr/include/c++/6/ostream:38, from /usr/include/c++/6/iostream:39, from examples_linux/mysgw.cpp:20: /usr/include/c++/6/bits/stl_algobase.h:243:5: note: candidate: template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare) min(const _Tp& __a, const _Tp& __b, _Compare __comp) ^~~ /usr/include/c++/6/bits/stl_algobase.h:243:5: note: template argument deduction/substitution failed: In file included from ./MySensors.h:148:0, from examples_linux/mysgw.cpp:82: ./core/MySigningAtsha204Soft.cpp:307:48: note: deduced conflicting types for parameter ‘const _Tp’ (‘unsigned char’ and ‘int’) uint8_t bytes_to_include = MIN(bytes_left, 32); ^ In file included from /usr/include/c++/6/bits/char_traits.h:39:0, from /usr/include/c++/6/ios:40, from /usr/include/c++/6/ostream:38, from /usr/include/c++/6/iostream:39, from examples_linux/mysgw.cpp:20: /usr/include/c++/6/bits/stl_algobase.h:195:5: note: candidate: template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&) min(const _Tp& __a, const _Tp& __b) ^~~ /usr/include/c++/6/bits/stl_algobase.h:195:5: note: template argument deduction/substitution failed: In file included from ./MySensors.h:148:0, from examples_linux/mysgw.cpp:82: ./core/MySigningAtsha204Soft.cpp:307:48: note: deduced conflicting types for parameter ‘const _Tp’ (‘unsigned char’ and ‘int’) uint8_t bytes_to_include = MIN(bytes_left, 32); ^ ./core/MySigningAtsha204Soft.cpp: In function ‘bool signerAtsha204SoftVerifyMsg(MyMessage&)’: ./core/MySigningAtsha204Soft.cpp:289:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ Makefile:98: recipe for target 'build/examples_linux/mysgw.o' failed make: *** [build/examples_linux/mysgw.o] Error 1Can someone better versed help?
EDIT: tested branch development, no problems. -
@mfalkvidd It sure looks the same. I did a fresh git clone to update my gateway, so shouldn't it be fixed? From what appears on github it looked fixed..
EDIT appears fixed in development branch. But not master? -
@mfalkvidd It sure looks the same. I did a fresh git clone to update my gateway, so shouldn't it be fixed? From what appears on github it looked fixed..
EDIT appears fixed in development branch. But not master? -
hi,
is it possible to conect NRF24 to SPI1 channel on RBpi3?
(i mean pins 26, 35, 36,38,40)?? -
hi,
is it possible to conect NRF24 to SPI1 channel on RBpi3?
(i mean pins 26, 35, 36,38,40)??Welcome to the forum @robert-król
I have not tried it myself, but I beleive https://forum.mysensors.org/post/76079 shows how to do it. -
Hello
Is it possible to redefine pin used for DI00 with rfm69 (with configure option for example) ?
Indeed, DI00 is on pin 22 on raspberry, and pin 2 on arduino.
But with NRF, pin 2 on arduino is for IRQ, which is connected to pin 15 on raspberry.So if it was possible to force pin 15 for DI00, we could use adaptator card like this one https://www.mysensors.org/hardware/nrf2rfm69.
-
Hi, just build an Ethernet gateway on a raspberry pi B+ following the instructions on this site. And it works! I'm running raspbian stretch lite and used the master branch. No issues. I use the RFM69 radio and this gateway has the HW model. I did have to update al my nodes to use the new RFM69 drivers but that was clearly mentioned in the article.
I have two questions:- In this section :
log_pipe=0 log_pipe_file=/tmp/mysgw.pipeIs this correct, I think there should be a 1 to enable this type of logging.
- When a new version of mysensors is released, how do I update the gateway version on the raspberry pi?
And here is a picture of my work:

Thanks for the effort you put into this project!
-
@kted Can you give me a pointer to the details of this issue? I'm willing to do some tests and report back my findings. Some info about my configuration, I have 5 nodes at this moment, all battery feeded, they are sending only nodes. They all work but they have a interval of several minutes between sending. The gateway is connected to Domoticz running on another Raspberry PI.
-
@kted Can you give me a pointer to the details of this issue? I'm willing to do some tests and report back my findings. Some info about my configuration, I have 5 nodes at this moment, all battery feeded, they are sending only nodes. They all work but they have a interval of several minutes between sending. The gateway is connected to Domoticz running on another Raspberry PI.
@rolo6442u I built an Raspberry gateway using an RFM69 radio, to replace one built around a NodeMCU.
All nodes are transmit only, and using the latest stable API.
I noticed that all sensors were using max TX power after the first couple of transmissions, although they were respecting the ATC setting before, and were using minimum power most of the time.
Now I am concerned about battery life, so I switched back to the NodeMCU gateway, waiting for a fix.
I'll put together a temporary net, with a RPi0 gateway and a single node later, to show some real data, if you need any more information. -
@rolo6442u I built an Raspberry gateway using an RFM69 radio, to replace one built around a NodeMCU.
All nodes are transmit only, and using the latest stable API.
I noticed that all sensors were using max TX power after the first couple of transmissions, although they were respecting the ATC setting before, and were using minimum power most of the time.
Now I am concerned about battery life, so I switched back to the NodeMCU gateway, waiting for a fix.
I'll put together a temporary net, with a RPi0 gateway and a single node later, to show some real data, if you need any more information. -
@rolo6442u I built an Raspberry gateway using an RFM69 radio, to replace one built around a NodeMCU.
All nodes are transmit only, and using the latest stable API.
I noticed that all sensors were using max TX power after the first couple of transmissions, although they were respecting the ATC setting before, and were using minimum power most of the time.
Now I am concerned about battery life, so I switched back to the NodeMCU gateway, waiting for a fix.
I'll put together a temporary net, with a RPi0 gateway and a single node later, to show some real data, if you need any more information. -
@kted I wil do some tests to check if I see this behavior. Just build a simple test node with a pushbutton, on 2 AA batteries. This node has the low power W radio module. How did you discover/measure that the max TX power was used?
@rolo6442u From what the node itself reports from transportGetSignalReport(SR_TX_POWER_PERCENT). It starts from say 50%, and after a coule of transmissions it goes up to 100%, when the nodes are 1m apart. When using a stand alone ESP8266 gateway, it drops to 0%.
I'll have the nodes ready in a couple of hours, after I come home from work... -
Did some tests and I do see the TX power climbing to 100% after a few transmits :
-42 :transportGetReceivingRSSI() 127 :transportGetSendingRSSI() -256 :transportGetReceivingSNR() -256 :transportGetSendingSNR() 6 :transportGetTxPowerLevel() 77 :transportGetTxPowerPercent() 0 :transportInternalToRSSI(_transportSM.uplinkQualityRSSI) -46 :transportGetReceivingRSSI() -102 :transportGetSendingRSSI() -256 :transportGetReceivingSNR() -256 :transportGetSendingSNR() 7 :transportGetTxPowerLevel() 80 :transportGetTxPowerPercent() 0 :transportInternalToRSSI(_transportSM.uplinkQualityRSSI) -47 :transportGetReceivingRSSI() -102 :transportGetSendingRSSI() -256 :transportGetReceivingSNR() -256 :transportGetSendingSNR() 10 :transportGetTxPowerLevel() 90 :transportGetTxPowerPercent() 0 :transportInternalToRSSI(_transportSM.uplinkQualityRSSI) -47 :transportGetReceivingRSSI() -105 :transportGetSendingRSSI() -256 :transportGetReceivingSNR() -256 :transportGetSendingSNR() 11 :transportGetTxPowerLevel() 93 :transportGetTxPowerPercent() 0 :transportInternalToRSSI(_transportSM.uplinkQualityRSSI) -47 :transportGetReceivingRSSI() -103 :transportGetSendingRSSI() -256 :transportGetReceivingSNR() -256 :transportGetSendingSNR() 13 :transportGetTxPowerLevel() 100 :transportGetTxPowerPercent() 0 :transportInternalToRSSI(_transportSM.uplinkQualityRSSI) -47 :transportGetReceivingRSSI() -106 :transportGetSendingRSSI() -256 :transportGetReceivingSNR() -256 :transportGetSendingSNR() 13 :transportGetTxPowerLevel() 100 :transportGetTxPowerPercent() 0 :transportInternalToRSSI(_transportSM.uplinkQualityRSSI)Not sure if this has a great impact on battery life, depends on how often the node sends a message. Al my nodes have an interval of about 10 minutes. I leave the gateway running for now. Having it running on this PI is a great advantage for me. Will try to do some current measurement on this node and calculate what the impact is on battery life.
-
Hello
Is it possible to redefine pin used for DI00 with rfm69 (with configure option for example) ?
Indeed, DI00 is on pin 22 on raspberry, and pin 2 on arduino.
But with NRF, pin 2 on arduino is for IRQ, which is connected to pin 15 on raspberry.So if it was possible to force pin 15 for DI00, we could use adaptator card like this one https://www.mysensors.org/hardware/nrf2rfm69.
-
@barrydou I gave a double gateway running on my raspberry both nrf24 and rfm69, still on v. 2.2