---
title: "PIC18F56K42_W5500_SCPI"
url: "https://maker.wiznet.io/mason/projects/pic18f56k42-w5500-scpi/"
markdown_url: "https://maker.wiznet.io/mason/projects/pic18f56k42-w5500-scpi/md"
type: "UCC: User Created Content"
author: "TheGreatTemplar"
author_url: "https://github.com/TheGreatTemplar/PIC18F56K42_W5500_SCPI"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "TheGreatTemplar"
original_url: "https://github.com/TheGreatTemplar/PIC18F56K42_W5500_SCPI"
license: "MIT license (MIT)"
published: "2025-09-25"
language: "en"
tags: ["W5500"]
hardware: ["WIZnet W5500"]
likes: 0
views: 4662
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# PIC18F56K42_W5500_SCPI

> PIC18F56K42_W5500_SCPI

Original author: TheGreatTemplar (source: https://github.com/TheGreatTemplar/PIC18F56K42_W5500_SCPI)

## Components

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

WIZnet parts: W5500 ([Datasheet](https://docs.wiznet.io/Product/Chip/Ethernet/W5500/datasheet?utm_source=maker&utm_medium=project&utm_campaign=w5500), [product hub](https://maker.wiznet.io/products/w5500/))

## Documents and links

- [PIC18F56K42_W5500_SCPI](https://github.com/TheGreatTemplar/PIC18F56K42_W5500_SCPI) (code)

## Article

This project presents an implementation of **SCPI (Standard Commands for Programmable Instruments)** communication using a **Microchip PIC18F56K42 microcontroller** and a **WIZnet W5500 Ethernet controller**.
**SCPI is a standardized command language used to control and query test and measurement instruments. **
The objective is to provide a functional example of integrating a PIC-based system with Ethernet connectivity for remote command and control applications.

A notable aspect of this work is the hardware platform.
While most W5500 examples are developed with **STM32, AVR, or ARM-based MCUs**, this project demonstrates the use of a **Microchip PIC18F56K42**, which is less frequently applied in similar contexts.
This makes the repository relevant for developers working in environments where PIC devices are preferred due to legacy systems, cost constraints, or specific design requirements.

Another distinguishing characteristic is the **network driver implementation**.
Instead of relying on WIZnet’s official **ioLibrary**, which provides socket and protocol handling functions, the developer created a **custom lightweight library**.
The custom implementation directly manages W5500 registers and sockets via SPI, avoiding external dependencies.

![](https://maker.wiznet.io/upload/ckeditor5/447084221%5F1758790022%2Epng)

This approach allows for:

Reduction of unnecessary code overhead and memory usage.

Precise control of low-level W5500 behavior.

Simplification of integration in resource-constrained environments.

Independence from the structure and limitations of ioLibrary.

The firmware integrates this Ethernet communication layer with an SCPI parser, enabling structured command processing and response handling.
The design is suitable for applications such as test instruments, data acquisition systems, or embedded devices requiring standardized remote control over TCP/IP.

![](https://maker.wiznet.io/upload/ckeditor5/447084221%5F1758790420%2Epng)

This repository may serve as a reference for engineers interested in **PIC-based Ethernet solutions** or in exploring **alternative driver implementations** for the W5500. It provides a practical example of combining a resource-limited microcontroller with Ethernet capability while maintaining protocol compatibility through SCPI.

---

Source: https://maker.wiznet.io/mason/projects/pic18f56k42-w5500-scpi/
