Skip to the content
PCBKitNew board
2 layers70 × 45 mmPlotBridge, the printed circuit board in 3D

ESP32-C3 SuperMini · ST7789 1.69" LCD · MAX3232(4핀) 모듈을 얹는 캐리어 보드다. 세 모듈 모두 완제품을 헤더에 꽂는 구조라 이 기판에는 능동소자가 없다.

Size
70 × 45 mm
Copper layers
2
Thickness
1.6 mm
Parts
7
Nets
10
Pads
32
Tracks, vias
42, 0
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
22 Jul 2026
Updated
18 Aug 2026

Overview

PlotBridge is an open-source printed circuit board by zinzza, from the zinzza/PlotBridge repository on GitHub. It is a 2-layer board of 70 × 45 mm with 7 parts on 10 nets, routed with 42 tracks and 0 vias.

It belongs with the ESP32 and RISC-V boards of this library.

README

Hardware/README.md

PlotBridge — KiCad 프로젝트

ESP32-C3 SuperMini · ST7789 1.69" LCD · MAX3232(4핀) 모듈을 얹는 캐리어 보드다. 세 모듈 모두 완제품을 헤더에 꽂는 구조라 이 기판에는 능동소자가 없다.

보드는 70 × 45 mm, 2층, 배선 완료 상태다. ERC·DRC 모두 0건이다.

파일

파일내용
PlotBridge.kicad_pro프로젝트 파일 — KiCad에서 이걸 연다
PlotBridge.kicad_sch회로도 (심볼 내장, 외부 라이브러리 불필요)
PlotBridge.kicad_pcb보드 — 외곽 70×45 mm, 부품 배치, 넷, 배선 완료, M3 홀 4개
PlotBridge-schematic.pdf회로도 출력본
PlotBridge.kicad_sym심볼 라이브러리
PlotBridge.pretty/풋프린트 라이브러리 (.kicad_mod 4종)
sym-lib-table / fp-lib-table프로젝트 로컬 라이브러리 등록
tools/이 프로젝트를 생성·검증한 스크립트

검증 결과

KiCad 10.0.5의 kicad-cli / pcbnew로 실제 실행한 결과다.

항목결과도구
ERC (회로도)0 violationskicad-cli sch erc
DRC (보드)0 violationskicad-cli pcb drc
미연결 패드0〃
보드 패드↔넷 vs 회로도 넷리스트10/10 넷 일치tools/verify_board.py
심볼 핀번호 ↔ 풋프린트 패드 위치28/28 일치tools/verify_fp.py
같은 층 다른 넷 교차(단락)0tools/verify_cross.py

넷리스트

넷ESP32-C3상대배선층
+3V33V3 (pin 6)LCD VCC, MAX3232 VCCB.Cu
GNDGND (pin 7)LCD GND, MAX3232 GNDB.Cu
LCD_SCLGPIO4LCD SCLB.Cu
LCD_SDAGPIO6LCD SDAF.Cu
LCD_RSTGPIO1LCD RESF.Cu
LCD_DCGPIO3LCD DCB.Cu
LCD_CSGPIO2LCD CSB.Cu
LCD_BLGPIO5LCD BLKB.Cu
UART_TXGPIO0MAX3232 RXB.Cu
UART_RXGPIO7MAX3232 TXF.Cu

미사용: 5V, GPIO10, GPIO20, GPIO21 (no-connect 처리). GPIO8(내장 LED), GPIO9(BOOT 버튼)는 모듈 온보드라 기판에서 연결하지 않는다.

배치와 배선

부품위치방향
U1 ESP32-C3 SuperMini(45, 47.5)세로, USB-C가 위
U2 ST7789 LCD(70, 47.5)세로 8핀, U1 오른쪽
U3 MAX3232(45, 63)가로 4핀, U1 아래 (90° 회전)
H1–H4 M3 홀네 모서리—

U3는 왼쪽부터 VCC(41.19) · GND(43.73) · RX(46.27) · TX(48.81) 순으로 놓인다.

