Skip to the content
2 layers13 × 1.4 mmPicoX21H, the printed circuit board in 3D

Portable Development Kit

Size
13 × 1.4 mm
Copper layers
2
Thickness
1.6 mm
Parts
22
Nets
60
Pads
103
Tracks, vias
0, 0
Routed
Not yet
KiCad
KiCad 7 (file 20221018)
Created
6 Jul 2017
Updated
27 Sep 2026

Overview

PicoX21H is an open-source printed circuit board by SloeComputers, from the SloeComputers/PDK repository on GitHub, published under the MIT licence. It is a 2-layer board of 13 × 1.4 mm with 22 parts on 60 nets.

It is built around the TL072, H11L1 and 2N2222A. Its parts include 9 resistors, 4 capacitors, 3 ICs, 3 connectors and 1 diode. It belongs with the computers and single-board computers boards and the RP2040 and RP2350 boards of this library.

Main components

3

README

README.md

PDK

PDK is a Portable Development Kit for C++ host and embedded applications. It is intended to be used as a git submodule inside application projects.

Status

Build Status

Libraries

Embedded application support libraries

LibraryPurpose
TGTTarget support: toolchains, vector tables, linker scripts, loadable image generation, and build macros.
UCLSmall standard C library subset for embedded builds.
MTLBare metal support for microcontrollers: MCU bringup, clocks, UARTs, timers, I2C, SPI etc.
TNYAdditional standard C library support dependent on MTL for I/O.
HWRHardware configuration layer for reusable board/product APIs and native simulation variants.

General purpose libraries for host and embedded applications

LibraryPurpose
STBStatic data structures and utility types for limited-memory code.
USBUSB descriptors and support utilities.
SIGSignal processing and synthesis.
MIDIMIDI protocol support.
GUISimple GUI and 2D rendering.
TRMLightweight terminal/curses-style interface.

Host OS abstraction libraries

LibraryPurpose
PLTPlatform abstraction for display, MIDI, audio etc.

Starting a new project using the PDK

Create a new git project directory and add the PDK as a git submodule.

text
mkdir MyProject
cd MyProject
git init .
git submodule add https://github.com/SloeComputers/PDK.git
cd PDK
make template

The project template installer should run..

text
Project dir [/Users/fred/MyProjects] : <project root directory>
Copyright owner [John D. Haughton] : <copyright owner>
Copyright year [2017] : <copyright year>
User name [SloeComputers] : <GitHub user id>
Application [MyProject] : <name of application>
Version [0.0.0] : <initial version>
Description [Example application] : <application purpose>
Binary [foo] : <filename of application binary>

Install 'CMakeLists.txt' to '<project root directory>'
Install 'LICENSE' to '<project root directory>'
Install 'Makefile' to '<project root directory>'
Install '<filename of application binary>.cpp' to '<project root directory>/Source'
Install 'CMakeLists.txt' to '<project root directory>/Source'
Install 'README.md' to '<project root directory>'
Install '.gitignore' to '<project root directory>'
Install '_config.yml' to '<project root directory>'
Install '.clang-format' to '<project root directory>'
Install 'build_on_push.yml' to '<project root dir>/.github/workflows'

Add the newly instantiated project as an initial git patch then build.

text
cd ..
git add .
git commit -m Initial
make

Run the example application just built. (Try with -v and -h too)

text
build/native/Source/myproject
Hello, world!

The following small projects are using the PDK...

Linux

One of the primary target platforms.

Depend on SDL2, so a development install of SDL2 is required.

Typically the following packages will be required...

text
sudo apt-get install cmake
sudo apt-get install libsdl2-dev

macOS

One of the primary target platforms.

Depend on SDL2, so a development install of SDL2 is required.

Typically the following packages will be required...

text
brew update
brew install cmake
brew install sdl2

Kindle3

Although this is also a Linux build, it does not depend on SDL2.

Requires gcc/g++ built for arm-linux-gnueabihf targets that supports C++11 and a set of headers and static runtime libraries that are compatible with the Linux kernel v2.6.26 installed on the Kindle3.

Using a Raspberry Pi as a build machine for Kindle3

The original ARMv6 Raspberry Pi running a Debian based Linux has been found to be suitable platform to build for Kindle3. But this is far easier if an old version of Rasbian (Wheezy) is used to ensure that libc is compatible with the old kernel on the Kindle.

Other packages required...

text
sudo apt-get install cmake
sudo apt-get install g++-4.7

Browser (via Emscripten)

