Wiznet makers

Benjamin

Published August 28, 2026 © GNU General Public License, version 3 or later (GPL3+)

163 UCC

11 WCC

26 VAR

0 Contests

0 Followers

2 Following

Original Link

Why Did CNC Vendor Ooznest Choose W5500 Ethernet for Its grblHAL ESP32-S3 Board?

Ooznest board support in grblHAL/ESP32 routes Telnet, WebSocket, FTP and WebUI over a W5500 SPI Ethernet link on the ESP32-S3, with Wi-Fi compiled alongside.

COMPONENTS Hardware components

WIZnet - W5500

x 1

SPI Ethernet controller of the Ooznest Motion Control Core board support in grblHAL/ESP32. Enabled by CONFIG_ETH_SPI_ETHERNET_W5500=y in sdkconfig.ooznest-cnc and brought up by esp_eth_mac_new_w5500()


PROJECT DESCRIPTION

📌 A CNC Vendor Board Inside the Official grblHAL ESP32 Driver

grblHAL/ESP32 is the official ESP32 port of grblHAL, the open-source successor to Grbl that turns a microcontroller into a G-code motion controller for CNC machines. Since April 2026 this driver has carried board support named Ooznest-Motion-Control-Core, contributed for Ooznest, a UK CNC machine vendor, and the wired network path of that board is a WIZnet W5500. The build turns an ESP32-S3 into a four-axis CNC controller that accepts G-code over Telnet, WebSocket, FTP and a browser WebUI, all carried by the W5500 SPI Ethernet link, with Wi-Fi compiled in alongside.

Front view of the Ooznest WorkBee Z1+ CNC machine, a black aluminium extrusion frame with a gantry, a teal router spindle and an MDF spoilboard The WorkBee Z1+, the CNC machine Ooznest sells today. Photo: Ooznest WorkBee Z1+ press kit.

The interesting part is not the board itself, which has no public photos, schematics or product page yet. The interesting part is watching a commercial machine vendor pick its next controller architecture in public, one merged pull request at a time, and finding CONFIG_ETH_SPI_ETHERNET_W5500=y sitting in the middle of it.

Who Is Ooznest, and What Runs Its Machines Today?

Ooznest Limited is a British CNC and aluminium extrusion vendor, registered at Companies House as company 09582219, incorporated on 8 May 2015 in Brentwood, Essex. Its WorkBee CNC router line has been covered by Hackaday since 2017, and the current machine, the WorkBee Z1+, launched with a press release dated 24 August 2021. The machine sells as a self-build kit aimed at workshops and small businesses.

Ooznest WorkBee Z1+ CNC machine photographed next to a laptop running the WorkBee Control software with feed rate and job panels on screen A WorkBee Z1+ with the vendor's control software. The current generation runs on a Duet 2 controller. Photo: Ooznest WorkBee Z1+ press kit.

Today those machines run on Duet 2 controllers, a third-party board family. The Ooznest shop lists a WorkBee Replacement Ethernet Duet 2 Controller and a Wi-Fi variant at 210 GBP each (checked 2026-08-28), so wired and wireless control paths are both already products the vendor supports. That context makes the new work legible: the board support merged into grblHAL/ESP32 describes an in-house ESP32-S3 controller in which the wired path moves to a W5500 and the firmware moves to an open, actively maintained motion control project.

The upstream side is healthy by the numbers. The grblHAL/ESP32 repository was created on 22 February 2021, counted 130 stars and 81 forks on 2026-08-28, and merged its latest pull request on 27 August 2026.

Five Months of Pull Requests, April to August 2026

Every Ooznest-related commit in grblHAL/ESP32 was authored by Peter van der Walt, a longtime grblHAL ESP32 contributor whose pull request #47 added the OpenBuilds BlackBox X32 pin map back in November 2022. Every commit in the Ooznest organization's own grblhal-profiles repository is his as well, so he is the engineering face of this adoption, though the repositories do not state his formal relationship with the company.

Timeline of six merged events from April to August 2026: PR 193 initial board map, PR 196 W5500 Ethernet, the grblhal-profiles repository creation, PR 198 naming the board, PRs 201 and 205 for Web Builder and USB descriptors, and PR 218 aligning build scripts Generated technical diagram: the merge history that assembled the board support, from the grblHAL/ESP32 commit log and the Ooznest organization.

The sequence reads like a bring-up log. PR #193, merged 2026-04-03, landed the initial board map, board driver code and PlatformIO entries. PR #196, merged 2026-05-18 under the title "Ooznest: Latest pinmap and workaround for Ethernet (W5500)", brought the production pin map and switched the ESP-IDF W5500 driver on in sdkconfig. PR #198, merged 2026-06-25, gave the board its name, Ooznest Motion Control Core. On 2026-06-30, PR #201 added the board to driver.json so it appears in the grblHAL Web Builder, and PR #205 set the USB descriptor strings. PR #218 followed on 2026-08-27, aligning the PlatformIO build script with the Web Builder profiles, so the work was still moving the day before this article was checked.