B.Cu가 주 배선층이다 — 모듈 본체가 윗면에 있어 아랫면이 통째로 비어 있고, U1의 두 패드 열 사이 공간도 양면 모두 자유롭게 쓸 수 있다. 서로 교차하는 3개 넷(LCD_SDA, LCD_RST, UART_RX)만 F.Cu로 올렸다. 관통(THT) 패드가 양면을 잇기 때문에 비아는 하나도 없다. 트랙 폭 0.25 mm.


설계 노트

작업하면서 실제로 확인하거나 판단한 것들을 남긴다.

ESP32-C3 SuperMini 핀 배치 — 가장 주의할 점

풋프린트는 윗면(부품면) 기준, USB-C가 −Y 방향이다. 이 기준에서 전원핀은 오른쪽이다.

왼쪽 열 (위→아래)오른쪽 열 (위→아래)
GPIO5, 6, 7, 8, 9, 10, 20, 215V, GND, 3V3, GPIO4, 3, 2, 1, 0

웹에 널리 퍼진 "전원이 왼쪽" 핀아웃 그림은 뒷면(bottom) 뷰가 앞면으로 잘못 재배포된 것이다. 이 그림을 그대로 믿고 기판을 뜨면 좌우가 뒤집힌 보드가 나온다.

실물 확인법(10초): USB-C를 위로 두고 칩이 보이는 면에서, 아래쪽 실크에 왼쪽 21 / 오른쪽 0 이 찍혀 있으면 맞다.

근거는 세 갈래다.

  • 독립 KiCad 라이브러리 6종이 모두 같은 배치(패드 좌표에 신호명이 직접 박혀 있어 해석 여지 없음)
  • 실물 보드 실크스크린 사진
  • Tenstar(AliExpress) 구매품 실물 확인

빨강/파랑 선이 겹쳐 보이는데 괜찮은가

괜찮다. 빨강은 F.Cu(윗면 동박), 파랑은 B.Cu(아랫면 동박)이고 사이에는 1.6 mm 두께의 FR4 기판이 있다. 도면에서 겹쳐 보이는 건 위에서 내려다본 투영일 뿐, 실제로는 육교와 그 아래 도로처럼 만나지 않는다. 2층 기판을 쓰는 이유가 바로 이것이다.

문제가 되는 건 같은 층에서 다른 넷이 교차하는 경우다. tools/verify_cross.py가 트랙 42개의 모든 쌍을 계산해 분류한다.

분류개수
F.Cu ↔ B.Cu 교차13다른 층 — 무해
같은 층, 같은 넷 접촉32의도된 것 (모서리·분기)
같은 층, 다른 넷 교차0단락 없음
같은 층, 다른 넷 간격 0.2 mm 미만0규칙 위반 없음

2층이면 1층보다 비싼가

아니다. 소량에서는 오히려 2층이 더 싸거나 같다.

요즘 PCB 업체의 표준 제품이 양면(2층)이다. 단면(1층)은 별도 옵션으로 없거나, 있어도 같은 값이거나, 비표준 공정이라 더 비싸다. 단가표의 기준 가격 자체가 2층이다.

단면이 실제로 싸지는 건 수천 장 단위 양산에서 FR-1/CEM-1 같은 저가 기판재를 쓸 때다. 리모컨이나 저가 완구 기판이 그 경우다. 시제품 5~10장에는 해당 없다.

이 보드는 70 × 45 mm라 대부분 업체의 최저가 구간(100 × 100 mm 이하)에 넉넉히 들어간다.

굳이 1층으로 내리려면 F.Cu를 쓰는 3개 넷(LCD_SDA, LCD_RST, UART_RX)을 점퍼선이나 0옴 저항으로 공중 배선해야 한다. 가격 이득 없이 조립 수고와 실수 여지만 늘어나므로 권하지 않는다.

수작업 납땜이 가능한가

가능하다. 난이도로 치면 가장 쉬운 축이다.

