Skip to the content
PCBKitNew board
2 layers398.2 × 398.2 mmLargeWordClock LargeKickstarter, the printed circuit board in 3D

LargeWordClock LargeKickstarter

PCBench/PCBench21

resolution = [0.5, 0.5] pcbfolder = '../PCBs/' pcbnames = ["1Bitsy1bitsy"] iters = 30 env = PCBRoutingEnv(resolution=resolution, pcbfolder=pcbfolder, pcbnames=pcbnames) obs, info = env.reset() for in range(iters): act =…

Size
398.2 × 398.2 mm
Copper layers
2
Thickness
1.6 mm
Parts
1,591
Nets
152
Pads
2,496
Tracks, vias
7,882, 607
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
28 Mar 2023
Updated
18 Jan 2024

Overview

LargeWordClock LargeKickstarter is an open-source printed circuit board by PCBench, from the PCBench/PCBench repository on GitHub, published under the MIT licence. It is a 2-layer board of 398.2 × 398.2 mm with 1,591 parts on 152 nets, routed with 7,882 tracks and 607 vias.

It is built around the HT16K33 and DS3231S#. Its parts include 20 resistors, 12 ICs, 8 capacitors, 6 diodes and 5 connectors. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

2

README

README.md

PCBench: A Dataset for Printed Circuit Board Routing

PCBench is a dataset for PCB routing task, it includes a dataset consisting of 164 printed circuit boards (PCB), a data augmentation script to expand the dataset for supervised learning (SL) tasks, and a reinforcement learning (RL) environment.

Dataset

Folder Structure

All the PCB designs in our dataset are stored in the folder PCBs, where each PCB design is stored in a subfolder named {author/org}_{PCB_name}_{design_version(optional)}. Below is the folder structure of the dataset.

text
├── PCBs
│   ├── master_metadata.json
│   ├── subfolder1
│   │   ├── raw.kicad_pcb
│   │   ├── processed.kicad_pcb
│   │   ├── final.json
│   │   ├── metadata.json
│   │   ├── visual.png
│   ├── subfolder2
│   │   ├── raw.kicad_pcb
│   │   ├── processed.kicad_pcb
│   │   ├── final.json
│   │   ├── metadata.json
│   │   ├── visual.png
│   ├── ...

The raw.kicad_pcb is the raw PCB design file, process.kicad_pcb is the file after cleaning up, final.json stores only routing-related information used for ML tasks. metadata.json stores the meta information for each single PCB design. visual.png is a visualization of each single PCB design. master_meta.json contains metadata of all PCBs and global-level information.

PCB Routing Description Language (PCB-RDL)

We propose a JSON specification (final.json for each PCB design) called the PCB Routing Description Language (PCB-RDL) that expresses a PCB routing problem and its solutions intuitively using basic concepts in order to facilitate research into automated PCB routing using ML. Following figure shows is an example of PCB with marked components in PCB-RDL (Left) and it corrsponding PCB-RDL (Right).

PCB example

Data Augmentation

Run

The augmentation data can be generated with the script Scripts/Data_augmentation/augmentation.py. To generate 3 samples by randomly extracting 50% nets from the PCB 1Bitsy_1bitsy, please run the following command

text
cd Scripts/Data_augmentation/
python augmentation.py --num_samples 3 --net_ratio 0.5 --pcb_name 1Bitsy_1bitsy

Output

All the generated PCBs will be stored in the folder named augmented_data under Scripts/Data_augmentation/. In augmented_data, all the generated samples will be stored in a subfolder with the name of selected PCB. Each generated sample has the name sample_index.json. For example, the above command will generate the following file under Scripts/Data_augmentation/

text
├── augmented_data
│   ├── 1Bitsy_1bitsy
│   │   ├── 1.json
│   │   ├── 2.json
│   │   ├── 3.json

RL environment

Installation

The RL environment requires Python >= 3.7. You can simply install the environment with the following commands:

text
git clone https://github.com/PCBench/PCBench.git
cd PCBench
python setup.py install

After installation, open a Python console and type

text
from RLEnv.EnvLayer.PCBRoutingEnv import PCBRoutingEnv

If no error occurs, you have successfully installed the PCB routing environment.

