Skip to main content

pinocchiout - STM32 Pinout Solver

screenshot

Installation

I recommend using uv to install this project.

Then, all you need to do is run uvx pinocchiout and it'll handle the rest.

Usage

With a reqs.yaml/json file

reqs.yaml/json is a simple file describing the requirements of your project.

chip: STM32G431C6
package: UFQFPN48
requirements:
  - name: position-sensor
    kind: spi
    signals:
      - MOSI
      - MISO
      - SCK

reserved_pins:
 - PB8  # boot select pin

This one, for example, says you're trying to find a pinout for the STM32G431C6 microcontroller, in the UFQFPN48 package, with a SPI peripheral. It also reserves the boot select pin, PB8.

YAML is preferred, because it allows for comments, but JSON is also supported:

{
    "chip": "STM32G431C6",
    "package": "UFQFPN48",
    "requirements": [
        {
            "name": "spi",
            "peripheral": "spi",
            "kind": "spi",
            "signals": ["MOSI", "MISO", "SCK"]
        }
    ]
}

You can print out a table of the pinout like so:

uvx pinocchiout solve --reqs "examples/reqs.yaml"

Listing peripherals

You can also list all available peripherals for a chip/package:

uvx pinocchiout list --reqs "examples/reqs.yaml"
# or specify chip and package directly
uvx pinocchiout list --chip STM32G431C6 --package UFQFPN48

Peripheral names ("peripheral") and signal names ("signals") are treated as regular expressions, so you can use them to match multiple.

As a library

Honestly, it could be better, but see example.py for a simple example of how to use it as a library.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pinocchiout-0.3.0.tar.gz (223.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pinocchiout-0.3.0-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file pinocchiout-0.3.0.tar.gz.

File metadata

  • Download URL: pinocchiout-0.3.0.tar.gz
  • Upload date:
  • Size: 223.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pinocchiout-0.3.0.tar.gz
Algorithm Hash digest
SHA256 0d50292e5bd8bd62ceea8ac48ac8051f829ea0da8382d8525965a98518c897dd
MD5 38e4defb993b398b07f6a4813c70dc9e
BLAKE2b-256 35f509f8a357c32a062666706084dfb305de8035679204f1ea5068de03e6ba19

See more details on using hashes here.

Provenance

The following attestation bundles were made for pinocchiout-0.3.0.tar.gz:

Publisher: release.yml on mawildoer/pinocchiout

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pinocchiout-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: pinocchiout-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 9.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pinocchiout-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 53a1cbe004e7d457ac5325a3be9bf9e045a3e9f22af8d09efffc54469f462af5
MD5 0decde4692ee914c99665f0bcbc1215d
BLAKE2b-256 2ff7ce0643982ac5a81f015c7e2606f58ca4b0a76dd43139122a03507d7644e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pinocchiout-0.3.0-py3-none-any.whl:

Publisher: release.yml on mawildoer/pinocchiout

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page