The WIZ107SR receives ok. It doesn’t transmit because it is broadcasting ARP packets to get gateway address. The network doesn’t have or need a gateway. I tried setting the gateway IP to 0.0.0.0 but the module still sends ARP packets to that address. How to tell the module not look for a gateway?
Maybe the Subnet Mask doesn’t match. Try 255.255.0.0 or 255.255.255.0 (or 0.0.0.0) depending on your network setup.
What are the settings for IP, Port and Subnet Mask on each module?
The remote host IP is 192.168.42.3. The 107SR receives from the remote ok and should just reply.
The 107SR IP is 192.168.42.14.
subnet mask is 255.255.0.0.
107SR port is left at default 5000.
The gateway is 0.0.0.0. There is no reason it should try to use a gateway.
When the 107SR receives a packet it sends out 6 ARP requests for the MAC address of
192.168.101.200. It receives no answer and gives up.
I tried the subnet mask at 255.255.255.0 which makes no difference.
I will try subnet mask at 0.0.0.0 and report back if it works.
(I am using UDP mode.)
also try setting the gateway address to something other than 0.0.0.0 (e.g. 192.168.42.250 - it doesn’t need to actually exist in your network because it will not be used anyway).
Also check that both MAC addresses are not corrupted (FF:FF:FF:FF:FF:FF).
The MAC address is not corrupted.
I don’t remember why I thought the gateway address was the problem.
The IP 192.168.101.200 I mentioned is the default remote IP (RH parameter).
It appears that the 107SR can receive from any host that has the correct MAC, IP and port but to send it uses the RH and RP parameters it already has. So, to communicate with any arbitrary host the controller needs to go to command mode, read RH and RP of the packet that came in, write those back and then can send to that host. Is this correct?
Yes, in UDP-mode a receiving 107SR accepts data packets to the programmed port from any IP (and any port) - it does not check if the sender matches the programmed RH or RP. But the 107SR will send data to the programmed RH:RP only.
If your RH address is not fixed, you have to set and save it first by command mode (over serial or UDP). A reset is required for the new RH to take effect.
Since parameters are stored in the data flash memory of the W7100A, I think it would be good to only write to it only if needed, to minimize the count of writes.
In TCP-server-mode the module will only communicate with the exact client which connects to it (RH:RP is not needed) - maybe this is an option for you.
Thanks for the help!
I think TCP server mode would be better than UDP for my application.