Wiznet makers

Benjamin

Published July 09, 2025 © GNU General Public License, version 3 or later (GPL3+)

52 UCC

11 WCC

5 VAR

0 Contests

0 Followers

1 Following

Original Link

Pocket-Sized Network Tester with W5500-EVB-Pico2 and OLED Display

A battery-powered portable network tester using WIZnet W5500-EVB-Pico2 to instantly verify Ethernet port connectivity and DHCP configuration.

COMPONENTS Hardware components

WIZnet - W5500-EVB-Pico2

x 1

Software Apps and online services

micropython - MicroPython

x 1


thonny.org - Thonny

x 1


PROJECT DESCRIPTION

Introduction

In professional IT environments, particularly in hospitals and large enterprises, network technicians frequently encounter unpatched or unknown Ethernet ports. Traditional verification methods require carrying a laptop, which is cumbersome for quick field checks. This project presents an elegant solution: a pocket-sized, battery-powered network tester built around the WIZnet W5500-EVB-Pico2 that instantly verifies port connectivity and DHCP configuration. With a total cost of approximately £20 and dimensions small enough to fit in any toolkit, this device transforms network troubleshooting efficiency.

source :  https://github.com/albank1/Network-tester---PICO-W5500/blob/main/README.md

WIZnet Product Integration

The W5500-EVB-Pico2 serves as the cornerstone of this project, combining the powerful RP2040 microcontroller with WIZnet's W5500 Ethernet controller on a single board. The W5500 chip was specifically chosen for its hardware-implemented TCP/IP stack, which provides several critical advantages:

W5500-EVB-Pico2
W5500-EVB-Pico2
  • Full hardware TCP/IP offloading reduces microcontroller overhead, enabling smooth multitasking between network operations and display updates
  • Integrated MAC and PHY simplifies the design, requiring only an RJ45 jack for complete Ethernet connectivity
  • 8 independent sockets allow simultaneous network operations, though this application primarily uses one for DHCP and DNS
  • SPI interface at up to 80MHz ensures rapid data transfer, though the implementation conservatively uses 2MHz for stability
  • Built-in DHCP client in the MicroPython WIZNET5K library eliminates complex protocol implementation

The W5500's hardware acceleration enables the device to establish network connections and obtain IP configurations within seconds, crucial for a tool designed for rapid port verification.

Technical Implementation

The system architecture leverages MicroPython's hardware abstraction layers to create a clean, maintainable codebase. The implementation consists of three primary modules:

Network Initialization Module: The W5500 initialization employs SPI bus 0 with carefully selected pins (MOSI=GP19, MISO=GP16, SCK=GP18, CS=GP17, RST=GP20) to avoid conflicts with the OLED display on SPI bus 1. The initialization sequence includes:

spi = SPI(0, 2_000_000, mosi=Pin(19), miso=Pin(16), sck=Pin(18))
nic = network.WIZNET5K(spi, Pin(17), Pin(20))

A 10-second timeout mechanism prevents system hanging on disconnected ports, with visual feedback provided throughout the connection process.

Display Management System: The OLED module utilizes the SH1107 controller via SPI bus 1, implementing a custom framebuffer for efficient screen updates. The 180-degree rotation feature accommodates different mounting orientations. Key network information (IP address, subnet mask, gateway) is displayed in a clear, hierarchical layout optimized for quick reading.

User Interface Logic: Two tactile buttons provide essential functions:

  • Button A (GP14): Initiates DNS resolution testing against www.google.co.uk, verifying full network stack functionality
  • Button B (GP15): Triggers network interface reinitialization for testing different ports without power cycling

The debouncing implementation (50ms delay with double-checking) ensures reliable button detection while maintaining system responsiveness.

Core Features and Performance

The device delivers several key performance metrics that validate its practical utility:

Connection Speed: DHCP negotiation typically completes within 2-3 seconds on properly configured networks, with the hardware TCP/IP stack ensuring consistent performance regardless of network complexity.

Power Efficiency: The 260mAh battery provides approximately 4-6 hours of continuous operation, sufficient for a full day of intermittent field testing. The W5500's power-down modes could extend this further, though not currently implemented.

