Skip to the content
2 layers20 × 38.5 mmArm tiny pcb, the printed circuit board in 3D

Ultra-compact USB-C development board powered by STM32F042 (ARM Cortex-M0) with native DFU, ceramic-only LDO power stage & CaveRover branding.

Size
20 × 38.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
29
Nets
32
Pads
119
Tracks, vias
783, 73
Pours
14
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
13 Sep 2026
Updated
28 Oct 2026

Overview

Arm tiny pcb is an open-source printed circuit board by Chicken-Fried, from the Chicken-Fried/STM32-NanoCortex repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is a 2-layer board of 20 × 38.5 mm with 29 parts on 32 nets, routed with 783 tracks and 73 vias.

It is built around the STM32F042F6P6, USBLC6-2SC6 and SKRKAEE020, with the 16-213/BHC-AN1P2/3T, GT-USB-7025 and JK-SMD0603-050-6 among its other parts. Its parts include 8 capacitors, 7 resistors, 3 diodes, 3 connectors and 2 ICs. It belongs with the microcontroller boards boards and the STM32 boards of this library.

Main components

9

README

README.md
CaveRover Logo

⚡ NanoCortex-F042

by CaveRover

Minimalist ARM Cortex-M0 development board — 20 mm × 38.5 mm, native USB-C, crystal-less

KiCad Hardware MCU Maker: CaveRover [blocked] License: CERN-OHL-S-2.0

🇫🇷 Version française · 📄 Schematic (PDF) · 🧰 Getting started · 📌 Pinout

NanoCortex-F042 top view NanoCortex-F042 bottom view with CaveRover branding NanoCortex-F042 3D perspective


A practical, standalone 32-bit development board (20 mm × 38.5 mm), inspired by the minimalist philosophy and straightforward nature of the Arduino ATtiny, but optimized for comfortable benchtop development (devboard). Powered by the STM32F042 (ARM Cortex-M0) with native crystal-less USB-C, a TVS-protected USB input and a ceramic-only 3.3 V power stage.


🌟 Why This Project?

This board was born at the intersection of academic learning, curiosity, and maker passion:

  1. Bridging Theory and Practice: Taking electronic engineering coursework (schematic design, component selection, signal integrity, PCB layout) and applying it to a tangible, physical board.
  2. Stepping into 32-bit Microcontrollers: Moving beyond traditional 8-bit platforms (AVR, ATtiny) into the modern ARM Cortex ecosystem.
  3. Fun & Hobby: A passion-driven learning playground to experiment with USB stacks, low-power modes, and embedded programming.
  4. Giving Back to Open Source: Providing a clean, accessible, and minimal reference design for students, hobbyists, and makers.
  5. Real-World Project Stepping Stone: Serving as the core validation platform for three concrete engineering builds: a dedicated drone telemetry/control subsystem, an audio synthesizer with active analog op-amp (AOP) filtering, and a digitally controlled $\ge$ 40W USB-PD / Buck converter power stage.

✨ Key Features

  • 🧠 Brain: STMicroelectronics STM32F042F6P6 (ARM Cortex-M0 @ 48 MHz, 32 KB Flash, 6 KB RAM).
  • 🔌 Crystal-less USB-C: Employs the internal 48 MHz oscillator (HSI48) paired with Clock Recovery System (CRS) synchronized directly to USB frames—zero external crystal required.
  • 🚀 Zero-Programmer Flashing (Native DFU): Factory ROM USB bootloader built-in. Hold the BOOT button, plug in the USB-C cable, and flash directly with STM32CubeProgrammer or dfu-util—no ST-Link or external programmer strictly required!
  • 📐 Compact Devboard Layout (20 mm × 38.5 mm): Slim form factor with two 9-pin I/O headers on the long sides, and the BOOT / RESET buttons on each side of the USB-C connector.
  • 🛡️ Enhanced USB Protection: SD05-01FTG TVS diode on VBUS, USBLC6-2SC6 on the data lines and a 500 mA resettable polyfuse.
  • ⚡ Stable 3.3 V: ME6211C33M5G-N low-dropout, low-quiescent-current LDO, stable with small ceramic capacitors (no more tantalum).
  • 💡 Two Indicator LEDs: a red 3V3 power LED and an addressable WS2812B-2020-V6 RGB STATUS LED driven from PA0 (native 3.3 V operation with dedicated 100 nF decoupling capacitor C8).
  • 🎛️ Dual Tactile Buttons: On-board RESET and BOOT tactile switches for instant programming mode entry.
  • 🛰️ CaveRover Branding: Features the official 8-bit pixel art CaveRover rover silkscreen emblem and futuristic Anurati typographic markings directly on the PCB.
  • 🛠️ Open-Source & DIY Ready: Standard 2-layer PCB design rules for affordable fabrication and assembly (e.g. JLCPCB).

