I'm working on a project where fast response times are imperitive, and multiple interfaces need to be managed "simultaneously". I currently have cellular and GPS running with ~450kfps which has been great.
And once the ethernet configuration has been established, I'm able to keep it around 450k. But the issue is that Arduino's existing ethernet code is horrifically blocking. Thus far, it seems to only be on DHCP and on connecting to the server. I haven't tested others yet.
Also, I did try that non-blocking code posted on github from, like, 2013. I can't really get it to work.
Has any progress been made on creating non-blocking ethernet code?
I don't know about non-blocking, but I have found that carefully tuning timeout values to be very helpful. The default timeout values are extremely conservative. There is a potential delay of 1600ms for some operations! If something goes wrong I'd prefer to be able to do something else in my code for a while, then try again instead of just being blocked for a super long time.
I also found there is a perpetual loop in EthernetClient.connect() and EthernetClient.stop() with no timeout. I modified that code to add a configurable timeout: