Skip to main content
Elwood Downey
Associate III
June 9, 2017
Question

example using HAL ETH without LWiP for raw ethernet frames?

  • June 9, 2017
  • 31 replies
  • 14222 views
Posted on June 09, 2017 at 20:41

[reposting after 30 days of no responses]

Hello all,

I have been making great progress using CubeMX and HAL for lots of things, now I want to try ethernet. My application is very simple, I only want to send and receive raw ethernet frames -- no UDP or TCP at all. I also prefer not to use LWiP for something so basic. Can anyone point me to an example of raw ethernet frame IO using just HAL? I will be using Nucleo F429ZI.

My requirements:

[ ] send a raw frame (source and destination MAC address, type IP and payload, total less than 1500 bytes)

[ ] receive interrupt upon receipt of a raw ethernet frame

My transactions are slow and simple, I do not even need any buffer queuing.

Thanks for any tips.

#raw-ethernet-frame
This topic has been closed for replies.

31 replies

FSoui.1
Associate
March 23, 2022

Hello @Elwood Downey​  I'm just starting with using ETH with STM and I'm trying to do the same application can you please share with me the source code if you still have it ?

jsvirzi
Associate II
July 30, 2022

This is an extremely useful application. Sending/receiving raw ethernet frames is very liberating and empowering.

I've tried using LWiP, and after horrible experiences on the STM32H743 (works for 5 to 8 hours and hangs) without any code on my part (completely out-of-the-box), I can't even ping after 8 hours. Months later, we did not have a product that we could ship, because we couldn't get LWIP to work forever.

Even with LWIP working reliably, there are times when the raw frames are the best. I'm trying to avoid an LWIP-centric defense argument.

Anyway, back to the central point. Is there a body of code somewhere, where I can send/transmit frames from one MCU to another? No protocol. Just transfer one byte stream to another.

Thanks!

Piranha
Principal III
August 9, 2022

The lwIP has no problem living friendly with a custom protocols. For example, one can implement LWIP_HOOK_UNKNOWN_ETH_PROTOCOL() and process in it any custom layer 2 protocols one needs.

> Months later, we did not have a product that we could ship, because we couldn't get LWIP to work forever.

Well, then stop clicking and using Cube/HAL, which is developed by incompetent fools, and start developing real code.

https://community.st.com/s/question/0D50X0000BOtfhnSQB/how-to-make-ethernet-and-lwip-working-on-stm32

WHam.1
Associate II
April 24, 2025

Please watch my youtube. It may be helpful; for you even though the speaking language is Korean.  https://www.youtube.com/watch?v=HVrPErX_NN0