DirtyJTAG & JLCPCB로 만드는 Pico JTAG 프로그래머
2 분
- 프로젝트 개요
- OpenFPGALoader + DirtyJTAG가 뛰어난 이유
- 동작 원리: DirtyJTAG 어댑터로서의 Pico
- Windows 단계별 설정 가이드 (프로젝트 명령어 기준)
- 맞춤형 FPGA 보드 + JLCPCB PCBA
- 실제 테스트: Lattice ECP5 데모 두 가지
- 실제 테스트: Lattice ECP5 데모 두 가지
- 나만의 Pico JTAG 프로그래머 + 맞춤형 FPGA 보드 만드는 방법
- 마무리
- 자주 묻는 질문
FPGA 개발의 세계에서 신뢰할 수 있는 저비용 JTAG 프로그래머를 구한다는 것은 고가의 벤더 케이블을 구매하거나 모든 보드에 비싼 FTDI 칩을 추가하는 것을 의미했습니다. 메이커 Khaled Magdy는 $4짜리 Raspberry Pi Pico를 DirtyJTAG 펌웨어와 OpenFPGALoader를 사용하여 완전히 기능하는 JTAG 어댑터로 전환함으로써 이 문제를 해결했으며, 이후 자신의 맞춤형 FPGA 보드를 JLCPCB에서 전문적으로 어셈블리했습니다.
전체 솔루션은 100% 오픈소스입니다. 펌웨어를 다운로드하고, Windows 설치 단계를 따라 JLCPCB PCBA에서 몇 분 만에 나만의 맞춤형 FPGA PCB를 주문할 수 있습니다.

프로젝트 개요
이 설정을 통해 단 하나의 $4짜리 Pi Pico를 JTAG 케이블로 사용하여 거의 모든 FPGA(Lattice ECP5, iCE40, Artix-7, Gowin, Efinix 등)를 프로그래밍할 수 있습니다. 더 이상 여러 벤더 프로그래머를 가지고 다닐 필요가 없습니다. 동일한 USB 포트로 UART 디버깅도 가능합니다.
저자 Khaled Magdy는 이렇게 설명합니다: "저는 수년간 FTDI 솔루션을 사용해 왔습니다. 최근 오픈소스를 시도해 보기로 했는데, 비용 절감과 범용 지원 덕분에 앞으로의 모든 맞춤형 FPGA 설계에 쉽게 선택할 수 있었습니다."
OpenFPGALoader + DirtyJTAG가 뛰어난 이유
· 비용 최적화: $9짜리 FTDI 칩을 $1짜리 MCU로 교체. 동일한 USB-JTAG + USB-UART 기능 제공.
· 범용 지원: Xilinx, Altera, Lattice, Gowin, Efinix 등과 호환.
· 오픈소스 툴체인 친화적: Yosys/nextpnr에 완벽하며, 벤더 툴이 필요 없음.
동작 원리: DirtyJTAG 어댑터로서의 Pico
Pico-DirtyJTAG 펌웨어는 RP2040의 PIO를 사용하여 완전한 JTAG 인터페이스를 에뮬레이션합니다. 기본 핀아웃은 단순합니다:
| 신호 | GPIO | Pico 핀 |
| TDI | 16 | 21 |
| TDO | 17 | 22 |
| TCK | 18 | 24 |
| TMS | 19 | 25 |
| RST | 20 | 26 |
| TRST | 21 | 27 |
UF2 파일을 한 번 플래시하고 Zadig으로 WinUSB 드라이버를 설치하면 준비가 완료됩니다.

