💬 Building a Raspberry Pi Gateway
-
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
-
@gohan I meant multiple gateways on the same raspberry.
Right now, I have an NRF24L01 gateway, Domoticz, pi-hole, and a VPN server running, with 2 more gateways connected, one local and one remote RFM69 on ESP8266.
It would be nice if I could combine the two local gateways, the RFM and the NRF on the same Raspberry's GPIO... -
More problems when I try to "make" after configuring. Tried with and without sudo...
dietpi@Domoticz:~/MySensors$ sudo make gcc -MT build/hal/architecture/Linux/drivers/core/log.o -MMD -MP -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -DMY_SIGNING_SIMPLE_PASSWD=\"ZZZZZZZ\" -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_GATEWAY_MQTT_CLIENT -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI -DMY_LINUX_CONFIG_FILE=\"/etc/mysensors.conf\" -DMY_DEFAULT_TX_LED_PIN=18 -DMY_DEFAULT_RX_LED_PIN=16 -DMY_DEFAULT_ERR_LED_PIN=12 -DMY_MQTT_CLIENT_ID=\"mygateway1\" -DMY_MQTT_SUBSCRIBE_TOPIC_PREFIX=\"mysensors-in\" -DMY_MQTT_PUBLISH_TOPIC_PREFIX=\"mysensors-out\" -DMY_MQTT_PASSWORD=\"YYYYY\" -DMY_MQTT_USER=\"XXXX\" -DMY_CONTROLLER_IP_ADDRESS=127,0,0,1 -DMY_DEBUG_VERBOSE_SIGNING -DMY_RX_MESSAGE_BUFFER_FEATURE -DMY_RF24_IRQ_PIN=15 -Ofast -g -Wall -Wextra -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/log.c -o build/hal/architecture/Linux/drivers/core/log.o In file included from hal/architecture/Linux/drivers/core/log.c:20:0: hal/architecture/Linux/drivers/core/log.h:24:19: fatal error: stdio.h: File not found #include <stdio.h> ^ compilation terminated. Makefile:102: recipe for target 'build/hal/architecture/Linux/drivers/core/log.o' failed make: *** [build/hal/architecture/Linux/drivers/core/log.o] Error 1EDIT: ...and here's the fix: "sudo apt-get install g++" (I'm using DietPi now to make it lighter for Pi Zero W).
-
Running Version 2.3.2-beta just cloned today. On a raspberry pi B rev2.
A little bug/problem I have discovered with the MQTT gateway.When you run the gateway with command and switch:-
mysgw -c /etc/mysensors.confIt segfaults.
When its run with the command and switch :-
mysgw --config-file /etc/mysensors.confIt works fine
I was playing with the ethernet gateway compile and the -c worked fine.
-
Another thing I have found is I cannot get any logging working with the mqqt gateway compile.It worked fine (named pipe) with the ethernet gateway compile.Edit
It seems logging with the mqtt is not instant. It seem to dump the log out of memory periodically, is this expected? Makes it a bit hard to debug real-time. -
Another thing I have found is I cannot get any logging working with the mqqt gateway compile.It worked fine (named pipe) with the ethernet gateway compile.Edit
It seems logging with the mqtt is not instant. It seem to dump the log out of memory periodically, is this expected? Makes it a bit hard to debug real-time. -
@gohan Sorry I miss your answer a few days ago
I don't want to a gateway with both rfm69 and nrf24..I'm planning to change my nrf24 sensors with rfm69, to have a better transmission distance. My two nodes are outside, and i have communication trouble if i put them where i wanted, specially for my rain gauge.
So I wanted to use those adaptors https://www.openhardware.io/view/16/NRF2RFM69.
I received them, and I'm still waiting RFM69 board to test it.But as the pinout is not the same between nrf24 and rfm69 on raspberry gateway, I could not use the adaptor on the gateway. So before making a new board for my raspberry, I wanted to know if it's possible to change the default pin configuration, to have exactly the same as nrf24, and use an adaptor on the gateway too.
For that, I "just" need to redefine DIO0 on pin 15 (default is 22). So I wonder if it's possible to do it.And "bonus question", I'd like to know why pin configuration is not the same between arduino and raspberry. Why pin 15 is not used for DIO0 on raspberry (equivalent to pin 2 on arduino). I'm telling myself it should be a good reason, but I don't get it.
-
@gohan Sorry I miss your answer a few days ago
I don't want to a gateway with both rfm69 and nrf24..I'm planning to change my nrf24 sensors with rfm69, to have a better transmission distance. My two nodes are outside, and i have communication trouble if i put them where i wanted, specially for my rain gauge.
So I wanted to use those adaptors https://www.openhardware.io/view/16/NRF2RFM69.
I received them, and I'm still waiting RFM69 board to test it.But as the pinout is not the same between nrf24 and rfm69 on raspberry gateway, I could not use the adaptor on the gateway. So before making a new board for my raspberry, I wanted to know if it's possible to change the default pin configuration, to have exactly the same as nrf24, and use an adaptor on the gateway too.
For that, I "just" need to redefine DIO0 on pin 15 (default is 22). So I wonder if it's possible to do it.And "bonus question", I'd like to know why pin configuration is not the same between arduino and raspberry. Why pin 15 is not used for DIO0 on raspberry (equivalent to pin 2 on arduino). I'm telling myself it should be a good reason, but I don't get it.
@barrydou is this what you need (from the documentation and ./configure--help)
--my-rfm69-irq-pin=<PIN> Pin number connected to RFM69 IRQ pin.For the bonus question: I wasn't aware that there was a mapping between Raspberry Pi gpio and Arduino pins. Could you share he rest of the list?
-
@mfalkvidd I don't know what DI00 is, and if it's equivalent to IRQ ? If Yes, it's exactly what I need ! Thank you !!! :) I will test it as soon as I get my RFM69
Here is the pin mapping between RFM69W/NRF24 and Arduino/Raspberry
Arduino mini - NRF24 - RFM69 - Raspberry GW NRF - Raspberry GW RFM 9 - CE - N/A - 22 - N/A 10 - CSN/CS - NSS - 24 - 24 13 - SCK - SCK - 23 - 23 11 - MOSI - MOSI - 19 - 19 12 - MISO - MISO - 21 - 21 2 - IRQ - DI00 - 15 - 22So, the only mismatch breaking pin compatibility (and preventing to use adaptors on the raspberry pi gateway) is on IRQ/DI00. Adaptors wire RFM69 DI00 on NRF24 IRQ pin, but they don't use, by default, the same pin on raspberry, depending the radio type.
-
@mfalkvidd I don't know what DI00 is, and if it's equivalent to IRQ ? If Yes, it's exactly what I need ! Thank you !!! :) I will test it as soon as I get my RFM69
Here is the pin mapping between RFM69W/NRF24 and Arduino/Raspberry
Arduino mini - NRF24 - RFM69 - Raspberry GW NRF - Raspberry GW RFM 9 - CE - N/A - 22 - N/A 10 - CSN/CS - NSS - 24 - 24 13 - SCK - SCK - 23 - 23 11 - MOSI - MOSI - 19 - 19 12 - MISO - MISO - 21 - 21 2 - IRQ - DI00 - 15 - 22So, the only mismatch breaking pin compatibility (and preventing to use adaptors on the raspberry pi gateway) is on IRQ/DI00. Adaptors wire RFM69 DI00 on NRF24 IRQ pin, but they don't use, by default, the same pin on raspberry, depending the radio type.
@barrydou I don't know what dio0 is either, but https://learn.sparkfun.com/tutorials/rfm69hcw-hookup-guide/all describes it like this:
Digital I/O 0
RX interrupt Received data ready interrupt signal from RFM69HCW to microcontrollerwhich sounds like it could be interrupt. It might be worth a try at least.
-
@mfalkvidd Thank you.
I've found that too https://www.mysensors.org/apidocs/RFM69_8h_source.html
It's clearly indicated that DIO0 is IRQ.So I think with "--my-rfm69-irq-pin=" it will do the job.
I'll test it as soon as i'll receive RFM69.
Thank you again
-
@jerseyguy1996 Are you using a decoupling capacitor?
@marceloaqno Sorry to kick this old topic, but I will soon be trying to build my gateway with a Raspberry pi. I was wondering if the capacitor is also required for the gateway, or just for the nodes?
Because at the instruction page on how to wire and build a Raspberry Pi gateway, the capacitor isn't mentioned.
I'll be using a RPI 1 and NRF24L01+
-
@marceloaqno Sorry to kick this old topic, but I will soon be trying to build my gateway with a Raspberry pi. I was wondering if the capacitor is also required for the gateway, or just for the nodes?
Because at the instruction page on how to wire and build a Raspberry Pi gateway, the capacitor isn't mentioned.
I'll be using a RPI 1 and NRF24L01+
-
Ok, one more question. I thought I read somewhere that the wiring between the RPI and de radio should be as short as possible, but I can't find exactly where I read that anymore.
At another project (zigbee2mqtt) I read that users had better reception when they placed the transceiver further away from the controller, because there was less inteference. So if possible, I would like to use a piece of UTP cable to wire the radio to the raspberry pi. That way I can put the rpi inside a closet, but the radio outside.
So I am not sure if longer wires (say 2, 3 meters) is going to be a problem?
-
Ok, one more question. I thought I read somewhere that the wiring between the RPI and de radio should be as short as possible, but I can't find exactly where I read that anymore.
At another project (zigbee2mqtt) I read that users had better reception when they placed the transceiver further away from the controller, because there was less inteference. So if possible, I would like to use a piece of UTP cable to wire the radio to the raspberry pi. That way I can put the rpi inside a closet, but the radio outside.
So I am not sure if longer wires (say 2, 3 meters) is going to be a problem?
@rolandow there could be a problem.
There are two things to consider.
-
Power drop due to resistance in the cable. See https://electronics.stackexchange.com/questions/113253/voltage-drop-and-safe-current-load-on-cat5-cable for details but use the current used by the radio (provided in the datasheet) instead of the 2.5A used in that question.
-
SPI communication problems due to capacitance in the cable. See https://electronics.stackexchange.com/questions/163468/spi-max-distance for details. See also my post at https://forum.mysensors.org/post/92967 for oscilloscope pictures of what an i2c signal can look like through a long cable. SPI can handle longer cable lengts than i2c though.
-