📋 Specifications

ParameterSpecification
MicrocontrollerSTM32F042F6P6 (TSSOP-20)
Core ArchitectureARM 32-bit Cortex-M0 @ up to 48 MHz
Flash / SRAM32 KB Flash / 6 KB SRAM
Operating Voltage3.3 V logic (Dual power rails exposed: 5 V via USB-C + 3.3 V regulated)
3.3 V RegulatorME6211C33M5G-N (LDO, SOT-23-5) with 2 ceramic capacitors (X7R, 25 V, 0805)
Input ProtectionSD05-01FTG (TVS) + USBLC6-2SC6 (USB data lines) + 500 mA polyfuse
USB InterfaceUSB 2.0 Full Speed (12 Mbps) over USB-C
User I/O12 GPIOs on 2.54 mm headers (9 general-purpose, 1 shared with BOOT0, 2 shared with SWD) + dedicated hardware NRST
Programming & DebugNative USB DFU (ROM bootloader) or full 4-wire SWD (GND, NRST, SWDIO, SWCLK)
On-board LEDsRed 3V3 power LED + WS2812B-2020-V6 RGB status LED (PA0) with 100 nF decoupling capacitor
Dimensions20 mm × 38.5 mm

[blocked]

📌 Pinout

The board has two 9-pin headers (J1 on the left, J2 on the right) and a 2 × 2 power header (J3) at the bottom edge.

HeaderPinSignalMCU pinPrimary & Alternate Functions / Notes
J115V–5.0 V power rail (VBUS post-polyfuse F1, up to 500 mA for drones/op-amps)
2GPIO1PB8Shared with BOOT0 (10 kΩ pull-down). Do not pull HIGH at boot!
3GPIO2PF0OSC_IN / I2C1_SDA
4GPIO3PF1OSC_OUT / I2C1_SCL
5GPIO5PA1ADC_IN1 / TIM2_CH2 / EVENTOUT
6GPIO6PA2USART2_TX / ADC_IN2 / TIM15_CH1 / TIM2_CH3
7GPIO7PA3USART2_RX / ADC_IN3 / TIM15_CH2 / TIM2_CH4
8GPIO8PA4ADC_IN4 / SPI1_NSS / TIM14_CH1
9GND–Ground
J213V3–3.3 V regulated power rail
2GPIO9PA5ADC_IN5 / SPI1_SCK
3GPIO10PA6ADC_IN6 / SPI1_MISO / TIM3_CH1 / TIM16_CH1
4GPIO11PA7ADC_IN7 / SPI1_MOSI / TIM3_CH2 / TIM14_CH1 / TIM17_CH1
5GPIO12PB1ADC_IN9 / TIM3_CH4 / TIM14_CH1
6GND–Ground
7NRSTPin 4Hardware Reset line (supports ST-Link "Connect Under Reset" and remote reset button)
8GPIO15PA13SWDIO (SWD Data) / IR_OUT / USB_NOE
9GPIO16PA14SWCLK (SWD Clock) / USART2_TX
J31–43V3 / GND–2 × 2 header: 2 × 3V3, 2 × GND (auxiliary power breakout)

⚠️ Important Note on PB8 / BOOT0 (GPIO1): Pin 1 of the TSSOP-20 package is shared between BOOT0 and PB8. It is pulled down to GND via $R_7$ (10 kΩ) for normal Flash execution. Any external circuitry attached to GPIO1 that pulls this pin HIGH at reset will force the microcontroller into native USB DFU bootloader mode.

💡 Internal Signals & ADC Allocation:

  • PA0 is dedicated internally to the WS2812B-2020-V6 RGB status LED via $R_6$ (330 Ω). Consequently, analog channel ADC_IN0 is reserved for on-board LED operation. 7 external ADC channels remain freely available on the headers (PA1 to PA7).
  • NRST is wired to the tactile RESET button with a 100 nF debounce capacitor and routed to J2 pin 7 for full debugger control.