Windows 단계별 설정 가이드 (프로젝트 명령어 기준)
1. VS Code에서 Pico-DirtyJTAG를 다운로드 및 빌드 → UF2를 Pico에 플래시.
2. MSYS2 설치.
3. 실행: pacman -S mingw-w64-ucrt-x86_64-openFPGALoader
4. MSYS2 UCRT64 터미널을 열고 확인: openFPGALoader -V
5. Zadig을 사용하여 Pico를 WinUSB 드라이버로 전환.
6. JTAG 핀을 FPGA에 연결.
7. 감지: openFPGALoader -c dirtyJtag --detect
SRAM에 비트스트림 로드:
openFPGALoader -c dirtyjtag --bitstream MyDesign.bit외부 SPI FLASH에 플래시:
openFPGALoader -c dirtyjtag -f MyDesign.bit --write-flash
맞춤형 FPGA 보드 + JLCPCB PCBA
Khaled는 완전한 맞춤형 Lattice ECP5 보드를 설계하고 JLCPCB에 제작 및 어셈블리를 의뢰했습니다. 진행 과정은 일반적인 JLCPCB 프로젝트와 완전히 동일했습니다:
2. BOM + CPL 파일을 업로드하면 JLCPCB가 라이브러리에서 부품을 자동으로 매칭합니다.
3. 3D 미리보기를 확인하고 주문합니다(쿠폰으로 추가 할인 가능).
4. 며칠 안에 보드가 완전히 어셈블리되어 테스트 준비된 상태로 도착했습니다.
"JLCPCB 덕분에 전문가 수준의 FPGA 하드웨어를 누구나 접근할 수 있고 저렴하게 만들 수 있게 되었습니다"라고 Khaled는 말했습니다. "품질이 기대를 뛰어넘었으며, 새로운 DirtyJTAG 솔루션과 완벽하게 통합되었습니다."
실제 테스트: Lattice ECP5 데모 두 가지
GPIO 데모: 버튼으로 LED 하나를 제어하고, 전원 재시작 후 나머지는 꺼진 상태 유지 — OpenFPGALoader를 통해 비트스트림을 SPI FLASH에 영구 저장.
UART 데모: FPGA와 Pico(USB CDC) 간 루프백 테스트 — JTAG 프로그래밍과 시리얼 디버깅이 동일한 USB 포트에서 모두 동작함을 입증. 두 데모 모두 JLCPCB 어셈블리 후 완벽하게 작동했습니다.
"JLCPCB 덕분에 전문가 수준의 FPGA 하드웨어를 누구나 접근할 수 있고 저렴하게 만들 수 있게 되었습니다"라고 Khaled는 말했습니다. "품질이 기대를 뛰어넘었으며, 새로운 DirtyJTAG 솔루션과 완벽하게 통합되었습니다."
실제 테스트: Lattice ECP5 데모 두 가지
GPIO 데모: 버튼으로 LED 하나를 제어하고, 전원 재시작 후 나머지는 꺼진 상태 유지 — OpenFPGALoader를 통해 비트스트림을 SPI FLASH에 영구 저장.
UART 데모: FPGA와 Pico(USB CDC) 간 루프백 테스트 — JTAG 프로그래밍과 시리얼 디버깅이 동일한 USB 포트에서 모두 동작함을 입증. 두 데모 모두 JLCPCB 어셈블리 후 완벽하게 작동했습니다.

