💎 Building an Ethernet Gateway



  • Hi everyone,
    Is it possible to build an ethernet gateway with a RFM69 radio module?
    Because I tried this a while ago and that didn't work because of a software problem in the library's. Is that already solved or not?
    Thanks!


  • Mod

    With development branch it should be solved, but I still have to try



  • @Jonathan-Caes I did, with an RFM69HW an arduino pro mini and a funduino Ethernetmodule. Used the setup from computourist in github https://github.com/computourist/RFM69-MQTT-client



  • hello @Ed1500, i have the same problem as @Mitja-Blazinsek. i have a w5100 module (funduino), arduino pro mini and nrf24 radio. i try to use your tip, including a delay in setup() but it doen't work yet, the gateway isn't reached using ping. is necesary another change? did you move the setup() function in the program? thanks!!



  • @Toni-Ramos Sorry to hear that. Are you using Soft SPI or hardware SPI for both?
    Can you get any connection if you just use it as webserver without the NRF24?



  • @Ed1500 i'm using softSPI as the example. I can see ping works correctly if i comment "#define MY_RADIO_NRF24". If not, the gateway shows the following messages continuosly:

    0;255;3;0;9;MCO:BGN:INIT GW,CP=RNNGA--,VER=2.1.1
    0;255;3;0;9;TSM:INIT
    0;255;3;0;9;TSF:WUR:MS=0
    0;255;3;0;9;!TSM:INIT:TSP FAIL
    0;255;3;0;9;TSM:FAIL:CNT=1
    0;255;3;0;9;TSM:FAIL:PDT
    0;255;3;0;9;TSM:FAIL:RE-INIT



  • @Ed1500 after tests with different versions of the library i discovered a bad welded pin in the nrf24. It seens to work fine now,i'll conect a node to the gateway and check all



  • @Toni-Ramos Glad you got it solved. apologies I had not seen yr earlier reply yet, but thats no longer relevant.
    Always good to check the joints 🙂


  • Mod

    What is the best way to make the gateway wait for ip address (it's set to use dhcp) when power goes down? I noticed that the gateway starts faster than the router and doesn't get the ip address so I had to push the reset button to get it to work.


  • Mod

    @gohan maybe add a wait call in before()? Not sure if before() is run early enough, but it might be worth a try.

    Maybe the library can be modified to try for a longer time before giving up.


  • Mod

    Maybe I could make a check if there is no client connected I could reset the board, but I was wondering if there is any was to know if the system has a valid ip



  • hi after long time i finaly get new w5100 module now the test sketch from arduino ide for ethernet like web server are working fine bur still don't work as a gateway in domoticz or mycontroler. i just open example gatewayw5100 from my sensor libary and upload to mega bard bit status in my controler is always down af course i set the gateway in my controler :Enabled
    Enabled
    Type
    Ethernet
    Network type
    MySensors
    Connection details
    Host:192.168.178.66, Port:5003
    Status
    Down
    Status since
    7 minutes ago
    Status message
    ERROR: connect timed out


  • Mod

    Can you ping that ip? There are some faulty w5100 modules around and I did repair one by adding a couple of 100 ohms resistors on the ethernet pins.


  • Mod

    @Mitja-Blazinsek is your local network using the same subnet (192.168.178)? What is the ip and netmask of your controller?



  • my network is using 192.168.0 but i try to change the MY_IP_ADDRESS to 192.168.0.66 but still no responese. i dont know what is the ip of mycontroler it works only when ia write localhost:8443 i of domoticz was 127.0.0.1



  • ok ip of mycontroler is 192.168.0.100



  • is it maybe problem because i'm using mega board an i wired 50 51 52 pins but if i wired 11 12 13 like on the diagram here it not working the shield if i try dhcp address printer for test


  • Mod

    You probably have faulty network shield



  • Sorry, but can't find any information about my problem about the gateaway.
    For connecting a lot of binary switches etc. i took a mega and loaded a gateaway sketch from Mihai . Normally it runs very good, when i change the status flags from ON/Off to 1/0 (Don't know why?)
    But now i had the idea, to disable the radio, because I don't need it for this mega.
    Now the relais-switches do no longer work as before. They only work from time to time and rather randomly.
    I want to switch and contol the switches with iOBroker, but without the radion connected and activated, it doesn't run.
    Any idea?


  • Mod

    @jopebe did you remove the define for the radio from your sketch?
    What does the debug output say?



  • Thank You for Your quick respons!
    Yes, i made two slashes before the define-line of the radio .
    I have no debug-output because I didnt engage myself in debugging until now. I will try it this evening. During the day Im engaged in other things.



  • Here thr output of the seriel monitor:
    0;255;3;0;9;MCO:BGN:INIT GW,CP=R-NGA--,VER=2.1.1
    IP: 192.168.178.134
    0;255;3;0;9;Eth: connect
    0;255;3;0;9;MCO:BGN:STP
    0;255;3;0;9;MCO:REG:NOT NEEDED
    0;255;3;0;9;MCO:BGN:INIT OK,TSP=NA
    0;255;3;0;9;Eth: 0;101;1;0;2;1
    0;255;3;0;9;Eth: 0;101;1;0;2;0
    0;255;3;0;9;Eth: 0;101;1;0;2;1
    0;255;3;0;9;Eth: 0;101;1;0;2;0
    0;255;3;0;9;Eth: 0;101;1;0;2;1
    0;255;3;0;9;Eth: 0;101;1;0;2;0
    0;255;3;0;9;Eth: 0;101;1;0;2;1
    0;255;3;0;9;Eth: 0;101;1;0;2;0
    0;255;3;0;9;Eth: 0;101;1;0;2;0
    0;255;3;0;9;Eth: 0;101;1;0;2;1
    When I push the button in IoBroker-Vis, it takes often a lot of time until the LED is on; sometimes I have to push the button twice or more times; sometimes nothing happens at all.
    When I define and connect the radio with the same sketch, it runs as expected.


  • Hero Member

    @jopebe are the relays and switches locally attached to the GW? Please post your sketch



  • @scalz A very late reply, but someone else might be helped with it.
    Hardware SPI is working.
    The onnly thing is that on W5100 shield it will work without any problem but with most 5100 modules you need a small modification fixing w5100 problems



  • @fifo Most W5100 modules have a 5-3.3V regulator so if you connect the Vcc to 3V3 the chip just doesnt get enough juice



  • I dont know, how to send my sketch as a file. Copy and past doesnt run.
    I use an ethernet-shield and as I mentioned, when I connect and switch on the radio, everything is alrigth.



  • Thank You to all, who tried to help.
    I think, I found the solution:
    There was this line in the sketch: "const unsigned long tUpdate=60000; //update interval"
    When I changed the time to 6000, it runs as when as the radio was connected.
    So it was probably missing some kind of "interrupt", which usually comes from the radio , when it listens to the nodes or so?



  • hi everyone,

    has the pin setup changed? it looks like it has from the sketch. I used a0, a1 and a2 for the radio.


  • Mod

    @Newzwaver Which sketch do you mean? The build page is still using a0, a1, a2 for W5100.



  • Ok, I screwed up and downloaded the latest arduino software 1.8.3 and can't get my libraries to work correctly. I am trying to upgrade my sensors to 2.1.1 and rebuild my gateway using a new nano I put together. I am using the5100 connection with the radio wired to a0..... It the 1.8.3 not to be used for the overseas board?



  • I have just built a W5100 based Ethernet gateway using a pro mini, NRF24LR and I enabled Soft Signinig - using the latest mysensors github development version 2.2.0-beta I am getting Low on memory messages when I compile and load this - if I disable Signing it does not complain. I have noticed several random crashes with signing enabled however i have secure nodes so need singing support. Is there something I am doing wrong or is the latest dev image causing this to occur. I have Debugging all disabled and burning to a stock 5V 16Mhz device.

    Sketch uses 25476 bytes (82%) of program storage space. Maximum is 30720 bytes.
    Global variables use 1648 bytes (80%) of dynamic memory, leaving 400 bytes for local variables. Maximum is 2048 bytes.
    Low memory available, stability problems may occur.


  • Mod

    @itbeyond you'll need to find a way to save flash and ram, or use a microcontroller that has more flash and ram.


  • Mod

    @itbeyond you could use a Mega 2560 or use a raspberry pi as gateway (if you already have one)



  • @mfalkvidd I this just how it is going to be on W5100 if we enable signing support - we must use a different chip? The Ethernet Gateway has nothing but the basic sketch with LED's enabled and soft signing.


  • Mod

    @itbeyond probably. I guess the w5100 library uses a lot of ram and flash. The crypto for software signing uses a lot as well.


  • Contest Winner

    Atmga328p is not suitable as a gateway if you want ethernet and security. It simply does not have enough storage.



  • @Anticimex I do agree. It CAN be used, but it is just a bad choice as the ethernet libraries do not leave much space for much else.
    ENC28J60 in that aspect is worse than the W5100.
    I tried it more like a proof of concept and it does work pretty well just passing data, but I put everything on an ESP8266. OK, WiFi rather than Ethernet but thats OK for me


  • Contest Winner

    @Ed1500 I run a gateway on a nano with all security features. But it runs as a serial gateway.



  • @mfalkvidd, @Anticimex & @Ed1500,

    Thanks I have ordered a Mega 2560 to use as the gateway. I think it would be super helpful to have the specs better identified in the main topic of the Building and Ethernet Gateway (and other Gateway pages) page - maybe a table with suitable controllers for the most common configurations. It would have saved me the hassle and I am sue I will not be the first to run into this. I too was using a 328p with security via serial and did not even think I would have a problem with memory when converting the Ethernet.


  • Mod

    In principle it is the same everywhere: the more libraries you add, the more memory you use as it is like you are writing a longer code. It's the basic of programming and arduino ide is reporting how much memory a sketch uses, so you can see yourself how much more memory is used when you add extra libraries.



  • @gohan yes I understand perfectly I am a developer and have over 30 years coding experience in about 20 languages. What I find difficult is that there is no detail or documentation on library resource usage so one cannot predetermine the resource requirements when a library or piece of hardware is used. In this great site we have a statement at the top (first sentance) of the Ethernet Gateway page that states "You can build an Ethernet gateway using almost any Arduino model." Well this is not exactly true because if you want to enable some of the library features (ie: signing, and lets face it you should have this enabled if you have any locks or garage doors etc) you will run out of memory in the general models. I am not complaining I just think something so simple should be documented to help other uses look at the right equipment from the outset. In fact all that needs to be written in the first sentence is something as simple as "You can build and Ethernet gateway using almost any Ardunio model however as the Ethernet library uses more resources it would be best to look at a micro controller with greater than 2kb or ram so we recommend a Mega 2560 or similar if you intend to enabled signing or whitelist support."


  • Mod

    @itbeyond or if you add external libraries, or if you use debug, or if you change radio, or if, in the future, any of the used libraries increase in size, but not if, in the future, one or more of the included libraries result in smaller flash or ram usage because then it might work. Or if the Arduino IDE changes the compiler flags, thereby affecting the size - either up or down, or if gcc is in a future release changed so code size is affected.

    As a programmer, I'm sure you understand that the number of variations increase exponentially, and most of the variables are not under control of the MySensors library.

    I agree that a message or table would be nice. I just don't see how it would be feasible to construct and maintain it.


  • Mod

    @itbeyond said in 💎 Building an Ethernet Gateway:

    "You can build an Ethernet gateway using almost any Arduino model."

    I believe that "almost" is the right word, since in fact the basic Ethernet gateway can run on many devices but as the requirements increase you need to step up the HW, I don't see it as a big problem: just as you need more IO pins then a standard UNO you go to a Mega2560.



  • I give up - at least if someone is thinking of building this gateway and wanting to use security they can hopefully read this thread before they start and will look at a higher level controller before they purchase the hardware. I am only trying to help others with what to me is still a simple and easy fix alas I must have upset the apple cart.

    There is no big problem at all, just that it is really simple to know right now, with technology available today, if you need an Ethernet gateway and signing then use a Mega 2560 or better for the Ethernet Gateway controller to ensure you have the ram. @mfalkvidd - You state variations increase exponentially and most not under library control however using the MySensors Library and building the hardware shown and documented on this page using the sketch provided (completely under control of MySensors) you will need a Mega 2560 or better if you intend to enable signing (also under control of the Library). Do not get me wrong I really love the whole MySensors thing and have over 30 devices up and running and have enjoyed the whole learning thing however simple requirements (IMHO) like this should be detailed.

    Hopefully this post will help the next person, it certainly would have help me and I am sure I am not the only one.


  • Contest Winner

    @itbeyond signing is a completely optional feature of the library. One part of a great many optional features. It is a delicate tradeoff of providing detailed instruction and keeping documentation at a level where users actually care about reading it.



  • Hallo,
    I`m running this ethernet-gateway with w5100 shield on uno.
    In the log of iobroker I always see this message again and again:
    mysensors.0 2018-01-26 11:10:58.942 error Error for "192.168.178.133": Error: read ECONNRESET
    mysensors.0 2018-01-26 11:10:55.105 info Received INTERNAL message: I_GATEWAY_READY: Gateway startup complete.
    mysensors.0 2018-01-26 11:10:55.103 warn ID not found. Inclusion mode OFF: {"id":"0","childId":"255","type":"presentation","ack":false,"payload":"2.1.1","subType":"S_ARDUINO_RELAY"}
    mysensors.0 2018-01-26 11:10:55.094 info Connected 192.168.178.133:49153
    mysensors.0 2018-01-26 11:10:54.897 error Error for "192.168.178.133": Error: read ECONNRESET
    I cannot find a solution in the forum of iobroker and also nothing about it in this forum.
    By the way: In the list of objects in iobroker there is always a child id 255 without any state or value.
    Is it an issue ?
    Perhaps of iobroker?
    Any solution?


  • Mod

    Look at the gateway log and see if you get any error



  • Here the log from debug:
    0;255;3;0;9;MCO:BGN:INIT GW,CP=RNNGA--,VER=2.1.1
    0;255;3;0;9;TSM:INIT
    0;255;3;0;9;TSF:WUR:MS=0
    0;255;3;0;9;TSM:INIT:TSP OK
    0;255;3;0;9;TSM:INIT:GW MODE
    0;255;3;0;9;TSM:READY:ID=0,PAR=0,DIS=0
    0;255;3;0;9;MCO:REG:NOT NEEDED
    IP: 192.168.178.133
    0;255;3;0;9;Eth: connect
    0;255;3;0;9;MCO:BGN:STP
    Can`t find any error.
    From here only reading nodes.


  • Mod

    Can you try with latest mysensors 2.2?



  • I did.
    Error comes once, than for minutes no error. And now the error disappeared out of the log.
    I don`t understand .
    Thank you for the hint.


  • Mod

    So did you solved the problem?



  • Hello, all. Nuuubeee here, though been doing MUCH reading/studying. I had previously (before stumbling upon this site) decided to go with MRF69HWs. I see that the code can be un-commented for this radio, but having difficulty with pinouts and mismatching pin anmes: the RFMs (appear) to have no corresponding pins to the NRFs CE and CSN pins. The MRF uses NSS and D100 pins, not labeled as such on the NRF. Same use with different labels? I've poked around looking for hints and tips about wiring the MRFs to work with the W5100, though so far, haven't found what (I think ) I need.

    Thanx!


  • Mod

    @flyyboyy hi and welcome to the forum!

    Is this what you need?



  • Have seen and studied that, though at the top of this page it mentions some necessary changes for use with the W5100:
    "The W5100 ethernet module has problems sharing SPI with radio. To solve this, we put the radio on a couple of other pins and use so called soft-spi. That's why you have to wire the radio a little differently here than on the usual sensors. "
    I assume that for this reason the link you replied with would not work. Some times I get into trouble assuming things; if those connections work for the gateway, I guess I'm good to go (and just didn't realize it).
    Thanx



  • I did look a little closer to the page you referenced and noticed your pin "color coding" was identical between the two radios, even though those two pin names were different. Would it be safe to interpolate those same "color codes" between the radio and the Arduino (using Pro Mini) even though the pin names are different?


  • Mod

    Thanks for clarifying @flyyboyy
    The following are used for SPI:
    NSS (also called SĖ…SĖ…, SSEL, CS, CĖ…SĖ…, CE, nSS, /SS, SS# according to wikipedia)
    SCK
    MOSI
    MISO

    and yes, I think they use the same colors on the nrf and rfm instructions. But I am not sure about CE vs CSN on the nrf24.

    I have updated the table for w5100 to include the NSS naming.



  • I created a case for this gateway.
    https://www.thingiverse.com/thing:2923130



  • OK, who's up for a WHOLE LOTTA handholding? Dang, guess I'm getting denser the older I get.
    Is this page the place to solicit help, or should I start a new topic in the forum? I searched there for answers to my yet-unstated questions but found nothing. Guess I am the only one that doesn't get it. . .
    TIA for any takers

    flyy



  • By the way, the questions at this point relate directly to the Ethernet Gateway -- that's why I was asking if this page was the proper place to ask


  • Mod

    @flyyboyy here or in a new thread doesn't matter that much - as long as you don't post the same thing in multiple places.

    https://forum.mysensors.org/category/5/troubleshooting is a good category for troubleshooting

    The post at the top of that page lists the most common problems, how to troubleshoot them, and what information is usually required to help so you can get help as quick as possible.



  • I kinda expected that it should go into the forum; I posted it in the General Discussion category, then even missed indicating I was looking for help -- it's simply titled "Ethernet Gateway." Oh, well. . .

    Thanks



  • WizNET W5500 Ethernet module

    For your information.
    A W5500 module can also be used. The wiring is the same as for the W5100 module (with A0, A1, A2). The Arduino code must be changed in two places:

    1. use as Ethernet module type
      #define MY_GATEWAY_ENC28J60

    2. #include <Ethernet2.h> instead of #include <Ethernet.h>



  • Thanks @bazzoka, you are right, it works the way you said 🙂



  • @bazzoka and @Chris83:

    The newest version of the standard Arduino Ethernet (2.0.0) now has built-in support for the W5500 (in addition to W5200 and W5100) modules.
    This eliminates the need to pull in the Ethernet2 library and change the sketch code to build an Ethernet Gateway with the newer/cheaper/better W5500 modules.
    Supposedly it also has some substantial performance improvements as well (see here: https://www.pjrc.com/arduino-ethernet-library-2-0-0/).
    The only downside I have run across so far is the increased progmem flash size that makes the sketch about 2.8 KB larger.



  • Hi
    I try building gateway on my Arduino Mega and i defined this:
    // Controller ip address. Enables client mode (default is "server" mode).
    // Also enable this if MY_USE_UDP is used and you want sensor data sent somewhere.
    #define MY_CONTROLLER_IP_ADDRESS 192, 168, 13, 252

    This is ip my Controller on RPI4 with installed Hassos(Home Assistant). But when it is defined i can not controll my relay on gateway. When delete this define all works ok and i can controll relay from home assistant. Please help me... I want define it to block controll only from one device in my network(controller automation Home Assistant).



  • i built the ethernet gateway with the ENC28J60 module, arduino nano v3.0 and RF24 radio, using this guide and there are three problems which i'm not being able to solve (i used the https://github.com/mysensors/MySensorsArduinoExamples/tree/master/libraries/UIPEthernet, as suggested).

    • fixed ip, connected to power supply, ethernet cable and usb - ping works, but HA does not "sees"
    • fixed ip, connected to power supply, ethernet cable but no usb - ping does not works ????
    • commented ip definition, to enable dchp - does not work.
      seams the instructions are outdated -
      i really need help to make it work.
      thx

Log in to reply
 

Suggested Topics

  • 3
  • 109
  • 584
  • 5
  • 109
  • 2

0
Online

11.4k
Users

11.1k
Topics

112.7k
Posts