====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 [[https://wiki.kewl.org/dokuwiki/boards:seeedxiao|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 [[https://packs.download.microchip.com/|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 ===Resources=== [[https://pypi.org/project/pymcuprog/|Main site]] [[https://github.com/microchip-pic-avr-tools/pymcuprog|Development site]]