Skip to the content
PCBKitNew board
4 layers100 × 100 mmLayouts, the printed circuit board in 3D

Framebuffer-less retro PC analog RGB capture: ADC → FPGA → UDP/GbE → PC/Mac reconstruction (X68000, PC-98)

Size
100 × 100 mm
Copper layers
4
Thickness
1.61 mm
Parts
205
Nets
240
Pads
981
Tracks, vias
2,059, 479
Pours
323
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
25 Jul 2026
Updated
6 Nov 2026

Overview

Layouts is an open-source printed circuit board by kunichiko, from the kunichiko/RetroCastX repository on GitHub, published under the Apache-2.0 licence. It is a 4-layer board of 100 × 100 mm with 205 parts on 240 nets, routed with 2,059 tracks and 479 vias.

Its parts include 95 capacitors, 47 resistors, 17 ICs, 12 diodes and 12 connectors. It belongs with the lEDs and displays boards of this library.

README

README.md

RetroCastX

RetroCastX

レトロPC(X68000 / PC-98 など)のアナログRGB信号を、フレームバッファレスで PC/Mac に伝送・表示するプロジェクト。

text
Retro PC ──アナログRGB──▶ ADC(TVP7002) ──24bit+PCLK──▶ FPGA(ECP5) ──UDP/GbE──▶ PC/Mac(再構成・表示)

設計思想

一般的なアップスキャンコンバータは変換器内でフレームバッファを構築し標準的なHDMI信号に整形するため、 機種固有のタイミング情報が失われ、遅延・モード切替時のブラックアウト・価格の問題が生じる。

RetroCastX は「変換器は馬鹿に徹し、知性はPC側に置く」:

  • ADC でドットクロックを再生してサンプリングした生のピクセルデータを、タイミング情報ごと 「1パケット≒1ライン」の UDP で送出する(FPGA はラインFIFO程度しか持たない)
  • フレームの再構成・スケーリング・表示は PC/Mac 側で行う

これにより:

  • 生タイミング保存: VRR対応モニタなら 55.46Hz(X68000)等の非標準リフレッシュをそのまま表示可能
  • モード切替の無切断追従: ゲーム中の解像度切替もヘッダ通知で追従
  • 真のロスレス: 8bit で取得し PC 側でパレット吸着(X68000 は本来 RGB 各5bit)
  • 低遅延: サブフレーム(ライン単位)伝送
  • 安価: フレームバッファ用メモリも高度な画像処理も変換器側に不要

リポジトリ構成

text
docs/
  protocol-v0.md    伝送プロトコル仕様 v0(ドラフト)
  research/         部品・ボード調査レポート
gateware/           FPGA側(LiteX / Colorlight i5)※sim検証済み、実機未検証
hardware/           ADCフロントエンド基板(Atopile、HAT形式)
host/python/        PC側リファレンス実装(送信シミュレータ・受信・検証)
client/             ビューアアプリ(Rust + eframe/egui、Mac/Win/Linux)

クイックスタート(ハードウェア不要)

送信シミュレータと受信器をループバックで動かす:

sh
cd host/python
python3 -m retrocastx.tests.test_loopback   # プロトコルのE2E検証
python3 -m retrocastx.tests.test_videoin    # コンポジットの波形解析(合成波形で検証)
python3 -m retrocastx.tests.test_ntsc       # NTSC復調(合成6色で真値と照合)
python3 -m retrocastx.sender_sim &          # テストパターンをUDP送出
python3 -m retrocastx.receiver --dump out   # 受信して out/frame_NNNN.ppm に保存

ハードウェア(フェーズ1〜2 想定)

役割部品備考
FPGAボードColorlight i5 + 拡張基板ECP5-25F、GbE PHY ×2、SODIMM I/O 直結
ADCTI TVP7002OSSC と同一。15/24/31kHz 実証済み。ブレークアウト自作
参考回路marqs85/ossc_pcbアナログ入力段・TVP7002 周辺

調査の詳細は docs/research/2026-07-25-hardware-survey.md を参照。

ステータス

  • 構想・部品調査
  • プロトコル v0 ドラフト(映像 LINE/MODE + 音声 AUDIO + 発見/購読 + CONFIG)
  • PC側リファレンス実装(シミュレータ + 受信器)
  • LiteX ゲートウェア step2(テストパターン送出+購読) — sim検証・ビットストリーム生成済み
  • TVP7002 ブレークアウト設計(音声3系統・ArgusX制御含む、電気設計検証まで)
  • ビューアアプリ雛形(Rust + eframe、sender_sim相手にE2E確認済み)
  • ゲートウェア実機動作(ボード入手待ち)
  • 基板発注(atopile部品API復旧後にフットプリント紐付け)
  • 音声キャプチャ(gateware step4)・音声再生(client)
  • 実機キャプチャ(X68000 / PC-98)

ライセンス

