Hi guys, I'm trying to control a cyber power PDU through SNMP. When I use the supplied MAC address that came with the Arduino ethernet shield 2, using Wireshark I see the PDU doesn't reply to the ARP request, but when I change the first byte to 0x61 on the Mac address, the PDU replies to the ARP request and everything is fine, why is this?
Below is the code, and Wireshark screenshots:
#include <Ethernet.h>
#include <EthernetUdp.h>
byte mac[] = { 0x61, 0x61, 0x0A, 0xAE, 0xAB, 0x10 }; //MAC address that does get a reply
//byte mac[] = { 0xA8, 0x61, 0x0A, 0xAE, 0xAB, 0x10 }; //Mac address that doesn't get an ARP reply
byte bufferOn[51] = { 0x30, 0x31, 0x02, 0x01, 0x00, 0x04, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0xa3, 0x24, 0x02, 0x04, 0x17, 0xe6, 0x67, 0xfe, 0x02,
0x01, 0x00, 0x02, 0x01, 0x00, 0x30, 0x16, 0x30, 0x14, 0x06, 0x0f, 0x2b, 0x06, 0x01, 0x04, 0x01,
0x9d, 0x60, 0x01, 0x01, 0x06, 0x03, 0x05, 0x01, 0x04, 0x01, 0x02, 0x01, 0x01};
byte bufferOff[51] = { 0x30, 0x31, 0x02, 0x01, 0x00, 0x04, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0xa3, 0x24, 0x02, 0x04, 0x17, 0xe6, 0x68, 0x04, 0x02,
0x01, 0x00, 0x02, 0x01, 0x00, 0x30, 0x16, 0x30, 0x14, 0x06, 0x0f, 0x2b, 0x06, 0x01, 0x04, 0x01,
0x9d, 0x60, 0x01, 0x01, 0x06, 0x03, 0x05, 0x01, 0x04, 0x01, 0x02, 0x01, 0x02};
IPAddress ip(192, 168, 20, 2);
unsigned int localPort = 8888; // local port to listen on
EthernetUDP Udp;
void setup() {
Ethernet.init(10); // Most Arduino shields
Ethernet.begin(mac, ip);
Udp.begin(localPort);
Udp.beginPacket(IPAddress(192, 168, 20, 180), 161);
Udp.write(bufferOn,51);
Udp.endPacket();
}
void loop() {
}