====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]]