ディレクトリごとに異なります。

対象ライセンス
gateware/ client/ host/Apache License 2.0
hardware/CERN-OHL-S-2.0(強い相互性のオープンハードウェアライセンス)
docs/CC BY-SA 4.0

hardware/ の CERN-OHL-S-2.0 は、この設計を元に製品を作って頒布・販売する場合、 改変を含む設計一式(Complete Source)を公開し、製品または同梱文書に入手先を明記する ことを求めます。個人が自分用に作る分にはこの義務は発生しません。

ライセンスの対象外となるファイル(部品メーカーのデータシート、ベンダー由来の KiCad シンボル・フットプリント等)については NOTICE を参照してください。

商標

"RetroCast X"(正式名称)および "RetroCastX"(ファイル名・識別子・ ハッシュタグ等で用いる短縮形)の名称、ロゴ、アイコン、基板シルク上のブランド 表記は、上記いずれのライセンスの許諾範囲にも含まれません (Apache License 2.0 第6条)。空白の有無・大文字小文字の違いを問いません。

フォークや派生ハードウェアを頒布する場合は、別の名称を用いてください。

ハードウェアの製造を検討されている方へ

本設計に基づくハードウェアの製造・頒布を計画されている場合、事前にご一報 いただけると嬉しいです。ライセンス上の義務ではありませんが、既知の問題や 実装上の落とし穴を共有できますし、改善を上流に取り込める場合もあります。

コントリビューション

歓迎します。手順と DCO(Signed-off-by)については CONTRIBUTING.md を参照してください。特に手元の実機での動作報告が助かります。

Parts

205
QtyValueFootprintReferences
51100nF ±10%SAMSUNG_CL05B104KO5NNNC:C0402C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23, C24, C25, C27 +35
19220Ω ±1%UNI_ROYAL_0402WGF2200TCE:R0402R5, R10, R12, R14, R16, R20, R21, R24, R26, R27, R38, R43, R44, R45, R46, R52 +3
1710µF ±10%SAMSUNG_CL21A106KAYNNNE:C0805C1, C2, C3, C4, C5, C7, C60, C63, C67, C68, C71, C75, C76, C90, C94, C95 +1
1233pF ±5%SAMSUNG_CL05B104KO5NNNC:C0402C26, C28, C30, C32, C34, C36, C38, C40, C48, C50, C52, C87
1110kΩ ±1%UNI_ROYAL_0402WGF1002TCE:R0402R3, R32, R33, R34, R35, R36, R37, R47, R48, R49, R50
9ROHM_EMZT6_8ET2R:EMT6_L1.6-W1.2-P0.50-LS1.6-BLD1, D2, D3, D5, D6, D8, D10, D11, D12
875Ω ±1%UNI_ROYAL_0402WGF750JTCE:R0402R4, R6, R8, R11, R13, R15, R17, R51
61µF ±10%SAMSUNG_CL10A105KB8NNNC:C0603C61, C62, C69, C70, C88, C89
5_mech:MountingHole_3.2mm_M3_PadH1, H2, H3, H4, H5
5TI_SN74LVC2G17DBVR:SOT-23-6_L2.9-W1.6-P0.95-LS2.8-BLU2, U8, U10, U11, U12
4TDK_MPZ1608S221ATA00:L0603FB1, FB2, FB3, FB4
4_mech:PogoPin_D1.0mmPG1, PG2, PG3, PG4
42.2kΩ ±1%UNI_ROYAL_0402WGF2201TCE:R0402R28, R29, R30, R31
44.7nF ±10%YAGEO_CC1812KKX7RDBB472:C1812C82, C83, C84, C85
3TI_PCM1808PWR:TSSOP-14_L5.0-W4.4-P0.65-LS6.4-BLU13, U14, U17
3_mech:Fiducial_1mm_Mask2mmFID1, FID2, FID3
31.5kΩ ±1%UNI_ROYAL_0402WGF1501TCE:R0402R18, R19, R22
2HANRUN_HR911130A:RJ45-TH_HR911130AJ11, J12
2MICROCHIP_24AA025E48_I_SN:SOIC-8_L4.9-W3.9-P1.27-LS6.0-BLU15, U16
2DIODES_AZ1117H_3_3TRE1:SOT-223-3_L6.5-W3.4-P2.30-LS7.0-BRU3, U4
2_mech:Header_1x4_P2.54mmJ9, J10
2_mech:TestPoint_TH1TP1, TP2
222pF ±5%SAMSUNG_CL05B104KO5NNNC:C0402C9, C10
25.1kΩ ±1%UNI_ROYAL_0402WGF5101TCE:R0402R1, R2
1YXC_X32258MSB4SI:CRYSTAL-SMD_4P-L3.2-W2.5-BLX2
1_mech:PLR135_T10J8
1YXC_OT322527MJBA4SL:OSC-SMD_4P-L3.2-W2.5-BLX1
1_mech:MJ373_8BJ13
1RICHTEK_RT9013_18GB:SOT-23-5_L3.0-W1.7-P0.95-LS2.8-BRU5
1XINGLIGHT_XL_2020RGBC_2812B:LED-SMD_4P-L2.0-W2.0-BR-1LED1
1_mech:Header_2x15_P2.54mmJ7
1CONNFLY_DS1037_15FNAKT76_0CC:DSUB-TH_DS1037-15FNAKT74-0CCJ1
1HDGC_0_5K_1_5_20PWB:FPC-SMD_20P-P0.50_HDGC_0.5K-1.5-20PWBJ15
1_mech:Header_1x3_P2.54mmJ14
1TE_Connectivity_1473005_4:SO-DIMM-SMD_200P-P0.60_1473005-4U9
1XFCN_BH254V_10P:IDC-TH_10P-P2.54-V-R2-C5-S2.54J6
1_mech:SolderJumper_2_BridgedJP1
1ST_1N4148W:D_SOD-123D7
1ST_USBLC6_2SC6:SOT-23-6_L2.9-W1.6-P0.95-LS2.8-BLD9
1TI_TLV70019DDCR:SOT-23-5_L2.9-W1.6-P0.95-LS2.8-BRU6
1YXC_OT2JI_111_12_288M:OSC-SMD_4P-L3.2-W2.5-BLX3
1UNKNOWN_TYPE_C_31_M_12:USB-C_SMD-TYPE-C-31-M-12_1J2
1TI_TVP7002PZP:HTQFP-100_L14.0-W14.0-P0.50-LS16.0-BL-EP6.2U1
1WCH_CH347F:QFN-28_L4.0-W4.0-P0.40-BL-EP2.7U7
110nF ±10%SAMSUNG_CL05B103KB5NNNC:C0402C54
11nF ±10%FH_0402B102K500NT:C0402C42
14.7nF ±10%FH_0402B472K500NT:C0402C45

