Skip to the content
4 layers73.1 × 97.6 mmUlp daughterboard, the printed circuit board in 3D

KiCad project files for a hardware CTF challenge used during the 2026 ULP CTF. The board is meant to be used with the ch32v203-dev development board.

Size
73.1 × 97.6 mm
Copper layers
4
Thickness
1.6 mm
Parts
65
Nets
59
Pads
146
Tracks, vias
167, 4
Pours
4
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
24 Mar 2026
Updated
24 Mar 2026

Overview

Ulp daughterboard is an open-source printed circuit board by Ismael034, from the Ismael034/ulp_daughterboard repository on GitHub. It is a 4-layer board of 73.1 × 97.6 mm with 65 parts on 59 nets, routed with 167 tracks and 4 vias.

It is built around the TS665CJ, 2.54-14P WT and AT24C02N, with the CD4017BE, NE555P and XL-302SURD among its other parts. Its parts include 14 resistors, 10 ICs, 8 diodes and 2 capacitors.

Main components

6

README

README.md

ULP CTF Daughterboard

KiCad project files for a hardware CTF challenge used during the 2026 ULP CTF. The board is meant to be used with the ch32v203-dev development board.

CTF overview

The challenge is split into three small hardware stages, each of which requires the player to interact with the board in a different way:

  • Challenge 1: Stop the LED runner on the requested positions.
  • Challenge 2: Guess a random number generated and written to the EEPROM.
  • Challenge 3: Heat the thermistor and keep it around 80 C long enough to unlock the flag.

Screenshots

Board top Board bottom Board side

BOM

QtyDesignatorsDescriptionFootprint
1C1Polarized capacitorCapacitor_THT:C_Radial_D4.0mm_H7.0mm_P1.50mm
1C2CapacitorCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mm
2H1, H21x20 2.54 mm female headersulp:HDR-TH_20P-P2.54-V-F
8LED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8XL-302SURD red LEDsulp:LED-TH_BD3.8-P2.54-RD
8R1, R2, R3, R4, R6, R7, R9, R10100 Ohm resistorsResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal
4R5, R8, R11, R1410 kOhm resistorsResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal
2R12, R132.2 kOhm resistorsResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal
1U1AT24C02N EEPROMulp:DIP-8_L9.2-W6.3-P2.54-LS7.62-BL
1U21x4 2.54 mm female headerulp:HDR-TH_4P-P2.54-V-F
1U3NE555P timerulp:DIP-8_L9.8-W6.6-P2.54-LS7.6-BL
1U4MF52A1103F3950 NTC thermistorulp:RES-TH_L2.5-W2.5-P1.70-D0.3
5U5, U6, U7, U8, U9TS665CJ tactile switchesulp:SW-TH_4P-L6.0-W6.0-P4.50-LS6.5
1U10CD4017BE decade counterulp:DIP-16_16P-L20.2-W6.6-P2.54-LS7.6-BL

Firmware

The firmware/ directory contains the firmware for the board. It is a CH32V203 project for MounRiver Studio, and the main entry point is firmware/User/app/main.c.

Thermistor interpolation

The firmware in ../firmware/User/board.c converts the NTC resistance into temperature by linearly interpolating between these table points using:

T = T_high + (T_low - T_high) * (R_high - R_ntc) / (R_high - R_low)

Temperature (deg C)Resistance (ohms)
-20.0105385
-15.077898
-10.058246
-5.044026
0.033621
5.025925
10.020175
15.015837
20.012535
25.010000
30.08037
35.06506
40.05301
45.04348
50.03588
55.02978
60.02486
65.02086
70.01760
75.01492
80.01270
85.01087
90.0934
95.0805
100.0698

Parts

