Wiznet makers

gunn

Published November 27, 2025 ©

37 UCC

0 VAR

0 Contests

0 Followers

0 Following

Original Link

RP2350과 W6300으로 ArduCam UDP FHD(1920*1080) 스트리밍 구현하기

RP2350과 W6300으로 ArduCam UDP FHD(1920*1080) 스트리밍 구현하기

COMPONENTS Hardware components

WIZnet - W5500

x 1


PROJECT DESCRIPTION

이 글은 네이버 카페 당근이에 2025년 10월 15일에 올라온 글입니다. 

저자는 레고2 라는 별명을 가지고 있는 Maker 입니다.

레고2는  2024년에 2건의 글을 당근이에 기록했고, 2025년은 이 번이 처음입니다. 

RP2350과 W6300으로 ArduCam UDP FHD(1920*1080) 스트리밍 구현한 내용을 잘 기록해 두었습니다. 

보드는 처음에는 ESP 를 선택하려다가, 경험이 없어서 가장 쉬운 Raspberry Pi Pico 로 시작했다고 합니다. 

이 Maker가 구현한 순서는 아래와 같습니다. 

고속 스트리밍을 진행하다 보면 RAM의 문제가 생길 것을 대비해서 RP2040보단 RP2350을 채택하였습니다. 

그리고 UDP 통신을 위해 위즈네트의 W6300가 올라간 W6300-EVB-Pico2를 사용하였습니다.

아두캠 라이브러리로 핀맵 정의하고 할당.

아두캠에 13핀 사용하고, W6300까지 사용해서 여유분은 4~5핀만 남는다.

아두캠 라이브러리로 PIO를 사용하여 DMA로 읽어왔습니다.

	wait 1 pin 9 // wait for hsync
	wait 1 pin 8 // wait for rising pclk
	in pins 8
	wait 0 pin 8
.wrap

% c-sdk {
void image_program_init(PIO pio, uint sm, uint offset, uint pin_base) {
	pio_sm_set_consecutive_pindirs(pio, sm, pin_base, 10, false);

	pio_sm_config c = image_program_get_default_config(offset);
	sm_config_set_in_pins(&c, pin_base);
	sm_config_set_in_shift(&c, false, true, 8);
	sm_config_set_fifo_join(&c, PIO_FIFO_JOIN_RX);
	
	pio_sm_init(pio, sm, offset, &c);
}
[출처] RP2350과 W6300으로 ArduCam UDP FHD(1920*1080) 스트리밍 구현하기 (당근이의 AVR 갖구 놀기) | 작성자 레고2

FHD로 찍어보니 프레임 당 압축 사이즈는 평균 80~100 KB 정도 나옵니다.

 

2. UDP 기본 구현 – 스트리밍용 UDP 틀 작성


3. 패킷을 하나의 프레임으로 조립하기 – 1.4KB 페이로드로 JPEG 프레임 만들기
한 번에 JPEG 프레임 전체를 보내기에는 크기가 너무 커서, MTU(1500B)를 넘기면 바로 잘려버리기에  최대 1,400바이트씩 쪼개서 전송하도록 구조를 잡았습니다.

 

4. 프로토콜·수신 코드 – 스트리밍 프로토콜·Python 수신 구현

Python 을 잘 몰라서 생성형 ai 툴로 소스를 구현해서 작업을 했다고 나옵니다. 

다른 칩(W5100S, W5500 등)이 올라간 Pico들도 퍼포먼스를 테스트 해봤는데, W6300이 Quad QSPI라 확실히 빠른 모습입니다.

 

 

Documents
Comments Write