Skip to the content
PCBKitNew board
2 layers68 × 32 mmPy32 dev, the printed circuit board in 3D

puya py32 cortex m0 development board

Size
68 × 32 mm
Copper layers
2
Thickness
1.6 mm
Parts
34
Nets
38
Pads
143
Tracks, vias
256, 25
Pours
8
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
17 Feb 2023
Updated
7 Oct 2024

Overview

Py32 dev is an open-source printed circuit board by gpgreen, from the gpgreen/py32_dev repository on GitHub, published under the MIT licence. It is a 2-layer board of 68 × 32 mm with 34 parts on 38 nets, routed with 256 tracks and 25 vias.

Its parts include 10 capacitors, 7 resistors, 3 connectors, 2 ICs and 2 diodes. It belongs with the microcontroller boards boards of this library.

README

README.md

py32_dev

KiCad design for a ARM Cortex-M0+ development board. The MCU is a Puya PY32 Series. The specific part is PY032F030K18T6. This can run at a maximum of 48 MHz, and has 8 kbyte SRAM and 64 kbyte Flash. A USB C connector provides 5V power only to the development board. The board must be programmed with a debugger. External crystals are laid out for the MCU to use a 32.768 kHz low speed crystal or a 24 MHz high speed crystal. There is an onboard LDO that provides 500mA of power at 3.3V. A resettable fuse protects the USB port from a short. There is an LED and push button connected to 2 of the GPIO pins. The value of the BOOT0 pin can be set to ground or 3.3V permanently via the solder bridge. A jumper can be used on the pin rails in lieue of the solder bridge. All available GPIO pins are routed to the 2 18pin headers.

Changes

  • Rev B Moved resettable fuse away from USB C connector, giving more room to resolder connector pins.

  • Rev A Original

Firmware

Example firmware that blinks the LED. When the user pushbutton is pressed, the frequency of the LED blink will change.

https://github.com/gpgreen/py32-dev-blink

Boot configuration

To boot from main flash [0x0800_0000] Connect J2-4 to J2-5 (or) solder JP5-1 to center post

To boot from System mem [0x1FFF_0000], or Embedded SRAM [0x2000_0000] Connect J2-4 to J2-3 (or) solder JP6-3 to center post

There is an embedded boot loader, programmed in production, in the system memory block. See the reference manual 3.6.2.

PIN JUMPER SIGNAL ASSIGNMENT

text
                    +-----+
            +--------------------+
            |J3     |     |    J2|
        VDD-|1      +-----+     1|-GND
        GND-|2                  2|-GND
       +3.3-|3                  3|-+3.3
[RESET] PF2-|4                  4|-PF4 [BOOT0_PRE]
[SWCLK]PA14-|5                  5|-GND
[SWDIO]PA13-|6                  6|-GND
        GND-|7       RST        7|-GND
        PF3-|8       +-+        8|-GND
        PA0-|9       |O|        9|-GND
        PA1-|10      +-+       10|-PB7
        PA2-|11                11|-PB6
        PA3-|12                12|-PB5
        PA4-|13                13|-PB4
        PA6-|14                14|-PB3
        PA6-|15   UPB          15|-PA15
        PA7-|16   +-+          16|-PA12 [USER LED - GREEN]
        PB0-|17   |O|          17|-PA11 [USER PUSHBUTTON]
        PB1-|18   +-+          18|-PA8
            |                    |
            +--------------------+

Connections to JTAG

From a 20pin JTAG connector, run wires to the following pins to connect a debugger:

VTRef 1 <-> J3-3 SWDIO 7 <-> J3-6 SWCLK 9 <-> J3-5 RESET 15 <-> J3-4 5V 19 <-> NC GND 4 <-> J3-2 GND 20 <-> J3-7

Running SEGGER JLink

Run the JLink GDB server via the following:

text
JLinkGDBServer -if SWD -JLinkDevicesXMLPath ~/.config/SEGGER/JLinkDevices/Puya/PY32/JLinkDevices.xml -device PY32F030xx8

GDB can be connected via the following:

text
gdb-multiarch --command=jlink-py32.gdb target/thumbv6m/debug/blink-py32

Links

Parts