Display Clarity: The 128x64 OLED provides sufficient resolution for displaying full IPv4 addresses and network parameters simultaneously, with high contrast ensuring readability in various lighting conditions.

Reliability: Exception handling throughout the code prevents crashes from network timeouts or malformed DHCP responses. The hardware watchdog timer (if enabled) could provide additional fault recovery.

Code Analysis

The codebase demonstrates several sophisticated programming techniques worth highlighting:

Resource Management: The SPI bus allocation strategy prevents resource conflicts:

# W5500 on SPI bus 0
spi = SPI(0, 2_000_000, mosi=Pin(19), miso=Pin(16), sck=Pin(18))
# OLED on SPI bus 1  
self.spi = SPI(1, 20000000, polarity=0, phase=0, sck=Pin(SCK), mosi=Pin(MOSI))

State Machine Implementation: The network initialization function implements a time-bounded state machine:

start_time = time.ticks_ms()
while time.ticks_diff(time.ticks_ms(), start_time) < timeout * 1000:
    ip = nic.ifconfig()[0]
    if ip and ip != '0.0.0.0':
        break

Error Handling Pattern: Comprehensive try-except blocks ensure graceful degradation:

try:
    addr = getaddrinfo(SERVER, 80)[0][-1]
    OLED.text("DNS Resolved", 1, 30, OLED.white)
except Exception as e:
    OLED.text('DNS resolution failed', 1, 30, OLED.white)

Applications and Use Cases

This network tester design has spawned interest across multiple sectors:

Healthcare IT: The original use case remains compelling - hospitals with thousands of network ports benefit from rapid verification tools that don't require booting laptops or accessing network closets.

Data Center Operations: Technicians validating cable runs and switch configurations can quickly verify end-to-end connectivity without complex test equipment.

Educational Environments: The open-source nature and clear code structure make this an excellent teaching tool for networking concepts, demonstrating DHCP, DNS, and TCP/IP stack operations in tangible form.

IoT Deployment: Field technicians installing IoT devices can pre-verify network availability and configuration before deploying expensive sensors or controllers.

Network Security Auditing: The device can be modified to detect rogue DHCP servers or verify network segmentation, adding value to security assessments.

Conclusion

This project exemplifies how WIZnet's W5500-EVB-Pico2 enables professional-grade networking tools in minimal form factors. By leveraging the W5500's hardware TCP/IP stack, developers can focus on application logic rather than protocol implementation, accelerating time-to-market for network-enabled devices. The combination of hardware offloading, integrated MAC/PHY, and comprehensive MicroPython support makes the W5500-EVB-Pico2 an ideal platform for both prototyping and production network tools.

For the WIZnet community, this project provides a foundation for numerous extensions: PoE detection, VLAN tagging support, link speed negotiation display, or even integration with the WIZ550web module for remote monitoring capabilities. The modular code structure and open-source license encourage adaptation for specific industry needs, whether in manufacturing, telecommunications, or smart building management.

The complete source code, 3D printing files, and assembly instructions available on GitHub ensure reproducibility, while the sub-£20 build cost makes this accessible to individual makers and enterprise IT departments alike. This democratization of network testing tools, enabled by WIZnet's accessible yet powerful Ethernet solutions, represents a significant contribution to the maker community and professional technicians worldwide.


포켓 사이즈 네트워크 테스터 - W5500-EVB-Pico2와 OLED 디스플레이 활용

소개 (Introduction)

병원이나 대기업 같은 전문 IT 환경에서 네트워크 기술자들은 연결되지 않았거나 상태를 알 수 없는 이더넷 포트를 자주 마주하게 됩니다. 기존의 검증 방법은 노트북을 휴대해야 하는데, 빠른 현장 점검에는 매우 번거롭습니다. 이 프로젝트는 우아한 해결책을 제시합니다: WIZnet W5500-EVB-Pico2를 중심으로 제작된 주머니 사이즈의 배터리 구동 네트워크 테스터로, 포트 연결성과 DHCP 설정을 즉시 확인할 수 있습니다. 약 2만원의 제작 비용과 어떤 툴킷에도 들어갈 만큼 작은 크기로, 네트워크 문제 해결의 효율성을 혁신적으로 향상시킵니다.