Uses the SDL2 library supplied with Emscripten.

iOS

Requires access to a source installation of SDL2 which is built into a linSDL2.a as part of the application build process.

Build of an actual app has not been achieved yet, and may not be easily achievable without an Xcode project file.

Android

Requires an NDK installation. Currently builds as a console only app as an integration with an Android build of SDL2 has not been achieved yet.

Coding style

The source is C++ but has the following non-typical for modern C++ features ...

  • Memory is mostly statically or stack allocated in preference to new/delete
  • Very limited STL usage
  • Use of C style stdio API
  • In some places have re-invented the wheel avoiding functionality that is in standard libraries
  • Refer to STYLE.md and the repository .clang-format for specific naming and formatting preferences.

Parts

22
QtyValueFootprintReferences
333kResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR2, R4, R9
222nFCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mmC1, C4
2DebugConnector:FanPinHeader_1x03_P2.54mm_VerticalJ2, J4
11.8kResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR6
11N4001Diode_THT:D_DO-41_SOD81_P10.16mm_HorizontalD1
11nFCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mmC3
12.2kResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR8
1220Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR1
1220kResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR5
1220pFCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mmC2
127kResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR3
12N2222APackage_TO_SOT_THT:TO-92Q1
147kResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR7
1H11L1Package_DIP:DIP-6_W7.62mm_LongPadsU3
1Pico 2 (RP2350)Package_DIP:DIP-40_W25.4mm_SocketU1
1RSTButton_Switch_THT:SW_PUSH_6mm_H5mmSW1
1Stereo line outConnector_Audio:Jack_3.5mm_CUI_SJ1-3523N_HorizontalJ3
1TL072Package_DIP:DIP-8_W7.62mm_SocketU2

More from SloeComputers/PDK

1
  • 2 layers13 × 1.4 mmPicoPloT, the printed circuit board in 3D

    PicoPloT

    SloeComputers/PDK

    Portable Development Kit

    13 parts6MIT

Similar boards

  • 2 layers100 × 100 mmYM2612 MIDI SMD, the printed circuit board in 3D

    YM2612 MIDI SMD

    superjoebob/genny

    YM2612/SN76489 Virtual Instrument

    112 parts96
  • 4 layers87.6 × 84 mmFlashover, the printed circuit board in 3D

    Flashover

    Cherry-Blossom-Development/GreywireStudio

    GreywireStudio - a combined software/hardware product

    95 parts
  • 2 layers141 × 150 mmMidiori, the printed circuit board in 3D

    Midiori

    fabPlane/x68000-midi

    X68000 MIDI and 8 MB RAM expansion card: Gowin GW1NR-9, YM3802-compatible gateware in Amaranth, and a universal I/O slot breakout. CC0.

    92 partsCC0-1.0
  • 4 layers178 × 83.3 mmDeloop lite mk0, the printed circuit board in 3D

    Deloop lite mk0

    hmcty/kicad-ws

    Collection of personal KiCAD projects

    99 partsMIT
  • 4 layers71.1 × 100 mmSTM Module, the printed circuit board in 3D

    STM Module

    mark-mcnulty/wiggle_stm32

    Firmware for a small STM32F1-based audio board: either a LUT-driven oscillator into the onboard DAC, or a short effects chain on whatever comes in on the ADC.

    113 parts
  • 2 layers54 × 83.5 mmDualBoost, the printed circuit board in 3D

    DualBoost

    RolandMueller1994/DualBoost

    This project implements a dual boost guitar effect with MIDI capability based on a state variable filter. MIDI is implemented using a STM32 F030C8T6 microcontroller.

    109 parts
  • 2 layers150 × 150 mmDk2 00, the printed circuit board in 3D

    Dk2 00

    mattybrad/drumkid2

    140 parts12GPL-3.0
  • 2 layers101.5 × 83 mmSd2snes, the printed circuit board in 3D

    Sd2snes

    mrehkopf/sd2snes

    SD card based multi-purpose cartridge for the SNES

    154 parts722GPL-2.0

Questions

How big is the PicoX21H PCB?

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

What parts does the PicoX21H use?

22 parts, built around the TL072, H11L1 and 2N2222A. 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 PicoX21H KiCad files?

From the SloeComputers/PDK repository on GitHub, at the commit this page was made from: the board is HWR/picoX21H/docs/Schematic/picoX21H.kicad_pcb and its schematic HWR/picoSense/docs/Schematic/picoPloT.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the PicoX21H 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).