According to chatgpt, the following already supported MCU would be suitable for use with these chips
For applications requiring very low bitrate communications over Ethernet, the choice of microcontroller (MCU) must be compatible with Ethernet controllers like ENC28J60, LAN8720, or W5500. Here are suitable MCUs for each Ethernet controller, considering their ability to interface efficiently and manage network communications at low bitrates:
ENC28J60 (SPI interface):
Atmel SAMD Series: These MCUs have efficient SPI interfaces which would work well with ENC28J60. For example:
samd21g18a
samd51p20a
Atmel ATmega Series: Known for easy interfacing with SPI devices:
atmega328p
atmega2560
LAN8720 (RMII interface):
STMicroelectronics STM32 Series: Many STM32 MCUs support the RMII interface needed for LAN8720. For instance:
stm32f207xx
stm32f407xx
NXP LPC Series: These MCUs often support Ethernet and RMII:
lpc1768
lpc1769
W5500 (SPI interface):
Atmel SAMD Series: Good SPI capabilities make these suitable for W5500:
samd21e18a
samd51j19a
Atmel ATmega Series: These are compatible with SPI and can effectively work with W5500:
atmega32u4
atmega1284p
The RP2040 by Raspberry Pi can also be used for very low bitrate applications over Ethernet, especially considering its flexible I/O options and efficient processing capabilities. However, the RP2040 does not have a native Ethernet MAC, so you will need to use an external Ethernet controller. Here’s how you can use it with the specified Ethernet controllers:
1. ENC28J60 (SPI interface):
RP2040: This MCU supports SPI communication, making it compatible with the ENC28J60. Libraries like the Arduino Ethernet library can be used to facilitate this connection, allowing for TCP/IP stack handling over SPI.
2. LAN8720 (RMII interface):
RP2040: Normally, interfacing RP2040 with an RMII-based controller like the LAN8720 is not straightforward because RP2040 does not support RMII directly. However, it is possible through bit-banging or using additional components like a small FPGA or a microcontroller that acts as a bridge. This is more complex and might not be the most efficient route for very low bitrate applications unless specific conditions or existing components necessitate it.
3. W5500 (SPI interface):
RP2040: Connecting the RP2040 with the W5500 using SPI is a more straightforward approach. The W5500 has an integrated TCP/IP stack, which offloads much of the networking function from the RP2040, making it an excellent choice for efficient network communication with minimal MCU overhead.
For applications that prioritize simplicity and ease of setup, using the RP2040 with SPI-based Ethernet controllers like the ENC28J60 or W5500 is advisable. These setups benefit from the RP2040’s high-speed SPI interface and ample processing power, making it suitable for handling low data rate communication tasks effectively while being energy efficient. Additionally, the Pico SDK and various community libraries support the integration of these Ethernet chips with the RP2040, which can help streamline development.
I want all my printers connected via wired ethernet.
I found several wifi to serial firmware, especially for the esp8266 and esp32.
But there are few firmware for wired ethernet.
I think what shows the most promise is the
esphome firmware, ethernet to serial streaming
I tried searching advice for doing this, but there is much confusion as people are talking about using ethernet and wifi to connect to their mainsail or other interface API, never the connection between klippy and klipper.
To note, the LinuxCNC project, which refuses to work on anything not realtime, also uses ethernet between Host and MCU, so I know ethernet is good enough for this. Also the 5 axis machines at work by DMG, use ethernet to control the servo/stepper drivers in the machine, so it is a viable solution.
For the boards, could be
8$ W32-ETH01
19$USD Olimex ESP32-PoE-ISO
19$ LILYGO T-Internet-POE
On linux or windows side, the serial-to-ethernet virtual COM/TTY port
Would be provided by socat
I am running 9x printer off a single linux x86 PC, however having many, long USB wires to connect to serial bridges is clumsy. And sometimes the devices name exchange places so one printer becomes another.
That is why I wish to use ethernet.
I no longer use raspberry pi as they are too expensive, more than half the price of the whole printer each and not very fast compared with a PC !
Also, I wish the replace the mainboard in my printer into simpler, multiple boards, each ethernet connected.
So that would be one tiny ethernet board for the extruder
One “board” (or single CH32V003 attached to a W5500) to run only the XY or AB
And a third board that runs only the Z* axies, endstops, lights, bed heater and other accessories.
All of this plugged into a PoE surplus 24 port 100M cisco switch that costs under 50$
Although I understand this might upset the Klipper sponsors. Since the CH32V003 only costs 0.30$ for the “big” version and the W5500 is 3$. This does not leave much profit margin for board sellers.