---
title: "Let's code a Linux network driver - How to follow along my SSED Linux Network Driver Tutorials"
url: "https://maker.wiznet.io/viktor/projects/lets-code-a-linux-network-driver-how-to-follow-along-my-ssed-linux-network-driver-tutorials/"
markdown_url: "https://maker.wiznet.io/viktor/projects/lets-code-a-linux-network-driver-how-to-follow-along-my-ssed-linux-network-driver-tutorials/md"
type: "UCC: User Created Content"
author: "Johannes 4GNU_Linux"
author_url: "https://www.youtube.com/watch?v=auj_HJdaEKs"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "Johannes 4GNU_Linux"
original_url: "https://www.youtube.com/watch?v=auj_HJdaEKs"
published: "2025-12-18"
language: "en"
tags: ["Linux"]
hardware: ["WIZnet W7500"]
likes: 0
views: 418
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# Let's code a Linux network driver - How to follow along my SSED Linux Network Driver Tutorials

> Let's code a Linux network driver - How to follow along my SSED Linux Network Driver Tutorials

Original author: Johannes 4GNU_Linux (source: https://www.youtube.com/watch?v=auj_HJdaEKs)

## Components

- **WIZnet W7500** x 1 ([docs](https://docs.wiznet.io/Product/Chip/MCU/W7500))

## Article

## Introduction

Adding Ethernet over **SPI** is a classic embedded/Linus-hacker problem: you want a clean way to push and pull Ethernet traffic using a simple serial bus, without needing PCIe or USB NICs. **w7500-spi2eth** tackles that by turning a **WIZnet W7500** into a **SPI-based networking card**.

Important note up front: this is a **community-made project** (not an official WIZnet project), even though it leverages WIZnet-provided libraries inside the repo.

[Embedded media](https://www.youtube.com/embed/auj_HJdaEKs)

## Author introduction

The repository is maintained by **Johannes4Linux** on GitHub, who is active in GNU/Linux education content—especially around **Linux kernel modules/drivers and embedded interfaces**. Their GitHub profile highlights multiple tutorial repositories (e.g., Linux driver tutorials, USB tutorials, embedded interfaces) and an established follower base.

[![](https://maker.wiznet.io/upload/ckeditor5/410858381%5F1766071125%2Epng)](https://www.youtube.com/@johannes4gnu_linux96)

The linked YouTube video also frames the work as part of a hands-on learning track: writing and developing a **Linux networking driver**, using a **WIZnet W7500 evaluation board** as the hardware target.

## Project description

### What it is

**w7500-spi2eth** provides firmware for “turning a Wiznet W7500 into a SPI Networking card.”

![W7500 | WIZnet Co., Ltd.](https://wiznethome.cafe24.com/wp-content/uploads/2015/04/w7500-3-500x500.jpg)

### Key idea (architecture)

Instead of treating the W7500 as a standalone MCU that runs an entire application stack, this approach configures the W7500 to act as a **SPI slave that focuses on Ethernet frame transmit/receive**, controlled by SPI commands from the host side.

![Surf 5 Microcontroller Evaluation Board - WIZnet | Mouser](https://www.mouser.in/images/marketingid/2024/img/143548778.png?v=040524.0415)

### Hardware targets

The repo explicitly mentions it can be built/used with WIZnet evaluation boards such as **Surf 5**, **WIZWIKI-W7500**, and **WIZWIKI-W7500ECO**, and shows a wiring example for connecting a Surf 5 to a Raspberry Pi.

![WIZwiki-W7500ECO（イーサネットシールド付き） — スイッチサイエンス](https://docid81hrs3j1.cloudfront.net/imagecontent/image-1450418738994.jpg)

### What’s in the repo (licensing note)

The README states that files under the `wiznet` folder come from **Wiznet W7500x_StdPeriph_Lib**, while the rest is authored by the project maintainer under the MIT license (and the WIZnet library has its own MIT-like licensing).

### Source Repositories

For the custom PCB boards in the video, source can be found below

<https://github.com/Johannes4Linux/Ethernet_PCBs>

Code and connection with RPi SBC can be found in below repo:

<https://github.com/Johannes4Linux/w7500-spi2eth>

[![Surf 5 connected to a Raspberry Pi](https://github.com/Johannes4Linux/w7500-spi2eth/raw/main/images/ssed_surf5.png)](https://github.com/Johannes4Linux/w7500-spi2eth)

## Why WIZnet is used

This project makes sense specifically with the **WIZnet W7500** family because it’s positioned as a one-chip MCU + networking solution: W7500-based platforms are commonly described as integrating an **ARM Cortex-M0** and a **hardwired TCP/IP core** (and related networking capabilities), making it a strong base for experiments where networking is the “main feature,” not an afterthought.

Also, the author explicitly centers the workflow around **W7500 evaluation boards**, which reduces friction for learners and makers who want reproducible hardware while building Linux networking/driver experiments.

## How it can benefit WIZnet

**New “mental model” for W7500**: not only “MCU with Ethernet,” but also a **SPI-to-Ethernet building block** for Linux/SBC projects—great for education and prototyping.

**Developer awareness via learning content**: pairing open-source firmware with a “let’s write a Linux networking driver” style video naturally attracts Linux learners, which can translate into more W7500 eval-board adoption.

**Community-driven reference momentum**: projects like this often become unofficial reference points (“how do I do SPI Ethernet with W7500?”). That can inspire WIZnet-friendly follow-ups like an application note, a clarified SPI framing spec, or a curated “getting started” guide for Linux.

---

Source: https://maker.wiznet.io/viktor/projects/lets-code-a-linux-network-driver-how-to-follow-along-my-ssed-linux-network-driver-tutorials/
