ConnectME won't answer ARP request from router with a static address

Using a ConnectME -C running Net+OS 7.5 and custom firmware. Firmware is based on the tcpserial example. When the ConnectME is configured to use DHCP, I can connect to it (using TCP) inside the LAN and from outside thru the router (with port forwarded). When the ConnectME is assigned a static address (I’ve tried several different ones), I can connect to it inside the LAN, but not from outside thru the router. Tracing this in Wireshark reveals that when the outside connection request hits the router’s WAN port, the router broadcasts an ARP request for the IP address it is forwarded to. But the ConnectME never responds!
However, change the ConnectME back to DHCP, repeat the test, and the ConnectME responds to the ARP request with it’s MAC and the connection succeeds. Likewise, on the LAN, whether the ConnectME has a static or dhcp address, the originating computer issues an ARP request and the ConnectME responds and the connection succeeds.
This happens on three ConnectMEs running the same firmware on three different LANs behind three different routers.

Try to give it static address based on your LAN. test it on DHCP and make a note of the IP, Gateway and DNS then give the exact these three fields in static side which it gets using DHCP and compare the output.


Now I’m even more confused. It’s behavior is changing. I did what mhdazeem suggested - noting the dhcp address assigned and setting that as the static address. It replied to the ARP request after doing that, but then never replied to the TCP SYN packet after that! So, still no connection. I tried setting another static address that was in the router’s dhcp range - same result. I tried to other addresses outside the dhcp range - same result each time.
Maybe Wireshark wasn’t capturing the ARP reply yesterday and is today? Nah. But I don’t know.
I should note that all these tests have been on actual production units. So today I tried replicating the problem on the ConnectME development board with a JTAG unit. Guess what? It worked fine!
I’m about to pull my hair out.

To recap: An actual production unit configured with a static address won’t accept incoming TCP connections from the WAN/Internet via router. But it will accept local connections. And when configured for dhcp, it will accept WAN and local connections. And the dev board will accept all connections regardless of its configuration.

I’m open to all suggestions at this point.

I think digi module accepts only ip addresses start with 192 for some reason and if you give any other ip it won’t accept it. that’s why it works fine with the dhcp server but not with the static fields.


Change this field to true in bsp_net.h file. give it an other try.

I finally figured it out. Due to a bug, when setting the unit’s static IP address, subnet mask and gateway from a custom PC configuration program, the gateway’s address was being set to
Duh huh.
No wonder it couldn’t reply to incoming WAN connections when set to static. It didn’t know where to send the replies to (through)! Of course, local connections worked, and when it was configured for dhcp it worked because the dhcp server gave it a correct gateway address.