Getting Started with MPLAB® Harmony v3 to Create a Web-Enabled Digital Photo Frame


MPLAB® Harmony is a flexible firmware development platform for PIC32 microcontrollers. This integrated software framework provides driver libraries and Application Programming Interfaces (APIs) that make it easier to use PIC32 peripherals (timers, GPIO, UART, I2C, SPI, etc.). It also includes middleware libraries for USB (host and device), TCP/IP (Ethernet and Wi-Fi®), graphics, Bluetooth®, and others.

This tutorial is intended to show users how to create a web-enabled digital photo frame from scratch using MPLAB Harmony 3 and MPLAB Code Configurator (MCC) with Harmony 3. The project you create will run on the Curiosity PIC32MZ EF 2.0 Development Board (DM320209). This application will perform the following tasks:

  • The photos will be hosted on the microSD Click board mounted on the mikroBUS™ 1 of the Curiosity 2.0 board.
  • Display photos from the SD card using the High-Performance 4.3" WQVGA Display Module with maXTouch® (AC320005-4) technology and the SSD1963 LCD Controller Graphics Card (AC320214).
  • Host an onboard webserver to display the same photos using your computer's web browser, using the TCP/IP stack on the PIC32MZ2048EFM144, where the Ethernet MAC mounted is connected via RMII, with KSZ8061 Daughter Board (AC320004-6) mounted on the Ethernet PHY Module of the Curiosity 2.0 board.
  • Console using the MCP2221 USB-to-UART/I2C converter from MikroElektronika (USB I2C Click).

Download the PDF file >

Lab Source Files and Solutions

The ZIP file contains the completed solution project for this lab. It also contains the source files needed to perform the lab by following the step-by-step instructions.

Note: The contents of this ZIP file need to be placed in a folder of your choice.

  • The project location of a Harmony v3 project is independent of the location of the Harmony Framework path (i.e., you need not create or place a Harmony v3 project in a relative path under the Harmony v3 framework folder). The project can be created or placed in any directory of your choice. This is true because when created, a Harmony v3 project generates all the referred source and header files and libraries (if any) under the project folder.

Extracting the ZIP file creates the following folders:

  • pic32mzef_web_photo_frame contains the lab solution and source files (in the dev_files folder).
    • dev_files contains subfolders that contain application source files and other support files (if any) required to perform the lab.
    • firmware contains the completed lab solution project. It can be directly built and downloaded on the hardware to observe expected behavior.
© 2024 Microchip Technology, Inc.
Notice: ARM and Cortex are the registered trademarks of ARM Limited in the EU and other countries.
Information contained on this site regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer's risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights.