Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: MicrochipTech/aws-iot-firmware-pic32mz
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.1.0
Choose a base ref
...
head repository: MicrochipTech/aws-iot-firmware-pic32mz
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
  • 18 commits
  • 90 files changed
  • 4 contributors

Commits on Jun 29, 2016

  1. Added MPLAB IPE programming instructions; Reworked project to build w…

    …ith Harmony 1.08; Changed app.c version number to 1.2.0
    David Cowden authored and David Cowden committed Jun 29, 2016
    Copy the full SHA
    19f83df View commit details
  2. Reworked documenation based on review; Removing harmony license file …

    …as it is included in harmony download
    David Cowden authored and David Cowden committed Jun 29, 2016
    Copy the full SHA
    45c5420 View commit details

Commits on Jul 6, 2016

  1. Changed version number to 1.2.1 in application

    Fixed aws cli in OoB documentation
    David Cowden authored and David Cowden committed Jul 6, 2016
    Copy the full SHA
    5da2f5e View commit details

Commits on Jul 27, 2016

  1. Tested firmware on MPLAB X 3.35, XC32 1.42, and Harmony 1.08.01 code;…

    … Removed old certs and licenses; Updated documentation;
    David Cowden authored and David Cowden committed Jul 27, 2016
    Copy the full SHA
    a4732d1 View commit details

Commits on Jul 29, 2016

  1. Adding fixed configurations file

    David Cowden authored and David Cowden committed Jul 29, 2016
    Copy the full SHA
    a22792c View commit details
  2. Fixed path name to have an underscore: this fixes a bug in MPLAB X 3.35

    David Cowden authored and David Cowden committed Jul 29, 2016
    Copy the full SHA
    e94c705 View commit details

Commits on Aug 1, 2016

  1. Changing optimization to 0 (None)

    David Cowden authored and David Cowden committed Aug 1, 2016
    Copy the full SHA
    ec89bf5 View commit details

Commits on Aug 23, 2016

  1. Adding Microchip license; Updating image for MHC settings instructions

    David Cowden authored and David Cowden committed Aug 23, 2016
    Copy the full SHA
    97612ce View commit details

Commits on Sep 28, 2016

  1. Removing unused setup for AWS cli

    Stephen Porter committed Sep 28, 2016
    Copy the full SHA
    b2a226c View commit details

Commits on Sep 29, 2016

  1. Merge pull request #5 from MicrochipTech/document-fixes

    Removing unused setup for AWS cli
    David authored Sep 29, 2016
    Copy the full SHA
    8e4e169 View commit details

Commits on Sep 30, 2016

  1. Merge branch 'v1.3.0' into develop

    David Cowden authored and David Cowden committed Sep 30, 2016
    Copy the full SHA
    fb9db29 View commit details
  2. Merge pull request #6 from MicrochipTech/develop

    v1.3.0 Release
    David authored Sep 30, 2016
    Copy the full SHA
    b5637b6 View commit details

Commits on Oct 10, 2016

  1. Copy the full SHA
    2b89c4f View commit details
  2. Merge pull request #8 from MicrochipTech/1.3.1-rc1

    Fixes MDIX swapping to enable swapped by default. Fixes #7.
    David authored Oct 10, 2016
    Copy the full SHA
    5c33cb8 View commit details
  3. Bumping version number

    David Cowden authored and David Cowden committed Oct 10, 2016
    Copy the full SHA
    6650d2b View commit details
  4. Merge pull request #9 from MicrochipTech/develop

    v1.3.1 Release
    David authored Oct 10, 2016
    Copy the full SHA
    90496bc View commit details

Commits on Dec 23, 2016

  1. Adding v2.0.0-rc1 files

    David Cowden authored and David Cowden committed Dec 23, 2016
    Copy the full SHA
    fa0f823 View commit details
  2. Merge pull request #10 from MicrochipTech/v2.0.0-dev

    Releasing v2.0.0
    David authored Dec 23, 2016
    Copy the full SHA
    919451b View commit details