층수는 납땜 난이도와 무관하다. 층수는 제조사가 하는 일이고, 난이도를 좌우하는 건 부품 패키지와 패드 크기다. 오히려 공장에서 만든 2층 기판은 홀 내벽에 구리가 도금되어 나오므로(PTH, plated through-hole), 한쪽 면만 납땜해도 납이 구멍을 타고 올라가 양쪽 층이 자동으로 연결된다. 윗면에 따로 손댈 필요가 없다. (집에서 직접 에칭한 2층 기판이라면 양면 납땜이 필요하지만, 발주 기판은 해당 없다.)

항목값평가
부품전부 THT (핀헤더)SMD 0개
패드 지름1.8 mm넉넉함
드릴1.0 mm2.54 mm 헤더 핀(0.64 mm 각)에 여유
애뉼러 링0.4 mm인두 팁 닿을 면적 충분
인접 패드 간격0.74 mm브리지 위험 낮음
납땜할 핀28개 (16+8+4)—

조립 순서

  1. 암 헤더(female header)를 기판에 먼저 납땜한다. 모듈이 올라가면 인두가 안 들어간다.
  2. 납땜은 아랫면(B.Cu)에서만 하면 된다.
  3. 모듈 3개를 나중에 꽂는다.

암 헤더를 쓰면 모듈을 뺐다 꽂을 수 있다. MAX3232 핀 순서가 다른 제품으로 바꿔야 할 때를 대비해서도 소켓 방식이 안전하다.

인두는 320350 °C에 핀당 23초면 충분하다.

KiCad와 EasyEDA

둘 다 무료로 시작할 수 있지만 성격이 다르다.

KiCadEasyEDA
라이선스완전 무료·오픈소스(GPL), 기능 제한 없음웹 버전 무료, 비공개 프로젝트 개수 제한
유료 등급없음EasyEDA Pro (데스크톱)
강점어느 제조사에나 통하는 범용 거버 출력JLCPCB 부품 소싱·주문 연동

이 프로젝트는 KiCad를 골랐다. 국내 업체(devicemart 등)에 거버로 넘기기에 무난하고, 특정 제조사 생태계에 묶이지 않기 때문이다.

PCB 발주에 필요한 것

발주 페이지가 요구하는 건 배선도(개념 회로도)가 아니라 실제 동박 패턴이 담긴 거버(Gerber) 파일과 드릴 파일이다. Docs/wiring_diagram.html은 연결 관계를 보여주는 문서일 뿐 발주용이 아니다.

bash
kicad-cli pcb export gerbers --output gerber/ PlotBridge.kicad_pcb
kicad-cli pcb export drill   --output gerber/ PlotBridge.kicad_pcb

