Skip to the content
PCBKitNew board
2 layers52.1 × 27.9 mmPupill32, the printed circuit board in 3D

pu(rple)pill32 -- An indie evalboard for PY32F030F1xP6

Size
52.1 × 27.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
54
Nets
43
Pads
173
Tracks, vias
439, 148
Pours
2
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
22 Jul 2024
Updated
12 Apr 2025

Overview

Pupill32 is an open-source printed circuit board by llatva, from the llatva/pupill32 repository on GitHub, published under the CERN-OHL-W-2.0 licence. It is a 2-layer board of 52.1 × 27.9 mm with 54 parts on 43 nets, routed with 439 tracks and 148 vias.

It is built around the PY32F030F18P6TU, CH340N and AMS1117-3.3, with the SRV05-4 among its other parts. Its parts include 18 capacitors, 12 resistors, 4 ICs, 4 connectors and 2 diodes.

Main components

4

README

README.md

pu(rple)pill32

Compact and inexpensive USB-C development board for PY32F030 (TSSOP20) 32-bit MCU

RevA had some glitches, please refer to changelog in the revB schematic or below. RevB tested to be functional, and can be flash-programmed over USB (see bootloader access below).

Features

  • development/evaluation board for Pyua PY32F030F1xP6 MCU (TSSOP20)
  • USB serial (CH340N, ESD protection)
  • USB bootloader support (e.g. puyaisp.py from MCU-Flash-Tools /1/)
  • 48 MHz operation with internal oscillator
  • option for 32.768 kHz crystal (if used, pins PA9 and PA10 reserved)
  • all peripheral pins available
  • SWD header for programming (by using USB bootloader for flashing, those pins can be configured for other purposes**)
  • 3V3 linear regulator; 3V3 logic levels
  • powered from USB (SMD fuse for overcurrent protection)
  • PWR LED and user-programmable USR led (activated by solder bridge)
  • RESET and BOOT buttons

**) In that case, if you don't need pull-ups for your signals, do not populate R11-R12.

Bootloader access

USB UART is connected to PA2/PA3 (TX/RX). To access bootloader (e.g. puyaisp.py /1/, USB-to-serial), either

  • Disconnect USB cable, press and hold BOOT button then connect the cable.

OR

  • Connect USB cable, press and hold BOOT button and press and release RESET button