Showing with 16,715 additions and 6,487 deletions.
  1. +19 −94 LICENSE
  2. BIN documents/harmony_license_v1.07.01.pdf
  3. BIN documents/images/configurationSelect.png
  4. BIN documents/images/ipe-connecting-to-programmer.png
  5. BIN documents/images/ipe-device-tool.png
  6. BIN documents/images/ipe-hex-browse.png
  7. BIN documents/images/ipe-program.png
  8. BIN documents/images/ipe-programming-complete.png
  9. BIN documents/images/ipe-programming.png
  10. BIN documents/images/mhc-generate-code-settings.png
  11. +11 −10 documents/iot-ethernet-firmware-compile-and-program.md
  12. +62 −0 documents/iot-ethernet-mplab-ipe.md
  13. +8 −176 documents/iot-ethernet-out-of-box-guide.md
  14. +2,024 −379 software/aws-iot-ethernet/firmware/aws-iot-ethernet.X/nbproject/configurations.xml
  15. +175 −227 software/aws-iot-ethernet/firmware/src/app.c
  16. +46 −19 software/aws-iot-ethernet/firmware/src/app.h
  17. +2 −2 software/aws-iot-ethernet/firmware/src/app1.c
  18. +5 −2 software/aws-iot-ethernet/firmware/src/app1.h
  19. +683 −0 software/aws-iot-ethernet/firmware/src/app2.c
  20. +293 −0 software/aws-iot-ethernet/firmware/src/app2.h
  21. +167 −0 software/aws-iot-ethernet/firmware/src/app_insight_support.c
  22. +97 −0 software/aws-iot-ethernet/firmware/src/app_insight_support.h
  23. +9 −75 software/aws-iot-ethernet/firmware/src/app_nvm_support.c
  24. +0 −219 software/aws-iot-ethernet/firmware/src/ca-certs.h
  25. +0 −289 software/aws-iot-ethernet/firmware/src/configuration_http.c
  26. BIN software/aws-iot-ethernet/firmware/src/configuration_webpage/DynRcrd.bin
  27. BIN software/aws-iot-ethernet/firmware/src/configuration_webpage/FileRcrd.bin
  28. +0 −1 software/aws-iot-ethernet/firmware/src/configuration_webpage/css/mchp-min.css
  29. +0 −146 software/aws-iot-ethernet/firmware/src/configuration_webpage/css/mchp.css
  30. +0 −12 software/aws-iot-ethernet/firmware/src/configuration_webpage/error.htm
  31. +0 −4 software/aws-iot-ethernet/firmware/src/configuration_webpage/footer.inc
  32. +0 −11 software/aws-iot-ethernet/firmware/src/configuration_webpage/header.inc
  33. BIN software/aws-iot-ethernet/firmware/src/configuration_webpage/images/mchp.gif
  34. +0 −32 software/aws-iot-ethernet/firmware/src/configuration_webpage/index.htm
  35. +0 −198 software/aws-iot-ethernet/firmware/src/configuration_webpage/javascript/mchp.js
  36. +0 −16 software/aws-iot-ethernet/firmware/src/configuration_webpage/reconnect.htm
  37. +0 −1,879 software/aws-iot-ethernet/firmware/src/custom_http_app.c
  38. +0 −79 software/aws-iot-ethernet/firmware/src/http_print.c
  39. +0 −4 software/aws-iot-ethernet/firmware/src/http_print.idx
  40. +0 −589 software/aws-iot-ethernet/firmware/src/mpfs_img2.c
  41. +345 −171 software/aws-iot-ethernet/firmware/src/parson.c
  42. +37 −28 software/aws-iot-ethernet/firmware/src/parson.h
  43. +1,165 −0 software/aws-iot-ethernet/firmware/src/system_config/DM990004_IoT_Ethernet/DM990004_IoT_Ethernet.mhc
  44. +7 −4 ...s-iot-ethernet/firmware/src/system_config/{IoT-Ethernet → DM990004_IoT_Ethernet}/FreeRTOSConfig.h
  45. +2 −2 software/aws-iot-ethernet/firmware/src/{ → system_config/DM990004_IoT_Ethernet}/bsp_config.h
  46. 0 software/aws-iot-ethernet/firmware/src/system_config/{IoT-Ethernet → DM990004_IoT_Ethernet}/config.h
  47. +2,388 −0 software/aws-iot-ethernet/firmware/src/system_config/DM990004_IoT_Ethernet/configuration.xml
  48. 0 ...re/src/system_config/{IoT-Ethernet → DM990004_IoT_Ethernet}/framework/driver/adc/drv_adc_static.h
  49. 0 ...rc/system_config/{IoT-Ethernet → DM990004_IoT_Ethernet}/framework/driver/adc/src/drv_adc_static.c
  50. +3 −0 ...re/src/system_config/{IoT-Ethernet → DM990004_IoT_Ethernet}/framework/driver/cmp/drv_cmp_static.h
  51. +3 −3 ...rc/system_config/{IoT-Ethernet → DM990004_IoT_Ethernet}/framework/driver/cmp/src/drv_cmp_static.c
  52. 0 ...src/system_config/{IoT-Ethernet → DM990004_IoT_Ethernet}/framework/net/pres/net_pres_cert_store.c
  53. +2 −5 ...e/src/system_config/{IoT-Ethernet → DM990004_IoT_Ethernet}/framework/net/pres/net_pres_enc_glue.c
  54. 0 ...e/src/system_config/{IoT-Ethernet → DM990004_IoT_Ethernet}/framework/net/pres/net_pres_enc_glue.h
  55. +1 −1 ...rc/system_config/{IoT-Ethernet → DM990004_IoT_Ethernet}/framework/system/clk/src/sys_clk_static.c
  56. 0 ...re/src/system_config/{IoT-Ethernet → DM990004_IoT_Ethernet}/framework/system/clk/sys_clk_static.h
  57. +901 −0 ...et/firmware/src/system_config/DM990004_IoT_Ethernet/framework/system/ports/src/sys_ports_static.c
  58. +6 −0 ...e/aws-iot-ethernet/firmware/src/system_config/{IoT-Ethernet → DM990004_IoT_Ethernet}/rtos_hooks.c
  59. +110 −176 ...ws-iot-ethernet/firmware/src/system_config/{IoT-Ethernet → DM990004_IoT_Ethernet}/system_config.h
  60. +2 −6 ...t-ethernet/firmware/src/system_config/{IoT-Ethernet → DM990004_IoT_Ethernet}/system_definitions.h
  61. 0 ...ot-ethernet/firmware/src/system_config/{IoT-Ethernet → DM990004_IoT_Ethernet}/system_exceptions.c
  62. +895 −0 software/aws-iot-ethernet/firmware/src/system_config/DM990004_IoT_Ethernet/system_init.c
  63. +2 −2 ...iot-ethernet/firmware/src/system_config/{IoT-Ethernet → DM990004_IoT_Ethernet}/system_interrupt.c
  64. 0 ...t-ethernet/firmware/src/system_config/{IoT-Ethernet → DM990004_IoT_Ethernet}/system_interrupt_a.S
  65. +27 −4 ...aws-iot-ethernet/firmware/src/system_config/{IoT-Ethernet → DM990004_IoT_Ethernet}/system_tasks.c
  66. +112 −124 ...c/system_config/{IoT-Ethernet/IoT-Ethernet.mhc → DM990005_IoT_Ethernet/DM990005_IoT_Ethernet.mhc}
  67. +162 −0 software/aws-iot-ethernet/firmware/src/system_config/DM990005_IoT_Ethernet/FreeRTOSConfig.h
  68. +612 −0 software/aws-iot-ethernet/firmware/src/system_config/DM990005_IoT_Ethernet/bsp_config.h
  69. +78 −0 software/aws-iot-ethernet/firmware/src/system_config/DM990005_IoT_Ethernet/config.h
  70. +2,405 −0 software/aws-iot-ethernet/firmware/src/system_config/DM990005_IoT_Ethernet/configuration.xml
  71. +105 −0 ...t-ethernet/firmware/src/system_config/DM990005_IoT_Ethernet/framework/driver/adc/drv_adc_static.h
  72. +268 −0 ...hernet/firmware/src/system_config/DM990005_IoT_Ethernet/framework/driver/adc/src/drv_adc_static.c
  73. +68 −0 ...t-ethernet/firmware/src/system_config/DM990005_IoT_Ethernet/framework/driver/cmp/drv_cmp_static.h
  74. +111 −0 ...hernet/firmware/src/system_config/DM990005_IoT_Ethernet/framework/driver/cmp/src/drv_cmp_static.c
  75. +45 −0 ...thernet/firmware/src/system_config/DM990005_IoT_Ethernet/framework/net/pres/net_pres_cert_store.c
  76. +296 −0 ...-ethernet/firmware/src/system_config/DM990005_IoT_Ethernet/framework/net/pres/net_pres_enc_glue.c
  77. +61 −0 ...-ethernet/firmware/src/system_config/DM990005_IoT_Ethernet/framework/net/pres/net_pres_enc_glue.h
  78. +371 −0 ...hernet/firmware/src/system_config/DM990005_IoT_Ethernet/framework/system/clk/src/sys_clk_static.c
  79. +81 −0 ...t-ethernet/firmware/src/system_config/DM990005_IoT_Ethernet/framework/system/clk/sys_clk_static.h
  80. +901 −0 ...et/firmware/src/system_config/DM990005_IoT_Ethernet/framework/system/ports/src/sys_ports_static.c
  81. +124 −0 software/aws-iot-ethernet/firmware/src/system_config/DM990005_IoT_Ethernet/rtos_hooks.c
  82. +548 −0 software/aws-iot-ethernet/firmware/src/system_config/DM990005_IoT_Ethernet/system_config.h
  83. +154 −0 software/aws-iot-ethernet/firmware/src/system_config/DM990005_IoT_Ethernet/system_definitions.h
  84. +143 −0 software/aws-iot-ethernet/firmware/src/system_config/DM990005_IoT_Ethernet/system_exceptions.c
  85. +29 −86 .../aws-iot-ethernet/firmware/src/system_config/{IoT-Ethernet → DM990005_IoT_Ethernet}/system_init.c
  86. +142 −0 software/aws-iot-ethernet/firmware/src/system_config/DM990005_IoT_Ethernet/system_interrupt.c
  87. +184 −0 software/aws-iot-ethernet/firmware/src/system_config/DM990005_IoT_Ethernet/system_interrupt_a.S
  88. +218 −0 software/aws-iot-ethernet/firmware/src/system_config/DM990005_IoT_Ethernet/system_tasks.c
  89. +0 −1,301 software/aws-iot-ethernet/firmware/src/system_config/IoT-Ethernet/configuration.xml
  90. +0 −111 ...ot-ethernet/firmware/src/system_config/IoT-Ethernet/framework/system/ports/src/sys_ports_static.c