🔌 Serial Communication (USART1 vs USART2):

  • For user serial communication (e.g. drone CRSF/SBUS telemetry, debug console, GPS), use USART2 (PA2/PA3) on header J1.
  • On the STM32F042 TSSOP-20 package, USART1 (PA9/PA10) shares physical pins 17 & 18 with native USB Full-Speed (PA11/PA12, USB_DM/USB_DP). When USB is active, USART1 cannot be used simultaneously.

🛠️ Hardware Overview

NanoCortex-F042 schematic — click for the full-resolution PDF

🔎 Click the schematic to open the full-resolution vector PDF → arm_tiny_pcb_sch.pdf

Power & Protection

  • USB-C Input: Standard Type-C receptacle (GT-USB-7025) with dual 5.1 kΩ pull-downs on CC1/CC2 for universal charger and PC host compatibility.
  • TVS Diode (SD05-01FTG, D1): Clamps ESD and surge events on VBUS (5 V) before they can reach the rest of the board.
  • Polyfuse (F1, 500 mA): Resettable fuse between VBUS and the 5 V rail.
  • USB Data Protection (USBLC6-2SC6, U3): Low-capacitance ESD protection on D+ / D-, preserving Full-Speed signal integrity.
  • LDO Regulator (ME6211C33M5G-N, LDO1): 5 V → 3.3 V, low dropout and very low quiescent current.
  • Ceramic-Only Capacitors: Tantalum capacitors were replaced by X7R ceramic capacitors (C1 2.2 µF, C2 1 µF, 25 V, 0805) around the regulator: more stable with this LDO, smaller, non-polarized, and free of tantalum failure modes (inrush / surge).
  • Decoupling: C3 100 nF, C4 4.7 µF, C5 10 nF and C6 1 µF placed close to the VDD / VDDA pins.

Signal Routing

  • Differential USB Pair: Matched $D^+$ and $D^-$ traces routed side-by-side with an unbroken ground reference plane on the bottom layer to maintain high signal integrity.

🧾 Key Components

RefPartFunction
U1STM32F042F6P6Microcontroller (TSSOP-20)
LDO1ME6211C33M5G-N3.3 V LDO regulator (SOT-23-5)
U3USBLC6-2SC6ESD protection for USB data lines
D1SD05-01FTG5 V TVS diode on VBUS (SOD-323)
F1JK-SMD0603-050-60603 resettable fuse (500 mA)
USB1GT-USB-7025USB Type-C receptacle
SW1 / SW2SKRKAEE020RESET / BOOT tactile switches
LED116-213/BHC-AN1P2/3TRed 3V3 power LED
LED2WS2812B-2020-V6RGB STATUS LED (addressable)
J1 / J2 / J31×9 / 1×9 / 2×2 pin headersI/O and power headers

📝 Revision History

ChangeBeforeNow
Board size26 mm × 36 mm20 mm × 38.5 mm
LDO regulatorXBL1117-3.3 (SOT-89)ME6211C33M5G-N (SOT-23-5)
Regulator capacitorsTantalum (EIA-3528)X7R ceramic (0805)
5 V input protectionFuse onlyFuse + SD05-01FTG TVS diode

[blocked]

💻 Getting Started & Programming

1. Entering Native USB DFU Mode

No external probe needed:

  1. Hold down the BOOT button.
  2. Press and release the RESET button (or plug the USB-C cable into your PC).
  3. Release the BOOT button.
  4. Your computer now recognizes the device as an STM32 BOOTLOADER in DFU mode.

2. Flashing

Flash compiled .bin or .hex firmware using your tool of choice:

  • STM32CubeProgrammer (GUI / CLI)
  • dfu-util:
    bash
    dfu-util -a 0 -d 0483:df11 --dfuse-address 0x08000000 -D firmware.bin
  • SWD (optional): connect an ST-Link to GND, 3V3, PA13 (SWDIO) and PA14 (SWCLK) on J1 / J2.

3. Firmware Support

  • STM32CubeIDE / Keil / IAR: Native C/C++ development with STM32 HAL / LL drivers.
  • PlatformIO & Arduino: Fully compatible via the official STM32duino Core.

📁 Repository Content

