Objective

MPLAB® Harmony is a flexible firmware development platform for PIC32 microcontrollers. This integrated software framework provides driver libraries and APIs that make it easier for you to use PIC32 peripherals (Timers, GPIO, UART, I2C, SPI, etc.). It also includes middleware libraries for USB (Host and Device), TCP/IP (Ethernet and WiFi®), Graphics, Bluetooth, and others.

Materials

Hardware Tools

It is not necessary to have an MPLAB Real ICE™ to program/debug the code. The PIC32MZ EF Starter Kit includes a PICkit™ on-board (PKOB) debugger. The PKOB debugger can be connected to a host PC through the USB mini-B connector on the PIC32MZ EF Starter Kit for programming/debugging (See Red Cable in the Hardware Setup)

In addition to the hardware listed above, you'll also need an Ethernet cable and two USB (mini-B) cables.

Software Tools

​

This project has been verified to work with the following versions of software tools:
MPLAB® X IDE v3.26, MPLAB® XC32 Compiler v1.40, MPLAB® Harmony v1.08

Because we regularly update our tools, occasionally you may discover an issue while using newer versions. If you suspect that to be the case, we recommend that you double check using the same versions that the project was tested with.

Archived versions of our tools can be found on the following Microchip websites:MPLAB Harmony (see "Archived Downloads" tab)MPLAB X IDE and XC32 Compiler (see "Downloads Archive" tab)
Note that multiple versions of all these tools can co-exist on the same computer.

Overview:

This application provides the ability to load and render graphic image files (onto the display panel of the development board) via a FAT32 File System stored on external SD card media. The images stored on the SDCARD can also be viewed as a slideshow on a web page hosted by the web server running on the development board.

The application enables DHCP client support. The image format supported is JPEG. The application also supports plug and play feature for the SD card media

APP_Tasks()

The web enabled digital photo frame application runs as a single application task in the App_Tasks() function.

Click image to enlarge.

Click image to enlarge.

Application States

The STATE_INIT state registers an application callback with the file system service, and waits in the STATE_MEDIA_UNMOUNTED state. Once the SD card is mounted, the application moves to the STATE_TCPIP_INIT state. After TCP/IP initialization, it moves to the STATE_MEDIA_MOUNTED state. The application then moves to the STATE_DRAW_NEXT_SLIDE state on Timer or Touch events. The application reads the next image header in the STATE_WAIT_BETWEEN_SLIDE state.

Click image to enlarge.

Click image to enlarge.

Lab Source Files and Solutions:

This ZIP file contains the completed solution project for this lab. It also contains the source files needed to perform the labs per the following step-by-step instructions (see the "Procedure" section on this page).

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.

Click here to edit contents of this page.

Click here to toggle editing of individual sections of the page (if possible). Watch headings for an "edit" link when available.

Append content without editing the whole page source.

Check out how this page has evolved in the past.

If you want to discuss contents of this page - this is the easiest way to do it.

View and manage file attachments for this page.

A few useful tools to manage this Site.

See pages that link to and include this page.

Change the name (also URL address, possibly the category) of the page.