/1/ [https://github.com/wagiminator/MCU-Flash-Tools]

Images

top bottom

photo

Changelog revA --> revB

  • added C19 (bug)
  • swapped UART RX/TX (bug)
  • added R1 (boot0 pulldown)
  • R2 -> 5k1 (brightness)
  • C20 tantalum
  • SWD resistors R9-R12 added

Independent project -- no affiliation or endorsement

This project is no way affiliated with Puya Semiconductor or any other commercial body. This is an indie evaluation board designed and built by a hobbyist. You may use this open hardware design, at your own risk, according to its license conditions, see the following chapter.

References

/2/ J. Carlson: The cheapest flash microcontroller you can buy is actually an ARM CORTEX-M0+

/3/ OpenPuya -- py32.org

License

This board is licensed under CERN Open Hardware License, version 2, CERN-OHL-W (weakly reciprocal).

Please refer to LICENSE file for more information.

Parts

54
QtyValueFootprintReferences
8100nFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC3, C4, C5, C10, C11, C12, C15, C19
412pCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC8, C13, C17, C18
4MountingHoleMountingHole:MountingHole_2.7mm_M2.5_ISO7380_PadH1, H2, H3, H4
310kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R11, R12
310uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC6, C9, C14
35k1Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR2, R3, R4
20RResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR5, R6
21kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR7, R8
21uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C7
222RResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR9, R10
10.8AFuse:Fuse_1206_3216Metric_Pad1.42x1.75mm_HandSolderF1
112MCrystal:Crystal_HC49-4H_VerticalY2
122uFCapacitor_Tantalum_SMD:CP_EIA-3528-21_Kemet-B_Pad1.50x2.35mm_HandSolderC20
132.768 kHzCrystal:Crystal_Round_D2.0mm_VerticalY1
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U4
1BOOT_BTNpupill32:SW-SMD_L6.0-W3.5-LS8.2SW2
1CH340NPackage_SO:SOP-8_3.9x4.9mm_P1.27mmU3
1HeaderLConnector_PinHeader_2.54mm:PinHeader_1x12_P2.54mm_VerticalJ2
1HeaderRConnector_PinHeader_2.54mm:PinHeader_1x12_P2.54mm_VerticalJ1
1LED-GLED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD2
1LED-RLED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD3
1OSHW-Symbol_6.7x6mm_SilkScreenSymbol:OSHW-Symbol_6.7x6mm_SilkScreenOHW
1PA8_SELJumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mmJP2
1PY32F030F18P6Package_SO:TSSOP-20_4.4x6.5mm_P0.65mmU2
1RST_BTNpupill32:SW-SMD_L6.0-W3.5-LS8.2SW1
1RTSnTestPoint:TestPoint_Pad_D1.0mmTP1
1SRV05-4Package_TO_SOT_SMD:SOT-23-6U1
1SWD_HEADERConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ4
1TYPE-C 16PIN 2MD(073)pupill32:USB-C-SMD_TYPE-C-6PIN-2MD-073USB1
1USB_PINSConnector_PinHeader_2.00mm:PinHeader_1x04_P2.00mm_VerticalJ3
1~Inductor_SMD:L_1206_3216Metric_Pad1.42x1.75mm_HandSolderFB1

Questions

How big is the Pupill32 PCB?

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

What parts does the Pupill32 use?

54 parts, built around the PY32F030F18P6TU, CH340N, AMS1117-3.3 and SRV05-4. 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 Pupill32 KiCad files?

From the llatva/pupill32 repository on GitHub, at the commit this page was made from: the board is pupill32.kicad_pcb and its schematic pupill32.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Pupill32 design in my own project?

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

Similar boards

  • 2 layers68.6 × 53.3 mmArduino UNO click shield, the printed circuit board in 3D

    Arduino UNO click shield

    michpro/mikroBUS

    Collection of add-on boards in mikroBUS™ standard

    24 parts5CERN-OHL-P-2.0
  • 2 layers46 × 46 mmMaiana Blue N2000 v8.2, the printed circuit board in 3D

    Maiana Blue N2000 v8.2

    Haimana/MAIANA_BLUE

    Firmware and hardware materials for the MAIANA-class AIS transponder ecosystem. The design builds on the open MAIANA project (GPL v3, Peter Antypas).

    54 parts3
  • 2 layers98.8 × 69.8 mmPre Ignition, the printed circuit board in 3D

    Pre Ignition

    OpenLogicEFI/Hardware

    Hardware is based off an open source project called Speeduino by Josh Stewart.

    167 parts19
  • 2 layers52 × 42 mmNMEA0183Adapter-7.1, the printed circuit board in 3D

    NMEA0183Adapter-7.1

    rolandvs/ais_transponder

    A real, functioning low-power AIS transponder (class B)

    39 parts1GPL-3.0
  • 2 layers50.5 × 94.7 mmSwordOfSecretsUSBProd, the printed circuit board in 3D

    SwordOfSecretsUSBProd

    gili-yankovitch/SwordOfSecrets

    To solve the challenge you will need to discover a series of flags, hidden inside the sword. Each one will help you unlock the next step in the challenge, to finally reveal the ultimate secret the sword holds.

    16 parts47MIT
  • 2 layers76 × 72 mmPanel, the printed circuit board in 3D

    Panel

    NandXor96/USBWLEDC

    USB WLED Controller

    184 parts40
  • 4 layers60 × 95 mmDevboard, the printed circuit board in 3D

    Devboard

    tjclement/ecsc23-badge

    This repo contains the hardware designs and firmware developed for the ECSC23 hardware challenge by Curious Supplies.

    147 parts10
  • 2 layers69 × 79 mmNTC, the printed circuit board in 3D

    NTC

    xuejun7777/Comprehensive-Design-and-Practice-Project-A---Digital-Thermometer-Based-on-NTC

    综合设计与实践A项目-基于NTC的数字温度计

    44 parts2