File / FolderDescription
arm_tiny_pcb.kicad_proKiCad project (open this one)
arm_tiny_pcb.kicad_schKiCad schematic
arm_tiny_pcb.kicad_pcbKiCad PCB layout
arm_tiny_pcb_sch.pdfSchematic export (PDF)
arm_tiny_pcb.jpg3D render of the board (full size)
docs/Images used in this README (top view, bottom view, 3D perspective, schematic preview, branding)
NanoCortex.kicad_symProject symbol library
NanoCortex.pretty/Project footprint library
NanoCortex.3dshapes/3D models (.wrl) for the project footprints
sym-lib-table, fp-lib-tableProject library tables (paths relative to the project)

📦 Libraries: everything needed to open the project is included. The NanoCortex libraries are registered automatically when you open arm_tiny_pcb.kicad_pro with KiCad 10.


🎯 Roadmap & Target Application Projects

This board serves as the prototyping brain for three dedicated embedded hardware projects:

🛸 Track 1: Lightweight Drone Subsystem & Telemetry Board

Using the NanoCortex-F042 as an embedded flight module or motor/sensor companion node:

  • Sensor Interface: High-rate 6-axis IMU (gyro/accelerometer via SPI/I2C) readout on hardware timer interrupts.
  • Actuator Control: Multi-channel high-speed motor control signals (OneShot / DShot / PWM at 400 Hz+).
  • Telemetry & Communication: Real-time bi-directional link over serial UART (USART2 running CRSF / SBUS / MSP protocol).
  • Custom PCB Spin: Layout of a dedicated, miniaturized drone PCB integrating motor drivers and power management.

🎛️ Track 2: Hybrid USB-MIDI Synthesizer & Analog Op-Amp Audio Lab

A hands-on project to master operational amplifiers (Op-Amps / AOP) and USB communication without requiring heavy DSP:

  • USB-MIDI Communication: Native class-compliant USB-MIDI device stack (plug-and-play with DAWs, keyboards, and PCs with zero drivers).
  • Sound Generation: Multi-waveform oscillator (sawtooth, square, triangle, wavetable) generated via high-frequency hardware PWM / DMA.
  • Active Op-Amp Reconstruction Filter: 2nd- or 4th-order active low-pass filter (Sallen-Key / Rauch topology) to smooth PWM into clean analog audio.
  • Analog Processing & Overdrive Stage: Soft-clipping diode distortion stage within the op-amp feedback loop (classic overdrive pedal architecture) with active gain control.
  • Active Tone Control & Output Stage: Active Baxandall bass/treble tone stack and low-impedance audio buffer for headphones or line-level output.

⚡ Track 3: Digitally-Controlled Buck Converter & 40W+ USB-PD Lab

A hands-on power electronics project to master switch-mode power supplies (Buck converters), op-amp feedback injection, and USB Power Delivery:

  • Synchronous Buck Stage: Design of an external 24 V DC → 5 V–20 V / 3 A step-down converter (MOSFET selection, inductor saturation $I_{sat}$, and low-ESR ripple filtering).
  • Op-Amp Feedback Injection: Dynamic voltage margin/target control via active op-amp summing into the Buck controller's feedback (FB) node.
  • USB-PD PHY Communication (FUSB302B): I2C control of a dedicated USB-PD Source controller to negotiate 5 V, 9 V, 15 V, and 20 V profiles with laptops and phones.
  • Power Telemetry & Safety: Real-time $V_{out}$ / $I_{out}$ monitoring via STM32 12-bit ADC, over-current/over-voltage shutdown, and $V_{BUS}$ power-switch control.

🧪 Board Validation Milestones

  • KiCad 10 schematic design & 2-layer PCB layout with matched USB differential pairs.
  • Hardware Revision: 20 mm × 38.5 mm form factor, TVS protection diode, ME6211 LDO, and MLCC ceramic capacitors.
  • PCB fabrication and prototype SMD assembly.
  • USB DFU bootloader and crystal-less CRS clock verification.
  • 3.3 V power rail validation (ripple, stability, and transient response under load).

🤝 Contributing & Feedback

Suggestions, questions, and PRs are very welcome! Whether you are a student exploring embedded design or an experienced engineer with layout tips, feel free to open an Issue or submit a Pull Request.


📜 License

This hardware design (schematics, PCB layout, footprints, and 3D models) is licensed under the CERN Open Hardware Licence Version 2 – Strongly Reciprocal (CERN-OHL-S v2).

⚖️ Reciprocal Sharing: You are free to study, modify, build, and distribute this board. If you distribute modified versions or products based on this design, you must make the complete modified source files available under the same CERN-OHL-S v2 license.

Parts

