board/hdmi_firewall.sch

337 lines
6.6 KiB
Plaintext

v 20210626 2
C 2400 3500 1 0 0 5V.sym
C 2800 4100 1 0 0 GND.sym
C 6100 0 1 0 0 title.sym
{
T 7100 700 5 10 1 1 0 0 1
date=$date$
T 10400 700 5 10 1 1 0 0 1
org=CuVoodoo
T 10400 400 5 10 1 1 0 0 1
authors=King Kévin
T 9100 1200 5 14 1 1 0 4 1
title=HDMI firewall dongle
T 7100 400 5 10 1 1 0 0 1
version=$version$
T 7100 100 5 10 1 1 0 0 1
revision=$revision$
T 10400 100 5 10 1 1 0 0 1
licence=CERN-OHL-S
T 6100 1800 5 10 0 0 0 0 1
device=none
T 6100 2000 5 10 0 0 0 0 1
footprint=none
}
T 100 10500 9 10 1 0 0 0 2
based on the reseach of Pierre-Michel RICORDEL and José LOPES-ESTEVES from ANSSI/SDE/ST/LSF
https://sstic.org/2021/presentation/un_pare_feu_pour_le_hdmi/
C 2700 2600 1 90 0 resistor-1.sym
{
T 2300 2900 5 10 0 0 90 0 1
device=RESISTOR
T 2800 3200 5 10 1 1 0 0 1
refdes=R3
T 2700 2600 5 10 0 0 0 0 1
footprint=RESC1608X55N.lht
T 2800 3000 5 10 1 1 0 0 1
value=1.5k-2k
}
C 3400 1000 1 0 0 FT24C16A-EL.sym
{
T 3400 1000 5 8 0 0 0 0 1
footprint=SOT95P280X125-5N.lht
T 3800 2660 5 10 1 1 0 0 1
refdes=U1
T 4460 1340 5 10 1 1 0 2 1
device=FT24C16A-EL
T 3400 1000 5 10 0 0 0 0 1
lcsc-sku=C191945
}
C 3200 4100 1 0 0 GND.sym
C 3600 4100 1 0 0 GND.sym
C 4000 4100 1 0 0 GND.sym
C 4400 4100 1 0 0 GND.sym
C 1600 4300 1 0 0 HDMI-001S.sym
{
T 1600 4300 5 8 0 0 0 0 1
footprint=CONNECTOR_HDMI-001S.lht
T 2000 8360 5 10 1 1 0 0 1
refdes=J1
T 4560 4640 5 10 1 1 0 2 1
device=HDMI-001S
T 3900 8400 5 10 1 1 0 0 1
value=untrusted device
T 1600 4300 5 10 0 0 0 0 1
lcsc-sku=C720616
}
C 8200 4100 1 0 0 GND.sym
C 8600 4100 1 0 0 GND.sym
C 9000 4100 1 0 0 GND.sym
C 9400 4100 1 0 0 GND.sym
C 9800 4100 1 0 0 GND.sym
C 4300 800 1 0 0 GND.sym
C 4200 3000 1 0 0 5V.sym
C 3500 8700 1 0 0 5V.sym
C 2100 3500 1 0 0 5V.sym
C 2400 2600 1 90 0 resistor-1.sym
{
T 2000 2900 5 10 0 0 90 0 1
device=RESISTOR
T 2100 3200 5 10 1 1 0 6 1
refdes=R2
T 2400 2600 5 10 0 0 0 0 1
footprint=RESC1608X55N.lht
T 2100 3000 5 10 1 1 0 6 1
value=1.5k-2k
}
C 400 6600 1 0 0 5V.sym
C 700 5700 1 90 0 resistor-1.sym
{
T 300 6000 5 10 0 0 90 0 1
device=RESISTOR
T 400 6500 5 10 1 1 180 0 1
refdes=R1
T 400 5900 5 10 1 1 0 6 1
value=1k
T 700 5700 5 10 0 0 0 0 1
footprint=RESC1608X55N.lht
}
N 1600 5700 600 5700 4
C 8800 2100 1 90 0 capacitor-1.sym
{
T 8100 2300 5 10 0 0 90 0 1
device=CAPACITOR
T 8500 2700 5 10 1 1 0 6 1
refdes=C1
T 7900 2300 5 10 0 0 90 0 1
symversion=0.1
T 8500 2400 5 10 1 1 180 0 1
value=100nF
T 8800 2100 5 10 0 1 0 0 1
footprint=CAPC1608X92N.lht
}
C 8400 3000 1 0 0 5V.sym
C 8500 1900 1 0 0 GND.sym
C 9600 2100 1 90 0 capacitor-1.sym
{
T 8900 2300 5 10 0 0 90 0 1
device=CAPACITOR
T 8700 2300 5 10 0 0 90 0 1
symversion=0.1
T 9600 2100 5 10 0 1 0 0 1
footprint=CAPC1608X92N.lht
T 9300 2700 5 10 1 1 0 6 1
refdes=C2
T 9300 2400 5 10 1 1 180 0 1
value=100nF
}
C 9200 3000 1 0 0 5V.sym
C 9300 1900 1 0 0 GND.sym
C 1400 2500 1 0 0 5V.sym
N 1300 1600 3400 1600 4
N 3400 2000 2300 2000 4
{
T 3300 2000 5 10 1 1 0 6 1
netname=SDA
}
N 2300 2000 2300 2600 4
N 1600 6500 1000 6500 4
{
T 1400 6500 5 10 1 1 0 6 1
netname=SDA
}
N 1600 6900 1000 6900 4
{
T 1400 6900 5 10 1 1 0 6 1
netname=SCL
}
C 1200 7200 1 0 0 nc-left-1.sym
{
T 1100 7600 5 10 0 0 0 0 1
value=NoConnection
T 1100 8000 5 10 0 0 0 0 1
device=DRC_Directive
T 1100 8400 5 10 0 0 0 0 1
symversion=1.1
}
C 1200 6000 1 0 0 nc-left-1.sym
{
T 1100 6400 5 10 0 0 0 0 1
value=NoConnection
T 1100 6800 5 10 0 0 0 0 1
device=DRC_Directive
T 1100 7200 5 10 0 0 0 0 1
symversion=1.1
}
C 11200 7200 1 0 0 nc-right-1.sym
{
T 11300 7700 5 10 0 0 0 0 1
value=NoConnection
T 11300 7900 5 10 0 0 0 0 1
device=DRC_Directive
T 11300 8500 5 10 0 0 0 0 1
symversion=1.1
}
C 11200 6800 1 0 0 nc-right-1.sym
{
T 11300 7300 5 10 0 0 0 0 1
value=NoConnection
T 11300 7500 5 10 0 0 0 0 1
device=DRC_Directive
T 11300 8100 5 10 0 0 0 0 1
symversion=1.1
}
C 11200 6400 1 0 0 nc-right-1.sym
{
T 11300 6900 5 10 0 0 0 0 1
value=NoConnection
T 11300 7100 5 10 0 0 0 0 1
device=DRC_Directive
T 11300 7700 5 10 0 0 0 0 1
symversion=1.1
}
C 11200 6000 1 0 0 nc-right-1.sym
{
T 11300 6500 5 10 0 0 0 0 1
value=NoConnection
T 11300 6700 5 10 0 0 0 0 1
device=DRC_Directive
T 11300 7300 5 10 0 0 0 0 1
symversion=1.1
}
C 11200 5600 1 0 0 nc-right-1.sym
{
T 11300 6100 5 10 0 0 0 0 1
value=NoConnection
T 11300 6300 5 10 0 0 0 0 1
device=DRC_Directive
T 11300 6900 5 10 0 0 0 0 1
symversion=1.1
}
C 8900 10000 1 0 0 5V.sym
N 5800 7900 7000 7900 4
{
T 6200 7900 5 10 1 1 0 0 1
netname=D0+
}
N 7000 7500 5800 7500 4
{
T 6500 7500 5 10 1 1 0 6 1
netname=D0-
}
N 5800 7100 7000 7100 4
{
T 6200 7100 5 10 1 1 0 0 1
netname=D1+
}
N 7000 6700 5800 6700 4
{
T 6500 6700 5 10 1 1 0 6 1
netname=D1-
}
N 5800 6300 7000 6300 4
{
T 6200 6300 5 10 1 1 0 0 1
netname=D2+
}
N 7000 5900 5800 5900 4
{
T 6500 5900 5 10 1 1 0 6 1
netname=D2-
}
N 5800 5500 7000 5500 4
{
T 6200 5500 5 10 1 1 0 0 1
netname=CK+
}
N 7000 5100 5800 5100 4
{
T 6500 5100 5 10 1 1 0 6 1
netname=CK-
}
B 0 0 12100 11000 3 10 1 0 -1 -1 0 -1 -1 -1 -1 -1
T 100 9600 9 10 1 0 0 0 4
- only video (and sound) are forwarded
- DDC limited to statically programmed EDID
- HPD, CEC, HEAC (ARC/HEC), CBUS (MHL) are blocked
- HDCP is not supported (limited DDC)
T 9500 8900 9 10 1 0 0 0 4
allows 5V forward if monitor
does not detect device.
cut trace between pads
for ultimate security
T 600 5000 9 10 1 0 0 0 3
indicates
monitor
presence
T 4700 2200 9 10 1 0 0 0 2
programm with EDID data
from protected monitor
T 9700 2800 9 10 1 0 0 0 3
decoupling
capacitors:
U1-VCC, J1-5V
N 9100 10000 9100 9800 4
N 9100 8800 9100 8700 4
N 9100 9800 9400 9800 4
N 9400 9800 9400 8800 4
N 9400 8800 9100 8800 4
C 11200 4300 1 0 1 HYC109-HDMIA19-160.sym
{
T 11200 4300 5 8 0 0 0 6 1
footprint=CONNECTOR_HYC109-HDMIA19-160.lht
T 10800 8360 5 10 1 1 0 6 1
refdes=J2
T 8240 4640 5 10 1 1 0 8 1
device=HYC109-HDMIA19-160
T 7400 8400 5 10 1 1 0 0 1
value=monitor
T 11200 4300 5 10 0 0 0 0 1
lcsc-sku=C711355
}
C 1500 400 1 0 0 GND.sym
C 1700 1600 1 90 0 resistor-1.sym
{
T 1300 1900 5 10 0 0 90 0 1
device=RESISTOR
T 1800 2000 5 10 1 1 0 0 1
refdes=R4
T 1700 1600 5 10 0 0 270 0 1
footprint=RESC1608X55N.lht
T 1800 1800 5 10 1 1 0 0 1
value=10k-100k
}
N 3400 2400 2600 2400 4
{
T 3300 2400 5 10 1 1 0 6 1
netname=SCL
}
N 2600 2400 2600 2600 4
N 1300 1600 1300 600 4
N 1300 600 1600 600 4
T 1100 400 9 10 1 0 90 0 2
cut trace between pads
to enable write protection
C 9200 8800 1 0 1 jumper-1.sym
{
T 8900 9300 5 8 0 0 0 6 1
device=JUMPER
T 8900 9400 5 10 1 1 0 6 1
refdes=R5
T 9200 8800 5 10 0 0 0 6 1
footprint=RESC1608X55N.lht
T 9400 9700 5 10 1 1 270 2 1
value=CUTLINK
}
C 1500 600 1 0 0 jumper-1.sym
{
T 1800 1100 5 8 0 0 0 0 1
device=JUMPER
T 1700 1200 5 10 1 1 0 0 1
refdes=R6
T 1500 600 5 10 0 0 0 0 1
footprint=RESC1608X55N.lht
T 1500 700 5 10 1 1 90 0 1
value=CUTLINK
}