I already managed to overwrite the bootloader of my clients's PIC32MX7 board while experimenting with mikroe-uhb. so before I can continue the assignment I need to reprogram it, and all I have on hand is a PICkit 2. I have a PICkit 2 to ICD3 cable on order, but my worry is that the different voltage levels (5VDC on the Pk2, 3.3 on the MMB) could fry the board. googling around, I've seen suggestions for using diodes or resistors, or adding capacitors here and there, but I'm wondering if it really needs to be that complicated. I saw at least one post that indicated if the PICkit2 sees a voltage on the VDD line, it won't put out its own. can anyone here tell me authoritatively what the deal is?
[added later]
just for reference, here is the adapter cable I bought: http://www.ebay.com/itm/251569322951
it turns out that its pin numbering is in reverse to the PICkit 2, i.e., hook the blue wire to pin 1 of the Pk2, rather than the white wire. I powered up the mikroe board, then connected the PICkit2 to the ICD3 port and ran pic32prog:
jcomeau@aspire:~/rentacoder/jm_____$ pic32prog/pic32prog pic32mx795f512l_bootloader_firmware_v130.hex
Programmer for Microchip PIC32 microcontrollers, Version 1.96
Copyright: (C) 2011-2014 Serge Vakulenko
Adapter: PICkit2 Version 2.32.0
Processor: MX795F512L
Flash memory: 512 kbytes
Boot memory: 12 kbytes
Data: 12428 bytes
Erase: done
Program flash: ########################### done
Program boot: #### done
Verify flash: ########################## done
Verify boot: #### done
Rate: 1517 bytes per second
Best Answer
The PicKit2 can program 3.3V devices just fine. Look at the PK2 user guide, section 3.4.2:
You should look at the whole chapter 3, and compare its requirements / recommendations with the schematic of the board you need to program. But if it has an ICD3 header you probably should be fine.
You can measure, before connecting the PK2 to your board, that it indeed does output the proper voltage on Vdd when controlled by pic32prog (about 3.3V).
(Updated after reading Majenko's answer who did indeed look at the source code)