나만의 Pico JTAG 프로그래머 + 맞춤형 FPGA 보드 만드는 방법
GitHub에서 Pico-DirtyJTAG와 OpenFPGALoader를 다운로드합니다.
아무 Pi Pico에 펌웨어를 플래시합니다.
위의 Windows 단계를 따릅니다(5분 소요).
KiCad 또는 Lattice Diamond에서 FPGA PCB를 설계합니다.
거버/BOM/CPL을 jlcpcb.com에 업로드 → PCBA 활성화.
공장 어셈블리된 보드를 수령하고 즉시 프로그래밍을 시작하세요!
프로젝트 사양
· 프로그래머: Raspberry Pi Pico (RP2040) + DirtyJTAG 펌웨어
· 툴: OpenFPGALoader (20개 이상의 FPGA 패밀리 지원)
· 비용: JTAG 케이블 총 약 $4
· 기능: SRAM + SPI FLASH 프로그래밍, USB-UART 브리지
· 호환 FPGA: Lattice ECP5, iCE40, Artix-7, Gowin 등
· 라이선스: 완전 오픈소스
마무리
이 프로젝트는 전문적인 FPGA 개발에 더 이상 값비싼 도구가 필요하지 않다는 것을 증명합니다. $4짜리 Pico, 오픈소스 소프트웨어, JLCPCB의 신뢰할 수 있는 PCBA 서비스를 통해 누구나 취미 가격으로 맞춤형 FPGA 하드웨어를 제작하고 프로그래밍할 수 있습니다.
첫 번째 FPGA 보드를 만들든, 양산을 목표로 하든 이 조합은 완벽한 출발점입니다.
다음 FPGA 프로젝트를 시작할 준비가 되셨나요?
지금 바로 JLCPCB에서 PCB + PCBA 즉시 견적을 받아보세요!
모든 파일은 무료로 다운로드하고 사용할 수 있습니다. 무언가 놀라운 것을 만들어 보세요. 여러분도 할 수 있습니다!
자주 묻는 질문
Q1: FTDI 대신 DirtyJTAG를 사용하는 이유는?
보드당 약 $8를 절약하면서 하나의 USB 포트로 동일한 JTAG + UART 기능을 제공합니다.
Q2: 어떤 FPGA를 지원하나요?
Lattice ECP5, iCE40, Xilinx Artix-7/Spartan, Gowin, Efinix 등 — 전체 목록은 OpenFPGALoader 위키를 참고하세요.
Q3: 외부 SPI FLASH에 비트스트림을 플래시할 수 있나요?
네! openFPGALoader -c dirtyjtag -f file.bit --write-flash 명령을 사용하세요.
Q4: 펌웨어는 오픈소스이고 무료인가요?
100% 그렇습니다. Pico-DirtyJTAG와 OpenFPGALoader 모두 완전한 GitHub 저장소를 갖춘 오픈소스입니다.
지속적인 성장
DirtyJTAG & JLCPCB로 만드는 Pico JTAG 프로그래머
FPGA 개발의 세계에서 신뢰할 수 있는 저비용 JTAG 프로그래머를 구한다는 것은 고가의 벤더 케이블을 구매하거나 모든 보드에 비싼 FTDI 칩을 추가하는 것을 의미했습니다. 메이커 Khaled Magdy는 $4짜리 Raspberry Pi Pico를 DirtyJTAG 펌웨어와 OpenFPGALoader를 사용하여 완전히 기능하는 JTAG 어댑터로 전환함으로써 이 문제를 해결했으며, 이후 자신의 맞춤형 FPGA 보드를 JLCPCB에서 전문적으로 어셈블리했습니다. 전체 솔루션은 100% 오픈소스입니다. 펌웨어를 다운로드하고, Windows 설치 단계를 따라 JLCPCB PCBA에서 몇 분 만에 나만의 맞춤형 FPGA PCB를 주문할 수 있습니다. 프로젝트 개요 이 설정을 통해 단 하나의 $4짜리 Pi Pico를 JTAG 케이블로 사용하여 거의 모든 FPGA(Lattice ECP5, iCE40, Artix-7, Gowin, Efinix 등)를 프로그래밍할 수 있습니다. 더 이상 여러 벤더 프로그래......
JLCPCB로 프로급 8×8 RGB LED 매트릭스 만들기
DIY 전자 제작의 세계에서, 깔끔하고 신뢰할 수 있는 8×8 RGB LED 매트릭스를 만들려면 WS2812B LED 64개와 디커플링 커패시터 64개를 수시간에 걸쳐 수작업으로 솔더링해야 했습니다. 메이커 Lucas Fernando가 완전한 맞춤형 PCB를 처음부터 설계하고 JLCPCB에 전문 어셈블리를 의뢰한 첫 번째 시도에서 모든 것이 바뀌었습니다. 결과는? 완벽하게 완성된 8×8 어드레서블 LED 매트릭스 5개로, 상용 제품과 다름없는 외관을 갖추었습니다. 더 좋은 점은, 이 프로젝트가 100% 오픈소스라는 것입니다. GitHub에서 거버 파일, BOM, CPL, 회로도, 테스트 코드를 다운로드하고 JLCPCB에서 몇 분 만에 직접 보드를 주문할 수 있습니다. 프로젝트 파일 (JLCPCB 직접 업로드용): GitHub 저장소 – Gerber zip, BOM.csv, CPL.csv, 회로도 PDF 및 코드 프로젝트 개요 이 모듈형 8×8 RGB LED 매트릭스는 완벽한 그리드 형태로 배열......
PIC16F877A 마스터 트레이닝 보드: JLCPCB가 지원하는 올인원 학습 도구
임베디드 시스템 교육과 빠른 프로토타이핑 영역에서, 탄탄한 트레이너 보드는 마이크로컨트롤러 기술과 하드웨어 통합을 마스터하는 데 핵심입니다. 이 글은 Microchip의 유명한 8비트 마이크로컨트롤러를 중심으로 설계된 다기능 보드인 PIC16F877A Master Trainer Project의 제작을 소개합니다. PIC16F877A는 Microchip의 미드레인지 제품군에 속하며, 1990년대 후반 출시 이후 전자 교육의 주축으로 자리 잡아 성능, 비용, 사용 용이성의 균형을 제공하여 초보자와 전문가 모두에게 이상적입니다. JLCPCB의 최신 PCB 생산 및 조립 역량을 활용함으로써, 이니셔티브는 빠른 생산 주기로 최고 수준의 결과를 제공하여 교육 및 취미용 목적을 위한 원활한 반복과 배포를 가능하게 했습니다. 설계 소개 PIC16F877A Master Trainer Board는 PIC16F877A 마이크로컨트롤러를 특징으로 하는 완전한 개발 환경으로, RISC 설계, 프로그램 메모리용 8KB......
JLCPCB가 언어장애 소녀에게 자신의 필요를 전달하는 데 도움을 준 방법
말을 하지 못하는 아이가 돌봐 제공자에게 자신의 필요를 어떻게 표현할 수 있을까요? 이는 부모들이 결코 직면하고 싶어 하지 않는 질문입니다. 오픈소스 보조 기술에 집중한 미국 개발자 그룹은 특별한 필요를 가진 3세 소녀를 위해 맞춤형 의사소통 기기를 만들었습니다. JLCPCB의 지원으로 팀은 저비용으로 업그레이드 가능한 도구를 제작하여 간단한 버튼 누름만으로 소통할 수 있도록 했습니다. 니즈 커뮤니케이션 시스템 프로젝트 개요: 이 프로젝트는 태국에서 개발자 그룹의 창립자가 이 특별한 필요를 가진 아이를 만나면서 시작되었습니다. 미국으로 돌아온 후, 그는 개발자들을 이끌어 기존 작업을 업데이트하고 충족되지 않은 필요를 가진 사람들을 위한 오픈소스 도구 구축에 대한 헌신을 이어갔습니다. JLCPCB 팀의 도움으로 팀은 아이가 버튼을 눌러 녹음된 음성을 재생하여 배고픔이나 불편함 같은 필요를 표현할 수 있는 맞춤형 기기를 제작했습니다. 사용된 주요 구성 요소: 다층 PCB, rp2350 프로세서, ......
JLCPCB는 로켓 시뮬레이션을 도와 정밀한 비행 제어를 실현합니다!
Beepy는 모델 로켓을 위해 특별히 설계된 비행 컴퓨터입니다. 모델 로켓은 매우 작지만, 비행을 위해 필요한 연산량은 상당합니다. Beepy는 기존 비행 컴퓨터와 달리 여러 개의 원형 PCB를 적층·연결하는 구조를 채택하고, 각 모듈은 리본 케이블로 연결됩니다. 이러한 설계로 비행 컴퓨터가 차지하는 공간을 크게 줄여, 강력한 기능을 유지하면서도 소형 크기를 실현했습니다. 이런 세심하고 독특한 설계와 믿을 수 있는 PCB 제조 공급업체 JLCPCB의 선택으로 Beepy는 모델 로켓의 정밀 비행 제어를 성공적으로 달성했습니다. 비행 컴퓨터의 PCB 설계도 응용 기능 Beepy는 반지름 25 mm의 원형 4층 PCB 4장으로 구성되며, 마우스바이트로 연결됩니다. 전체 크기는 100×100 mm이며, 3D 프린팅된 연결 부품/구조체로 고정됩니다. Beepy의 주요 기능은 모델 로켓의 비행을 유도하고 비행 중 능동 안정화를 제공하는 것입니다. 또한 모터 드라이버를 내장해 플라이휠로 로켓의 롤을 제어할......
혁신을 강화하는 JLCPCB: 자율 탐사 차량의 여정
Nomad 프로젝트는 복잡한 지형을 해결하고 과학적 임무를 수행하도록 특별히 설계된 모듈형 자율 탐사 차량입니다. 이번 혁신적인 프로젝트에서 JLCPCB는 빠른 PCB 제조와 효율적인 조립 서비스부터 정밀한 PCBA 제조에 이르기까지 종합적인 지원을 제공했습니다. 이를 통해 프로젝트 팀은 높은 품질을 유지하면서도 비용 효율성을 최적화하고 납기를 보장할 수 있었습니다. JLCPCB의 24시간 긴급 생산과 글로벌 배송 서비스 덕분에 Nomad 프로젝트는 전 세계 배송 목표와 프로젝트 목표를 빠르게 달성할 수 있었으며, JLCPCB의 높은 신뢰성과 정밀 제조는 차량이 복잡한 환경에서도 안정적으로 작동하도록 했고, 각 설계가 엄격한 품질 기준을 준수하도록 보장했습니다. 모듈형 자율 탐사 차량: The Nomad Nomad의 혁신과 도전 Nomad 탐사 차량은 AI 가속기와 ROS2 시스템을 탑재하여 실시간 의사결정을 내리고 환경 변화에 따라 동적으로 행동을 조정해 효율적인 임무 수행을 보장합니다. 핵......