diff --git a/changelog.md b/changelog.md
index 12b6158..25988ac 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,31 @@
## grblHAL changelog
+20231226
+
+Core:
+
+* Added setting and data field for network interface MAC address \(for WizNet interfaces, not used by the core\).
+
+Drivers:
+
+* ESP32: refactored UART driver code to use framework provided low-level calls instead of direct MCU register access.
+
+* RP2040: placed some WizNet interface code in RAM to improve performance.
+
+* STM32F4xx: removed stray debug code.
+Changed pin allocation for WizNet ethernet over SPI for BTT SKR 2.0 board.
+Ref. core [discussion #415](https://github.com/grblHAL/core/discussions/415#).
+
+Plugins:
+
+* Networking: improved WizNet interrupt handling.
+Added new optional setting, `$535`, for configuring WizNet interface MAC address.
+This _must_ be set to all but one when more than one WizNet controller is added to the network.
+Tip: grab a MAC address from an unused device such as a router.
+__NOTE:__ Network settings for controllers having a WizNet interface will be reset to default on upgrade.
+
+---
+
Build 20231222
Core:
@@ -282,7 +308,7 @@ Plugins:
* Laser: LaserBurn clusters plugin updated for [new format variation encountered](https://github.com/grblHAL/ESP32/issues/77#issuecomment-1707125447).
---
+---
Build 20230905
diff --git a/plugins.h b/plugins.h
index 9e2a9e0..d7c17c0 100644
--- a/plugins.h
+++ b/plugins.h
@@ -92,6 +92,9 @@ typedef struct {
#if MQTT_ENABLE
mqtt_settings_t mqtt;
#endif
+#ifdef _WIZCHIP_
+ uint8_t mac[6];
+#endif
} network_settings_t;
typedef enum {
diff --git a/settings.h b/settings.h
index fda553b..9f41b70 100644
--- a/settings.h
+++ b/settings.h
@@ -365,6 +365,7 @@ typedef enum {
Setting_MQTTBrokerPassword = 533,
Setting_NGCDebugOut = 534,
+ Setting_NetworkMAC = 535,
Setting_Panel_SpindleSpeed = 540, // NOTE: Reserving settings values 540 to 579 for panel settings.
Setting_Panel_ModbusAddress = 541,