Define static ARP entries on Arduino?

Does anyone know if there's a way to define static ARP entries on a Mega or Uno please? I've a project that needs either a Mega or Uno to send UDP packets to a destination computer regardless of if the computer is on or not, and I'm finding that if the computer is on then the UDP packets are sent immediately but if the computer is off then the Arduino's take ages to do anything. I guess that it's using ARP to try to get the computer MAC address and waiting fora time out before proceeding. I know from experience that when similar things happen on computer then a static ARP definition ususally solves it, but how to do this on an Arduino?

Many thanks,

Ken

Here is a forum post about sending raw Ethernet packets: http://forum.arduino.cc/index.php?topic=74547.0

I think you just have to write a packet that represents a UDP packet to a known MAC address.

I’ve a project that needs either a Mega or Uno to send UDP packets to a destination computer regardless of if the computer is on or not, and I’m finding that if the computer is on then the UDP packets are sent immediately but if the computer is off then the Arduino’s take ages to do anything.

Is 1.6 seconds considered ages? Last time I checked, the w5100 will make 8 attempts at 200ms per attempt to send the packet. I can reduce that to 200ms by changing the number of attempts.

edit: This only applies if the destination device is on the same localnet as the sending device. If the destination device is not on the same localnet, then the network gateway should accept the packet immediately, even if the destination device is offline.

I could manage with 1 ARP attempt at 200ms. How do you configured that?

Thanks,

Ken

This is what I use. The default retry count is 8. This will try only once.

#include <utility/w5100.h>

// in setup after Ethernet.begin()
W5100.setRetransmissionCount(1);