Summary of Mork Microchip PIC32MX ICSP
Mork is a firmware adaptation for STM32-based boards (vcc-gnd and Maple mini) enabling Microchip PIC ICSP programming. While both boards are powerful and inexpensive, the vcc-gnd requires external hardware like an STLink or 3V3 UART with STM32Flash due to its serial bootloader. The Maple mini offers a simpler experience using dfu-util via USB. Installation involves OpenCM3, gccarm, and specific make commands for flashing, followed by connecting target chips via ICSP pins.
Parts used in Mork:
- STM32 vcc-gnd board
- Maple mini board
- Nano 3.0
- STLink compatible device
- 3V3 UART
- STM32Flash software
- dfu-util
- OpenCM3 library
- gccarm compiler
- PIC32Prog software
- APE65 firmware
- PICMX150F150F128B chip
Mork is adaptation of Nanu nanu Microchip PIC ICSP for the STM32 based vcc-gnd or Maple mini.
Both STM32 boards are inexpensive boards which don’t cost much more than the Nano 3.0 yet they are far more powerful.
One complication though for the vcc-gnd, is that it comes with a serial boot loader which is not accessible via it’s USB port. This means that another device is required to program the vcc-gnd which can be an STLink compatible device or, if using a 3V3 UART, STM32Flash.
The vcc-gnd page shows both examples of programming the board.
The Maple mini comes with a USB boot loader which is compatible with dfu-util. This doesn’t need any other hardware and is an easier option for running this application than the vcc-gnd.
Licence
Mork is licensed under same terms as Pickle Microchip PIC ICSP which is the source of the software used to create this project. The Pickle LICENCE is found here. This licence details the rights and liabilities of using the application and it should be especially understood that I, the author, will not accept any responsibility for any side effects of running it. Do not download and use this firmware unless you are willing to accept the consequences of it failing for any reason.
Credits and thanks
This software was written by Darron M Broad and is an adaptation of Pickle Microchip PIC ICSP.
Thanks go to the libopencm3 developers for providing this library. This is used for a number of functions but most importantly, the USB driver.
Install
Mork utilises OpenCM3 and this must be installed first. Installation of this will require gccarm and Mork depends on that also.
When prepared we can fetch and build Mork.
hg clone http://hg.kewl.org/pub/Mork
cd Mork
make
Now we can install the firmware. In this example I am using STLink with a STM32 F4 discovery to program the vcc-gnd.
make -f Makefile.vcc-gnd st-flash
If you need to use STM32Flash, then program like this.
make -f Makefile.vcc-gnd stm32flash
You should follow the advice on the vcc-gnd page regarding wiring for STM32Flash and remember not to connect USB simultaneously when programming.
For the Maple mini the programming process is simpler. Install dfu-util and press reset on the board and then one second later, enter the following.
make -f Makefile.maple_mini dfu-util
Set up
Connecting to the target is simple, the following schematic gives an overview of the ICSP requirements.
The pins on the Maple mini are the same as the vcc-gnd.
Program & verify
When waiting for instructions Mork will blink the LED quickly and leave the target running.
Here I will use PIC32Prog to program the chip with the APE65 firmware for the PICMX150F128B.
For more detail: Mork Microchip PIC32MX ICSP
- How do I program the vcc-gnd board?
You must use an STLink compatible device or a 3V3 UART with STM32Flash because the serial bootloader is not accessible via USB. - Can I use the Maple mini without extra hardware?
Yes, the Maple mini has a USB bootloader compatible with dfu-util that does not require other hardware. - What software dependencies are required for installation?
Mork requires OpenCM3 and gccarm to be installed before fetching and building the project. - Which command programs the vcc-gnd using STLink?
The command is make -f Makefile.vcc-gnd st-flash. - How do I program the Maple mini board?
Install dfu-util, press reset on the board, wait one second, and then enter make -f Makefile.maple_mini dfu-util. - Are the pin configurations different between the two boards?
No, the pins on the Maple mini are the same as the vcc-gnd. - What happens when Mork waits for instructions?
The LED will blink quickly while leaving the target running. - Under what license is Mork distributed?
It is licensed under the same terms as Pickle Microchip PIC ICSP.