⚙️ Where the W5500 Sits in the Build

The W5500 evidence lives in two files. The build configuration sdkconfig.ooznest-cnc sets CONFIG_ETH_USE_SPI_ETHERNET=y at line 349 and CONFIG_ETH_SPI_ETHERNET_W5500=y at line 351, selecting the W5500 as the SPI Ethernet controller for the ESP-IDF framework. The driver file main/enet.c then brings the chip up:

eth_w5500_config_t w5500_config = ETH_W5500_DEFAULT_CONFIG(spi_handle);
w5500_config.int_gpio_num = INPUT_GPIO_INTERRUPT;
esp_eth_mac_t *mac = esp_eth_mac_new_w5500(&w5500_config, &mac_config);
esp_eth_phy_t *phy = esp_eth_phy_new_w5500(&phy_config);

That excerpt is from lines 360 to 363 of main/enet.c, with the SPI bus clocked at 23 MHz a few lines above. The W5500 works here as a hardware Ethernet MAC and PHY behind ESP-IDF's esp_eth layer, while TCP and UDP run in the lwIP stack on the ESP32-S3. Peter van der Walt's PR #196 notes that enet.c "does not use networking plugin's w5500 driver", which distinguishes this ESP-IDF path from the register-level W5500 driver grblHAL uses on its STM32 and RP2040 ports.

Data flow diagram in four stages: a G-code sender or browser reaches the W5500 SPI Ethernet controller over RJ45, the W5500 feeds the ESP32-S3 running grblHAL over SPI, and the controller drives four-axis CNC outputs Generated technical diagram: the wired path from sender to spindle, built from sdkconfig.ooznest-cnc, main/enet.c and the board map, checked 2026-08-28.

What travels over that link is the whole operator surface of the machine. When Ethernet is up, enet.c starts a raw Telnet stream on port 23, a WebSocket stream, an FTP server for the SD card and an HTTP server for the WebUI, each behind its own runtime setting. The same services are what a WorkBee owner uses today over the Duet 2 Ethernet controller, so the wired workflow survives the architecture change.

Wi-Fi is not dropped either. All three Ooznest PlatformIO environments set WIFI_ENABLE=1 and ETHERNET_ENABLE=1 together, and PR #196 changed the build so both enet.c and wifi.c compile unconditionally. A workshop can cable the machine or not; the firmware carries both paths.

What the Pin Map and USB Descriptors Reveal

The board map ooznest_cnc_map.h is 148 lines and refuses to build for anything but an ESP32-S3. It describes a four-axis machine with Y-axis auto-squaring, a 74HC595 shift register expanding the output pins, an MCP4728 DAC and an INA219 sensor on I2C for motor current control, two spindle PWM outputs, and Modbus RTU on UART1 for a VFD spindle. The W5500 gets its own chip select and interrupt lines on an SPI bus it shares with the SD card and the expander.

SignalGPIOShared with
W5500 chip select6dedicated
W5500 interrupt7dedicated
SPI MOSI / SCK / MISO35 / 36 / 37W5500, SD card, 74HC595
SD card chip select5same SPI bus
74HC595 chip select8same SPI bus
Modbus RTU TX / RX43 / 44UART1, VFD spindle

The USB side got the same production polish. PR #205, merged 2026-06-30, set the TinyUSB descriptor strings in sdkconfig.ooznest-cnc so the native USB port enumerates as "Ooznest Motion Control Core" instead of an Espressif default, which the author explains is "to make it easier to end-users to identify correct ports".

Browser Web Serial dialog from a page hosted at ooznest.github.io, listing a paired serial device named Ooznest Motion Control Core on COM11 The screenshot attached to PR #205: a browser serial picker showing the board under its own name, on a page served from ooznest.github.io. Screenshot: grblHAL/ESP32 PR #205.

Vendor Tooling in the Open: the grblhal-profiles Repository

The adoption is not confined to the upstream driver. On 2026-06-15 the Ooznest organization created grblhal-profiles, described as "grblHAL Defaults Profiles for Web Builder" and last pushed on 2026-08-26. Its workbeez2plus.json pins default_board to BOARD_OOZNEST_CNC and enables Ethernet, Telnet, WebSocket, FTP and Wi-Fi in its default symbols, alongside complete machine defaults such as 400 steps per millimetre and 4000 mm/min maximum rates.

