---
title: "esp32-s3-w5500-gopro-ble-livestream"
url: "https://maker.wiznet.io/lawrence/projects/esp32-s3-w5500-gopro-ble-livestream/"
markdown_url: "https://maker.wiznet.io/lawrence/projects/esp32-s3-w5500-gopro-ble-livestream/md"
type: "UCC: User Created Content"
author: "rgueffet-maker"
author_url: "https://github.com/rgueffet-maker/esp32-s3-w5500-gopro-ble-livestream"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "rgueffet-maker"
original_url: "https://github.com/rgueffet-maker/esp32-s3-w5500-gopro-ble-livestream"
published: "2026-07-06"
language: "en"
tags: ["PoE"]
hardware: ["Espressif ESP32", "WIZnet W5500"]
likes: 0
views: 459
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# esp32-s3-w5500-gopro-ble-livestream

> A single PoE cable delivers power, control, and 1080p live video — automatically. Here's how we built a GoPro-to-Ethernet bridge with BLE, a Wi-Fi Soft-AP, and

Original author: rgueffet-maker (source: https://github.com/rgueffet-maker/esp32-s3-w5500-gopro-ble-livestream)

## Components

- **Espressif ESP32** x 1 ([docs](https://www.espressif.com/en/products/socs/esp32))
- **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/))

## Article

## One Cable. No Crew. Live.

**A single PoE cable delivers power, control, and 1080p live video — automatically.** Here's how we built a GoPro-to-Ethernet bridge with BLE, a Wi-Fi Soft-AP, and a hardware TCP/IP stack on an ESP32-S3.

---

### The Problem

Using a GoPro as a live camera almost always means depending on a smartphone app — and the familiar pain that comes with it: battery drain, overheating, and a Wi-Fi connection that drops at the worst possible moment. Someone always has to stand nearby and babysit the setup.

HDMI capture cards solve the signal quality problem but trade it for a tangle of cables. Going fully wireless introduces radio interference. Neither approach is great for a multi-camera shoot, a sports venue, or anywhere you need hours of reliable, unattended operation.

> What if you could treat a GoPro like a network camera — plug it into your LAN, and walk away?

<https://www.hackster.io/abouhatab/diy-gopro-ble-remote-using-esp32-eec5ab>

![Amazon.com : Smart Wireless Remote Control for GoPro - Camera Controller for GoPro Hero 13 12 11 10 9 8 Max LCD Display Magnet Charger Port Wrist Strap for Go Pro Accessories Camera Black (T10) : Electronics](https://m.media-amazon.com/images/I/81zY7EyjEvL.jpg)![](https://maker.wiznet.io/upload/ckeditor5/201043422%5F1783336494%2Epng)

---

### Three Design Principles

**1. Keep the wireless hop short** The ESP32-S3 opens a 2.4/5 GHz Soft-AP and the GoPro connects to it within one meter. Everything beyond that point travels over wired Ethernet. Eliminating the long wireless hop eliminates almost all the interference risk.

**2. Offload TCP/IP to hardware** A W5500 Ethernet controller handles the full TCP/IP stack in silicon. The ESP32 never touches RTMP packet processing directly, which is why it can run Wi-Fi and NAT simultaneously while staying under 50% CPU utilization.

**3. No human required** Power on the board and a 17-step BLE state machine takes over: discover the GoPro, pair over OpenGoPro GATT, set live-stream mode, and press the shutter — all without any input. If the camera reboots or the board resets, the whole sequence runs again automatically.

### Architecture

The bridge collapses three separate signal paths — BLE control, Wi-Fi video reception, and Ethernet video delivery — onto a single board.

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

| 스마트폰 앱 방식 | **BLE + Soft-AP + W5500** 방식 |
| --- | --- |
| 앱·배터리 의존, 발열·지연 ↑ | 스마트폰 불필요, 전력·지연 ↓ |
| 무선 전파 혼선에 취약 | 무선 구간 1 m로 국한, 이후 유선 |
| HDMI 케이블·캡처카드 필요 | LAN 1 가닥(＋PoE 전원)으로 해결 |

#### BLE — Control channel

The ESP32-S3 scans for the GoPro's OpenGoPro service (UUID 0xFEA6) and works through a state machine to power the camera on, configure live-stream mode, and trigger the shutter — without any user interaction.

#### Wi-Fi Soft-AP — Video intake

The board hosts its own 192.168.4.x access point. Because the GoPro is physically close, the RSSI stays strong and stable. No external router, no shared spectrum contention.

#### lwIP NAT — Transparent bridging

Packets arriving from the AP-side address space are re-mapped to the Ethernet interface's IP (e.g. 10.5.159.x) before heading out. The RTMP server on your LAN sees a clean, wired source — it never knows a Wi-Fi hop was involved.

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

#### W5500 — Wired output

Hardware-accelerated TCP/IP means lower RAM pressure, lower latency, and support for up to 100 m of LAN cable. Add a PoE injector and a single cable carries both power and video to wherever the camera needs to be.

---

### Performance

| Metric | Value |
| --- | --- |
| RTMP end-to-end latency | &lt; 350 ms @ 1080p 30fps |
| ESP32 CPU load | 48% (Wi-Fi + NAT running simultaneously) |
| Packet drops | 0 over a 1-hour continuous stream |
| Power draw | &lt; 5 W via PoE |

### Why Not Just Use a Smartphone?

|  | Smartphone App | This Bridge |
| --- | --- | --- |
| Extra device needed | Yes (dedicated phone) | No |
| Power | Battery drain, overheating | &lt; 5 W via PoE |
| Wireless range | Long hop, interference-prone | 1 m hop, then wired |
| Cabling | HDMI capture card or dongle | Single LAN cable |
| Operation | Requires monitoring | Fully unattended |

---

### Real-World Applications

- **Church & lecture hall multicam** — reliable all-day streams without a dedicated operator

- **Stadium fence / goalpost cams** — low-latency closeups over long cable runs

- **Drone / RC pit-stop relay** — safe-distance coverage with a hardwired output

- **360° VR multi-feed** — multiple wired channels for OBS or vMix stitching

- **Construction site & confined-space monitoring** — 24-hour operation with PoE

---

### What's Next

- **W6300 upgrade** — 64 KB buffers, IPv6, and 80+ Mbps throughput

- **Official PoE HAT BOM release** — full bill of materials for a clean single-cable install

- **REST API + mDNS configuration tool** — change settings without reflashing firmware

- **Web UI** — browser-based camera control for non-developers

### How It Compares to Similar WIZnet Projects

Two other projects on [maker.wiznet.io](https://maker.wiznet.io/ucc) share the same core idea — using a W5500 to deliver camera video over wired Ethernet — but take meaningfully different approaches.

|  | **GoPro Bridge** (this project) | **ESP32-Stick-Cam** ([simons](https://maker.wiznet.io/simons/projects/esp32-stick-cam-esp32-s3-active-passivepoe-camera/)) | **ESP32-CAM_MJPEG2SD** ([lawrence](https://maker.wiznet.io/lawrence/projects/esp32-cam-mjpeg2sd/)) |
| --- | --- | --- | --- |
| **Camera source** | Consumer GoPro (BLE-controlled) | OV camera module (on-board sensor) | OV2640 / OV5640 (on-board sensor) |
| **Ethernet chip** | W5500 (SPI) | W5500 (SPI) | W5500 (SPI, 40 MHz) |
| **Streaming protocol** | RTMP (H.264/AAC) | HTTP MJPEG | HTTP MJPEG + RTSP |
| **Wireless role** | BLE (control) + Wi-Fi Soft-AP (video intake) | Wi-Fi optional | Wi-Fi optional / Ethernet-only mode |
| **Camera control** | Fully automated via BLE (17-step state machine) | Manual / firmware | Web UI |
| **PoE support** | Yes (via injector) | Yes (Active + Passive PoE on custom PCB) | Yes (via PoE HAT) |
| **Unattended operation** | ✅ Power-on auto-start, auto-recovery | ⚠️ Requires initial setup | ⚠️ Requires initial setup |
| **AI / Edge inference** | ✗ | ✅ Edge Impulse (on-board CNN) | ✅ Edge Impulse (motion filter) |
| **SD recording** | ✗ | ✗ | ✅ MJPEG → AVI to SD card |
| **Target latency** | &lt; 350 ms (RTMP end-to-end) | Not published | ≤ 4 ms (LAN, MJPEG) |
| **Primary use case** | Professional multicam live streaming | IP camera / PoE AI camera | Home CCTV / NVR |

**Key takeaway:** All three projects prove that a W5500 is the right chip for camera-over-Ethernet work — hardware TCP/IP offload keeps the ESP32 headroom free for whatever the application demands. The difference is in the camera source and the streaming goal. ESP32-Stick-Cam goes deep on hardware design with a custom PoE PCB and Edge Impulse inference on-board. ESP32-CAM_MJPEG2SD prioritizes recording reliability and a rich Web UI for CCTV use. This GoPro Bridge takes a different angle entirely: instead of capturing raw sensor data, it remote-controls a finished broadcast camera over BLE, then transparently routes its RTMP output onto a wired LAN — making it the right choice wherever a professional camera body and zero-crew operation matter more than on-board AI or local recording.

---

Source: https://maker.wiznet.io/lawrence/projects/esp32-s3-w5500-gopro-ble-livestream/
