chipKIT® Development Platform

Inspired by Arduino™

Flashing bootloader to MAX32, "Failed to program device"

Created Sat, 25 Jan 2014 18:48:15 +0000 by dominicfhk


Sat, 25 Jan 2014 18:48:15 +0000

Hello! I am trying to flash the official bootloader onto my MAX32 using a PICkit 3 via MPLAB X. I connected both MAX32 and PICkit 3 using USB, loaded the .hex file, configured the device as PIC32MX795F512L, then "Make and Program Device". However, I got an error:

**On the "PICkit 3 tab": **Connecting to MPLAB PICkit 3... Firmware Suite Version.....01.29.08 Firmware type..............PIC32MX

Target detected Device ID Revision = A0

The following memory area(s) will be programmed: boot config memory configuration memory

Programming... boot config memory Address: 1fc00010 Expected Value: ffffffff Received Value: 401a6000 [color=#FF0000]Failed to program device[/color]

**On the "arduino-bootloader.X.Max32 (Load, Run)" tab: **Loading code from C:\arduino-bootloader.X.Max32.hex... Loading completed Connecting to programmer... Programming target... The programmer could not be started: Failed to program the target device

Does anyone knows what might have gone wrong? I got the bootloader from the Digilent website. Thanks!


Sat, 25 Jan 2014 21:26:26 +0000

I tried to downgrade to v8.80 because I found a tutorial on this forum teaching how to flash a bootloader on the chip but still no luck. Here is the error message:

PICkit 3 detected Connecting to PICkit 3... Running self test... Self test completed Firmware Suite Version...... 01.29.08 Firmware type......................PIC32MX PICkit 3 Connected. Device ID Revision = 04300053

Verifying... [color=#FF0000]The following memory regions failed to verify correctly Boot flash memory[/color] Address: 1fc00540 Expected Value: 2508054c Received Value: 2508151c [color=#FF0000]Verify failed[/color]


Tue, 28 Jan 2014 06:48:05 +0000

Unlike MPLABv8, MPLAB-X does not make for a good HEX programmer. There are ways to do it, but you must make a project to do it and that takes time and is just a pain. I know we all got comfortable with the way MPLABv8 did this, but not so for MPLAB-X; please don’t ask me why… I have no idea why it changed. Installed with MPLAB-X there is another programmed, IPE, shipped to program HEX files. Attached as a video programming a chipKIT WF32 and I think you will find this the easiest way to program a bootloader on your chipKIT.

If you want to learn more about how to debug and program chipKIT sketches along with the bootloader you can check out my debugging class material I presented at the MASTER’s last summer at: In that posting I also published a bunch of MPLAB-X projects, and one of those projects, PGMBootloader, was explicitly for programming the bootloaders from within MPLAB-X. However this project was setup painstakingly and requires an in-depth knowledge of how MPLAB-X programs bootflash. Not that you can’t figure it out, but it is not as straight forward as we might think (or hope).

Hope this helps