Questions

How big is the Layouts PCB?

It measures 100 × 100 mm and has 4 copper layers, 1.61 mm thick.

What parts does the Layouts use?

205 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 Layouts KiCad files?

From the kunichiko/RetroCastX repository on GitHub, at the commit this page was made from: the board is hardware/adc-frontend/layouts/default/default.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Layouts design in my own project?

Its repository publishes it under the Apache-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

More from kunichiko/RetroCastX

1
  • 2 layers100 × 100 mmLayouts, the printed circuit board in 3D

    Layouts

    kunichiko/RetroCastX

    Framebuffer-less retro PC analog RGB capture: ADC → FPGA → UDP/GbE → PC/Mac reconstruction (X68000, PC-98)

    45 parts4Apache-2.0

Similar boards

  • 4 layers82.6 × 82.6 mmJumperlessRev3point1, the printed circuit board in 3D

    JumperlessRev3point1

    Architeuthis-Flux/Jumperless

    A jumperless breadboard

    205 parts914
  • 4 layers100 × 100 mmPmic test board, the printed circuit board in 3D

    Pmic test board

    efabless/foss-asic-tools

    FOSS-ASIC-TOOLS is all in one container for SKY130 based design both Analog and Digital. Below is a list of the current tools already installed and ready to use.

    205 parts121Apache-2.0
  • 4 layers90.2 × 95.9 mmADCS board, the printed circuit board in 3D

    ADCS board

    onionharvester/boardwalk

    A little gathering place for my PCBs. This is their favourite hangout spot! 🪼⋆.ೃ࿔*:・

    205 parts55
  • 4 layers61.8 × 100 mmVm013-analog section, the printed circuit board in 3D

    Vm013-analog section

    mirdej/vmix

    Multichannel modular analog PAL video mixer based on the SYNKIE project

    205 parts21
  • 4 layers99.8 × 94.6 mmOresat proto card, the printed circuit board in 3D

    Oresat proto card

    oresat/oresat-proto-card

    Prototype card for the OreSat bus. Requires the OreSat Backplane.

    205 parts9
  • 4 layers80 × 70 mmCross band handy walkie talkie ES8388, the printed circuit board in 3D

    Cross band handy walkie talkie ES8388

    immortal-sniper1/cross_band_handy_walkie_talkie

    cross band handy walkie talkie. This HT would include 2 SA818s, one for 70cm and one for 2m and could be used for satellite work.

    205 parts6MIT
  • 4 layers128 × 122 mmAR20 PDM v1, the printed circuit board in 3D

    AR20 PDM v1

    align-racing-uia/power_distribution_module

    This is the repository for Align Racing's formula student race car's different systems.

    205 parts5
  • 4 layers122.8 × 102.7 mmSwitch test board, the printed circuit board in 3D

    Switch test board

    devguardio/hurmuz

    An rpi cm4 server board

    205 parts3