
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.

Ultra-compact USB-C development board powered by STM32F042 (ARM Cortex-M0) with native DFU, ceramic-only LDO power stage & CaveRover branding.
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.
Minimalist ARM Cortex-M0 development board — 20 mm × 38.5 mm, native USB-C, crystal-less
🇫🇷 Version française · 📄 Schematic (PDF) · 🧰 Getting started · 📌 Pinout

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.
This board was born at the intersection of academic learning, curiosity, and maker passion:
HSI48) paired with Clock Recovery System (CRS) synchronized directly to USB frames—zero external crystal required.BOOT button, plug in the USB-C cable, and flash directly with STM32CubeProgrammer or dfu-util—no ST-Link or external programmer strictly required!BOOT / RESET buttons on each side of the USB-C connector.VBUS, USBLC6-2SC6 on the data lines and a 500 mA resettable polyfuse.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).RESET and BOOT tactile switches for instant programming mode entry.| Parameter | Specification |
|---|---|
| Microcontroller | STM32F042F6P6 (TSSOP-20) |
| Core Architecture | ARM 32-bit Cortex-M0 @ up to 48 MHz |
| Flash / SRAM | 32 KB Flash / 6 KB SRAM |
| Operating Voltage | 3.3 V logic (Dual power rails exposed: 5 V via USB-C + 3.3 V regulated) |
| 3.3 V Regulator | ME6211C33M5G-N (LDO, SOT-23-5) with 2 ceramic capacitors (X7R, 25 V, 0805) |
| Input Protection | SD05-01FTG (TVS) + USBLC6-2SC6 (USB data lines) + 500 mA polyfuse |
| USB Interface | USB 2.0 Full Speed (12 Mbps) over USB-C |
| User I/O | 12 GPIOs on 2.54 mm headers (9 general-purpose, 1 shared with BOOT0, 2 shared with SWD) + dedicated hardware NRST |
| Programming & Debug | Native USB DFU (ROM bootloader) or full 4-wire SWD (GND, NRST, SWDIO, SWCLK) |
| On-board LEDs | Red 3V3 power LED + WS2812B-2020-V6 RGB status LED (PA0) with 100 nF decoupling capacitor |
| Dimensions | 20 mm × 38.5 mm |
[blocked]
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.
| Header | Pin | Signal | MCU pin | Primary & Alternate Functions / Notes |
|---|---|---|---|---|
| J1 | 1 | 5V | – | 5.0 V power rail (VBUS post-polyfuse F1, up to 500 mA for drones/op-amps) |
| 2 | GPIO1 | PB8 | Shared with BOOT0 (10 kΩ pull-down). Do not pull HIGH at boot! | |
| 3 | GPIO2 | PF0 | OSC_IN / I2C1_SDA | |
| 4 | GPIO3 | PF1 | OSC_OUT / I2C1_SCL | |
| 5 | GPIO5 | PA1 | ADC_IN1 / TIM2_CH2 / EVENTOUT | |
| 6 | GPIO6 | PA2 | USART2_TX / ADC_IN2 / TIM15_CH1 / TIM2_CH3 | |
| 7 | GPIO7 | PA3 | USART2_RX / ADC_IN3 / TIM15_CH2 / TIM2_CH4 | |
| 8 | GPIO8 | PA4 | ADC_IN4 / SPI1_NSS / TIM14_CH1 | |
| 9 | GND | – | Ground | |
| J2 | 1 | 3V3 | – | 3.3 V regulated power rail |
| 2 | GPIO9 | PA5 | ADC_IN5 / SPI1_SCK | |
| 3 | GPIO10 | PA6 | ADC_IN6 / SPI1_MISO / TIM3_CH1 / TIM16_CH1 | |
| 4 | GPIO11 | PA7 | ADC_IN7 / SPI1_MOSI / TIM3_CH2 / TIM14_CH1 / TIM17_CH1 | |
| 5 | GPIO12 | PB1 | ADC_IN9 / TIM3_CH4 / TIM14_CH1 | |
| 6 | GND | – | Ground | |
| 7 | NRST | Pin 4 | Hardware Reset line (supports ST-Link "Connect Under Reset" and remote reset button) | |
| 8 | GPIO15 | PA13 | SWDIO (SWD Data) / IR_OUT / USB_NOE | |
| 9 | GPIO16 | PA14 | SWCLK (SWD Clock) / USART2_TX | |
| J3 | 1–4 | 3V3 / 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 betweenBOOT0andPB8. It is pulled down to GND via $R_7$ (10 kΩ) for normal Flash execution. Any external circuitry attached toGPIO1that pulls this pin HIGH at reset will force the microcontroller into native USB DFU bootloader mode.💡 Internal Signals & ADC Allocation:
PA0is dedicated internally to the WS2812B-2020-V6 RGB status LED via $R_6$ (330 Ω). Consequently, analog channelADC_IN0is reserved for on-board LED operation. 7 external ADC channels remain freely available on the headers (PA1toPA7).NRSTis wired to the tactileRESETbutton with a 100 nF debounce capacitor and routed toJ2pin 7 for full debugger control.🔌 Serial Communication (
USART1vsUSART2):
- For user serial communication (e.g. drone CRSF/SBUS telemetry, debug console, GPS), use
USART2(PA2/PA3) on headerJ1.- 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,USART1cannot be used simultaneously.
🔎 Click the schematic to open the full-resolution vector PDF →
arm_tiny_pcb_sch.pdf
CC1/CC2 for universal charger and PC host compatibility.VBUS (5 V) before they can reach the rest of the board.VBUS and the 5 V rail.D+ / D-, preserving Full-Speed signal integrity.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).C3 100 nF, C4 4.7 µF, C5 10 nF and C6 1 µF placed close to the VDD / VDDA pins.| Ref | Part | Function |
|---|---|---|
| U1 | STM32F042F6P6 | Microcontroller (TSSOP-20) |
| LDO1 | ME6211C33M5G-N | 3.3 V LDO regulator (SOT-23-5) |
| U3 | USBLC6-2SC6 | ESD protection for USB data lines |
| D1 | SD05-01FTG | 5 V TVS diode on VBUS (SOD-323) |
| F1 | JK-SMD0603-050-6 | 0603 resettable fuse (500 mA) |
| USB1 | GT-USB-7025 | USB Type-C receptacle |
| SW1 / SW2 | SKRKAEE020 | RESET / BOOT tactile switches |
| LED1 | 16-213/BHC-AN1P2/3T | Red 3V3 power LED |
| LED2 | WS2812B-2020-V6 | RGB STATUS LED (addressable) |
| J1 / J2 / J3 | 1×9 / 1×9 / 2×2 pin headers | I/O and power headers |
| Change | Before | Now |
|---|---|---|
| Board size | 26 mm × 36 mm | 20 mm × 38.5 mm |
| LDO regulator | XBL1117-3.3 (SOT-89) | ME6211C33M5G-N (SOT-23-5) |
| Regulator capacitors | Tantalum (EIA-3528) | X7R ceramic (0805) |
| 5 V input protection | Fuse only | Fuse + SD05-01FTG TVS diode |
[blocked]
No external probe needed:
Flash compiled .bin or .hex firmware using your tool of choice:
dfu-util -a 0 -d 0483:df11 --dfuse-address 0x08000000 -D firmware.binGND, 3V3, PA13 (SWDIO) and PA14 (SWCLK) on J1 / J2.| File / Folder | Description |
|---|---|
arm_tiny_pcb.kicad_pro | KiCad project (open this one) |
arm_tiny_pcb.kicad_sch | KiCad schematic |
arm_tiny_pcb.kicad_pcb | KiCad PCB layout |
arm_tiny_pcb_sch.pdf | Schematic export (PDF) |
arm_tiny_pcb.jpg | 3D render of the board (full size) |
docs/ | Images used in this README (top view, bottom view, 3D perspective, schematic preview, branding) |
NanoCortex.kicad_sym | Project symbol library |
NanoCortex.pretty/ | Project footprint library |
NanoCortex.3dshapes/ | 3D models (.wrl) for the project footprints |
sym-lib-table, fp-lib-table | Project library tables (paths relative to the project) |
📦 Libraries: everything needed to open the project is included. The
NanoCortexlibraries are registered automatically when you openarm_tiny_pcb.kicad_prowith KiCad 10.
This board serves as the prototyping brain for three dedicated embedded hardware projects:
Using the NanoCortex-F042 as an embedded flight module or motor/sensor companion node:
USART2 running CRSF / SBUS / MSP protocol).A hands-on project to master operational amplifiers (Op-Amps / AOP) and USB communication without requiring heavy DSP:
A hands-on power electronics project to master switch-mode power supplies (Buck converters), op-amp feedback injection, and USB Power Delivery:
FB) node.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.
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.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 3 | 100n | Capacitor_SMD:C_0402_1005Metric | C3, C7, C8 |
| 2 | 10k | Resistor_SMD:R_0402_1005Metric | R4, R7 |
| 2 | 1k | Resistor_SMD:R_0402_1005Metric | R3, R5 |
| 2 | 5.1k | Resistor_SMD:R_0402_1005Metric | R1, R2 |
| 2 | Conn_01x09_Pin | Connector_PinHeader_2.54mm:PinHeader_1x09_P2.54mm_Vertical | J1, J2 |
| 2 | SKRKAEE020 | NanoCortex:SW-SMD_L3.9-W3.0-P4.45 | SW1, SW2 |
| 1 | 10n | Capacitor_SMD:C_0402_1005Metric | C5 |
| 1 | 16-213/BHC-AN1P2/3T | NanoCortex:LED0402-R-RD | LED1 |
| 1 | 1u | Capacitor_SMD:C_0402_1005Metric | C6 |
| 1 | 1u / 25V / X7R | Capacitor_SMD:C_0805_2012Metric | C2 |
| 1 | 2.2u / 25V / X7R | Capacitor_SMD:C_0805_2012Metric | C1 |
| 1 | 330 | Resistor_SMD:R_0402_1005Metric | R6 |
| 1 | 4.7u | Capacitor_SMD:C_0402_1005Metric | C4 |
| 1 | Conn_02x02_Top_Bottom | Connector_PinHeader_2.54mm:PinHeader_2x02_P2.54mm_Vertical | J3 |
| 1 | GT-USB-7025 | NanoCortex:TYPE-C-SMD_GT-USB-7025 | USB1 |
| 1 | JK-SMD0603-050-6 | NanoCortex:F0603 | F1 |
| 1 | Logo_CavityRover_F_SilkS | NanoCortex:Logo_CavityRover | LOGO** |
| 1 | ME6211C33M5G-N | NanoCortex:SOT-23-5_L3.0-W1.7-P0.95-LS2.8-BL | LDO1 |
| 1 | SD05-01FTG | NanoCortex:SOD-323_L1.8-W1.3-LS2.5-RD | D1 |
| 1 | STM32F042F6P6 | Package_SO:TSSOP-20_4.4x6.5mm_P0.65mm | U1 |
| 1 | USBLC6-2SC6 | Package_TO_SOT_SMD:SOT-23-6 | U3 |
| 1 | WS2812B-2020-V6 | NanoCortex:LED-SMD_4P-L2.2-W2.0-P1.00_WS2815C-2020-4P | LED2 |

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.

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

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



abstractfoundry/lumicube-boards
PCB and firmware design files for some of the LumiCube components

Teslafly/TLE5012-Hall-Encoder-Module
Breakout/mounting board for the TLE5012 hall encoder for vesc

Teslafly/MT6816CT-encoder-breakout
MT6816CT encoder breakout for vesc
It measures 20 × 38.5 mm and has 2 copper layers, 1.6 mm thick.
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.
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.
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).