34
QtyValueFootprintReferences
4MountingHoleMountingHole:MountingHole_2.5mm_PadH1, H2, H3, H4
30.1ufCapacitor_SMD:C_0603_1608MetricC4, C5, C11
210KResistor_SMD:R_0603_1608MetricR5, R7
212.5pfCapacitor_SMD:C_0603_1608MetricC8, C9
222pfCapacitor_SMD:C_0603_1608MetricC6, C7
25.1KResistor_SMD:R_0603_1608MetricR2, R3
2Conn_01x18Connector_PinHeader_2.54mm:PinHeader_1x18_P2.54mm_VerticalJ2, J3
10.1ufCapacitor_Tantalum_SMD:CP_EIA-3216-18_Kemet-A_Pad1.58x1.35mm_HandSolderC1
10.33ufCapacitor_Tantalum_SMD:CP_EIA-3216-18_Kemet-A_Pad1.58x1.35mm_HandSolderC2
11.5KResistor_SMD:R_0603_1608MetricR4
110ufCapacitor_Tantalum_SMD:CP_EIA-3216-18_Kemet-A_Pad1.58x1.35mm_HandSolderC3
124MHzCrystal:Crystal_SMD_TXC_7M-4Pin_3.2x2.5mmY1
132.768KHzCrystal:Crystal_DS15_D1.5mm_L5.0mm_HorizontalY2
1470Resistor_SMD:R_0603_1608MetricR1
1680Resistor_SMD:R_0603_1608MetricR6
1Board PwrCustom:SHOUHAN TYPE-C 6PJ1
1BootJumper:SolderJumper-3_P1.3mm_Open_Pad1.0x1.5mm_NumberLabelsJP5
1GREENDiode_SMD:D_0603_1608MetricD2
1PY32F030K1xTPackage_QFP:LQFP-32_7x7mm_P0.8mmU2
1PolyfuseFuse:Fuse_Bourns_MF-SM_7.98x5.44mmF1
1REDDiode_SMD:D_0603_1608MetricD1
1ResetButton_Switch_SMD:SW_Push_1P1T_NO_Vertical_Wuerth_434133025816SW2
1UsrButton_Switch_SMD:SW_Push_1P1T_NO_Vertical_Wuerth_434133025816SW1
1uA7805Package_TO_SOT_SMD:SOT-223-3_TabPin2U1

Questions

How big is the Py32 dev PCB?

It measures 68 × 32 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Py32 dev use?

34 parts. 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 Py32 dev KiCad files?

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

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

Similar boards

  • 2 layers26 × 30 mmMicrocontroller, the printed circuit board in 3D

    Microcontroller

    FrameworkComputer/ExpansionCards

    Reference designs and documentation to create Expansion Cards for the Framework Laptop

    34 parts1.1kCC-BY-4.0
  • 2 layers171.2 × 72.9 mmAmiga gfxcard old, the printed circuit board in 3D

    Amiga gfxcard old

    mntmn/amiga2000-gfxcard

    MNT VA2000, an Open Source Amiga 2/3/4000 Graphics Card (Zorro II/III), written in Verilog

    34 parts1k
  • 2 layers53.5 × 62.5 mmLed matrix, the printed circuit board in 3D

    Led matrix

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    34 parts915
  • 2 layers45 × 26 mmESP32-HELP Button, the printed circuit board in 3D

    ESP32-HELP Button

    pcbreflux/espressif

    all espressif stuff will committed here

    34 parts608GPL-3.0
  • 2 layers41.7 × 25.7 mmHeadphones flex pcb rigid, the printed circuit board in 3D

    Headphones flex pcb rigid

    strangeparts/niubi-headphones

    Flexible circuit board design for adding a headphone jack to an iPhone 7

    34 parts493MIT
  • 2 layers18.8 × 16.3 mmAmoeba, the printed circuit board in 3D

    Amoeba

    mtl/keyboard-pcbs

    Keyboard PCBs

    34 parts485
  • 2 layers127 × 69.9 mmEzcgi, the printed circuit board in 3D

    Ezcgi

    baldengineer/bit-preserve

    Project for capturing vintage, classic, aka old computer schematics in KiCad.

    34 parts446