

PicoX21H
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
3TL072
SOP-8-18V~18V 0℃~+70℃ 1.4mA 1.5nA 10V/us 10mV 2 2.5nA 3MHz 85dB SOP-8 Operational Amplifier ROHSGcoreOperational AmplifierH11L1
DIP-6-55℃~+100℃ 1 1.6mA 1Mbit/s 250mW 3V~15V 5kV DC DIP-6 Logic Output Optoisolators ROHSEverlight ElectronicsLogic Output Optoisolators2N2222A
TO-92-55℃~+150℃ 1 NPN 100MHz 100nA 400 40V 5V 600mA 600mV 625mW NPN TO-92 Bipolar (BJT) ROHSSlkorBipolar (BJT)
README
README.mdPDK
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
Libraries
Embedded application support libraries
| Library | Purpose |
|---|---|
| TGT | Target support: toolchains, vector tables, linker scripts, loadable image generation, and build macros. |
| UCL | Small standard C library subset for embedded builds. |
| MTL | Bare metal support for microcontrollers: MCU bringup, clocks, UARTs, timers, I2C, SPI etc. |
| TNY | Additional standard C library support dependent on MTL for I/O. |
| HWR | Hardware configuration layer for reusable board/product APIs and native simulation variants. |
General purpose libraries for host and embedded applications
| Library | Purpose |
|---|---|
| STB | Static data structures and utility types for limited-memory code. |
| USB | USB descriptors and support utilities. |
| SIG | Signal processing and synthesis. |
| MIDI | MIDI protocol support. |
| GUI | Simple GUI and 2D rendering. |
| TRM | Lightweight terminal/curses-style interface. |
Host OS abstraction libraries
| Library | Purpose |
|---|---|
| PLT | Platform 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.
mkdir MyProject
cd MyProject
git init .
git submodule add https://github.com/SloeComputers/PDK.git
cd PDK
make templateThe project template installer should run..
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.
cd ..
git add .
git commit -m Initial
makeRun the example application just built. (Try with -v and -h too)
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...
sudo apt-get install cmake
sudo apt-get install libsdl2-devmacOS
One of the primary target platforms.
Depend on SDL2, so a development install of SDL2 is required.
Typically the following packages will be required...
brew update
brew install cmake
brew install sdl2Kindle3
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...
sudo apt-get install cmake
sudo apt-get install g++-4.7Browser (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-formatfor specific naming and formatting preferences.
Parts
22| Qty | Value | Footprint | References |
|---|---|---|---|
| 3 | 33k | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R2, R4, R9 |
| 2 | 22nF | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mm | C1, C4 |
| 2 | Debug | Connector:FanPinHeader_1x03_P2.54mm_Vertical | J2, J4 |
| 1 | 1.8k | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R6 |
| 1 | 1N4001 | Diode_THT:D_DO-41_SOD81_P10.16mm_Horizontal | D1 |
| 1 | 1nF | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mm | C3 |
| 1 | 2.2k | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R8 |
| 1 | 220 | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R1 |
| 1 | 220k | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R5 |
| 1 | 220pF | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mm | C2 |
| 1 | 27k | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R3 |
| 1 | 2N2222A | Package_TO_SOT_THT:TO-92 | Q1 |
| 1 | 47k | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R7 |
| 1 | H11L1 | Package_DIP:DIP-6_W7.62mm_LongPads | U3 |
| 1 | Pico 2 (RP2350) | Package_DIP:DIP-40_W25.4mm_Socket | U1 |
| 1 | RST | Button_Switch_THT:SW_PUSH_6mm_H5mm | SW1 |
| 1 | Stereo line out | Connector_Audio:Jack_3.5mm_CUI_SJ1-3523N_Horizontal | J3 |
| 1 | TL072 | Package_DIP:DIP-8_W7.62mm_Socket | U2 |
More from SloeComputers/PDK
1- 2 layers13 × 1.4 mm

Similar boards
- 2 layers100 × 100 mm

- 4 layers87.6 × 84 mm

Flashover
Cherry-Blossom-Development/GreywireStudio
GreywireStudio - a combined software/hardware product
95 parts - 2 layers141 × 150 mm

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 mm

- 4 layers71.1 × 100 mm

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 mm

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 mm

- 2 layers101.5 × 83 mm

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).