113 changes: 19 additions & 94 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,80 +1,26 @@
Software License Agreement
MPLAB Harmony Integrated Software Framework v1.07.01
© 2016 Microchip Technology Inc. and its subsidiaries. You may use this
software and any derivatives exclusively with Microchip products.

See documents/harmony_license_v1.07.01.pdf
THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER EXPRESS,
IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED WARRANTIES
OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE, OR
ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR
USE IN ANY APPLICATION.

################################################################################
IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER
RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF
THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT ALLOWED
BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THIS
SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY
TO MICROCHIP FOR THIS SOFTWARE.

FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd.
All rights reserved
MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE
TERMS.

VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
#####################################################################

This file is part of the FreeRTOS distribution.

FreeRTOS is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License (version 2) as published by the
Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.

***************************************************************************
>>! NOTE: The modification to the GPL is included to allow you to !<<
>>! distribute a combined work that includes FreeRTOS without being !<<
>>! obliged to provide the source code for proprietary components !<<
>>! outside of the FreeRTOS kernel. !<<
***************************************************************************

FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. Full license text is available on the following
link: http://www.freertos.org/a00114.html

***************************************************************************
* *
* FreeRTOS provides completely free yet professionally developed, *
* robust, strictly quality controlled, supported, and cross *
* platform software that is more than just the market leader, it *
* is the industry's de facto standard. *
* *
* Help yourself get started quickly while simultaneously helping *
* to support the FreeRTOS project by purchasing a FreeRTOS *
* tutorial book, reference manual, or both: *
* http://www.FreeRTOS.org/Documentation *
* *
***************************************************************************

