Embedded Ethernet Programming with HAL

Build Embedded Ethernet Firmware : HTTP, SSI, CGI etc

   Watch Promo

This course is the intermediate level course of a learning path teaching you how to write/configure drivers for the Ethernet peripheral as well as write embedded Ethernet firmware for different networking protocols such as http, dhcp etc.

So with that understood, let me tell you…:

What make this course different from the beginner course ?

In this course we write all the Ethernet drivers ourselves using the the STM32 HAL APIs. Unlike the beginner course, in this course we also implement the Ethernet interface files linking our Ethernet module to the LwIP library ourselves.
The STM32 Hardware Abstraction Layer (HAL) provides a simple, generic multi-instance set of APIs (application programming interfaces) to interact with the upper layers like the user application, libraries and stacks.

In this intermediate course we also implement more examples of embedded Ethernet applications.

This intermediate course can be divided into 4 major sections


First Section

In the first section we give a short introduction to networking and then explore the ethernet capabilities of the STM32F7 microcontroller.

Second Section

In this section we write drivers for all the peripherals we will be using in the course. We write drivers for the ADC, UART, RCC and GPIO.

Third Section

In the third section we write all the drivers required to fully configure the Ethernet module. We will implement a driver for configuring the Ethernet gpio pins to operate in RMII mode, we will implement a driver for transmitting packets, another one for receiving packets etc.


It is in this section that we decide on the Ethernet parameters such the speed, the duplex, whether to use auto-negotiation or not etc. After configuring the Ethernet module we conclude this section by implementing a function that interfaces our Ethernet module to the Light Weight IP (LwIP) library. LwIP is a small independent open-source implementation of the TCP/IP protocol stack designed for embedded systems.


Last Section

The final section begins by giving an introduction to Light Weight IP (LwIP) and then goes on to build embedded Ethernet applications. Here are some the applications we shall build:
  • Checking if the cable is connected
  • Getting an IP address from DHCP
  • Hosting Webpages with httpd
  • Displaying Realtime Data on Webpages with SSI
  • Working with Multiple SSI Tags
  • Controlling Hardware from WebServers using CGI
  • Injecting HTML code into a Webpage using SSI and CGI
By the end of this course...

You Will Be Able To :

  • Understand the Fundamentals of Networking.
  • Understand the fundamentals of the Light Weight IP (LwIP) stack.
  • Write Drivers for the STM32F7 Ethernet Peripheral using HAL APIs.
  • Write Embedded Ethernet Applications for Hosting Web pages.
  • Write Embedded Ethernet Applications for Controlling Hardware through Web pages.
  • Write Embedded Ethernet Applications for Sending Sensor Data to Web pages.


Frequently Asked Questions


When does the course start and finish?
The course starts now and never ends! It is a completely self-paced online course - you decide when you start and when you finish.
How long do I have access to the course?
How does lifetime access sound? After enrolling, you have unlimited access to this course for as long as you like - across any and all devices you own.
What if I am unhappy with the course?
We would never want you to be unhappy! If you are unsatisfied with your purchase, contact us in the first 30 days and we will give you a full refund.
Do I get a certificate?
Yes, after a successful completion of the course.

Course Curriculum


  Setting Up
Available in days
days after you enroll
  Introduction to Light Weight IP (LwIP)
Available in days
days after you enroll
  Closing
Available in days
days after you enroll

Your Instructor


EmbeddedExpertIO™
EmbeddedExpertIO™

EmbeddedExpertIO represents a vibrant collective dedicated to the mastery of sophisticated embedded systems software development for professionals.

EmbeddedExpertIO stands as a premier source of tailored embedded systems development courses, catering to individuals and enterprises seeking to hone or acquire embedded firmware programming expertise. Our extensive course selections encompass beginner to advanced levels, addressing diverse facets of embedded systems development, such as WiFi, STM32, IoT systems design, memory safeguarding, and beyond.

Our core objective is to equip individuals and organizations with the indispensable skills to thrive in the swiftly evolving embedded systems sector. We achieve this by providing immersive, hands-on education under the guidance of seasoned industry specialists. Our ambition is to emerge as the favored learning platform for embedded systems development professionals across the globe.