65
QtyValueFootprintReferences
8100ΩResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1, R2, R3, R4, R6, R7, R9, R10
8G***kibuzzard-699E2E42kibuzzard-699E2E42, kibuzzard-699E2E42, kibuzzard-699E2E42, kibuzzard-699E2E42, kibuzzard-699E2E42, kibuzzard-699E2E42, kibuzzard-699E2E42, kibuzzard-699E2E42
8XL-302SURDulp:LED-TH_BD3.8-P2.54-RDLED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8
5TS665CJulp:SW-TH_4P-L6.0-W6.0-P4.50-LS6.5U5, U6, U7, U8, U9
410kΩResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR5, R8, R11, R14
22.2kΩResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR12, R13
2G***kibuzzard-699E2B87kibuzzard-699E2B87, kibuzzard-699E2B87
2PH2_54-1X20P-H25ulp:HDR-TH_20P-P2.54-V-FH1, H2
12_54-1*4P母ulp:HDR-TH_4P-P2.54-V-FU2
1AT24C02Nulp:DIP-8_L9.2-W6.3-P2.54-LS7.62-BLU1
1CCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mmC2
1CD4017BEulp:DIP-16_16P-L20.2-W6.6-P2.54-LS7.6-BLU10
1C_PolarizedCapacitor_THT:C_Radial_D4.0mm_H7.0mm_P1.50mmC1
1G***kibuzzard-699E303Bkibuzzard-699E303B
1G***kibuzzard-699E2A42kibuzzard-699E2A42
1G***kibuzzard-699E319Dkibuzzard-699E319D
1G***kibuzzard-699E3291kibuzzard-699E3291
1G***kibuzzard-699E3287kibuzzard-699E3287
1G***kibuzzard-699E29EFkibuzzard-699E29EF
1G***kibuzzard-699E318Ekibuzzard-699E318E
1G***kibuzzard-69B887D4kibuzzard-69B887D4
1G***kibuzzard-699E2A53kibuzzard-699E2A53
1G***kibuzzard-699E31AAkibuzzard-699E31AA
1G***kibuzzard-699E3181kibuzzard-699E3181
1G***kibuzzard-699E2A0Bkibuzzard-699E2A0B
1G***kibuzzard-699E2BEBkibuzzard-699E2BEB
1G***kibuzzard-699E2B6Fkibuzzard-699E2B6F
1G***kibuzzard-699E3164kibuzzard-699E3164
1G***kibuzzard-699E3125kibuzzard-699E3125
1G***kibuzzard-699E316Ckibuzzard-699E316C
1G***kibuzzard-699E302Bkibuzzard-699E302B
1G***kibuzzard-699E3177kibuzzard-699E3177
1MF52A1103F3950(P334-4)ulp:RES-TH_L2.5-W2.5-P1.70-D0.3U4
1NE555Pulp:DIP-8_L9.8-W6.6-P2.54-LS7.6-BLU3

Similar boards

  • 2 layers112 × 158 mmHello, the printed circuit board in 3D

    Hello

    HeyPCB/hello-8051

    HELLO: a tiny 8051 computer shaped like a 1984 desktop. AT89S52, 32 KB SRAM, 128x64 ST7920 LCD, USB-C. 112 x 158 mm 2-layer KiCad 10 board, DRC clean, firmware that writes hello. Built through HeyPCB's MCP server.

    27 partsMIT
  • 2 layers131.5 × 83.5 mmBadge esp32-s3, the printed circuit board in 3D

    Badge esp32-s3

    BYU-I-eBadge/e-badge

    A hackable eBadge platform for students — a customizable, programmable electronics badge designed for hands-on learning and creative exploration throughout their academic journey.

    218 parts2MIT
  • 4 layers176 × 56 mm2.12 Mobile Robot, the printed circuit board in 3D

    2.12 Mobile Robot

    jntaimo/2.12-PCB

    This is the PCB design for the MIT Intro to Robotics class 2.12

    82 parts
  • 4 layers250 × 140 mmThermocouple 8ch, the printed circuit board in 3D

    Thermocouple 8ch

    mahmoud-elghamry/thermocouple

    This directory is a self-contained KiCad 10 project. It does not share files with, and must not be confused with, the single-channel board in hardware/single-channel/.

    209 parts1
  • 2 layers98.2 × 98.1 mmBlinky, the printed circuit board in 3D

    Blinky

    Almo-ond-tech/Flower-Blinky

    I made a clover shaped pcb-board with LEDs

    25 parts
  • 2 layers160 × 25 mmKitt sweeper, the printed circuit board in 3D

    Kitt sweeper

    confusedCoyote/PCB-15cm-ruler

    A Printed Circuit Board ruler with some helpful hints

    26 partsGPL-3.0
  • 2 layers29.2 × 1.5 mmRGB Ringlight, the printed circuit board in 3D

    RGB Ringlight

    Darexsh/RGB-Ringlight

    Discrete RGB LED chaser ring powered by an NE555 astable clock and CD4017 counter. 24 LEDs arranged in a circular RGB sequence with variable chase speed.

    57 partsMIT
  • 2 layers76.2 × 41 mmLED chaser, the printed circuit board in 3D

    LED chaser

    emnguynhoccode/KiCad_LED_Chaser_202514301

    20 parts

Questions

How big is the Ulp daughterboard PCB?

It measures 73.1 × 97.6 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Ulp daughterboard use?

65 parts, built around the TS665CJ, 2.54-14P WT, AT24C02N and CD4017BE. 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 Ulp daughterboard KiCad files?

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

Can I use the Ulp daughterboard design in my own project?

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