The profile file also lists machine variants with names like "WorkBee Z2+ 500x500" and points them at a product URL that did not resolve when checked on 2026-08-28. That is consistent with tooling being prepared ahead of an announcement, and it is why this article describes board support rather than a product.

What Is Public and What Is Not

The verifiable facts are the merged code, the configuration and the commit history. No board photos, schematics, specifications, prices or launch dates have been published, and Ooznest has made no announcement. The photos in this article show the current WorkBee Z1+ generation and its Duet-era controller, because images of the new board do not exist publicly.

Close-up of the current WorkBee controller case mounted on the machine gantry, a black hinged enclosure with a Wi-Fi antenna, cooling fan grilles and a cable loom The Duet 2 controller case on the current WorkBee. The merged grblHAL board support describes what the vendor is building next, but that hardware has no public photos yet. Photo: Ooznest WorkBee Z1+ press kit.

For WIZnet readers the value is the pattern, not the product. A CNC vendor with years of Duet Ethernet controllers in the field chose a W5500 on SPI as the wired path of its ESP32-S3 design, and the entire recipe, from sdkconfig to pin map to deployment profiles, is readable in an official upstream repository under GPL-3.0.

Related WIZnet Maker Projects

The Maker site already documents the grblHAL family around this driver. The STM32F4xx grblHAL driver post covers a sibling official port; the difference is that the STM32 port drives the W5500 through grblHAL's own networking plugin, while the Ooznest build goes through ESP-IDF's esp_eth. The Networking services plugin post describes the very module that provides the Telnet, WebSocket and FTP services this board exposes, so it explains the service layer above the W5500. The grblHAL_RP2040 post shows the same W5500 wired path on a Raspberry Pi Pico class controller, useful for comparing MCU choices. Finally, the ESP32-P4 + RP2350 (grblHAL) + W5500 CNC Controller post is an individual maker's controller build, which makes a good contrast with this vendor-backed board definition landing upstream.

❓ FAQ

Q. What does the Ooznest board in grblHAL/ESP32 use the W5500 for? The W5500 is the board's wired Ethernet controller, connected to the ESP32-S3 over SPI at 23 MHz. It carries the Telnet, WebSocket, FTP and WebUI services that senders and browsers use to run the machine, with TCP/IP handled by lwIP on the ESP32-S3.

Q. Is the Ooznest Motion Control Core a product I can buy? No. As of 2026-08-28 it exists as merged board support in grblHAL/ESP32 and as deployment profiles in the Ooznest GitHub organization, with no announcement, photos or pricing. Ooznest's shop currently sells Duet 2 based replacement controllers for the WorkBee line.

Q. Who wrote the Ooznest board support? Peter van der Walt authored PRs #193, #196, #198, #201, #205 and the related commits, as well as every commit in the Ooznest organization's profile repository. He has contributed to grblHAL/ESP32 since at least 2022, when he added the OpenBuilds BlackBox X32 pin map.

Q. Can I build this firmware myself? Yes. The repository ships three PlatformIO environments, ooznest-workbee-z1plus, ooznest-workbee-z2plus and ooznest-actuator, and the board appears in the grblHAL Web Builder through its driver.json entry. The code is GPL-3.0 licensed, though without the board only the firmware side is reproducible.

Q. Does Ethernet replace Wi-Fi on this board? No, the two coexist. All three build environments enable Wi-Fi and Ethernet together, and PR #196 made both network drivers compile unconditionally, so a machine can be cabled for a fixed workshop installation or run wireless where cabling is impractical.

Documents
  • grblHAL/ESP32 repository

    Official grblHAL ESP32 driver carrying the Ooznest board support; latest merge 2026-08-27

  • sdkconfig.ooznest-cnc

    Build configuration; CONFIG_ETH_SPI_ETHERNET_W5500=y at line 351 and the Ooznest USB descriptor strings

  • ooznest_cnc_map.h board map

    Pin map naming the board Ooznest-Motion-Control-Core, with W5500 CS on GPIO 6 and interrupt on GPIO 7

  • main/enet.c Ethernet driver

    Brings the W5500 up through ESP-IDF esp_eth and starts the Telnet, WebSocket, FTP and WebUI services

  • PR #196: pinmap and Ethernet (W5500)

    Merged 2026-05-18; production pin map and the sdkconfig switch to the ESP-IDF W5500 driver

  • Ooznest grblhal-profiles: workbeez2plus.json

    Vendor Web Builder profile pinning BOARD_OOZNEST_CNC with Ethernet, Telnet, WebSocket and FTP enabled

  • WIZnet W5500 documentation

    The SPI Ethernet controller used as the board's wired network path

  • Ooznest Limited at Companies House

    UK company record: incorporated 8 May 2015, registered office in Brentwood, Essex

Comments Write