http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading
the FAQ page "My application does not run, what could be wrong?". Have you
defined configASSERT()?

http://www.FreeRTOS.org/support - In return for receiving this top quality
embedded software for free we request you assist our global community by
participating in the support forum.

http://www.FreeRTOS.org/training - Investing in training allows your team to
be as productive as possible as early as possible. Now you can receive
FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers
Ltd, and the world's leading authority on the world's leading RTOS.

http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
including FreeRTOS+Trace - an indispensable productivity tool, a DOS
compatible FAT file system, and our tiny thread aware UDP/IP stack.

http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.
Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.

http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High
Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS
licenses offer ticketed support, indemnification and commercial middleware.

http://www.SafeRTOS.com - High Integrity Systems also provide a safety
engineered and independently SIL3 certified version for use in safety and
mission critical applications that require provable dependability.

1 tab == 4 spaces!

################################################################################

Parson ( http://kgabis.github.com/parson/ )
Parson ( http://kgabis.github.com/parson/ )
Copyright (c) 2012 - 2015 Krzysztof Gabis

Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -95,28 +41,7 @@ mission critical applications that require provable dependability.
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

################################################################################

* Copyright (C) 2006-2015 wolfSSL Inc.
*
* This file is part of wolfSSL. (formerly known as CyaSSL)
*
* wolfSSL is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* wolfSSL is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/

################################################################################
#####################################################################

* Copyright (C) 2006-2016 wolfSSL Inc.
*
Binary file removed documents/harmony_license_v1.07.01.pdf
Binary file not shown.
Binary file added documents/images/configurationSelect.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documents/images/ipe-connecting-to-programmer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documents/images/ipe-device-tool.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documents/images/ipe-hex-browse.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documents/images/ipe-program.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documents/images/ipe-programming-complete.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documents/images/ipe-programming.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified documents/images/mhc-generate-code-settings.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
21 changes: 11 additions & 10 deletions documents/iot-ethernet-firmware-compile-and-program.md
Original file line number Diff line number Diff line change
@@ -13,15 +13,17 @@ This document will show you where to find the latest _released_ version of the f
You will need the following Microchip development tools to program and develop with the Microchip IoT Ethernet.

- Download the latest project for IoT Ethernet from here: [IoT Ethernet Project](https://github.com/MicrochipTech/aws-iot-firmware-pic32mz/releases/latest)
- Download and install Microchip MPLAB<sup>&reg;</sup> Harmony Integrated Software Framework v1.07.01 for your OS from here: [Harmony](http://www.microchip.com/mplab/mplab-harmony)
- Download and install Microchip MPLAB<sup>&reg;</sup> Harmony Integrated Software Framework v1.09 for your OS from here: [Harmony](http://www.microchip.com/mplab/mplab-harmony)
- Download and install Microchip MPLAB<sup>&reg;</sup> X IDE for your OS from here:
[Microchip MPLAB<sup>&reg;</sup> X IDE](http://www.microchip.com/mplabx) (3.26, 3.30 tested)
- Download and install the latest XC32 compiler for your OS from here (Install both v1.40 and v1.40B - Part Patch): [Microchip MPLAB<sup>&reg;</sup> XC32 Compiler](http://www.microchip.com/xc32) (v1.40 with v1.40B part patch tested)
[Microchip MPLAB<sup>&reg;</sup> X IDE](http://www.microchip.com/mplabx) (3.40 Required)
- Download and install the v1.42 XC32 compiler for your OS from here: [Microchip MPLAB<sup>&reg;</sup> XC32 Compiler](http://www.microchip.com/xc32)

More information about Microchip tools can be found on [Microchip's developer help site](http://microchip.wikidot.com/swtools:start)

---

### Compiling and programming the IoT Ethernet Board
Test platform is MAC OS X, these instructions may vary slightly on different OS.
Example below is shown on MAC OS X, these instructions may vary slightly on different OS.

#### Compiling the Firmware
1. Extract the zip file downloaded from the git repository to a location of your choice
@@ -30,9 +32,11 @@ Test platform is MAC OS X, these instructions may vary slightly on different OS.
- Navigate to: ` <path-to-your-project>/aws-iot-firmware-pic32mz/software/aws-iot-ethernet/firmware`
- Select the project __aws-iot-ethernet.X__
- With your project opened, right click on the project __aws-iot-ethernet__ in the Projects tab and select __Set as Main Project__
- Follow these directions to install the Microchip Harmony Configurator (MHC): [Steps to Install MHC](http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB%20Harmony%20Configurator%20%28MHC%29%20and%20MPLAB%20Harmony%20Graphics%20Composer%20%28v1.07.01%29.pdf)
- Open the MHC by clicking __Tools -> Embedded -> MPLAB Harmony Configurator__
- The MHC will prompt asking to choose a Harmony framework to use, select "Yes" and select the location of your v1.07.01 Harmony install and click "OK"
- Select the configuration for the board you wish to program from the dropdown box at the top.
![](images/configurationSelect.png)
- Follow these directions to install the Microchip Harmony Configurator (MHC): [Steps to Install MHC](http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB%20Harmony%20Configurator%20(MHC)%20and%20MPLAB%20Harmony%20Graphics%20Composer.pdf)
- Open the MHC by clicking __Tools -> Embedded -> MPLAB Harmony Configurator__
- The MHC will prompt asking to choose a Harmony framework to use, select "Yes" and select the location of your Harmony install and click "OK"
- The MHC will then ask if you want to open the configuration file __IoT-Ethernet.mhc__ for the __aws-iot-ethernet__ project, select "Open" to proceed.
- With the new Harmony framework selected for your project, you will need to regenerate code by clicking the generate code button. ![](images/generateCode.png)
- A settings window will pop up, check only the box "Create a backup...": ![](images/mhc-generate-code-settings.png)
@@ -54,6 +58,3 @@ If you are having trouble, check to make sure that each of the issues bellow are

#### Project won't compile due to missing files
- Often times a project won't compile if you are on a Windows machine due to a limitation in the path length. Windows OS has a max path length of 260 characters, so file paths are sometimes truncated when attempting to compile which leads to files not being found by the compiler. Try putting the project in the topmost directory, usually "C:/". For more information please see [MSDN article from Microsoft](https://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx#maxpath).

#### Project won't compile due to errors such as missing ADCxxx registers
- As of the v1.1.0 release the latest compiler for XC32 is v1.40. This compiler must be updated with the v1.40B which is the "Part Patch". This installer will update your XC32 v1.40 comipler with the required files to compile for the part on the IoT Ethernet Kit. Again, this can be downloaded at [Microchip MPLAB<sup>&reg;</sup> XC32 Compiler](http://www.microchip.com/xc32).
62 changes: 62 additions & 0 deletions documents/iot-ethernet-mplab-ipe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
### IoT Ethernet MPLAB<sup>&reg;</sup> IPE

---

### Introduction
This document will show you where to find the latest _released_ version of the firmware HEX and how to program it into the IoT Ethernet Kit. The MPLAB<sup>&reg;</sup> IPE allows you to directly program the HEX file of a program into the hardware. This eliminates having to recompile a program.

More information about the MPLAB<sup>&reg;</sup> IPE can be found on [Microchip's developer help site](http://microchip.wikidot.com/ipe:start).

---

### Required Tools and Applications
#### Microchip Required Tools and Applications
You will need the following Microchip development tools to program the Microchip IoT Ethernet Kit.

- Download the latest HEX file for IoT Ethernet from here: [IoT Ethernet Project](https://github.com/MicrochipTech/aws-iot-firmware-pic32mz/releases/latest)
- Download and install Microchip MPLAB<sup>&reg;</sup> X IDE for your OS from here:
[Microchip MPLAB<sup>&reg;</sup> X IDE](http://www.microchip.com/mplabx)
- PICKit<sup>&trade;</sup> 3 In-Circuit Debugger/Programmer (or other programmer)

---

### Programming the IoT Ethernet Board using MPLAB<sup>&reg;</sup> IPE
1. Connect your PICKIT<sup>&trade;</sup> 3 to your computer via the USB cable.
- Connect the PICKIT<sup>&trade;</sup> 3 to the IoT Ethernet Kit ICSP header by aligning the triangles that indicate pin 1.
- Power on the IoT Ethernet Kit.
- Open MPLAB<sup>&reg;</sup> IPE; this can be found in the same installation folders as MPLAB<sup>&reg;</sup> X.
- We need to select which microcontroller we are using. Begin by selecting the following
- Select "All Families" for the "Family:" option.
- Select "PIC32MZ2048EFM064" for the "Device:" option
- Click the "Apply" button
- Next we need to connect to our programmer.
- Under "Tool:" select the PICKit<sup>&trade;</sup> 3 or other programmer.
- The tool should be enumerated with its serial number.
- Click the "Connect" button

![Settings](./images/ipe-device-tool.png)
- The programmer will begin to connect to the IPE, it may update itself with new firmware. This is normal. When the programmer is fully connected you should see your target PIC32 device found as shown below.

![Programmer connecting](./images/ipe-connecting-to-programmer.png)
- Now we need to load the HEX file into the IPE. Click the "Browse" button next to the "Source" box. Browse to the HEX file you downloaded and select it.

![Hex browseing](./images/ipe-hex-browse.png)
- Once the HEX file is loaded you will get a dialog in the output window saying "Hex file loaded successfully".
- Now we can program the board: Click the "Program" button.

![Hex browseing](./images/ipe-program.png)
- The PICKit<sup>&trade;</sup> 3 will begin programming the HEX file into the board. Please wait until it is finished. This can take a couple minutes.

![Hex browseing](./images/ipe-programming.png)
- Upon completion you will see a "Programming complete" in the output window.

![Hex browseing](./images/ipe-programming-complete.png)
- You can now begin using the board.

---

### Troubleshooting
- Target Device was not found...
- Check that power is being provided to the board via USB and that the board's power switch is set to "USB". The board must have power to be programmed.
- Programming failed or didn't work...
- Try loading the HEX file into the IPE again and reprogram the board.
Loading