Skip to main content

Pinout solver STM32 for microcontrollers

Project description

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.

Project details


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.

Supported by

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