Today I got my B402 Evaluation kit connected to Particle Cloud via Ethernet using the Android App.
Everything is apparently working 100% as I can ping/signal and call custom events just fine. I can also build and flash firmware OTA using Particle Build.
I am however seeing repeatable dropouts (100% of the time) if I don’t call anything on the device over a period of 3-5 minutes. The RGB led remains breathing cyan but the device will not respond to pings/functions. Power cycling will fix this temporarily.
I stripped code down to the following and am still seeing the same issue. This has been both compiled for target Boron 1.4.4 , and flashed, using the Particle Build online IDE.
Would love some assistance, as this is a real annoyance for development!
The B402 even over Ethernet uses UDP to communicate with the Particle cloud. It sends a packet to the Particle cloud servers, which causes your network router to create a temporary port mapping back to the device. Since these are a finite resource your router will eventually discard the back-channel to the device, which breaks the cloud connectivity, but the device cannot tell that the back-channel is gone until it sends data again, which by default happens every 23 minutes.
The solution is to adjust the keep-alive for your network. Add this to setup to have a packet sent to the cloud every 2 minutes to make sure your router does not discard the port-forwarded back-channel when using Ethernet.
After firmware update I get SOS (1 blink between) every time I enable ETHERNET.
I will have to attempt to revert as I've spent 3 hours troubleshooting this so far to no avail.
The latest sketch I have been flashing to test is attached at the bottom of this reply.
EDIT: Reverting to 1.4.4 fixed SOS issue, so it seems to me that 1.5.0-r.c.2 perhaps has an issue with ethernet
@no1089 So I have just tried and confirmed working ethernet on 1.5 now.
The only issue at this stage however is that I’ve been forced to rerun the Particle Set-Up (via Android app) in order to get it to work. Disabling and enabling ethernet programmatically has only worked AFTER initially configuring the bsom via the app.