I’m currently working on an NXP i.MX RT1050 board (similar to Seeeduino Arch Mix), where I have successfully ported an Arduino bootloader and am running applications using the Arduino core.
The board includes a built-in Ethernet interface using the KSZ8081RNB PHY , connected to the i.MX RT1050’s ENET (MAC) peripheral. What I Tried:
I attempted to use standard Arduino Ethernet libraries such as:
Ethernet.h
NativeEthernet.h
However, I observed that these libraries internally rely on SPI-based Ethernet controllers (e.g., W5100/W5500), and they do not work with the onboard Ethernet hardware.
From code inspection, the library is trying to initialize hardware like:
W5100 / W5200 / W5500
which are not present on my board.
Current Understanding:
The RT1050 provides an Ethernet MAC (ENET)
The KSZ8081RNB is only a PHY (physical layer)
My Question:
Is it possible to use the onboard Ethernet (ENET + KSZ8081RNB PHY) directly from the Arduino core on RT1050?
If yes:
Are there any existing libraries or examples?
Goal:
I am trying to implement Modbus TCP communication on this board and would prefer to stay within the Arduino environment if possible.
Please provide a link to the core you installed to add support to Arduino IDE for the NXP i.MX RT1050 board. That information will allow the forum helpers to more effectively assist you.
I am working on an NXP i.MX RT1050 EVK board and have successfully ported and validated the Arduino (Seeeduino Arch Mix) bootloader on it. Currently, I am using the standard Arduino workflow: by holding the boot switch and resetting the board, the bootloader enters programming mode, and I upload sketches from the Arduino IDE/OpenPLC editor. The bootloader writes the code to external flash and jumps to the application.
So far, I have successfully implemented and tested several peripherals using Arduino, including:
Digital I/O
Analog input (NTC sensor)
PWM output
I2C communication (DS1307 RTC)
SPI communication (external PSRAM)
UART (Modbus RTU communication working)
Now I want to extend this to Ethernet communication (Modbus TCP). The RT1050 has an internal ENET MAC with RMII interface connected to a KSZ8081RNB PHY and onboard RJ45 connector.
From my understanding, Arduino Ethernet libraries (like Ethernet.h) mainly support SPI-based external Ethernet controllers (W5500, ENC28J60), not internal MAC + RMII-based Ethernet.
My questions are:
Are there any Arduino-compatible libraries or cores that support the internal ENET (RMII) of i.MX RT1050 with KSZ8081 PHY?
If not, what is the recommended approach to enable Ethernet in this setup?
Has anyone tried porting NXP MCUXpresso SDK ENET driver + lwIP stack into the Arduino environment for RT10xx devices?
Would a better architecture be to keep the Arduino bootloader for flashing, but run the main application using the NXP SDK (for Ethernet and Modbus TCP)?
Any guidance, examples, or references would be greatly appreciated.
Cross-posting is against the Arduino Forum rules. The reason is that duplicate posts can waste the time of the people trying to help. Someone might spend a lot of time investigating and writing a detailed answer on one topic, without knowing that someone else already did the same in the other topic.
Repeated cross-posting can result in a suspension from the forum.
In the future, please only create one topic for each distinct subject matter. This is basic forum etiquette, as explained in the "How to get the best out of this forum" guide. It contains a lot of other useful information. Please read it.
Arduino IDE uses a software component called a "platform" (often incorrectly referred to as "core"). This adds support to Arduino IDE for compiling sketches for, and uploading to a given set of target boards or microcontrollers.
Arduino IDE automatically installs the "Arduino AVR Boards" platform, which adds support for AVR microcontroller-based boards such as the Arduino UNO R3, Leonardo, etc. If the user wishes to use Arduino IDE to develop sketch projects for any boards other than those supported by the "Arduino AVR Boards" platform, they must install additional boards platforms. For example, if I wanted to add support for the STMicroelectronics STM32-based boards, I would install the "STM32 MCU based boards" platform, following the instructions here:
Presumably, you followed a similar procedure to add support to Arduino IDE for your NXP i.MX RT1050 board by installing a 3rd party boards platform. So tell us exactly what you did to install that platform.
see what we are doing we are running seeeduino arch mix arduino bootloader in rt1050 because both uses same controller called rt1052 now in Arduino ide i downloaded platform called seeeduino arch mix board now my board rt1050 works as seeeduino arch mix by choosing as seeduino arch mix in arduino ide i am currently uploading
Unfortunately I don't have an answer to your questions. I thought that maybe I would find a lead by looking at the platform, but unfortunately I didn't notice anything about Ethernet support there.
Hopefully the other forum helpers who are more knowledgeable in this subject matter will be able to assist you.