29
QtyValueFootprintReferences
3100nCapacitor_SMD:C_0402_1005MetricC3, C7, C8
210kResistor_SMD:R_0402_1005MetricR4, R7
21kResistor_SMD:R_0402_1005MetricR3, R5
25.1kResistor_SMD:R_0402_1005MetricR1, R2
2Conn_01x09_PinConnector_PinHeader_2.54mm:PinHeader_1x09_P2.54mm_VerticalJ1, J2
2SKRKAEE020NanoCortex:SW-SMD_L3.9-W3.0-P4.45SW1, SW2
110nCapacitor_SMD:C_0402_1005MetricC5
116-213/BHC-AN1P2/3TNanoCortex:LED0402-R-RDLED1
11uCapacitor_SMD:C_0402_1005MetricC6
11u / 25V / X7RCapacitor_SMD:C_0805_2012MetricC2
12.2u / 25V / X7RCapacitor_SMD:C_0805_2012MetricC1
1330Resistor_SMD:R_0402_1005MetricR6
14.7uCapacitor_SMD:C_0402_1005MetricC4
1Conn_02x02_Top_BottomConnector_PinHeader_2.54mm:PinHeader_2x02_P2.54mm_VerticalJ3
1GT-USB-7025NanoCortex:TYPE-C-SMD_GT-USB-7025USB1
1JK-SMD0603-050-6NanoCortex:F0603F1
1Logo_CavityRover_F_SilkSNanoCortex:Logo_CavityRoverLOGO**
1ME6211C33M5G-NNanoCortex:SOT-23-5_L3.0-W1.7-P0.95-LS2.8-BLLDO1
1SD05-01FTGNanoCortex:SOD-323_L1.8-W1.3-LS2.5-RDD1
1STM32F042F6P6Package_SO:TSSOP-20_4.4x6.5mm_P0.65mmU1
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U3
1WS2812B-2020-V6NanoCortex:LED-SMD_4P-L2.2-W2.0-P1.00_WS2815C-2020-4PLED2

Similar boards

  • 2 layers53.3 × 68.6 mmArduino uno, the printed circuit board in 3D

    Arduino uno

    Chicken-Fried/Cave-Uno

    Modernized Arduino Uno R3 compatible board powered by Microchip ATmega328PB. Features driverless USB-C, 1.5A sync buck, ideal-diode OR-ing, dual I2C/SPI/UART, and LiDAR topographic artwork.

    85 parts
  • 4 layers70.9 × 70.1 mmWear Camera, the printed circuit board in 3D

    Wear Camera

    kitnol/Camera_project

    (See the README.md file in the upper level 'examples' directory for more information about examples.)

    75 parts
  • 2 layers107.5 × 49.1 mmAN EIGHT CHANNEL, the printed circuit board in 3D

    AN EIGHT CHANNEL

    laforestlabs/KiCraft

    KiCad PCB automation toolkit — placement, routing, scoring, and experiment management

    28 parts
  • 2 layers27.4 × 60 mmRC W25, the printed circuit board in 3D

    RC W25

    Electrium-Mobility/RC-W25

    Electrium Mobility W25 Remote Control Project

    76 parts
  • 4 layers43.2 × 43.2 mmROCK Pi S CLAS HAT, the printed circuit board in 3D

    ROCK Pi S CLAS HAT

    takuhoTech/CelestNavi-HAT-for-ROCK-Pi-S

    ROCK Pi S CLAS HAT

    66 parts6MIT
  • 2 layers15.9 × 25 mmIMU, the printed circuit board in 3D

    IMU

    abstractfoundry/lumicube-boards

    PCB and firmware design files for some of the LumiCube components

    26 parts
  • 2 layersTle5012b encoder breakout, the printed circuit board in 3D

    Tle5012b encoder breakout

    Teslafly/TLE5012-Hall-Encoder-Module

    Breakout/mounting board for the TLE5012 hall encoder for vesc

    12 parts7

Questions

How big is the Arm tiny pcb PCB?

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

What parts does the Arm tiny pcb use?

29 parts, built around the STM32F042F6P6, USBLC6-2SC6, SKRKAEE020 and 16-213/BHC-AN1P2/3T. 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 Arm tiny pcb KiCad files?

From the Chicken-Fried/STM32-NanoCortex repository on GitHub, at the commit this page was made from: the board is arm_tiny_pcb.kicad_pcb and its schematic arm_tiny_pcb.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Arm tiny pcb design in my own project?

Its repository publishes it under the CERN-OHL-S-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).