출처 : https://github.com/albank1/Network-tester---PICO-W5500/blob/main/README.md

WIZnet 제품 통합

W5500-EVB-Pico2는 이 프로젝트의 핵심으로, 강력한 RP2040 마이크로컨트롤러와 WIZnet의 W5500 이더넷 컨트롤러를 단일 보드에 결합했습니다. W5500 칩을 선택한 이유는 하드웨어 구현 TCP/IP 스택이 제공하는 몇 가지 중요한 장점 때문입니다:

W5500-EVB-Pico2
W5500-EVB-Pico2
  • 완전한 하드웨어 TCP/IP 오프로딩으로 마이크로컨트롤러 부담을 줄여, 네트워크 작업과 디스플레이 업데이트 간의 부드러운 멀티태스킹 가능
  • 통합 MAC 및 PHY로 설계를 단순화하여, 완전한 이더넷 연결을 위해 RJ45 잭만 필요
  • 8개의 독립 소켓으로 동시 네트워크 작업 가능 (이 애플리케이션은 주로 DHCP와 DNS용 1개 사용)
  • 최대 80MHz SPI 인터페이스로 빠른 데이터 전송 보장 (안정성을 위해 2MHz 사용)
  • MicroPython WIZNET5K 라이브러리의 내장 DHCP 클라이언트로 복잡한 프로토콜 구현 불필요

W5500의 하드웨어 가속 덕분에 장치는 수 초 내에 네트워크 연결을 설정하고 IP 구성을 획득할 수 있으며, 이는 빠른 포트 검증을 위해 설계된 도구에 매우 중요합니다.

기술적 구현

시스템 아키텍처는 MicroPython의 하드웨어 추상화 계층을 활용하여 깨끗하고 유지보수 가능한 코드베이스를 만듭니다. 구현은 세 가지 주요 모듈로 구성됩니다:

네트워크 초기화 모듈: W5500 초기화는 OLED 디스플레이(SPI 버스 1)와의 충돌을 피하기 위해 신중하게 선택된 핀(MOSI=GP19, MISO=GP16, SCK=GP18, CS=GP17, RST=GP20)과 함께 SPI 버스 0을 사용합니다:

spi = SPI(0, 2_000_000, mosi=Pin(19), miso=Pin(16), sck=Pin(18))
nic = network.WIZNET5K(spi, Pin(17), Pin(20))

10초 타임아웃 메커니즘은 연결되지 않은 포트에서 시스템 정지를 방지하며, 연결 과정 전반에 걸쳐 시각적 피드백을 제공합니다.

디스플레이 관리 시스템: OLED 모듈은 SPI 버스 1을 통해 SH1107 컨트롤러를 활용하며, 효율적인 화면 업데이트를 위한 커스텀 프레임버퍼를 구현합니다. 180도 회전 기능은 다양한 장착 방향을 수용합니다. 주요 네트워크 정보(IP 주소, 서브넷 마스크, 게이트웨이)는 빠른 읽기에 최적화된 명확하고 계층적인 레이아웃으로 표시됩니다.

사용자 인터페이스 로직: 두 개의 촉각 버튼이 필수 기능을 제공합니다:

  • 버튼 A (GP14): www.google.co.uk에 대한 DNS 확인 테스트를 시작하여 전체 네트워크 스택 기능 검증
  • 버튼 B (GP15): 전원을 껐다 켜지 않고도 다른 포트를 테스트하기 위한 네트워크 인터페이스 재초기화 트리거

디바운싱 구현(이중 확인과 50ms 지연)은 시스템 응답성을 유지하면서 신뢰할 수 있는 버튼 감지를 보장합니다.

핵심 기능 및 성능

장치는 실용적 유용성을 검증하는 몇 가지 주요 성능 지표를 제공합니다:

연결 속도: DHCP 협상은 일반적으로 적절히 구성된 네트워크에서 2-3초 내에 완료되며, 하드웨어 TCP/IP 스택은 네트워크 복잡성과 관계없이 일관된 성능을 보장합니다.

전력 효율성: 260mAh 배터리는 약 4-6시간의 연속 작동을 제공하며, 간헐적인 현장 테스트를 위한 하루 종일 충분합니다.

디스플레이 선명도: 128x64 OLED는 전체 IPv4 주소와 네트워크 매개변수를 동시에 표시하기에 충분한 해상도를 제공하며, 높은 대비로 다양한 조명 조건에서 가독성을 보장합니다.

코드 분석

코드베이스는 주목할 만한 몇 가지 정교한 프로그래밍 기법을 보여줍니다:

리소스 관리: SPI 버스 할당 전략은 리소스 충돌을 방지합니다:

# W5500은 SPI 버스 0 사용
spi = SPI(0, 2_000_000, mosi=Pin(19), miso=Pin(16), sck=Pin(18))
# OLED는 SPI 버스 1 사용  
self.spi = SPI(1, 20000000, polarity=0, phase=0, sck=Pin(SCK), mosi=Pin(MOSI))

상태 머신 구현: 네트워크 초기화 함수는 시간 제한 상태 머신을 구현합니다:

start_time = time.ticks_ms()
while time.ticks_diff(time.ticks_ms(), start_time) < timeout * 1000:
    ip = nic.ifconfig()[0]
    if ip and ip != '0.0.0.0':
        break

응용 분야 및 사용 사례

이 네트워크 테스터 디자인은 여러 분야에서 관심을 불러일으켰습니다:

의료 IT: 원래 사용 사례는 여전히 매력적입니다 - 수천 개의 네트워크 포트가 있는 병원은 노트북을 부팅하거나 네트워크 클로짓에 접근할 필요 없이 빠른 검증 도구의 혜택을 받습니다.

데이터 센터 운영: 케이블 배선과 스위치 구성을 검증하는 기술자들은 복잡한 테스트 장비 없이도 엔드투엔드 연결성을 빠르게 확인할 수 있습니다.

교육 환경: 오픈소스 특성과 명확한 코드 구조로 DHCP, DNS, TCP/IP 스택 작동을 실체적인 형태로 보여주는 우수한 네트워킹 개념 교육 도구가 됩니다.

IoT 배포: IoT 장치를 설치하는 현장 기술자들은 비싼 센서나 컨트롤러를 배포하기 전에 네트워크 가용성과 구성을 사전 검증할 수 있습니다.

 

결론

이 프로젝트는 WIZnet의 W5500-EVB-Pico2가 최소한의 폼 팩터로 전문가급 네트워킹 도구를 가능하게 하는 방법을 보여줍니다. W5500의 하드웨어 TCP/IP 스택을 활용함으로써 개발자들은 프로토콜 구현보다는 애플리케이션 로직에 집중할 수 있어 네트워크 지원 장치의 시장 출시 시간을 단축할 수 있습니다.

WIZnet 커뮤니티에게 이 프로젝트는 수많은 확장의 기초를 제공합니다: PoE 감지, VLAN 태깅 지원, 링크 속도 협상 표시, 또는 원격 모니터링 기능을 위한 WIZ550web 모듈과의 통합까지도 가능합니다. 모듈식 코드 구조와 오픈소스 라이선스는 제조업, 통신, 스마트 빌딩 관리 등 특정 산업 요구에 대한 적응을 장려합니다.

GitHub에서 제공되는 완전한 소스 코드, 3D 프린팅 파일, 조립 지침은 재현 가능성을 보장하며, 2만원 미만의 제작 비용은 개인 메이커와 기업 IT 부서 모두가 접근할 수 있게 합니다.

Documents
  • Ethernet tester FINAL.py

    Main MicroPython code for W5500-EVB-Pico2 network tester with OLED display

  • Ethernet Tester FINAL base.stl

    3D printable case - bottom part

  • Ethernet Tester FINAL top.stl

    3D printable case - top part with button access

Comments Write