API Usage

The following content shows an example of API usage of PCBRoutingEnv.

text
from RLEnv.EnvLayer.PCBRoutingEnv import PCBRoutingEnv
import random

resolution = [0.5, 0.5]
pcb_folder = '../PCBs/'
pcb_names = ["1Bitsy_1bitsy"]
iters = 30
env = PCBRoutingEnv(resolution=resolution, pcb_folder=pcb_folder, pcb_names=pcb_names)
obs, info = env.reset()
for _ in range(iters):
    act = random.randint(0,5)
    obs, rew, terminal, _, info = env.step(act)
    if terminal:
        env.reset()

You can find more examples of customizing functions of reward and state observation from RLEnv/examples.ipynb.

Parts

1,591
QtyValueFootprintReferences
512LEDLikeClockwork:SMD_LED_PLCC_20-0, 0-1, 0-2, 0-10, 0-11, 0-12, 0-13, 0-14, 0-15, 0-16, 0-17, 0-18, 0-19, 0-20, 0-21, 0-22 +496
1247KLikeClockwork:R_0603_HandSoldering_nossR3, R6, R8, R9, R10, R11, R12, R13, R14, R15, R16, R17
12JUMPERLikeClockwork:solder_jumper_nossJP1, JP2, JP3, JP4, JP5, JP6, JP7, JP8, JP9, JP10, JP11, JP12
9MountingHole_2-5mmLikeClockwork:MountingHole_2-5mmH1, H4, H5, H6, H7, H9, H10, M2, M3
60.1uFLikeClockwork:C_0603_HandSoldering_nossC1, C4, C5, C6, C7, C8
510KLikeClockwork:R_0603_HandSoldering_nossR1, R2, R4, R5, R7
4DIODELikeClockwork:SOD-323nossD2, D3, D4, D5
4HT16K33LikeClockwork:SO28W_nossU1, U4, U10, U12
4HT16K33_BOUTLikeClockwork:HT16K33_BreakoutU5, U6, U9, U11
310KResistors_ThroughHole:Resistor_Horizontal_RM10mmR18, R19, R20
110uFLikeClockwork:nosilk_Elko_vert_11.2x7.5mm_RM2.5_CopperClearC2
11uFLikeClockwork:nosilk_Elko_vert_11.2x7.5mm_RM2.5_CopperClearC3
1ATMEGA328-TQFPadafruit:TQFP32-08U3
1Arduino_NanoLikeClockwork:Arduino_NanoU7
1BATTERYSparkFun-Electromechanical:BATTCOM_20MM_PTHBT1
1CONN_01X02Pin_Headers:Pin_Header_Straight_1x02P2
1CONN_01X03LikeClockwork:osilk_Diode_TO-220_Dual_CommonCathode_Horizontal_LargePadsP1
1CONN_01X05LikeClockwork:Pin_Header_Straight_1x05nossP3
1CONN_01X06LikeClockwork:Pin_Header_Straight_1x06nossP5
1CONN_02X03LikeClockwork:Pin_Header_Straight_2x03nossP4
1DIODEDiodes_ThroughHole:Diode_DO-41_SOD81_Horizontal_RM10D6
1DIODEDiodes_SMD:Diode-SMA_HandsolderingD1
1DS3231LikeClockwork:SOIC-16_7.5x10.3mm_Pitch1.27mmnossU2
1HOURSparkFun-Electromechanical:TACTILE-PTH-SIDEEZSW1
1LOGOLikeClockwork:lc_logo_topG***_2
1LOGOLikeClockwork:power_sectionG***_4
1LOGOLikeClockwork:button_sectionG***_3
1LOGOLikeClockwork:top_matrixG***_6
1LOGOLikeClockwork:bottom_matrixG***_5
1LOGOLikeClockwork:shield_area_2G***_8
1LOGOLikeClockwork:lc_logo_2G***
1LOGOLikeClockwork:nano_sectionG***_7
1LOGOLikeClockwork:proto_areaG***_9
1MINSparkFun-Electromechanical:TACTILE-PTH-SIDEEZSW2
1SOFTSparkFun-Electromechanical:TACTILE-PTH-SIDEEZSW4
1UNO_FOOTPRINTLikeClockwork:shield_footprintU8

