Skip to the content
PCBKitNew board
2 layers175 × 65 mmNetPuck5G, the printed circuit board in 3D

[ARCHIVED] NetPuck 5G: A network auditing tool, using the ESP32-S3 and BW16 modules, that can scan for Access Point strength, and read details off an Ethernet connection, as a handheld, battery-operated device.

Size
175 × 65 mm
Copper layers
2
Thickness
1.6 mm
Parts
15
Nets
50
Pads
100
Tracks, vias
165, 18
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
25 Mar 2026
Updated
15 Sep 2026

Overview

NetPuck5G is an open-source printed circuit board by leonampa, from the leonampa/netpuck repository on GitHub. It is a 2-layer board of 175 × 65 mm with 15 parts on 50 nets, routed with 165 tracks and 18 vias.

README

README.md

NetPuck 5G: A Specialized 5GHz Wireless & Network Auditor


🗃️ This project has been archived.

9th May: It’s been 30 days since my latest ticket to Support, and over five weeks since the last human feedback. At this point, the project has shifted from a fun hardware challenge into a lingering chore on my to-do list. The educational ROI has hit its limit - I’ve already learned what I came for: Fusion 360, KiCad, etc. Since the program has stalled on the administrative side, I’m officially archiving the NetPuck to clear my headspace for projects that actually move forward.


0. Introduction

The NetPuck 5G is a handheld device, purpose-built to connect the worlds of software-driven network diagnostics and hardware-focused wireless analysis.

Made on Hack Club Blueprint 🚩- https://blueprint.hackclub.com/projects/13740

0.1 Why did I build this?

  • I needed a network auditing device. As a beginner IT Support Technician, I have a vast variety of tools for every job, but I've been lacking tools (and knowledge) regarding networking infrastructure. I've been making do with my phone and generic, no-brand WiFi strength scanning applications on my phone, but that is just not reliable for my purpose.
  • I wanted to learn about hardware engineering. I've always been interested in the “guts” of the devices around me. From a very young age, with a screwdriver in hand, I started taking devices that would otherwise be trashed apart, curious to see what makes them work. A few months ago, I also bought a soldering iron, and learned the skill of soldering and desoldering. In my curious journey of hardware engineering, the next step would be designing and having a custom PCB made.
  • I wanted something to showcase in my portfolio. Projects and contributions are largely important factors in one's portfolio, especially at an age where they cannot work, like me. I wanted to enrich my portfolio with personal projects, and Hack Club’s blueprint was the perfect, guided opportunity for me to do so.

0.2 What is it made of?

It uses:

  • the Waveshare ESP32-S3 Pico, as the main processing unit for the entire device
  • a BW16, solely for Access Point scanning, thanks to its 5GHz capabilities
  • a W5500 Ethernet module, for listing details about the network it is connected to
  • a 1.8’ inch LCD module, for providing all information gathered from the aforementioned boards to the user
  • a low-profile 5-way digital navigation joystick, for navigating the menus of the device
  • a MH-CD42 charging and boost-up module and two Samsung 18650 batteries, for powering the device from batteries, reliably.

0.3 So, what does it do?

The NetPuck 5G has two functions; Wireless Access Point strength scanning, and Wired Network details.

  • Wireless Access Point strength scanning
    • This function uses the BW16, which communicates with the ESP32 via UART to list all 2.4GHz and 5GHz Access Points within reach, and the strength of each one, measured in dBm.
  • LAN details
    • This function detects specific details about the network the W5500 module is plugged into. Specifically: ICMP Echo to 8.8.8.8, Gateway IP (from DHCP Lease), ICMP Echo to Gateway (Confirms local LAN integrity), LLDP (Passive sniff for Link Layer Discovery Protocol packets), Reverse DNS lookup of the Gateway’s Public IP, Gateway Domain Name (from DHCP Option 15), NLA Information, Gateway MAC (ARP-resolved)

1. Pinout

Grounds not listed; all grounds connect to each other
The Pin/As/To/For tables are read as: The Pin [Pin] functions as/is labeled as [As], and goes to pin [To], (and is used) for [For].

1.1 ESP32-S3

