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.


Connect a MCHP SNAP in CMSIS mode to the Seeduino Xiao and see if it functions.


Python 3 is a requirement and the tool is installed using pip.

apt install python3 python3-pip
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.


Supported interface but unsupported microcontroller (ATMega328PB).


This is a virtual console port (AKA USB software modem).

Bus 001 Device 024: ID 03eb:2145 Atmel Corp. ATMEGA328P-XMINI (CDC ACM)

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.


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. 
pymcuprog ping
Connecting to anything possible
pyedbglib.hidtransport.hidtransportbase - ERROR - No CMSIS-DAP devices found.
Unable to connect to USB device


This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies