diff --git a/firmware/src/main.rs b/firmware/src/main.rs index f8b757a..696d3d1 100644 --- a/firmware/src/main.rs +++ b/firmware/src/main.rs @@ -145,8 +145,11 @@ fn main() { |_| "#); - //let hardware_addr = EthernetAddress(board::get_mac_address()); - let hardware_addr = EthernetAddress([0x10, 0xE2, 0xD5, 0x22, 0x23, 0x12]); + let mut hardware_addr = EthernetAddress(board::get_mac_address()); + if hardware_addr.is_multicast() { + println!("programmed MAC address is invalid, using default"); + hardware_addr = EthernetAddress([0x10, 0xE2, 0xD5, 0x00, 0x03, 0x00]); + } let mut protocol_addrs = [IpAddress::v4(192, 168, 69, 1)]; println!("MAC {} IP {}", hardware_addr, protocol_addrs[0]); let mut arp_cache_entries: [_; 8] = Default::default();