Skip to main content

A provider of information about connected Microchip development kits

Project description

pykitinfo

pykitinfo provides information about connected Microchip development kits and tools

Overview

pykitinfo will scan the USB subsystem for connected Microchip development kits, and provide information such as kit name, mounted device, serial port identifier, and extension information.

pykitinfo is available:

pykitinfo currently supports:

  • all PKOB nano (nEDBG), mEDBG and EDBG kits
  • Atmel-ICE, Power Debugger, JTAGICE3
  • PICkit3, PKOB
  • PICkit4, Snap, PKOB4, PICkit5
  • MCP2221A

Usage

pykitinfo can be used as a library or as a CLI

Example - simple list of connected kits

pykitinfo

Displays a simple list of kits in the form: Kit SERIAL-NUMBER: 'KIT-NAME' (DEVICE-NAME) on SERIAL-PORT

For example:

pykitinfo
Looking for Microchip kits...
Compatible kits detected: 8
Kit MCHP3349011800000000: 'AVR-IoT WA' (ATmega4808) on COM21
Kit MCHP3280021800000000: 'AVR128DA48 Curiosity Nano' (AVR128DA48) on COM17
Kit ATML2241020200000000: 'SAM L21 Xplained Pro' (ATSAML21J18A) on COM34
Kit J41800000000: 'Atmel-ICE CMSIS-DAP' () on N/A
Kit J50200000000: 'Power Debugger CMSIS-DAP' () on N/A
Kit ATML2323040200000000: 'mEDBG' (ATmega328P) on COM26
Kit BUR180115004: 'Explorer 16/32 PICkit on Board' () on N/A
Kit 020063002RYN000091: 'Curiosity Nano Explorer' (N/A) on COM74

Example - simple list of connected kits with specific serial number

pykitinfo -s <serialnumber ending>

Displays a simple list of kits in the form: Kit SERIAL-NUMBER: 'KIT-NAME' (DEVICE-NAME) on SERIAL-PORT

For example:

pykitinfo -s 29
Looking for Microchip kits...
Compatible kits detected: 1
Kit MCHP3352011800000029: 'PIC-IoT WA' (PIC24FJ128GA705) on COM22

Example - brief lookup of serial port of connected kit

pykitinfo -b

Displays ONLY the serial port name of a connected kit. This can be useful for command chaining.

For example:

pykitinfo -b -s 123456
COM12

Example - long form list of kits

pykitinfo -l

Displays a JSON formatted list of dictionaries.

For example:

pykitinfo -l
Looking for Microchip kits...
Compatible kits detected: 2
[
  {
    "debugger": {
      "device": "ATmega4808",
      "kitname": "AVR-IoT WA",
      "product": "nEDBG CMSIS-DAP",
      "protocol": "edbg",
      "serial_number": "MCHP3349011800000000",
      "serial_port": "COM21"
    },
    "usb": {
      "interface": "hid",
      "packet_size": 64,
      "product_id": 8565,
      "product_string": "nEDBG CMSIS-DAP",
      "serial_number": "MCHP3349011800000000",
      "vendor_id": 1003
    }
  },
  {
    "debugger": {
      "device": "AVR128DA48",
      "kitname": "AVR128DA48 Curiosity Nano",
      "product": "nEDBG CMSIS-DAP",
      "protocol": "edbg",
      "serial_number": "MCHP3280021800000000",
      "serial_port": "COM17"
    },
    "usb": {
      "interface": "hid",
      "packet_size": 64,
      "product_id": 8565,
      "product_string": "nEDBG CMSIS-DAP",
      "serial_number": "MCHP3280021800000000",
      "vendor_id": 1003
    }
  }
]

Example - library usage

# Example: using pykitinfo as a library
import logging
logging.basicConfig(format="%(levelname)s: %(message)s", level=logging.ERROR)
from pykitinfo import pykitinfo
kits = pykitinfo.detect_all_kits()
for kit in kits:
    print("Found kit: '{}'".format(kit['debugger']['kitname']))

Notes for Linux® systems

This package uses pyedbglib and other libraries for USB transport and some udev rules are required. For details see the pyedbglib package: https://pypi.org/project/pyedbglib

Changelog

[1.4.1] - July 2025

Fixed

  • DSG-7940 fixed filtering of MCP2221A kits
  • DSG-7941 fixed releasing of USB devices after use
  • DSG-7933 improved CLI documentation

[1.3.0] - July 2025

Added

  • DSG-7903 added readout of kit info from PKoB4

Fixed

  • DSG-7553 fixed a crash due to missing udev rules on Linux
  • DSG-7323 fixed package to exclude build folder

[1.1.2] - April 2024

Added

  • DSG-7105 added support for Explorer 16/32 kit
  • DSG-7181 added support for MCP2221A kits

[1.0.3] - January 2024

Added

  • DSG-5792 added brief mode for reporting serial port only
  • DSG-6091 added support for reading out nEDBG extension information
  • DSG-6444 added support for PICkit 5

Fixed

  • DSG-5767 fixed unicode output in long mode
  • DSG-6310 added fault tolerance for non-numeric interface numbers
  • DSG-7084 fixed crash on Mac when virtual serial port is missing serial number
  • DSG-7087 added fault tolerance for USB devices missing serial number

[0.4.0] - November 2022

Changed

  • DSG-5562 added catch-all exception handling in CLI; added return code
  • DSG-5624 improved port detection using updated pyedbglib (requirement)
  • DSG-5551 removed metadata tag for Python 3.6
  • DSG-5450 added metadata tag for Python 3.10

[0.3.1] - December 2021

Added

  • DSG-3826 PICkit3 support
  • DSG-3903 WinUSB tools support
  • DSG-4140 Help updates
  • DSG-4195 Documentation output

Fixed

  • DSG-3407 Serial port detection on Xplained Pro
  • DSG-3409 CLI argument -R
  • DSG-3410 Xplained Pro kit name reporting

[0.1.2] - May 2021

  • First public release to PyPi

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

pykitinfo-1.4.1.26-py3-none-any.whl (21.8 kB view details)

Uploaded Python 3

File details

Details for the file pykitinfo-1.4.1.26-py3-none-any.whl.

File metadata

  • Download URL: pykitinfo-1.4.1.26-py3-none-any.whl
  • Upload date:
  • Size: 21.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.15

File hashes

Hashes for pykitinfo-1.4.1.26-py3-none-any.whl
Algorithm Hash digest
SHA256 00826d87f8b254106d05192320d3db8af3e4eab1ea9ac8d5eec7d80b4da9a1f5
MD5 d9bcb2d7aea2a9926295fe9a80cfd297
BLAKE2b-256 8ab5f9897b496211a83ab10b565185381634cf5f975a769a1c606615edf6eb32

See more details on using hashes here.

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