The 597 most common of 1,591 parts.

Questions

How big is the LargeWordClock LargeKickstarter PCB?

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

What parts does the LargeWordClock LargeKickstarter use?

1,591 parts, built around the HT16K33 and DS3231S#. 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 LargeWordClock LargeKickstarter KiCad files?

From the PCBench/PCBench repository on GitHub, at the commit this page was made from: the board is PCBs/LargeWordClock_LargeKickstarter/processed.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the LargeWordClock LargeKickstarter design in my own project?

Its repository publishes it under the MIT 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 PCBench/PCBench

12
  • 4 layers95 × 95 mmRaw, the printed circuit board in 3D

    Raw

    PCBench/PCBench

    resolution = [0.5, 0.5] pcbfolder = '../PCBs/' pcbnames = ["1Bitsy1bitsy"] iters = 30 env = PCBRoutingEnv(resolution=resolution, pcbfolder=pcbfolder, pcbnames=pcbnames) obs, info = env.reset() for in range(iters): act =…

    455 parts21MIT
  • 2 layers90 × 90 mmMod12003 mod12003, the printed circuit board in 3D

    Mod12003 mod12003

    PCBench/PCBench

    resolution = [0.5, 0.5] pcbfolder = '../PCBs/' pcbnames = ["1Bitsy1bitsy"] iters = 30 env = PCBRoutingEnv(resolution=resolution, pcbfolder=pcbfolder, pcbnames=pcbnames) obs, info = env.reset() for in range(iters): act =…

    452 parts21MIT
  • 2 layers88.9 × 114.3 mmRaw, the printed circuit board in 3D

    Raw

    PCBench/PCBench

    resolution = [0.5, 0.5] pcbfolder = '../PCBs/' pcbnames = ["1Bitsy1bitsy"] iters = 30 env = PCBRoutingEnv(resolution=resolution, pcbfolder=pcbfolder, pcbnames=pcbnames) obs, info = env.reset() for in range(iters): act =…

    190 parts21MIT
  • 2 layers100 × 100 mmMod1base mod1base, the printed circuit board in 3D

    Mod1base mod1base

    PCBench/PCBench

    resolution = [0.5, 0.5] pcbfolder = '../PCBs/' pcbnames = ["1Bitsy1bitsy"] iters = 30 env = PCBRoutingEnv(resolution=resolution, pcbfolder=pcbfolder, pcbnames=pcbnames) obs, info = env.reset() for in range(iters): act =…

    187 parts21MIT
  • 6 layers117 × 55 mmKiwiSDR PCB kiwi, the printed circuit board in 3D

    KiwiSDR PCB kiwi

    PCBench/PCBench

    resolution = [0.5, 0.5] pcbfolder = '../PCBs/' pcbnames = ["1Bitsy1bitsy"] iters = 30 env = PCBRoutingEnv(resolution=resolution, pcbfolder=pcbfolder, pcbnames=pcbnames) obs, info = env.reset() for in range(iters): act =…

    173 parts21MIT
  • 4 layers143 × 74 mmKitspace lpa96, the printed circuit board in 3D

    Kitspace lpa96

    PCBench/PCBench

    resolution = [0.5, 0.5] pcbfolder = '../PCBs/' pcbnames = ["1Bitsy1bitsy"] iters = 30 env = PCBRoutingEnv(resolution=resolution, pcbfolder=pcbfolder, pcbnames=pcbnames) obs, info = env.reset() for in range(iters): act =…

    161 parts21MIT
  • 2 layers101.6 × 99.7 mmRaw, the printed circuit board in 3D

    Raw

    PCBench/PCBench

    resolution = [0.5, 0.5] pcbfolder = '../PCBs/' pcbnames = ["1Bitsy1bitsy"] iters = 30 env = PCBRoutingEnv(resolution=resolution, pcbfolder=pcbfolder, pcbnames=pcbnames) obs, info = env.reset() for in range(iters): act =…

    158 parts21MIT
  • 4 layers36.1 × 32.7 mmKitspace tri panel 4up r0.1, the printed circuit board in 3D

    Kitspace tri panel 4up r0.1

    PCBench/PCBench

    resolution = [0.5, 0.5] pcbfolder = '../PCBs/' pcbnames = ["1Bitsy1bitsy"] iters = 30 env = PCBRoutingEnv(resolution=resolution, pcbfolder=pcbfolder, pcbnames=pcbnames) obs, info = env.reset() for in range(iters): act =…

    157 parts21MIT
  • 2 layers101.6 × 99.7 mmKarabas nano karabas nano revB, the printed circuit board in 3D

    Karabas nano karabas nano revB

    PCBench/PCBench

    resolution = [0.5, 0.5] pcbfolder = '../PCBs/' pcbnames = ["1Bitsy1bitsy"] iters = 30 env = PCBRoutingEnv(resolution=resolution, pcbfolder=pcbfolder, pcbnames=pcbnames) obs, info = env.reset() for in range(iters): act =…

    147 parts21MIT
  • 4 layers65 × 60 mmReworkctf reworkctf, the printed circuit board in 3D

    Reworkctf reworkctf

    PCBench/PCBench

    resolution = [0.5, 0.5] pcbfolder = '../PCBs/' pcbnames = ["1Bitsy1bitsy"] iters = 30 env = PCBRoutingEnv(resolution=resolution, pcbfolder=pcbfolder, pcbnames=pcbnames) obs, info = env.reset() for in range(iters): act =…

    143 parts21MIT
  • 2 layers99.1 × 99.1 mmRaw, the printed circuit board in 3D

    Raw

    PCBench/PCBench

    resolution = [0.5, 0.5] pcbfolder = '../PCBs/' pcbnames = ["1Bitsy1bitsy"] iters = 30 env = PCBRoutingEnv(resolution=resolution, pcbfolder=pcbfolder, pcbnames=pcbnames) obs, info = env.reset() for in range(iters): act =…

    77 parts21MIT
  • 2 layers645.9 × 78.2 mmAnalog esr meter esr meter rev a, the printed circuit board in 3D

    Analog esr meter esr meter rev a

    PCBench/PCBench

    resolution = [0.5, 0.5] pcbfolder = '../PCBs/' pcbnames = ["1Bitsy1bitsy"] iters = 30 env = PCBRoutingEnv(resolution=resolution, pcbfolder=pcbfolder, pcbnames=pcbnames) obs, info = env.reset() for in range(iters): act =…

    71 parts21MIT