PinAsToFor
Vbus/40+5VMH-CD42 @ 5V OUTPowering the ESP
GP5/27LCD_BLLCD @ BLControlling the backlight
GP6/29W5500_RSTW5500 @ RSTResetting the W5500
GP7/31LCD_RSTLCD @ RSTLCD’s Resetting the LCD
GP8/32LCD_DCLCD @ DCData/Command
GP9/33W5500_CSW5500 @ CSW5500’s SPI Chip Select
GP10/34LCD_CSLCD @ CSLCD’s SPI Chip Select
3V3/363V3LCD @ VCC, W5500 @ VPowering the LCD and W5500
GP11/1SPI_MOSILCD @ DIN, W5500 @ MOTransferring data via SPI from the ESP32 (Master), to the LCD and W5500 (Slaves)
GP12/2SPI_SCKLCD @ CLK, W5500 @ SCKSerial Clock for SPI
GP13/4SPI_MISOW5500 @ MITransferring data via SPI from the W5500 (Slave) to the ESP32 (Master)
GP14/5BW16_ENBW16 @ ENBW16’s Enable Pin
GP17/9BW16_RXBW16 @ 7UART (ESP32 → BW16)
GP18/10BW16_TXBW16 @ 8UART (ESP32 ← BW16)
GP34/12MIDSTICK @ MIDJoystick’s Click
GP35/14UPSTICK @ UPJoystick’s Up
GP36/15DOWNSTICK @ DOWNJoystick’s Down
GP37/16LEFTSTICK @ LEFTJoystick’s Left
GP38/17RIGHTSTICK @ RIGHTJoystick’s Right

1.2 BW16

PinAsToFor
5V+5VMH-CD42 @ 5V OUTPowering the BW16
PA7/TXBW16_TXESP @ GP17/9UART (ESP32 ← BW16)
PA8/RXBW16_RXESP @ GP18/10UART (ESP32 → BW16)
ENBW16_ENESP @ GP14/5Enable Pin

1.3 W5500

PinAsToFor
RSTW5500_RSTESP @ GP6/29Resetting the W5500
CSW5500_CSESP @ GP9/34W5500’s SPI Chip Select
V3V3ESP @ 3V3Powering the LCD and W5500
SCKSPI_SCKESP @ GP12/2Serial Clock for SPI
MISPI_MISOESP @ GP13/4Transferring data via SPI from the W5500 (Slave) to the ESP32 (Master)
MOSPI_MOSIESP @ GP11/1Transferring data via SPI from the ESP32 (Master), to theW5500 (Slave)

1.4 LCD

PinAsToFor
BLLCD_BLESP @ GP5/27Controlling the backlight
RSTLCD_RSTESP @ GP7/31Resetting the LCD
DCLCD_DCESP @ GP8/32LCD’s Data/Command
CSLCD_CSESP @ GP10/34LCD’s SPI Chip Select
VCC3V3ESP @ 3V3/36Powering the LCD
DINSPI_MOSIESP @ GP11/1Transferring data via SPI from the ESP32 (Master), to the LCD (Slave)
CLKSPI_SCKESP @ GP12/2Serial Clock for SPI

1.5 Joystick

PinAsToFor
MIDMIDESP @ GP34/12Joystick’s Click
UPUPESP @ GP35/14Joystick’s Up
DOWNDOWNESP @ GP36/15Joystick’s Down
LEFTLEFTESP @ GP37/16Joystick’s Left
RIGHTRIGHTESP @ GP38/17Joystick’s Right

1.6 MH-CD42 Charging Module

PinAsToFor
5V OUT+5VESP @ Vbus/40, BW16 @ 5VPowering the ESP and BW16
VINVUSBUSB @ VPowering the MH-CD42
BATVBAT(external batteries)Powering the MH-CD42

1.7 USB Port

PinAsToFor
VVUSBVINPowering the MH-CD42

2. PCB

I used KiCad to design the PCB. Through a few struggles (as described on Journal), I landed on this design:

3. Case

I used Autodesk Fusion to make the case (as described on Journal). The enclosure is designed for field durability, featuring a 'Sandwich Mount' architecture. It utilizes M3 heat-set inserts and M3 Nylon screws, instead of Stainless Steel, to avoid signal interference.

4. Bill Of Materials

