Table of Contents
PyMCUProg
Python cross platform programmer and debugger for Microchip CMSIS interfaces.
Processor support is limited and various components are marked with “alpha” support at this time.
It can work with boards with built-in interfaces or the SNAP and PICKIT 4 interfaces updated with new firmware and switched into AVR mode (untested).
Interesting side note, the SNAP was £7 and the PICKIT 4 £45 in 2019 and now cost £39 for the SNAP and £88 for the PICKIT 4 in 2022. Microchip offer this free tool with limited support yet very expensive hardware to use it with.
TODO
Connect a MCHP SNAP in CMSIS mode to the Seeduino Xiao and see if it functions.
Install
Python 3 is a requirement and the tool is installed using pip.
apt install python3 python3-pip rehash pip3 install pymcuprog
Supported MCUs
Listing the devices directory will inform you of the supported controllers.
ls /usr/local/lib/python3.7/dist-packages/pymcuprog/deviceinfo/devices/
The help file mentions getting software packs for more options but visiting the pack site offers nothing useful.
Microchip ATMEGA328PB XPLAINED MINI
Supported interface but unsupported microcontroller (ATMega328PB).
USB
This is a virtual console port (AKA USB software modem).
Bus 001 Device 024: ID 03eb:2145 Atmel Corp. ATMEGA328P-XMINI (CDC ACM)
Test
Unknown MCU
pymcuprog ping Connecting to anything possible Connected to mEDBG CMSIS-DAP from Atmel (serial number ATML2523052700002178) Debugger firmware version 1.22.134 Debugger hardware revision 0 Device mounted: 'atmega328pb' No device specified. Using on-board target (atmega328pb) Unable to setup stack for device atmega328pb Currently supported devices (in 'devices' folder): attiny84a, avr32dd32, avr16dd28, pic16f17146, avr64dd20, pic18f47q10, pic16f1769, attiny814, avr64dd14, attiny417, pic16f1768, avr32da28, avr64du28, atmega1609, dspic33ck64mc105, avr128da28, avr64ea32, avr64db48, pic18f57q84, pic16f18146, avr64db32, pic16f18076, pic18f16q41, attiny1614, pic16f15276, uc3a3256, attiny1617, attiny1616, avr64db64, attiny824, avr32db28, atsamd21g18a, avr64da32, pic16f15376, pic18f47q43, pic16f18456, atmega808, avr64da28, pic18f56q71, avr64du32, avr128db48, attiny426, attiny806, attiny402, attiny804, pic18f06q20, avr128da64, attiny427, atmega328p, attiny3226, atmega4808, pic16f18446, attiny817, attiny1626, attiny104, attiny414, avr128db28, pic18f57q43, pic24fj128ga705, pic16f1779, attiny212, avr64ea28, avr32da32, attiny406, avr32db48, avr64da48, avr16dd20, avr64da64, avr128db32, avr64dd28, pic18f16q20, attiny826, pic18f47k40, avr32dd14, attiny816, pic18f16q40, attiny404, avr16dd14, atmega1608, attiny416, attiny3227, pic18f46q71, avr32da48, attiny1604, attiny3217, atmega809, pic16f15244, avr64db28, pic18f47k42, avr32dd28, atxmega128a1u, atmega3209, atmega3208, avr64dd32, attiny1624, avr128da32, avr16dd32, attiny202, avr128da48, pic16lf18456, avr32dd20, attiny214, avr64ea48, atmega4809, attiny827, attiny3224, pic24fj64gu205, attiny3216, avr32db32, attiny412, attiny424, atmega324pb, attiny1606, atsamd21e18a, attiny807, attiny1607, avr128db64, attiny204, attiny1627
Microchip DM164140 - MPLAB Xpress Evaluation Board
Unsupported interface, microcontroller (PIC16F18855) support unknown.
USB
This is mass storage device and no idea if the firmware can be altered otherwise.
Bus 001 Device 023: ID 04d8:0057 Microchip Technology, Inc.
Test
pymcuprog ping Connecting to anything possible pyedbglib.hidtransport.hidtransportbase - ERROR - No CMSIS-DAP devices found. Unable to connect to USB device