Similar boards

  • 2 layers179.1 × 67.9 mmControl Board, the printed circuit board in 3D

    Control Board

    Alan-JH/PCB-Heater

    Reflow hotplate PCB design

    77 parts6
  • 2 layers58.3 × 30.4 mmMatrixLed, the printed circuit board in 3D

    MatrixLed

    FrizzyElectronics/MatrixLed8x8

    An 8x8 Matrix Led based on the I2C chip ht16k33

    144 parts1
  • 2 layers91 × 154.9 mmPanel, the printed circuit board in 3D

    Panel

    TrojanPinata/Model-C

    Calculator-numpad hybrid - work in progress

    269 parts1GPL-3.0
  • 4 layers100 × 100 mmJhl synth0, the printed circuit board in 3D

    Jhl synth0

    koyoi/jhl_synth0_pcb

    218 parts
  • 2 layers50 × 67 mm7seg htk16k33, the printed circuit board in 3D

    7seg htk16k33

    llegoff/7seg_htk16k33

    4*7 segments diplay + keyboard, drived by Holtek HT16K33

    45 parts
  • 2 layers70 × 54 mmClock, the printed circuit board in 3D

    Clock

    Pesc0/Clock

    A digital clock with a 7 segment display, attiny85, DS3231 and a lot of cool features

    30 partsGPL-3.0
  • 2 layers499.7 × 124.5 mmController, the printed circuit board in 3D

    Controller

    VoltMusic/OB-SX-Programmer-and-Interface

    This contains the Arduino code and KiCAD project file for creating a OB-SX Programmer and Interface.

    157 parts
  • 2 layers25.4 × 25.4 mmDesign files 8x8, the printed circuit board in 3D

    Design files 8x8

    aspro648/KiCad

    My design files. Abandon all hope ye who enter here.

    14 parts33