# 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:
* install using pip from pypi: https://pypi.org/project/pykitinfo
* browse source code on github: https://github.com/microchip-pic-avr-tools/pykitinfo
* read API documentation on github: https://microchip-pic-avr-tools.github.io/pykitinfo
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
```bash
pykitinfo
```
Displays a simple list of kits in the form:
Kit SERIAL-NUMBER: 'KIT-NAME' (DEVICE-NAME) on SERIAL-PORT
For example:
```bash
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
```bash
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:
```bash
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
```bash
pykitinfo -b
```
Displays ONLY the serial port name of a connected kit. This can be useful for command chaining.
For example:
```bash
pykitinfo -b -s 123456
COM12
```
## Example - long form list of kits
```bash
pykitinfo -l
```
Displays a JSON formatted list of dictionaries.
For example:
```bash
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
```python
# 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.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
Raw data
{
"_id": null,
"home_page": null,
"name": "pykitinfo",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "Microchip, Xplained Pro, EDBG, nEDBG, Curiosity Nano, PKOB nano, debugger, MCP2221A",
"author": null,
"author_email": "Microchip Technology <support@microchip.com>",
"download_url": null,
"platform": null,
"description": "# pykitinfo\npykitinfo provides information about connected Microchip development kits and tools\n\n## Overview\npykitinfo 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.\n\npykitinfo is available:\n\n* install using pip from pypi: https://pypi.org/project/pykitinfo\n* browse source code on github: https://github.com/microchip-pic-avr-tools/pykitinfo\n* read API documentation on github: https://microchip-pic-avr-tools.github.io/pykitinfo\n\npykitinfo currently supports:\n* all PKOB nano (nEDBG), mEDBG and EDBG kits\n* Atmel-ICE, Power Debugger, JTAGICE3\n* PICkit3, PKOB\n* PICkit4, Snap, PKOB4, PICkit5\n* MCP2221A\n\n## Usage\npykitinfo can be used as a library or as a CLI\n\n## Example - simple list of connected kits\n```bash\npykitinfo\n```\nDisplays a simple list of kits in the form:\nKit SERIAL-NUMBER: 'KIT-NAME' (DEVICE-NAME) on SERIAL-PORT\n\nFor example:\n```bash\npykitinfo\nLooking for Microchip kits...\nCompatible kits detected: 8\nKit MCHP3349011800000000: 'AVR-IoT WA' (ATmega4808) on COM21\nKit MCHP3280021800000000: 'AVR128DA48 Curiosity Nano' (AVR128DA48) on COM17\nKit ATML2241020200000000: 'SAM L21 Xplained Pro' (ATSAML21J18A) on COM34\nKit J41800000000: 'Atmel-ICE CMSIS-DAP' () on N/A\nKit J50200000000: 'Power Debugger CMSIS-DAP' () on N/A\nKit ATML2323040200000000: 'mEDBG' (ATmega328P) on COM26\nKit BUR180115004: 'Explorer 16/32 PICkit on Board' () on N/A\nKit 020063002RYN000091: 'Curiosity Nano Explorer' (N/A) on COM74\n```\n\n## Example - simple list of connected kits with specific serial number\n```bash\npykitinfo -s <serialnumber ending>\n```\nDisplays a simple list of kits in the form:\nKit SERIAL-NUMBER: 'KIT-NAME' (DEVICE-NAME) on SERIAL-PORT\n\nFor example:\n```bash\npykitinfo -s 29\nLooking for Microchip kits...\nCompatible kits detected: 1\nKit MCHP3352011800000029: 'PIC-IoT WA' (PIC24FJ128GA705) on COM22\n```\n\n## Example - brief lookup of serial port of connected kit\n```bash\npykitinfo -b\n```\nDisplays ONLY the serial port name of a connected kit. This can be useful for command chaining.\n\nFor example:\n```bash\npykitinfo -b -s 123456\nCOM12\n```\n\n## Example - long form list of kits\n```bash\npykitinfo -l\n```\n\nDisplays a JSON formatted list of dictionaries.\n\nFor example:\n```bash\npykitinfo -l\nLooking for Microchip kits...\nCompatible kits detected: 2\n[\n {\n \"debugger\": {\n \"device\": \"ATmega4808\",\n \"kitname\": \"AVR-IoT WA\",\n \"product\": \"nEDBG CMSIS-DAP\",\n \"protocol\": \"edbg\",\n \"serial_number\": \"MCHP3349011800000000\",\n \"serial_port\": \"COM21\"\n },\n \"usb\": {\n \"interface\": \"hid\",\n \"packet_size\": 64,\n \"product_id\": 8565,\n \"product_string\": \"nEDBG CMSIS-DAP\",\n \"serial_number\": \"MCHP3349011800000000\",\n \"vendor_id\": 1003\n }\n },\n {\n \"debugger\": {\n \"device\": \"AVR128DA48\",\n \"kitname\": \"AVR128DA48 Curiosity Nano\",\n \"product\": \"nEDBG CMSIS-DAP\",\n \"protocol\": \"edbg\",\n \"serial_number\": \"MCHP3280021800000000\",\n \"serial_port\": \"COM17\"\n },\n \"usb\": {\n \"interface\": \"hid\",\n \"packet_size\": 64,\n \"product_id\": 8565,\n \"product_string\": \"nEDBG CMSIS-DAP\",\n \"serial_number\": \"MCHP3280021800000000\",\n \"vendor_id\": 1003\n }\n }\n]\n```\n\n## Example - library usage\n```python\n# Example: using pykitinfo as a library\nimport logging\nlogging.basicConfig(format=\"%(levelname)s: %(message)s\", level=logging.ERROR)\nfrom pykitinfo import pykitinfo\nkits = pykitinfo.detect_all_kits()\nfor kit in kits:\n print(\"Found kit: '{}'\".format(kit['debugger']['kitname']))\n```\n\n## Notes for Linux\u00ae systems\nThis 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\n# Changelog\n\n## [1.1.2] - April 2024\n\n### Added\n- DSG-7105 added support for Explorer 16/32 kit\n- DSG-7181 added support for MCP2221A kits\n\n## [1.0.3] - January 2024\n\n### Added\n- DSG-5792 added brief mode for reporting serial port only\n- DSG-6091 added support for reading out nEDBG extension information\n- DSG-6444 added support for PICkit 5\n\n### Fixed\n- DSG-5767 fixed unicode output in long mode\n- DSG-6310 added fault tolerance for non-numeric interface numbers\n- DSG-7084 fixed crash on Mac when virtual serial port is missing serial number\n- DSG-7087 added fault tolerance for USB devices missing serial number\n\n## [0.4.0] - November 2022\n\n### Changed\n- DSG-5562 added catch-all exception handling in CLI; added return code\n- DSG-5624 improved port detection using updated pyedbglib (requirement)\n- DSG-5551 removed metadata tag for Python 3.6\n- DSG-5450 added metadata tag for Python 3.10\n\n## [0.3.1] - December 2021\n\n### Added\n- DSG-3826 PICkit3 support\n- DSG-3903 WinUSB tools support\n- DSG-4140 Help updates\n- DSG-4195 Documentation output\n\n### Fixed\n- DSG-3407 Serial port detection on Xplained Pro\n- DSG-3409 CLI argument -R\n- DSG-3410 Xplained Pro kit name reporting\n\n## [0.1.2] - May 2021\n- First public release to PyPi\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A provider of information about connected Microchip development kits",
"version": "1.1.2.19",
"project_urls": {
"Homepage": "https://github.com/microchip-pic-avr-tools/pykitinfo"
},
"split_keywords": [
"microchip",
" xplained pro",
" edbg",
" nedbg",
" curiosity nano",
" pkob nano",
" debugger",
" mcp2221a"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e4f3c6b08de019ee66efb9061d7e68052544f773c36371bd2a3f22030ad5d8e9",
"md5": "91a961fd0dcbc3879e53611b8222c660",
"sha256": "e6a00a8cbfa9ced58d7d11c2f50bb1b6dfc33efa32a6b873914e431033860200"
},
"downloads": -1,
"filename": "pykitinfo-1.1.2.19-py3-none-any.whl",
"has_sig": false,
"md5_digest": "91a961fd0dcbc3879e53611b8222c660",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 21285,
"upload_time": "2024-04-05T08:26:24",
"upload_time_iso_8601": "2024-04-05T08:26:24.963413Z",
"url": "https://files.pythonhosted.org/packages/e4/f3/c6b08de019ee66efb9061d7e68052544f773c36371bd2a3f22030ad5d8e9/pykitinfo-1.1.2.19-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-05 08:26:24",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "microchip-pic-avr-tools",
"github_project": "pykitinfo",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "pykitinfo"
}