Item€/pcsQty€ TotalLink
GRobotronics
eSUN PETG+HS 1.75mm 1kg - Solid Black€19.901€19.90https://grobotronics.com/esun-petghs-1-75mm-1kg-solid-black.html
Soldering Wire Brofil 60 100g 1mm€7.201€7.20https://grobotronics.com/soldering-wire-brofil-60-100g-1mm.html
Waveshare ESP32-S3 Pico With Pre-soldered Headers€13.601€13.60https://grobotronics.com/waveshare-esp32-s3-development-board.html?variation_id=18355
Battery Lithium 18650 3.6V 3400mAh - Samsung INR18650-35E€5.802€11.60https://grobotronics.com/battery-lithium-18650-3.6v-3400mah-8a-samsung-inr18650-35e.html
Battery Holder 2x18650 - with Wires & Switch€1.201€1.20https://grobotronics.com/battery-lithium-18650-3.6v-3400mah-8a-samsung-inr18650-35e.html
Joystick Module 5-Way€2.601€2.60https://grobotronics.com/5-way-joystick-module.html
Waveshare LCD 1.8" 128×160 SPI€11.201€11.20https://grobotronics.com/display-1.8-128x160-lcd-module.html
USB Type-C Breakout Board - Straight Header€0.801€0.80https://grobotronics.com/usb-type-c-breakout-board-straight-header.html
Pin Header 1x40 Male 2.54 mm Black€0.101€0.10https://grobotronics.com/pin-header-1x40-male-2.54-mm-black.html
Pin Header 1x10 Female 2.54mm€0.174€0.68https://grobotronics.com/pin-header-1x10-female-2.54mm.html
Pin Header 1x8 Female 2.54mm€0.103€0.30https://grobotronics.com/pin-header-1x8-female-2.54mm.html
Arduino Long Header 8pins€0.251€0.25https://grobotronics.com/arduino-long-header-8pins.html
Pin Header Female 1x6 2.54mm€0.083€0.24https://grobotronics.com/pin-header-1x6-female-2.54mm.html
Pin Header 1x4 Long Stackable€0.201€0.20https://grobotronics.com/pin-header-1x4-long-stackable.html
Threaded Insert M3 - 5.7x4.6mm€0.1510€1.50https://grobotronics.com/threaded-insert-m3-short-3x4-6.html
Bolt M3 - Nylon (20mm)€0.3010€3.00https://grobotronics.com/m3.html?variation_id=12363
High Temperature Adhesive Tape 50mm - 33m€7.901€7.90https://grobotronics.com/high-temperature-adhesive-tape-50mm-33m.html
YATO YT-2081 Side Cutting Pliers 115mm€3.601€3.60https://grobotronics.com/yato-cutting-pliers-115mm.html
Shipping (BOXNOW)€0.000€0.00
Subtotal44€85.87
AliExpress
Dual-band WiFi + Bluetooth 5.0 IoT Core Board (BW16 RTL8720DN) Suitable for Arduino and Smart Home Projects (IPEX Antenna)€7.241€9.52https://www.aliexpress.com/item/1005010064459718.html?spm=a2g0o.detail.0.0.7236U0QJU0QJSg&mp=1&pdp_npi=6%40dis%21EUR%21EUR%209.55%21EUR%201.95%21%21EUR%201.95%21%21%21%402103835e17741877141951141e5be7%2112000051007214201%21ct%21GR%21-1%21%211%210%21
1PCS W5500 Module TCP/IP Ethernet Module Compatible with WIZ820io Network Interface RC5 IoT for Arduino€3.911€4.54https://www.aliexpress.com/item/1005004679288698.html?spm=a2g0o.detail.0.0.7236U0QJU0QJSg&mp=1&pdp_npi=6%40dis%21EUR%21EUR%204.54%21EUR%200.88%21%21EUR%200.88%21%21%21%402103835e17741877141951141e5be7%2112000030074096066%21ct%21GR%21-1%21%211%210%21
5/10pcs DC 5V 2A Mobile Power Diy Board 4.2V Charge/Discharge(boost)/battery protection/indicator module 3.7V lithium 18650 (MH-CD42)€2.711€3.13https://www.aliexpress.com/item/1005007432099008.html?spm=a2g0o.productlist.main.1.6d655d0d201MlN&algo_pvid=0b38d990-1f78-4ed4-ab89-ce53223c6fe6&algo_exp_id=0b38d990-1f78-4ed4-ab89-ce53223c6fe6-8&pdp_ext_f=%7B%22order%22%3A%22861%22%2C%22eval%22%3A%221%22%2C%22fromPage%22%3A%22search%22%7D&pdp_npi=6%40dis%21EUR%213.13%212.71%21%21%213.53%213.06%21%4021039a5b17741899750876391e3fa0%2112000040730748938%21sea%21GR%216308147579%21X%211%210%21n_tag%3A-29919%3Bd%3A73d1907e%3Bm03_new_user%3A-29895%3BpisId%3A5000000202472607&curPageLogUid=w2UUTZk6Qdsr&utparam-url=scene%3Asearch%7Cquery_from%3A%7Cx_object_id%3A1005007432099008%7C_p_origin_prod%3A
Shipping (AliExpress Choice)€0.000€0.00
Subtotal3€17.19
JLCPCB
PCB (2 layers)€7.431€7.43
Shipping (Global Standard Direct Line)€7.751€7.75
New User Discount-€5.191-€5.19
€9.99
TOTAL€113.05
Conversion to USD (rate from Google Finance, €1 =$1.154$130.49

Parts

15
QtyValueFootprintReferences
3Conn_01x06_SocketConnector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_VerticalETH_L1, ETH_R1, MH-CD42
3MountingHole_3.2mm_M3MountingHole:MountingHole_3.2mm_M3BotLeft, BotRight, TopLeft
2Conn_01x09_SocketConnector_PinSocket_2.54mm:PinSocket_1x09_P2.54mm_VerticalBW-16_L1, BW-16_R1
1Conn_01x02Connector_Wire:SolderWire-0.75sqmm_1x02_P4.8mm_D1.25mm_OD2.3mm_ReliefBTR1
1Conn_01x04_SocketConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_HorizontalUSB1
1Conn_01x08_SocketConnector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_VerticalSCR1
1Conn_01x08_SocketConnector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_HorizontalSTICK1
1Conn_01x18_SocketConnector_PinSocket_2.54mm:PinSocket_1x18_P2.54mm_VerticalESP_R1
1ESP_LConnector_PinSocket_2.54mm:PinSocket_1x18_P2.54mm_VerticalESP_L1

The 14 most common of 15 parts.

Questions

How big is the NetPuck5G PCB?

It measures 175 × 65 mm and has 2 copper layers, 1.6 mm thick.

What parts does the NetPuck5G use?

15 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the NetPuck5G KiCad files?

From the leonampa/netpuck repository on GitHub, at the commit this page was made from: the board is PCB/NetPuck5G.kicad_pcb and its schematic PCB/NetPuck5G.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the NetPuck5G design in my own project?

Its repository states no licence, so its author keeps all rights: ask leonampa before reusing the design.

Similar boards

  • 2 layers19 × 76 mmSub, the printed circuit board in 3D

    Sub

    google/mozc-devices

    Circuit diagrams and firmware source code for Gboard DIY keyboards

    15 parts3kApache-2.0
  • 2 layers26.7 × 62.2 mmDeniseadapter, the printed circuit board in 3D

    Deniseadapter

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    15 parts1kGPL-3.0
  • 2 layers100 × 44 mmVideoslot, the printed circuit board in 3D

    Videoslot

    mntmn/amiga2000-gfxcard

    MNT VA2000, an Open Source Amiga 2/3/4000 Graphics Card (Zorro II/III), written in Verilog

    15 parts1k
  • 2 layers91 × 51 mmBusinessCard, the printed circuit board in 3D

    BusinessCard

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    15 parts915
  • 2 layers24.3 × 57.9 mmFlosspods pro flex, the printed circuit board in 3D

    Flosspods pro flex

    kenp-io/not-for-airpods-repairs

    The content of this repository is licensed under the WTFPL License. Please have a close look at the terms before using this material.

    15 parts609WTFPL
  • 2 layers20.3 × 15.2 mmL0 Load, the printed circuit board in 3D

    L0 Load

    Luos-io/luos_engine

    Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.

    15 parts546MIT
  • 2 layers68 × 50 mmEleLab v2 PowerFeed, the printed circuit board in 3D

    EleLab v2 PowerFeed

    Chrismettal/EleLab_v2

    Cheap DIY lab system for hobbyists and the tinkering folk

    15 parts531GPL-3.0
  • 2 layers50.8 × 35.6 mmInterface, the printed circuit board in 3D

    Interface

    harbaum/I2C-Tiny-USB

    Cheap and simple I²C to USB interface

    15 parts454