제작 전 확인 사항

  1. MAX3232 모듈의 핀 순서를 실물로 확인한다. 4핀 모듈은 판매자마다 순서가 다르다. 현재 풋프린트는 VCC, GND, RX, TX (pin 1 = VCC) 기준이다.
  2. MAX3232 모듈이 3.3V VCC를 지원하는지 확인한다. 5V 전용이면 레벨 변환이 필요하다.
  3. RS-232 측은 모듈의 DB9 커넥터를 쓴다. 이 기판에는 RS-232 신호가 올라오지 않는다. 플로터 연결은 교차: MAX3232 TX → 플로터 RX, MAX3232 RX ← 플로터 TX.
  4. LCD 모듈의 8핀 순서(GND VCC SCL SDA RES DC CS BLK)도 실물 실크와 대조한다.
  5. LCD(1.69")와 MAX3232 모듈의 실제 외형이 서로 간섭하지 않는지 확인한다. 현재 배치는 헤더 간격만 기준이며 모듈 본체 크기는 반영하지 않았다.

재생성

tools/gen_kicad.py가 회로도·보드·라이브러리를 전부 생성한다. 배치나 배선을 바꾸려면 스크립트의 PLACE / ROUTES를 고치고 다시 돌린다.

tools/normalize_pcb.py는 KiCad 자체 엔진(pcbnew)으로 보드의 모든 풋프린트를 라이브러리에서 다시 불러와 같은 자리에 재배치한다. 손으로 쓴 사본은 부품을 회전시키는 순간 라이브러리와 어긋나므로(KiCad는 풋프린트 텍스트 각도를 보드 절대각으로 저장한다) 이 단계가 없으면 DRC가 lib_footprint_mismatch를 낸다. KiCad 번들 파이썬으로 돌린다.

bash
python tools/gen_kicad.py
"C:/Program Files/KiCad/10.0/bin/python.exe" tools/normalize_pcb.py
python tools/verify_net.py && python tools/verify_fp.py && python tools/verify_board.py
python tools/verify_cross.py

검증기는 서로 독립적이다.

스크립트확인하는 것
verify_net.py회로도 기하학에서 넷리스트를 재구성해 의도와 대조
verify_fp.py심볼 핀번호 ↔ 풋프린트 패드 물리 위치
verify_board.py보드의 패드↔넷이 회로도와 일치하는지
verify_cross.py같은 층에서 다른 넷이 닿는 곳이 있는지

DRC는 보드가 "자기모순이 없음"만 보장하지 "맞다"는 것은 보장하지 않는다. 넷을 잘못 할당해도 DRC는 통과한다. 그래서 위 대조가 따로 필요하다.

주의: 재생성은 .kicad_sch / .kicad_pcb를 덮어쓴다. KiCad에서 프로젝트를 열어둔 상태로 돌렸다면, KiCad를 닫았다가 다시 열어야 새 내용이 보인다. 열린 창에서 저장하면 재생성한 내용이 지워진다.

Parts

7
QtyValueFootprintReferences
4MountingHole_M3PlotBridge:MountingHole_M3H1, H2, H3, H4
1ESP32-C3 SuperMiniPlotBridge:ESP32-C3_SuperMiniU1
1MAX3232 module 4PPlotBridge:MAX3232_MODULE_4PU3
1ST7789 1.69in 240x280PlotBridge:ST7789_169_8PU2

Questions

How big is the PlotBridge PCB?

It measures 70 × 45 mm and has 2 copper layers, 1.6 mm thick.

What parts does the PlotBridge use?

7 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 PlotBridge KiCad files?

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

Can I use the PlotBridge design in my own project?

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

Similar boards

  • 2 layersEncoder, the printed circuit board in 3D

    Encoder

    byrantech/laptop

    anyon_e, a highly integrated, high end, open source laptop. Attempt the impossible.

    7 parts4.3kMIT
  • 2 layers40 × 20 mmSensor smd, the printed circuit board in 3D

    Sensor smd

    scottbez1/splitflap

    DIY split-flap display

    7 parts4.2k
  • 2 layers19.8 × 30 mmZ limit, the printed circuit board in 3D

    Z limit

    opulo-inc/lumenpnp

    The LumenPnP is an open source pick and place machine.

    7 parts3.7k
  • 2 layers35.6 × 58.2 mmDisplay Carrier, the printed circuit board in 3D

    Display Carrier

    AxxAxx/AxxSolder

    STM32 Based soldering station for JBC cartridges, 9-24 VDC and USB-PD power

    7 parts1.7kGPL-3.0
  • 2 layers20.3 × 16.3 mmMap MPX, the printed circuit board in 3D

    Map MPX

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    7 parts1.2k
  • 2 layers26 × 44 mmCompact carrier board, the printed circuit board in 3D

    Compact carrier board

    jamro/tiny-engineer

    A small desktop robot that brings an AI coding assistant to life, physically acting out when it reads files, thinks, writes code, and finishes work.

    7 parts1.1k
  • 2 layers26.4 × 53.8 mmAtari pickup, the printed circuit board in 3D

    Atari pickup

    hoglet67/RGBtoHDMI

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

    7 parts1kGPL-3.0
  • 2 layersRj45 breakout, the printed circuit board in 3D

    Rj45 breakout

    rene-dev/stmbl

    AC Servo Driver for STM32F4

    7 parts990GPL-3.0