chipKIT® Development Platform

Inspired by Arduino™

PIC32MZ2048ECG144 support in Arduino IDE core libraries?

Created Mon, 09 May 2016 09:06:35 +0000 by jsaily


Mon, 09 May 2016 09:06:35 +0000

Hi, I would like to code using the Arduino IDE + Chipkit Core libraries for PIC32MZ2048ECG144 (Olimex PIC32-HMZ144). There are no compatible boards in the Chipkit Core libraries for Arduino IDE, closest is Chipkit WiFire with PIC32MZ2048EFG100 processor. I noticed that there are some Olimex boards already on the core library, so why not the PIC32-HMZ144 ;-)


Mon, 09 May 2016 09:48:39 +0000

Because it is way too new and none of us have one. Send me a free one and I will make a config for it ;)

MZ chips can be quite tricky to make configs for since the ADC is incredibly complex in them.


Mon, 09 May 2016 09:56:29 +0000

Maybe Olimex could support you with one ;-) I tried the MPLAB-X Harmony example from Olimex and it compiles ok but the Harmony configurator is way too complex for me. I'd like to port my existing code to MZ using four SPI buses and PLIB I/O calls, and preferably add a USB host for fast data transfer to a PC. I wonder if the USB host will work without Harmony libraries?

Hopefully your Chipkit32 form factor MZ-board is advancing well...


Tue, 19 Jul 2016 09:47:47 +0000

I'm also interested in MZ chips in chipkit. Not particulary this one, anything, especially in TQFP64 package would be great. Are there any plans for it?


Tue, 19 Jul 2016 11:11:15 +0000

There's so many new PIC32 chips around now it's impossible to keep up. As each of us design boards with specific chips on support for those chips is added to the core.

I'm working on a board with the PIC32MZ2048EFH144 on it, so support for that will be coming in the core when I get to the prototyping stage.

A board with the PIC32MZ2048EFM100 on it is also being integrated into the core, so support for that chip will be coming as well.

Then of course there's all the new PIC32MM chips that have been released (lower spec than MX but also lower power - ideal for IoT and battery applications) that support for will have to be worked in.

Microchip don't sit idle twiddling their thumbs like others do ;)


Tue, 19 Jul 2016 18:44:27 +0000

What about something powerfull but in TQFP64?

So there is no PIC32MZs yet for chipkit?


Tue, 19 Jul 2016 18:56:52 +0000

I did make an MZ version of the Fubarino SD once, but the power circuitry wasn't really up to the job - needs a complete redesign with a buck regulator on it. That, AFAIK, has been the only 64-pin MZ that has been tried with chipKIT. It was the PIC32MZ2048ECG064 along with all the major bugs that were with it.

Currently the core supports these MZ chips without needing any modifications:

    #define _CPU_NAME_      "32MZ1024ECG064"
    #define _CPU_NAME_      "32MZ1024ECH064"
    #define _CPU_NAME_      "32MZ1024ECM064"
    #define _CPU_NAME_      "32MZ2048ECG064"
    #define _CPU_NAME_      "32MZ2048ECH064"
    #define _CPU_NAME_      "32MZ2048ECM064"
    #define _CPU_NAME_      "32MZ1024ECG100"
    #define _CPU_NAME_      "32MZ1024ECH100"
    #define _CPU_NAME_      "32MZ1024ECM100"
    #define _CPU_NAME_      "32MZ2048ECG100"
    #define _CPU_NAME_      "32MZ2048ECH100"
    #define _CPU_NAME_      "32MZ2048ECM100"
    #define _CPU_NAME_      "32MZ1024ECG124"
    #define _CPU_NAME_      "32MZ1024ECH124"
    #define _CPU_NAME_      "32MZ1024ECM124"
    #define _CPU_NAME_      "32MZ2048ECG124"
    #define _CPU_NAME_      "32MZ2048ECH124"
    #define _CPU_NAME_      "32MZ2048EC124"
    #define _CPU_NAME_      "32MZ1024ECG144"
    #define _CPU_NAME_      "32MZ1024ECH144"
    #define _CPU_NAME_      "32MZ1024ECM144"
    #define _CPU_NAME_      "32MZ2048ECG144"
    #define _CPU_NAME_      "32MZ2048ECH144"
    #define _CPU_NAME_      "32MZ2048ECM144"
    #define _CPU_NAME_      "32MZ0512ECE064"
    #define _CPU_NAME_      "32MZ0512ECF064"
    #define _CPU_NAME_      "32MZ0512ECK064"
    #define _CPU_NAME_      "32MZ1024ECE064"
    #define _CPU_NAME_      "32MZ1024ECF064"
    #define _CPU_NAME_      "32MZ1024ECK064"
    #define _CPU_NAME_      "32MZ0512ECE100"
    #define _CPU_NAME_      "32MZ0512ECF100"
    #define _CPU_NAME_      "32MZ0512ECK100"
    #define _CPU_NAME_      "32MZ1024ECE100"
    #define _CPU_NAME_      "32MZ1024ECF100"
    #define _CPU_NAME_      "32MZ1024ECK100"
    #define _CPU_NAME_      "32MZ0512ECE124"
    #define _CPU_NAME_      "32MZ0512ECF124"
    #define _CPU_NAME_      "32MZ0512ECK124"
    #define _CPU_NAME_      "32MZ1024ECE124"
    #define _CPU_NAME_      "32MZ1024ECF124"
    #define _CPU_NAME_      "32MZ1024ECK124"
    #define _CPU_NAME_      "32MZ0512ECE144"
    #define _CPU_NAME_      "32MZ0512ECF144"
    #define _CPU_NAME_      "32MZ0512ECK144"
    #define _CPU_NAME_      "32MZ1024ECE144"
    #define _CPU_NAME_      "32MZ1024ECF144"
    #define _CPU_NAME_      "32MZ1024ECK144"
    #define _CPU_NAME_      "32MZ2048EFG064"
    #define _CPU_NAME_      "32MZ2048EFG100"
    #define _CPU_NAME_      "32MZ2048EFG124"
    #define _CPU_NAME_      "32MZ2048EFG144"
    #define _CPU_NAME_      "32MZ2048EFH064"
    #define _CPU_NAME_      "32MZ2048EFH100"
    #define _CPU_NAME_      "32MZ2048EFH124"
    #define _CPU_NAME_      "32MZ2048EFH144"
    #define _CPU_NAME_      "32MZ2048EFM064"
    #define _CPU_NAME_      "32MZ2048EFM100"
    #define _CPU_NAME_      "32MZ2048EFM124"
    #define _CPU_NAME_      "32MZ2048EFM144"

I guess you want the 32MZ2048EFH064 with the FPU and working ADC ;) which is supported fine by the core - you just need to create a set of board files to go along with it, and grab the EFADC.c file from the WiFire Rev C+ board defs. In fact it's probably simplest to take the WiFire Rev C+ defs and adapt them to suit your own board.