
Pilkbrain
cr1tbit/pilkbrain
The schematic is still a bit messy, just for the reference for now.

超老电子通行证:基于zynq7010的LJ64H034 平板电脑/显示器
Elpass is an open-source printed circuit board by inapp123, from the inapp123/elPass_hardware repository on GitHub, published under the CERN-OHL-P-2.0 licence. It is a 4-layer board of 72.4 × 70.2 mm with 214 parts on 376 nets, routed with 5,387 tracks and 840 vias.
It is built around the USB3320C-EZK-TR, TF-123-ARP9H17 and TXS0108EPW, with the EA3059QDR, TPS563201 and ZX-SH1.0-8PLT among its other parts. Its parts include 106 capacitors, 71 resistors, 12 ICs, 6 inductors and 4 transistors. It belongs with the FPGA and CPLD boards of this library.
An open-source EL display controller built on the Xilinx Zynq-7010.
ePass EL drives an electroluminescent (EL) panel from a Zynq-7010 SoC, pairing PS-side Linux with PL-side panel timing so you get a real compositor on top of a display technology that usually only sees bit-banged microcontroller drivers. HDMI in/out, WiFi/BT, USB host, a resistive touchscreen, and USB-C PD power all live on a single self-designed four-layer board.
Rhodes Island Engineering Dept. (c) 1097 — because every ruler needs a screen.
| Subsystem | State |
|---|---|
| PCB (4-layer) | Fabricated and bring-up tested. Working hardware. |
| FPGA / Linux | Architecture defined; EL driver + DRM compositor in progress |
| Enclosure | 2-piece FDM/resin shell, parametric (build123d), in design |
This is Rev 1. KiCad 10.0.3 source, schematic dated 2026-05-25.
PCB is designed for JLC04016-3313 stack.1.6mm,3313 imdepend matching.
UD*/LD*/CP*/S) with
1-bit temporal dithering, level-shifted to the panel through dual TXS0108E.D2 to flip it
into a source.flowchart TB
USBC[USB-C In<br/>CH224K PD sink] --> PWR
PWR[EA3059 quad buck<br/>+ TPS563201] -->|1V0 / 1V8 / 1V35 / 3V3 / 5V / 12V| ZYNQ
subgraph ZYNQ[Zynq-7010]
PS[PS<br/>Cortex-A9 + Linux]
PL[PL<br/>EL timing + dither<br/>HDMI TMDS]
end
PS <-->|EMIO SDIO| WIFI[RTL8723BS<br/>WiFi/BT]
PS --> USB[USB3320 ULPI] --> USBA[USB-A Host]
PS --> SD[microSD]
PS <-->|DDR| DDR[MT41K256M16<br/>512 MB DDR3L]
PL -->|level shift| EL[EL Panel]
PL <--> HDMI[HDMI A<br/>sink / source]
PS -->|SPI| TOUCH[XPT2046<br/>resistive touch]USB-C comes in, CH224K trips the source to 12 V, and everything fans out from there. The Zynq rails are brought up in the order the datasheet asks for.
| Rail | Source | Notes |
|---|---|---|
| +5 V | TPS563201 | Buck from VBUS |
| +1.0 V | EA3059 | VCCINT / VCCPINT |
| +1.8 V | EA3059 | VCCAUX / VCCPAUX / MIO bank 1 |
| +1.35 V | EA3059 | DDR3L VCCO_DDR |
| +3.3 V | EA3059 | I/O banks, MIO bank 0, last to rise |
Sequence: 1.0 V → 1.8 V → 1.35 V → 3.3 V
(approx. instant → 22 ms → 41 ms → 55 ms, set by the enable-cap timing).
A MAX811 supervises the last-rising 3.3 V rail and drives PS_POR_B.
Panel budget: 5 V @ 300 mA max, 12 V @ 1.3 A max.
Mode straps live on the MIO pins (see zynq_misc):
| Pins | Value | Meaning |
|---|---|---|
| MIO[6] | 0 | Wait for PLL lock, then run BootROM |
| MIO[8:7] | 2'b10 | 3.3 V on both MIO banks |
| MIO[5:3] | 3'b110 | Boot from SD card |
| MIO[2] | 0 | JTAG chain: cascaded |
PS reference clock is a 50 MHz oscillator. JTAG is broken out on a ZX-SH1.0 header for bring-up.
The interesting part isn't that it runs Linux — it's how the display is shared.
SCM_RIGHTS).LD_PRELOAD, intercepting open/ioctl/mmap
so old framebuffer programs think they own a screen.xf86-video-fbdev runs against the compositor's virtual
framebuffer, keeping the compositor as the sole DRM master.EVIOCGRAB) and a virtual
device is published via uinput/libevdev; the compositor routes events by
overlay visibility. On focus switch, in-flight multitouch slots are cancelled
cleanly (ABS_MT_TRACKING_ID = -1, BTN_TOUCH = 0, SYN_REPORT). A udev rule
(LIBINPUT_IGNORE_DEVICE=1) hides the raw device from X's libinput.This design stands on the shoulders of:
Thanks to everyone who documented Zynq-7010 minimal designs and EL driving so the rest of us didn't have to start from a blank schematic.
CERN-OHL-P.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 36 | 470nF | Capacitor_SMD:C_0201_0603Metric | C32, C33, C35, C36, C37, C38, C40, C41, C44, C45, C108, C109, C115, C116, C117, C118 +20 |
| 17 | 100nF | Capacitor_SMD:C_0201_0603Metric | C3, C84, C86, C87, C88, C89, C90, C91, C92, C93, C94, C95, C98, C100, C101, C102 +1 |
| 12 | 4.7uF | Capacitor_SMD:C_0402_1005Metric | C27, C28, C29, C30, C31, C42, C46, C51, C52, C53, C56, C58 |
| 12 | 47K | Resistor_SMD:R_0402_1005Metric | R25, R40, R41, R42, R43, R44, R68, R77, R78, R79, R80, R81 |
| 10 | 4.7K | Resistor_SMD:R_0402_1005Metric | R30, R31, R32, R56, R65, R66, R69, R71, R72, R73 |
| 10 | 49.9R | Resistor_SMD:R_0402_1005Metric | R47, R57, R58, R59, R60, R61, R62, R63, R64, R85 |
| 9 | 10uF | Capacitor_SMD:C_0805_2012Metric | C1, C2, C7, C8, C9, C10, C68, C113, C114 |
| 9 | 20K | Resistor_SMD:R_0402_1005Metric | R16, R17, R18, R19, R20, R21, R22, R23, R24 |
| 8 | 1uF | Capacitor_SMD:C_0402_1005Metric | C11, C12, C13, C14, C16, C18, C20, C103 |
| 6 | 100uF | Capacitor_SMD:C_1206_3216Metric | C24, C25, C26, C39, C47, C50 |
| 6 | 22uF | Capacitor_SMD:C_0603_1608Metric | C5, C6, C22, C106, C107, C112 |
| 5 | 100K | Resistor_SMD:R_0402_1005Metric | R9, R11, R27, R49, R74 |
| 5 | 47uF | Capacitor_SMD:C_0603_1608Metric | C23, C43, C48, C55, C60 |
| 5 | FTC252012S2R2MBCA | EasyEDA:IND-SMD_L2.5-W2.0_MHCHL2520 | L1, L3, L5, L6, L8 |
| 4 | 10K | Resistor_SMD:R_0402_1005Metric | R4, R28, R82, R83 |
| 4 | 1K | Resistor_SMD:R_0402_1005Metric | R45, R54, R55, R70 |
| 3 | 100nF | EasyEDA:C_0201_0603Metric_WideGap | C85, C96, C97 |
| 3 | AO3400A | Package_TO_SOT_SMD:SOT-23 | Q1, Q2, Q3 |
| 2 | 150K | Resistor_SMD:R_0402_1005Metric | R6, R15 |
| 2 | 1N5819WS | Diode_SMD:D_SOD-323 | D2, D3 |
| 2 | 200K | Resistor_SMD:R_0402_1005Metric | R7, R26 |
| 2 | 330R | Resistor_SMD:R_0402_1005Metric | R29, R67 |
| 2 | 470nF | EasyEDA:C_0201_0603Metric_WideGap | C34, C66 |
| 2 | 80K | Resistor_SMD:R_0402_1005Metric | R5, R75 |
| 2 | 80R | Resistor_SMD:R_0201_0603Metric | R50, R51 |
| 2 | TBD(NC) | Capacitor_SMD:C_0402_1005Metric | C104, C105 |
| 2 | TXS0108EPW | Package_SO:TSSOP-20_4.4x6.5mm_P0.65mm | U13, U15 |
| 1 | 0R | Resistor_SMD:R_0805_2012Metric | R12 |
| 1 | 120R | Inductor_SMD:L_0603_1608Metric | FB1 |
| 1 | 240R | Resistor_SMD:R_0201_0603Metric | R53 |
| 1 | 3225 24MHz | EasyEDA:OSC-SMD_4P-L3.2-W2.5-BL | X2 |
| 1 | 3225 50MHz | EasyEDA:OSC-SMD_4P-L3.2-W2.5-BL | X1 |
| 1 | 450K | Resistor_SMD:R_0402_1005Metric | R13 |
| 1 | 56.2K | Resistor_SMD:R_0402_1005Metric | R3 |
| 1 | 8.06K | Resistor_SMD:R_0402_1005Metric | R46 |
| 1 | 80R | EasyEDA:C_0201_0603Metric_WideGap | R52 |
| 1 | BW2.4MNX3216 | EasyEDA:ANT-SMD_L3.4-W1.8_BW2.4MNX3216 | L7 |
| 1 | Conn_01x04 | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Horizontal | J5 |
| 1 | Conn_02x10_Odd_Even | Connector_PinSocket_2.00mm:PinSocket_2x10_P2.00mm_Vertical | J6 |
| 1 | DC002-1.3 | EasyEDA:DC-IN-TH_DC002-1.3 | DC1 |
| 1 | EA3059 | EasyEDA:VQFN-24_L4.0-W4.0-P0.50-TL-EP2.5 | U3 |
| 1 | HDMI_A | Connector_Video:HDMI_A_Molex_208658-1001_Horizontal | J2 |
| 1 | LED | LED_SMD:LED_0603_1608Metric | D1 |
| 1 | LOGO | EasyEDA:kigcad | G*** |
| 1 | MAX811TEUS-T | Package_TO_SOT_SMD:SOT-143 | U5 |
| 1 | MLT-5020 | EasyEDA:BUZ-SMD_L5.0-W5.5-P4.60 | BUZZER1 |
| 1 | MT41K256M16TW | EasyEDA:BGA-96_P0.8mm_NoPaste | U9 |
| 1 | RL-SM02BD-RTL8723BS | EasyEDA:WIRELM-SMD_RL-SM02BD-RTL8723BS | U7 |
| 1 | SS8050 | Package_TO_SOT_SMD:SOT-23 | Q4 |
| 1 | TBD(0R) | Resistor_SMD:R_0402_1005Metric | R76 |
| 1 | TF-123-ARP9H17 | EasyEDA:TF-SMD_TF-123-ARP9H15 | U14 |
| 1 | TPS563201 | Package_TO_SOT_SMD:SOT-23-6 | U1 |
| 1 | TS-1088-AR02016 | EasyEDA:SW-SMD_L3.9-W3.0-P4.45 | SW1 |
| 1 | TS24CA | EasyEDA:SW-SMD_2P-TS24CA | SW2 |
| 1 | USB3320C-EZK-TR | EasyEDA:QFN-32_L5.0-W5.0-P0.50-BL-EP3.4 | U8 |
| 1 | USB_A | Connector_USB:USB_A_Molex_67643_Horizontal | J3 |
| 1 | XPT2046TS | Package_SO:TSSOP-16_4.4x5mm_P0.65mm | U6 |
| 1 | ZX-SH1.0-8PLT | EasyEDA:CONN-SMD_8P-P1.00_MEGASTAR_ZX-SH1.0-8PLT | U12 |
| 1 | xc7z010clg400 | EasyEDA:Xilinx_CLG400_NoPaste_JLC_Package_Delay | U4 |
It measures 72.4 × 70.2 mm and has 4 copper layers, 1.6 mm thick.
214 parts, built around the USB3320C-EZK-TR, TF-123-ARP9H17, TXS0108EPW and EA3059QDR. 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.
From the inapp123/elPass_hardware repository on GitHub, at the commit this page was made from: the board is elpass.kicad_pcb and its schematic elpass.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the CERN-OHL-P-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).

cr1tbit/pilkbrain
The schematic is still a bit messy, just for the reference for now.


carlosgj94/vesta-wildfire-detection-hardware
Vesta is an early-stage project to build an open source hardware device for wildfire detection. The hardware design is being done in KiCad, with the goal of making a device that is easy to manufacture, cheap to deploy…

JulienKluge/Clock-odial
Clock-odial is a PCB featuring a ECP5 fpga for frequency/clock signal processing

JunKimmmy/USBPowerMeter
A compact USB-C passthrough power meter that displays real-time voltage, current, and power on an integrated 128×64 OLED screen.

Pwnsat/PWNCUBE
PWNCUBE v1.0 is a Cubesat hardware based platform for aerospace cybersecurity research

