Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
chipkit_wifire:reference_manual_revd [2017/04/04 17:35] – [2MPIDE and USB Serial Communications] James Colvinchipkit_wifire:reference_manual_revd [2022/10/04 11:38] (current) – external edit 127.0.0.1
Line 5: Line 5:
  
 This manual applies to [[chipkit_wifire:chipkit_wifire|Rev D]] of the board This manual applies to [[chipkit_wifire:chipkit_wifire|Rev D]] of the board
- 
-FIXME 
 =====Production Release===== =====Production Release=====
  
-The production boards of the Wi-FIRE are manufactured using the Microchip PIC32MZ2048EFG100 MCU. Earlier pre-production, Rev B and earlier, uses the PIC32MZ2048ECG100 MCU. The MCUs are pin for pin compatible, however the PIC32MZ2048EFG100 has substantially improved ADCs, and there is an FPU coprocessor. For the most part, code written to the pre-production Wi-FIRE will run unaltered on the Rev C or newer Wi-FIREs, with the exception of the ADCs. The chipKIT core will support either MCU, even with respect to the new ADCs, as long as the chipKIT hardware abstraction API, analogRead(), was used; no sketch source code change is required. The production PCB is identical between the Rev B and Rev C, with the exception of the silk screen to indicate Rev C. +The production boards of the Wi-FIRE are manufactured using the Microchip PIC32MZ2048EFG100 MCU. Earlier pre-production, Rev B and earlier, uses the PIC32MZ2048ECG100 MCU. The MCUs are pin for pin compatible, however the PIC32MZ2048EFG100 has substantially improved ADCs, and there is an FPU coprocessor. For the most part, code written to the pre-production Wi-FIRE will run unaltered on the Rev C or newer Wi-FIREs, with the exception of the ADCs. The Digilent core will support either MCU, even with respect to the new ADCs, as long as the Arduino hardware abstraction API, analogRead(), was used; no sketch source code change is required. The production PCB is identical between the Rev B and Rev C, with the exception of the silk screen to indicate Rev C. 
  
 Rev D boards now include a new header for MIPS JTAG debugging and iFlowtrace and a few hardware changes to support this connector. Most components on the board remained the same, although nearly all of the silk screen designators were changed from Rev C. Rev D boards now include a new header for MIPS JTAG debugging and iFlowtrace and a few hardware changes to support this connector. Most components on the board remained the same, although nearly all of the silk screen designators were changed from Rev C.
Line 15: Line 13:
 ====Overview====   ====Overview====  
  
-The chipKIT Wi-FIRE is based on the popular Arduino™ open-source hardware prototyping platform and adds the performance of the Microchip PIC32MZ microcontroller. The Wi-FIRE has a WiFi MRF24 and SD card on the board, both with dedicated SPI signals. The Wi-FIRE board takes advantage of the powerful PIC32MZ2048EFG microcontroller. This microcontroller features a 32-bit MIPS M5150 processor core running at 200 MHhz, 2MB of flash program memory, and 512K of RAM data memory. The WiFire can be programmed using the Multi-Platform Integrated Development Environment (MPIDE), an environment based on the original Arduino IDE, modified to support PIC32 as well as the Arduino IDE with the chipKIT Core. It contains everything needed to start developing embedded applications. The Wi-FIRE features a USB serial port interface for connection to the MPIDE or Arduino IDE and can be powered via USB or by an external power supply. In addition, the Wi-FIRE is fully compatible with the advanced Microchip MPLAB®X IDE and works with all MPLAB ®X compatible in-system programmer/debuggers, such as the Microchip PICkit™3 or the Digilent® chipKIT PGM. The Wi-FIRE is easy to use and suitable for both beginners and advanced users experimenting with electronics and embedded control systems.  +The Wi-FIRE is based on the popular Arduino™ open-source hardware prototyping platform and adds the performance of the Microchip PIC32MZ microcontroller. The Wi-FIRE has a WiFi MRF24 and SD card on the board, both with dedicated SPI signals. The Wi-FIRE board takes advantage of the powerful PIC32MZ2048EFG microcontroller. This microcontroller features a 32-bit MIPS M5150 processor core running at 200 MHhz, 2MB of flash program memory, and 512K of RAM data memory. The Wi-FIRE can be programmed using the Arduino IDE with the Digilent Core. It contains everything needed to start developing embedded applications. The Wi-FIRE features a USB serial port interface for connection to the Arduino IDE and can be powered via USB or by an external power supply. In addition, the Wi-FIRE is fully compatible with the advanced Microchip MPLAB®X IDE and works with all MPLAB ®X compatible in-system programmer/debuggers, such as the Microchip PICkit™3 or the Digilent® chipKIT PGM. The Wi-FIRE is easy to use and suitable for both beginners and advanced users experimenting with electronics and embedded control systems. 
- +
- +
-=====1 Wi-FIRE Hardware Overview===== +
-The Wi-FIRE has the following hardware features:+
  
 {{:chipkit_wifire:wifire-oblique.png?450 |Wi-FIRE}} {{:chipkit_wifire:wifire-oblique.png?450 |Wi-FIRE}}
Line 32: Line 26:
   * PC connection uses a USB A > micro B cable (not included)   * PC connection uses a USB A > micro B cable (not included)
   * 12 analog inputs    * 12 analog inputs 
-  * 3.3V operating voltage +  * 3.3 V operating voltage 
   * 200MHz operating frequency    * 200MHz operating frequency 
-  * 7V to 15V input voltage (recommended) +  * 7 V to 15 V input voltage (recommended) 
-  * 30V input voltage (maximum)  +  * 30 V input voltage (maximum)  
-  * 0V to 3.3V analog input voltage range +  * 0 V to 3.3 V analog input voltage range 
-  * High efficiency, switching 3.3V power supply providing low power operation+  * High efficiency, switching 3.3 V power supply providing low power operation 
 + 
 + 
 +=====1: Wi-FIRE Hardware Overview===== 
 +The Wi-FIRE has the following hardware features: 
 + 
 + 
 + 
 + 
 +{{  :chipkit_wifire:wi-fire_board_walkaround.png?800  |}} 
 + 
 +^  Call Out  ^  Component Description                  ^  Call Out  ^  Component Description                        ^ 
 +|  1         |  IC3- Microchip MRF24WG0MA WiFi Module  |  14        |  JP5- Host USB Bus Power Enable               | 
 +|  2         |  Reset                                  |  15        |  JP4- USB Overcurrent Detect                  | 
 +|  3         |  JP7- Reset Disable                     |  16        |  J6- Analog and Digital Signal Connector      | 
 +|  4         |  Potentiometer                          |  17        |  JP1- 3.3 V / 5.0 V Shield Voltage Select     | 
 +|  5         |  JP2- Microchip Debug Tool Connector    |  18        |  J1- Shield Power Connector                   | 
 +|  6         |  J4- I2C Signals                        |  19        |  J15- 5.0 V Regulator Configuration           | 
 +|  7         |  J5- Digital Signal Connector           |  20        |  J13- Power Select Jumper                     | 
 +|  8         |  PIC32 Microcontroller                  |  21        |  User Buttons                                 | 
 +|  9         |  J6- Digital Signal Connector           |  22        |  J12- External Power Connector Pin Connector  | 
 +|  10        |  User LEDs                              |  23        |  J15- External Power Connector Barrel Jack    | 
 +|  11        |  J8- SPI Connector                      |  24        |  JTAG/TRACE Programming/Debugging Header      | 
 +|  12        |  JP6- USB Host or OTG Select            |  25        |  USB connector for USB Serial Converter       | 
 +|  13        |  J10 & J11- USB Connectors              |  26        |  Serial Communication LEDs                    |
  
-=====2 MPIDE and USB Serial Communications===== 
  
-The Wi-FIRE board is designed to be used with the Multi-Platform IDE (MPIDE); the MPIDE development platform was created by modifying the Arduino™ IDE.  It and is backwards-compatible with the Arduino IDE. Links for where to obtain the MPIDE installation files, and as well as instructions for installing MPIDE, can be found at www.chipkit.net/started.+=====2: Arduino IDE and USB Serial Communications=====
  
-The MPIDE uses a serial communications port to communicate with a boot loader running on the Wi-FIRE board. The serial port on the Wi-FIRE board is implemented using an FTDI FT232RQ USB serial converter. Before attempting to use the MPIDE to communicate with the Wi-FIRE, the appropriate USB device driver must be installed.+The Wi-FIRE board is designed to be used with the Arduino IDE with the Digilent core. Users can learn how to download the Digilent Core for the Arduino IDE from our guide [[learn/software/tutorials/digilent-core-install/start|here]]. 
 + 
 +The Arduino IDE uses a serial communications port to communicate with a boot loader running on the Wi-FIRE board. The serial port on the Wi-FIRE board is implemented using an FTDI FT232RQ USB serial converter. Before attempting to use the Arduino IDE to communicate with the Wi-FIRE, the appropriate USB device driver must be installed; when you connect the Wi-FIRE on a Windows machine, the appropriate driver should install automatically.
  
 The Wi-FIRE board uses a standard mini-USB connector. Generally, a USB A to micro-B cable is used for connection to a USB port on the PC. The Wi-FIRE board uses a standard mini-USB connector. Generally, a USB A to micro-B cable is used for connection to a USB port on the PC.
  
-When the MPIDE needs to communicate with the Wi-FIRE board, the board is reset and starts running the boot loader. The MPIDE then establishes communications with the boot loader and uploads the program to the board. +When the Arduino IDE needs to communicate with the Wi-FIRE board, the board is reset and starts running the boot loader. The Arduino IDE then establishes communications with the boot loader and uploads the program to the board. 
  
-When the MPIDE opens the serial communications connection on the PC, the DTR pin on the FT232RQ chip is driven low. This pin is coupled through a capacitor to the MCLR pin on the PIC32 microcontroller. Driving the MCLR line low resets the microcontroller, which restarts the execution with the boot loader.+When the Arduino IDE opens the serial communications connection on the PC, the DTR pin on the FT232RQ chip is driven low. This pin is coupled through a capacitor to the MCLR pin on the PIC32 microcontroller. Driving the MCLR line low resets the microcontroller, which restarts the execution with the boot loader.
  
 This automatic reset action (when the serial communications connection is opened) can be disabled. To disable this operation, there is a jumper labeled JP7, which can be disconnected. JP7 is normally shorted, but if the shorting block is removed, the automatic reset operation will be disabled. This automatic reset action (when the serial communications connection is opened) can be disabled. To disable this operation, there is a jumper labeled JP7, which can be disconnected. JP7 is normally shorted, but if the shorting block is removed, the automatic reset operation will be disabled.
Line 55: Line 74:
 Two red LEDs (LD5 and LD6) will blink when data is being sent or received between the Wi-FIRE and the PC over the serial connection. Two red LEDs (LD5 and LD6) will blink when data is being sent or received between the Wi-FIRE and the PC over the serial connection.
  
-=====3 Power Supply=====+=====3: Power Supply=====
  
 The Wi-FIRE is designed to be powered via USB (J16), from an external power supply (J12 or J14), or from the USB OTG receptacle (J10). Jumper block J13 is used to select which power supply is used. The power supply voltage selected by J13 is applied to the unregulated power bus, VU. The Wi-FIRE is designed to be powered via USB (J16), from an external power supply (J12 or J14), or from the USB OTG receptacle (J10). Jumper block J13 is used to select which power supply is used. The power supply voltage selected by J13 is applied to the unregulated power bus, VU.
Line 61: Line 80:
 In order to operate the Wi-FIRE as a USB device powered from the USB serial interface, (connector J16), place a shorting block in the UART position of jumper block J13. To operate the Wi-FIRE from an external power supply, attach the power supply to either J12 or J14 and place a shorting block in the EXT position of J13. Be sure to observe correct polarity when connecting a power supply to J12, as a reversed connection could damage the board. To operate the Wi-FIRE as a USB powered device from the USB OTG connector (J10), place a shorting block on the USB position of J13. This will normally only be done when running a sketch on the board that programs it to operate as a USB device. The power supply section in the Wi-FIRE provides two voltage regulators, a 3.3 V regulator and a 5 V regulator. All systems on the Wi-FIRE board itself operate at 3.3 V and are powered by the 3.3 V regulator. The 5 V regulator is used to provide power for external circuits, such as shields, that require 5 V for operation and to supply USB 5.0 V when the Wi-FIRE is used as a USB Host. The 5 V regulator can be completely disabled if it is not needed for a given application. In order to operate the Wi-FIRE as a USB device powered from the USB serial interface, (connector J16), place a shorting block in the UART position of jumper block J13. To operate the Wi-FIRE from an external power supply, attach the power supply to either J12 or J14 and place a shorting block in the EXT position of J13. Be sure to observe correct polarity when connecting a power supply to J12, as a reversed connection could damage the board. To operate the Wi-FIRE as a USB powered device from the USB OTG connector (J10), place a shorting block on the USB position of J13. This will normally only be done when running a sketch on the board that programs it to operate as a USB device. The power supply section in the Wi-FIRE provides two voltage regulators, a 3.3 V regulator and a 5 V regulator. All systems on the Wi-FIRE board itself operate at 3.3 V and are powered by the 3.3 V regulator. The 5 V regulator is used to provide power for external circuits, such as shields, that require 5 V for operation and to supply USB 5.0 V when the Wi-FIRE is used as a USB Host. The 5 V regulator can be completely disabled if it is not needed for a given application.
  
-When a shield is used, connector J1 provides power to the shield. Connector J1 pin 8 provides VIN as applied by the external power source J12 or J14. If no power is provided to J12 or J14, VIN will not be powered. For most shields, pin 5 on connector J1 would provide 5.0 V to the shield; however, the Wi-FIRE is not 5 V tolerant and it would be very easy for a shield to destroy an input if 5.0 V were applied to the PIC32MZ. For this reason, JP1 was added to control the voltage supplied to the shield’s 5Vv source. By default, JP1 is loaded to supply only 3.3 V on the 5.0 V pin so that the shield does not get 5 V and thus cannot inadvertently apply 5.0 V to any input to the Wi-FIRE. If the shield requires 5.0 V to operate, the shield will not work when 3.3 V is applied; JP1 must be selected to provide 5.0 V for the shield to work. However, extreme caution should be used when selecting 5.0 V on JP1 to ensure that the shield will observe IOREF and not supply 5.0Vv to any input to the Wi-FIRE; as this will damage the input to the PIC32MZ on the Wi-FIRE.+When a shield is used, connector J1 provides power to the shield. Connector J1 pin 8 provides VIN as applied by the external power source J12 or J14. If no power is provided to J12 or J14, VIN will not be powered. For most shields, pin 5 on connector J1 would provide 5.0 V to the shield; however, the Wi-FIRE is not 5 V tolerant and it would be very easy for a shield to destroy an input if 5.0 V were applied to the PIC32MZ. For this reason, JP1 was added to control the voltage supplied to the shield’s 5 V source. By default, JP1 is loaded to supply only 3.3 V on the 5.0 V pin so that the shield does not get 5 V and thus cannot inadvertently apply 5.0 V to any input to the Wi-FIRE. If the shield requires 5.0 V to operate, the shield will not work when 3.3 V is applied; JP1 must be selected to provide 5.0 V for the shield to work. However, extreme caution should be used when selecting 5.0 V on JP1 to ensure that the shield will observe IOREF and not supply 5.0 V to any input to the Wi-FIRE; as this will damage the input to the PIC32MZ on the Wi-FIRE.
  
 The Wi-FIRE board is designed for low power operation and efficient use of battery power; a switching mode voltage regulator is used for the 3.3 V power supply. This switching mode regulator is made up of a Microchip MCP16301 and associated circuitry. It can operate on input voltages from 4 V to 30 V with up to 96% efficiency, and is rated for 600 mA total current output. The MCP16301 has internal short circuit protection and thermal protection. The 3.3 V regulator takes its input from the unregulated power bus, VU, and produces its output on the VCC3V3 power bus. The VCC3V3 bus provides power to all on-board systems and is available at the shield power connector (J1) to provide 3.3 V power to external circuitry, such as shields. The Wi-FIRE board is designed for low power operation and efficient use of battery power; a switching mode voltage regulator is used for the 3.3 V power supply. This switching mode regulator is made up of a Microchip MCP16301 and associated circuitry. It can operate on input voltages from 4 V to 30 V with up to 96% efficiency, and is rated for 600 mA total current output. The MCP16301 has internal short circuit protection and thermal protection. The 3.3 V regulator takes its input from the unregulated power bus, VU, and produces its output on the VCC3V3 power bus. The VCC3V3 bus provides power to all on-board systems and is available at the shield power connector (J1) to provide 3.3 V power to external circuitry, such as shields.
  
-The 5 V regulator section provides a low dropout linear regulator. The 5.0 regulator is provided for powering external circuitry that needs a 5V power supply, such as providing for USB 5.0 V when the Wi-FIRE is used as a USB Host, or to provide 5.0 V to the shield on J1 with JP1 selected to 5.0 V. This voltage regulator uses an On Semiconductor NCP1117LP. The NCP1117LP is rated for an output current of 1A. The dropout voltage of the NCP1117LP is a maximum of 1.4 V at 1A output current. The maximum input voltage of the NCP1117LP is 18 V. The recommended maximum operating voltage is 15 V. However, if the 5.0 V regulator is completely disable by removing all jumpers on J15, the external input voltage applied to J12 or J14 may be as high as the 30 V as limited by the switching mode 3.3 V regulator. +The 5 V regulator section provides a low dropout linear regulator. The 5.0 regulator is provided for powering external circuitry that needs a 5 V power supply, such as providing for USB 5.0 V when the Wi-FIRE is used as a USB Host, or to provide 5.0 V to the shield on J1 with JP1 selected to 5.0 V. This voltage regulator uses an On Semiconductor NCP1117LP. The NCP1117LP is rated for an output current of 1A. The dropout voltage of the NCP1117LP is a maximum of 1.4 V at 1A output current. The maximum input voltage of the NCP1117LP is 18 V. The recommended maximum operating voltage is 15 V. However, if the 5.0 V regulator is completely disable by removing all jumpers on J15, the external input voltage applied to J12 or J14 may be as high as the 30 V as limited by the switching mode 3.3 V regulator. 
  
-The input voltage to the 5 V regulator is taken from the VU bus, and the output is placed on the VCC5V0 power bus. There is a reverse polarity protection diode in the external power supply circuit. Considering the diode drop plus the forward drop across the regulator, the minimum input voltage to the regulator should be 7 V to produce a reliable 5V output. +The input voltage to the 5 V regulator is taken from the VU bus, and the output is placed on the VCC5V0 power bus. There is a reverse polarity protection diode in the external power supply circuit. Considering the diode drop plus the forward drop across the regulator, the minimum input voltage to the regulator should be 7 V to produce a reliable 5 V output. 
  
 For input voltages above 9 V, the regulator will get extremely hot when drawing high currents. The NCP1117LP has output short circuit protection as well as internal thermal protection and will shut down automatically to prevent damage. For input voltages above 9 V, the regulator will get extremely hot when drawing high currents. The NCP1117LP has output short circuit protection as well as internal thermal protection and will shut down automatically to prevent damage.
  
-The 5V regulator selection on J15 provides four 5 V power configurations: +The 5 V regulator selection on J15 provides four 5 V power configurations: 
  
 1) 5 V regulator completely disabled and no 5 V power available; 1) 5 V regulator completely disabled and no 5 V power available;
    
-2) 5 V regulator bypassed and 5V provided from an external 5 V power supply, such as USB; +2) 5 V regulator bypassed and 5 V provided from an external 5 V power supply, such as USB; 
  
 3) on-board 5 V regulator used to provide 5 V power;  3) on-board 5 V regulator used to provide 5 V power; 
Line 84: Line 103:
 Jumper block J15 is used to select these various options and the following diagrams describe the use of J13. This diagram shows the arrangement of the signals on J15: Jumper block J15 is used to select these various options and the following diagrams describe the use of J13. This diagram shows the arrangement of the signals on J15:
  
 +{{ :chipkit_wifire:j15_power_regulation_pins.png?300  |Pin arrangement of the voltage regulation options}}
  
 +^  Signals  ^  Description                                                                                                                                                                                                                                                                                                                                                                                                                     ^
 +|  LDO In   |  The input to the on-board linear regulator.                                                                                                                                                                                                                                                                                                                                                                                     |
 +|  LDO Out  |  The output of the on-board regulator.                                                                                                                                                                                                                                                                                                                                                                                           |
 +|  VU       |  The unregulated input voltage selected by the jumper setting jumper block J13.                                                                                                                                                                                                                                                                                                                                                  |
 +|  5V0      |  The connection to the VCC5V0 power bus on the Wi-FIRE board.                                                                                                                                                                                                                                                                                                                                                                    |
 +|  EN Ext   |  Singal provided to enable an external voltage regulator, if one is being used. This would allow the sketch running on the Wi-FIRE to turn on/off the external voltage regulator. When used with an external voltage regulator, this allows the board to go into an extremely low power operating mode. This signal is connected to Port D, bit 13 (RD13) on the PIC32 microcontroller. This is accesible using digital pin 40.  |
 +|  GND      |  Connection to the digital ground bus on the Wi-FIRE board.                                                                                                                                                                                                                                                                                                                                                                      |
  
-To completely disable operation of the on-board linear regulator, remove all shorting blocks from J15. To use the on-board 5V regulator, use the provided shorting blocks to connect VU to LDO In, and to connect LDO Out to 5V0, as follows:+To completely disable operation of the on-board linear regulator, remove all shorting blocks from J15. To use the on-board 5 V regulator, use the provided shorting blocks to connect VU to LDO In, and to connect LDO Out to 5V0, as follows:
  
 +{{ :chipkit_wifire:j15_5_v_regulation.png?300  |Pin arrangement of using the 5 V regulation}}
  
 Note: In this case, when J13 is in the EXT position, and J15 is jumpered to regulate the external input, do not apply more than 18 V. This can destroy the 5.0 V regulator. Note: In this case, when J13 is in the EXT position, and J15 is jumpered to regulate the external input, do not apply more than 18 V. This can destroy the 5.0 V regulator.
  
-To bypass the on-board 5V regulator when powering the board from an externally regulator 5V power supply, such as USB, Use one of the provided shorting blocks to connect VU to 5V0, as follows:+To bypass the on-board 5 V regulator when powering the board from an externally regulator 5 V power supply, such as USB, Use one of the provided shorting blocks to connect VU to 5V0, as follows: 
 + 
 +{{ :chipkit_wifire:j15_bypass_5_v_regulation.png?300  |Pin arrangement of bypassing the 5 V regulation}}
  
 An external 5 V regulator can be used. This would be desirable, for example, when operating from batteries. An external switching mode 5 V regulator could be used to provide higher power efficiency than the on-board linear regulator. In this case, use wires as appropriate to connect VU to the unregulated input of the external regulator. Connect the regulated 5 V output to 5V0. Connect GND to the ground connection of the external regulator. Optionally, connect EN Ext to the enable input control of the external regulator, if available. This allows the external regulator to be turned off for low power operation. Digital pin 50 is then used to turn on/off the external regulator. An external 5 V regulator can be used. This would be desirable, for example, when operating from batteries. An external switching mode 5 V regulator could be used to provide higher power efficiency than the on-board linear regulator. In this case, use wires as appropriate to connect VU to the unregulated input of the external regulator. Connect the regulated 5 V output to 5V0. Connect GND to the ground connection of the external regulator. Optionally, connect EN Ext to the enable input control of the external regulator, if available. This allows the external regulator to be turned off for low power operation. Digital pin 50 is then used to turn on/off the external regulator.
  
-The PIC32MZ microcontroller is rated to use a maximum of 60 mA of current when operating at 200 MHz. The MRF24WG0MA WiFi module typically consumes a maximum of 237 mA when transmitting. This allows approximately 303 mA of current to power the remaining 3.3 V circuitry on the Wi-FIRE board and external circuitry powered from the VCC3V3 bus.  No circuitry on the Wi-FIRE board is powered from the VCC5V0 power bus, leaving all current available from the 5V regulator to power external circuitry and the USB 5.0 V power bus when the Wi-FIRE is used as a USB Host.+The PIC32MZ microcontroller is rated to use a maximum of 60 mA of current when operating at 200 MHz. The MRF24WG0MA WiFi module typically consumes a maximum of 237 mA when transmitting. This allows approximately 303 mA of current to power the remaining 3.3 V circuitry on the Wi-FIRE board and external circuitry powered from the VCC3V3 bus.  No circuitry on the Wi-FIRE board is powered from the VCC5V0 power bus, leaving all current available from the 5 V regulator to power external circuitry and the USB 5.0 V power bus when the Wi-FIRE is used as a USB Host.
  
 The POWER connector (J1) is used to power shields connected to the Wi-FIRE board. Pin 1 is unconnected, the following pins are provided on this connector: The POWER connector (J1) is used to power shields connected to the Wi-FIRE board. Pin 1 is unconnected, the following pins are provided on this connector:
Line 107: Line 137:
                                                                                                                                                                                                                                                                                                                      
  
-===== 4 5V Compatibility=====+===== 4: 5 V Compatibility=====
  
  
-The PIC32 microcontroller operates at 3.3 V. The original Arduino boards operate at 5V, as do many Arduino shields.+The PIC32 microcontroller operates at 3.3 V. The original Arduino boards operate at 5 V, as do many Arduino shields.
  
 There are two issues to consider when dealing with 5 V compatibility for 3.3 V logic. The first is protection of 3.3 V inputs from damage caused by 5 V signals. The second is whether the 3.3 V output is high enough to be recognized as a logic high value by a 5 V input. There are two issues to consider when dealing with 5 V compatibility for 3.3 V logic. The first is protection of 3.3 V inputs from damage caused by 5 V signals. The second is whether the 3.3 V output is high enough to be recognized as a logic high value by a 5 V input.
  
-The digital I/O pins on the PIC32 microcontroller are 5V tolerant. The, whereas the analog capable I/O pins are not 5V tolerant. There are 48 analog capable I/O pins on the PIC32MZ, and this applies to most GPIO pins on the processor. Historically, clamp diodes and current limiting resistors have been used to protect the analog capable I/O from being damaged; but because of the large number of analog capable I/Os, and because clamp diodes and resistors will limit the maximum speed at which these I/Os will operate,; it was decided that the Wi-FIRE would not be 5 V tolerant. Instead, JP1 was added to allow for the 5V0 bus to the shield to be selectable between 3.3 V or 5.0 V. If 5.0 V is selected, great care must be used to ensure that no input to the PIC32MZ exceeds 3.6 V; as that will damage the PIC32MZ.+The digital I/O pins on the PIC32 microcontroller are 5 V tolerant. The, whereas the analog capable I/O pins are not 5 V tolerant. There are 48 analog capable I/O pins on the PIC32MZ, and this applies to most GPIO pins on the processor. Historically, clamp diodes and current limiting resistors have been used to protect the analog capable I/O from being damaged but because of the large number of analog capable I/Os and because clamp diodes and resistors will limit the maximum speed at which these I/Os will operate, it was decided that the Wi-FIRE would not be 5 V tolerant. Instead, JP1 was added to allow for the 5V0 bus to the shield to be selectable between 3.3 V or 5.0 V. If 5.0 V is selected, great care must be used to ensure that no input to the PIC32MZ exceeds 3.6 V as that will damage the PIC32MZ.
  
 The minimum high-voltage output of the PIC32 microcontroller is rated at 2.4 V when sourcing 12 mA of current. When driving a high impedance input (typical of CMOS logic) the output high voltage will be close to 3.3 V. Some 5 V devices will recognize this voltage as a logic high input, and some won’t. Many 5 V logic devices will work reliably with 3.3 V inputs. The minimum high-voltage output of the PIC32 microcontroller is rated at 2.4 V when sourcing 12 mA of current. When driving a high impedance input (typical of CMOS logic) the output high voltage will be close to 3.3 V. Some 5 V devices will recognize this voltage as a logic high input, and some won’t. Many 5 V logic devices will work reliably with 3.3 V inputs.
  
-=====5 Input/ Output Connections=====+=====5: Input/ Output Connections=====
  
 +The Wi-FIRE board provides 43 of the I/O pins from the PIC32 microcontroller at pins on the input/output connectors J4, J5, J6, J7, and J8.
  
-The Wi-FIRE board provides 43 of the I/O pins from the PIC32 microcontroller at pins on the input/output connectors J4, J5, J7, J8, and J6.+The PIC32 microcontroller can source or sink a maximum of 15 mA on all digital I/O pins; however, some pins can source or sink 25 mA or even 33 mA, check with the PIC32MZ datasheet for more information. To keep the output voltage within the specified output voltage range (VOL 0.4 V, VOH 2.4 V) the pin current must be restricted to +/-10 mA on the 15 mA pins, or for the higher current pins check the PIC32MZ datasheet for the maximum currents. The maximum current that can be sourced or sunk across all I/O pins simultaneously is +/- 150 mA. The maximum voltage that can be applied to any I/O pin is 3.6 V. For more detailed specifications, refer to the PIC32MZ Data Sheet available from www.microchip.com. 
  
-The PIC32 microcontroller can source or sink a maximum of 15 mA on all digital I/O pins; however, some pins can source or sink 25 mA or even 33 mA, check with the PIC32MZ datasheet for more information. To keep the output voltage within the specified output voltage range (VOL 0.4 V, VOH 2.4 V) the pin current must be restricted to +/-10 mA on the 15 mA pins, or for the higher current pins check the PIC32MZ datasheet for the maximum currents. The maximum current that can be sourced or sunk across all I/O pins simultaneously is +/-150 mA. The maximum voltage that can be applied to any I/O pin is 3.6 V. For more detailed specifications, refer to the PIC32MZ Data Sheet available from www.microchip.com.  +The Arduino system uses logical pin numbers to identify digital I/O pins on the connectors. The logical pin numbers for the I/O pins on the Wi-FIRE are 0-42. These pin numbers are labeled in the silk screen on the board. Additional pins 43-70 allow access to the on board components such as the uSD, MRF24 WiFi radio, User LEDs / BTNs, and POT.
- +
-The chipKIT/Arduino system uses logical pin numbers to identify digital I/O pins on the connectors. The logical pin numbers for the I/O pins on the Wi-FIRE are 0-42. These pin numbers are labeled in the silk screen on the board. Additional pins 43-70 allow access to the on board components such as the uSD, MRF24 WiFi radio, User LEDs / BTNs, and POT.+
  
 Pins 0-7 and 27-33 are available on header J6 on the outer and inner row of pins, respectively. Pins 8-13 and 34-41 are available on header J5 on the outer and inner row of pins, respectively. Pin 42 is also available on the outer pin labeled "A" on the silkscreen on header J5; it is normally for the reference voltage for the microcontrollers ADC, but it can also be used as a digital I/O pin. Pins 0-7 and 27-33 are available on header J6 on the outer and inner row of pins, respectively. Pins 8-13 and 34-41 are available on header J5 on the outer and inner row of pins, respectively. Pin 42 is also available on the outer pin labeled "A" on the silkscreen on header J5; it is normally for the reference voltage for the microcontrollers ADC, but it can also be used as a digital I/O pin.
Line 134: Line 163:
  
  
-=====6 802.11b/g Interface=====+=====6: 802.11b/g Interface=====
  
 The 802.11b/g compatible WiFi interface on the Wi-FIRE is provided by a Microchip MRF24WG0MA WiFi module. This module provides the radio transceiver, antenna, and 802.11 compatible network firmware. The 802.11b/g compatible WiFi interface on the Wi-FIRE is provided by a Microchip MRF24WG0MA WiFi module. This module provides the radio transceiver, antenna, and 802.11 compatible network firmware.
Line 149: Line 178:
  
  
-=====7 Network Library Software=====+=====7: Network Library Software=====
  
  
-The WiFi module on the Wi-FIRE is intended for use with the Digilent Embedded chipKIT network libraries, DEIPcK and DEWFcK. The DEIPcK library provides TCP/UDP/IP protocol support for all chipKIT compatible network interfaces supported by Digilent products, including the Wi-FIRE. The DEWFcK library provides the additional library support required for connecting to and operating with the Microchip MRF24WG0MA wireless network modules. Caution should be used in understanding that the DEIPcK library is different than the DNETcK network libraries. DEIPcK is the Digilent Embedded Open Source IP stack that supports both the MX and MZ processor lines, while the DNETcK IP stack is built on top of the Microchip MLA proprietary stack and only supports the MX processor line, and will not work with the Wi-FIRE.+The WiFi module on the Wi-FIRE is intended for use with the Digilent Embedded network libraries, DEIPcK and DEWFcK. The DEIPcK library provides TCP/UDP/IP protocol support for all compatible network interfaces supported by Digilent products, including the Wi-FIRE. The DEWFcK library provides the additional library support required for connecting to and operating with the Microchip MRF24WG0MA wireless network modules. Caution should be used in understanding that the DEIPcK library is different than the DNETcK network libraries. DEIPcK is the Digilent Embedded Open Source IP stack that supports both the MX and MZ processor lines, while the DNETcK IP stack is built on top of the Microchip MLA proprietary stack and only supports the MX processor line, and will not work with the Wi-FIRE.
  
 The DEWFcK library supports the MRF24WG0MA WiFi module as loaded on the Wi-FIRE. The correct header file must be used to specify the network hardware being used by the sketch. When writing a network sketch on the Wi-FIRE, use the following hardware library: The DEWFcK library supports the MRF24WG0MA WiFi module as loaded on the Wi-FIRE. The correct header file must be used to specify the network hardware being used by the sketch. When writing a network sketch on the Wi-FIRE, use the following hardware library:
Line 158: Line 187:
 #include <MRF24G.h> #include <MRF24G.h>
  
-The Digilent Embedded chipKIT network libraries are available as part of the chipKIT core (MPIDE) download at: http://chipkit.net/started/install-chipkit-software. If you have previously installed the Digilent Network Stack as a 3rd party library, you will need to delete the Network libraries from your 3rd party sketchbook\libraries subdirectory and use the one installed with the chipKIT core (MPIDE). Having both libraries installed will cause compile time errors.+The Digilent Embedded network libraries are available as part of the Digilent core (Arduino IDE) download at our [[learn/software/tutorials/digilent-core-install/start|installing the Digilent Core guide]]. If you have previously installed the Digilent Network Stack as a 3rd party library, you will need to delete the Network libraries from your 3rd party sketchbook\libraries subdirectory and use the one installed with the Digilent Core (Arduino IDE). Having both libraries installed will cause compile time errors.
  
-There are reference examples demonstrating the use of these libraries as part of the examples code downloaded with the chipKIT core (MPIDE).+There are reference examples demonstrating the use of these libraries as part of the examples code downloaded with the Digilent core (Arduino IDE).
  
-=====8 USB Interface=====+=====8: USB Interface=====
  
  
Line 191: Line 220:
 A USB host is expected to be able to provide bus power to USB devices connected to it. Therefore, when operating as a USB host, the Wi-FIRE should normally be externally powered. Connect a power supply to the external power connector, J15. It is possible to operate the Wi-FIRE as a USB host powered from USB connector J16; however, in this case, the host USB port will be providing power for the Wi-FIRE as well as the USB device connected to the Wi-FIRE. In this case, ensure that the total load does not exceed the 500 mA maximum load that a USB device is allowed to present to the host. A USB host is expected to be able to provide bus power to USB devices connected to it. Therefore, when operating as a USB host, the Wi-FIRE should normally be externally powered. Connect a power supply to the external power connector, J15. It is possible to operate the Wi-FIRE as a USB host powered from USB connector J16; however, in this case, the host USB port will be providing power for the Wi-FIRE as well as the USB device connected to the Wi-FIRE. In this case, ensure that the total load does not exceed the 500 mA maximum load that a USB device is allowed to present to the host.
  
-The USB host provides regulated 5V power to the connected USB device. The internal 5 V LDO regulator can be used to provide the USB power when operating from an external power supply. Place shorting blocks on jumper block J15, as described above in the power supply section.+The USB host provides regulated 5 V power to the connected USB device. The internal 5 V LDO regulator can be used to provide the USB power when operating from an external power supply. Place shorting blocks on jumper block J15, as described above in the power supply section.
  
 If the external power supply being used is a regulated 5 V supply, place a shorting block between pins VU and 5V0 on connector J15, as described above in the power supply section to bypass the on board 5.0 V regulator. If the external power supply being used is a regulated 5 V supply, place a shorting block between pins VU and 5V0 on connector J15, as described above in the power supply section to bypass the on board 5.0 V regulator.
Line 199: Line 228:
 Jumper JP6 is used to provide the required USB host capacitance to the host connector being used.  Place the shorting block in the “A” position when using the standard USB type A (host) Connector (J11). Place the shorting block in the “AB” position for use with the USB micro-AB (OTG) connector (J10). Jumper JP6 is used to provide the required USB host capacitance to the host connector being used.  Place the shorting block in the “A” position when using the standard USB type A (host) Connector (J11). Place the shorting block in the “AB” position for use with the USB micro-AB (OTG) connector (J10).
  
-With JP5 shorted, chipKIT pin 25 drives the enable input of a TPS2051B Current-Limited Power Distribution Switch to supply 5 V USB power to the host connector. This switch has over-current detection capability and provides an over-current fault indication by pulling the signal USBOC low. The over-current output pin can be monitored via the chipKIT pin 8 (RA14/INT3) when JP4 is shorted. Details about the operation of the TPS2051B can be obtained from the data sheet available at www.ti.com. +With JP5 shorted, Digilent pin 25 drives the enable input of a TPS2051B Current-Limited Power Distribution Switch to supply 5 V USB power to the host connector. This switch has over-current detection capability and provides an over-current fault indication by pulling the signal USBOC low. The over-current output pin can be monitored via the Digilent pin 8 (RA14/INT3) when JP4 is shorted. Details about the operation of the TPS2051B can be obtained from the data sheet available at www.ti.com. 
  
-When using the Wi-FIRE outside the MPIDE environment, the Microchip Harmony Library provides USB stack code that can be used with the board. There are reference designs available on the Microchip web site demonstrating both device and host operation of PIC32 microcontrollers. These reference designs can be modified for developing USB firmware for the Wi-FIRE.+When using the Wi-FIRE outside the Arduino IDE environment, the Microchip Harmony Library provides USB stack code that can be used with the board. There are reference designs available on the Microchip web site demonstrating both device and host operation of PIC32 microcontrollers. These reference designs can be modified for developing USB firmware for the Wi-FIRE.
  
  
-=====9 SD Card Interface=====  +=====9: SD Card Interface=====  
  
  
-The micro-SD card connector provides the ability to access data stored on micro-SD sized flash memory cards using the SD card library provided as part of the MPIDE software system.+The micro-SD card connector provides the ability to access data stored on micro-SD sized flash memory cards using the SD card library provided as part of the Arduino IDE software system.
  
-The SD card is accessed using an SPI interface on PIC32 microcontroller pins dedicated to this purpose. The MPIDE SD library uses a “bit-banged” software SPI implementation to talk to SD card. However, software can be written to access the SD card using SPI3.+The SD card is accessed using an SPI interface on PIC32 microcontroller pins dedicated to this purpose. The Arduino IDE SD library uses a “bit-banged” software SPI implementation to talk to SD card. However, software can be written to access the SD card using SPI3.
  
 On the Wi-FIRE board, SPI3 and I/O pins used to communicate with the SD card are dedicated to that function and are not shared with other uses. On the Wi-FIRE board, SPI3 and I/O pins used to communicate with the SD card are dedicated to that function and are not shared with other uses.
  
  
-=====10    Peripheral I/O Functions===== +=====10:    Peripheral I/O Functions=====
  
 The PIC32 microcontroller on the Wi-FIRE board provides a number of peripheral functions. The provided peripherals are explained in the following sections. The PIC32 microcontroller on the Wi-FIRE board provides a number of peripheral functions. The provided peripherals are explained in the following sections.
  
- +====10.1:    UART Ports====
-=====10.1    UART Ports===== +
  
 UART 4: Asynchronous serial port. Pin 0 (RX), Pin 1 (TX). This is accessed using the runtime object: Serial. These pins are connected to I/O connector J6 and are also connected to the FT232RQ USB serial converter. It is possible to use these pins to connect to an external serial device when not using the FT232RQ USB serial interface. This uses UART4 (U4RX, U4TX) on the PIC32 microcontroller. UART 4: Asynchronous serial port. Pin 0 (RX), Pin 1 (TX). This is accessed using the runtime object: Serial. These pins are connected to I/O connector J6 and are also connected to the FT232RQ USB serial converter. It is possible to use these pins to connect to an external serial device when not using the FT232RQ USB serial interface. This uses UART4 (U4RX, U4TX) on the PIC32 microcontroller.
Line 228: Line 254:
  
  
-=====10.3    SPI=====+====10.2:    SPI====
  
 Synchronous serial port. Pin 10 (SS), Pin 11 (MOSI), Pin 12 (MISO), Pin 13 (SCK). This can be accessed using the SPI standard library. It can also be accessed using the DSPI0 object from the DSPI standard library. This uses SPI2 (SS2, SDI2, SDO2, SCK2) on the PIC32 microcontroller. These signals also appear on connector J5. Be aware that pin 13 (SCK) is shared with USER LED1, and that both LED1 and the SPI port cannot be used concurrently. Synchronous serial port. Pin 10 (SS), Pin 11 (MOSI), Pin 12 (MISO), Pin 13 (SCK). This can be accessed using the SPI standard library. It can also be accessed using the DSPI0 object from the DSPI standard library. This uses SPI2 (SS2, SDI2, SDO2, SCK2) on the PIC32 microcontroller. These signals also appear on connector J5. Be aware that pin 13 (SCK) is shared with USER LED1, and that both LED1 and the SPI port cannot be used concurrently.
Line 234: Line 260:
 **SPI1:** Synchronous serial port. This is an additional SPI interface on the PIC32 microcontroller that can be assessed using the DSPI1 object from the DSPI standard library. SS1 is accessed via digital pin number 7. SDO1 is accessed via digital pin 35. SDI1 is accessed via digital pin 36. SCK1 is connected to digital pin 5.  **SPI1:** Synchronous serial port. This is an additional SPI interface on the PIC32 microcontroller that can be assessed using the DSPI1 object from the DSPI standard library. SS1 is accessed via digital pin number 7. SDO1 is accessed via digital pin 35. SDI1 is accessed via digital pin 36. SCK1 is connected to digital pin 5. 
  
- +====10.3:    I²C====
-=====10.4    I²C===== +
  
 Synchronous serial interface. The PIC32 microcontroller shares analog pins A4 and A5 with the two I2C signals, SDA and SCL. This uses I2C4 (SDA4, SCL4) on the PIC32 microcontroller. Both SDA4 and SCL4 are accessible on connector J4.  Synchronous serial interface. The PIC32 microcontroller shares analog pins A4 and A5 with the two I2C signals, SDA and SCL. This uses I2C4 (SDA4, SCL4) on the PIC32 microcontroller. Both SDA4 and SCL4 are accessible on connector J4. 
Line 242: Line 266:
 Note: The I2C bus uses open collector drivers to allow multiple devices to drive the bus signals. This means that external pull-up resistors must be provided to supply the logic high state for the signals.  Note: The I2C bus uses open collector drivers to allow multiple devices to drive the bus signals. This means that external pull-up resistors must be provided to supply the logic high state for the signals. 
  
- +====10.4: PWM====
-=====10.5 PWM===== +
  
 Pulse width modulated output; Pins 3 (OC1), 5 (OC2), 6 (OC3), 9 (OC4), 10 (OC9), and 11 (OC7). These can be accessed using the analogWrite() runtime function. Pulse width modulated output; Pins 3 (OC1), 5 (OC2), 6 (OC3), 9 (OC4), 10 (OC9), and 11 (OC7). These can be accessed using the analogWrite() runtime function.
  
  
-=====10.6 External Interrupts===== +====10.5: External Interrupts====
- +
- +
-Pin 3 (INT0), Pin 2 (INT1), Pin 7 (INT2), Pin 8 (INT3), Pin 59 (INT4). Note that the pin numbers for INT0 and INT4 are different than on some other chipKIT boards. INT4 is dedicated for use with the MRF24WG0MA WiFi module and is not brought out to a connector pin.+
  
 +Pin 3 (INT0), Pin 2 (INT1), Pin 7 (INT2), Pin 8 (INT3), Pin 59 (INT4). Note that the pin numbers for INT0 and INT4 are different than on some other Digilent boards. INT4 is dedicated for use with the MRF24WG0MA WiFi module and is not brought out to a connector pin.
  
-=====10.7    User LEDs=====+====10.6:    User LEDs====
  
  
Line 261: Line 281:
  
  
-=====10.8    User Push Buttons=====+====10.7:    User Push Buttons====
  
  
 There are two push button switches, which are labeled BTN1 (pin 46), and BTN2 (pin 47). The digitalRead() function will return LOW if the button is not pressed and HIGH when the button is pressed. There are two push button switches, which are labeled BTN1 (pin 46), and BTN2 (pin 47). The digitalRead() function will return LOW if the button is not pressed and HIGH when the button is pressed.
  
-=====10.9    A/D Converter Reference=====+====10.8:    A/D Converter Reference====
  
  
-Labeled A, the left-most outer pin on connector J5. This is used to provide an external voltage reference to determine the input voltage range of the analog pins. The maximum voltage that can be applied to this pin is 3.3V. This pin can also be used as digital pin 42.+Labeled A, the left-most outer pin on connector J5. This is used to provide an external voltage reference to determine the input voltage range of the analog pins. The maximum voltage that can be applied to this pin is 3.3 V. This pin can also be used as digital pin 42.
  
  
-=====10.10    Potentiometer=====+====10.9:    Potentiometer====
  
  
-A potentiometer (pot) is provided on the board to be used as an analog signal source or analog control input. The pot is a 10KΩohm trimmer pot connected between the VCC3V3 supply and ground. The wiper of the pot is connected to analog input A12 or chipKIT pin 48. The pot is read using the analogRead() function.+A potentiometer (pot) is provided on the board to be used as an analog signal source or analog control input. The pot is a 10 kΩ trimmer pot connected between the VCC3V3 supply and ground. The wiper of the pot is connected to analog input A12 or Digilent pin 48. The pot is read using the analogRead() function.
  
  
-=====10.11       VU Voltage Monitor=====+====10.10:   VU Voltage Monitor====
  
  
Line 284: Line 304:
  
  
-=====10.12       RTCC=====+====10.11:  RTCC====
  
  
Line 293: Line 313:
  
  
-=====10.13       RESET===== +====10.12: RESET====
  
 The PIC32 microcontroller is reset by bringing its MCLR pin low. The MCLR pin is connected to the RST pin, as presented on J1. The PIC32 microcontroller is reset by bringing its MCLR pin low. The MCLR pin is connected to the RST pin, as presented on J1.
Line 306: Line 325:
 On Arduino boards, the corresponding connector is also used as an in-system programming connector as well as providing access to some of the SPI signals. On Arduino boards, pin 5 of this connector is connected to the reset net. On Arduino boards, the corresponding connector is also used as an in-system programming connector as well as providing access to some of the SPI signals. On Arduino boards, pin 5 of this connector is connected to the reset net.
  
-Some Arduino shields, most notably the Ethernet shield, connect pin 5 to the reset net on pin 3 of connector J1. This causes the processor to be reset each time an attempt is made to access the SPI port. Jumper JP3 can be used to break the connection between J8 pin 5 and reset when using Arduino shields that make this connection. JP3 has a cuttable trace on the top of the board that can be cut to break the connection between SPI SS and reset. JP3 is not loaded at the factory. To restore the connection, solder a two pin header at the JP3 position and install a shorting block.+Some Arduino shields, most notably the Ethernet shield, connect pin 5 on J8 to the reset net on pin 3 of connector J1. This causes the processor to be reset each time an attempt is made to access the SPI port. Jumper JP3 can be used to break the connection between J8 pin 5 and reset when using Arduino shields that make this connection. JP3 has a cuttable trace on the top of the board that can be cut to break the connection between SPI SS and reset. JP3 is not loaded at the factory. To restore the connection, solder a two pin header at the JP3 position and install a shorting block.
  
 A reset button is located to the right of the MRF24WG0MA WiFi module. Pressing this button resets the PIC32 microcontroller. A reset button is located to the right of the MRF24WG0MA WiFi module. Pressing this button resets the PIC32 microcontroller.
  
  
 +=====11: Microchip Development Tool Compatibility=====
  
 +In addition to being used with the Arduino IDE, the Wi-FIRE board can be used as a more traditional microcontroller development board using Microchip Development Tools.
  
-=====11 Microchip Development Tool Compatibility=====+Unloaded connector JP2 on the right side of the MRF24WG0MA WiFi module is used to connect to a Microchip development tool, such as the PICkit™3. The holes for JP2 are staggered so that a standard 100-mil spaced 6-pin header can fit to the board without the need to solder it in place. Any Microchip development tool that supports the PIC32MZ microcontroller family, and that can be connected via the same 6-pin ICSP interface as the PICkit™3, can be used.
  
 +Typically, a standard male connector and a 6-pin cable is used with JP2 so that a PICkit™3 can be attached to the Wi-FIRE board. 
  
-In addition to being used with the MPIDE, the Wi-FIRE board can be used as a more traditional microcontroller development board using Microchip Development Tools.+The Digilent chipKIT PGM can also be used in place of a PICkit3 to program the Wi-FIRE with the Microchip Development tools. The chipKIT PGM has a smaller form factor and does not need a 6-pin cable to connect to JP2.
  
-Unloaded connector JP2 on the right side of the MRF24WG0MA WiFi module is used to connect to a Microchip development tool, such as the PICkit™3. The holes for JP2 are staggered so that a standard 100-mil spaced 6-pin header can fit to the board without the need to solder it in place. Any Microchip development tool that supports the PIC32MZ microcontroller family, and that can be connected via the same 6-pin ICSP interface as the PICkit™3, can be used.+The Microchip MPLAB ®X IDE can be used to program and debug code running on the Wi-FIRE board. The MPLAB ®X IDE can be downloaded from the Microchip web site. Please note that Microchip’s MPLAB® V8 and earlier IDEs cannot be used with the Wi-FIRE, as those versions of MPLAB® IDE do not support the MZ processor.
  
-Typically, a standard male connector and a 6-pin cable is used with JP2 so that a PICkit™3 can be attached to the Wi-FIRE board. +Using the Microchip development tools to program the Wi-FIRE board will cause the boot loader to be erased. To use the board with the Arduino IDE again, it is necessary to program the boot loader back onto the board. The boot loader HEX file can be found at on the [[chipkit_wifire/chipkit_wifire|Wi-FIRE Resource Center]]. To reprogram the bootloader, use the Microchip IPE which comes with the MPLAB ®X tool set. The bootloader cannot be easily reprogrammed directly with the MPLAB ®X IDE.
  
-The Digilent chipKIT PGM can also be used in place of a PICkit3 to program the Wi-FIRE with the Microchip Development tools. The chipKIT PGM has a smaller form factor and does not need a 6-pin cable to connect to JP2. 
  
-The Microchip MPLAB ®X IDE can be used to program and debug code running on the Wi-FIRE board. The MPLAB ®X IDE can be downloaded from the Microchip web site. Please note that Microchip’s MPLAB®Vv8 and earlier IDEs cannot be used with the Wi-FIRE, as those versions of MPLAB® IDE do not support the MZ processor. 
  
-Using the Microchip development tools to program the Wi-FIRE board will cause the boot loader to be erased. To use the board with the MPIDE again, it is necessary to program the boot loader back onto the board. The boot loader HEX file can be found at on the [[chipkit_wifire/chipkit_wifire|Wi-FIRE Resource Center]]. To reprogram the bootloader, use the Microchip IPE which comes with the MPLAB ®X tool set. The bootloader cannot be easily reprogrammed directly with the MPLAB ®X IDE.+=====12: Programming and Debugging with OpenOCD through the EJTAG/Trace Connector=====
  
 +OpenOCD (Open On-Chip Debugger) is a system that provides debugging, in-system programming, and boundary-scan testing for embedded target devices. For the Wi-FIRE, users may use the OpenOCD directly with the Wi-FIRE through the primary programming UART port. 
  
 +Header J17 provides a EJTAG header where users may attach a debugging adapter such as the Bus Blaster v3C to use with OpenOCD.
  
-=====12 Pinout Tables=====+More information on how to use OpenOCD Debug with the Wi-FIRE can be found via MIPS Debug OpenOCD with Bus Blaster Getting Started Guide available on the [[https://community.imgtec.com/developers/mips/tools/mips-debug-and-trace-probes/bus-blaster|Imagination Technologies website]].
  
 +=====13: Pinout Tables=====
  
 The following tables show the relationship between the digital pin numbers, the connector pin numbers, and the microcontroller pin numbers. The following tables show the relationship between the digital pin numbers, the connector pin numbers, and the microcontroller pin numbers.
  
-In the following tables, columns labeled digital pin # refer to the digital pin number. This is the value that is passed to the pinMode(), digitalRead(), digitalWrite() and other functions which refer to the pin.+In the following tables, columns labeled Digilent pin # refer to the digital pin number. This is the value that is passed to the pinMode(), digitalRead(), digitalWrite() and other functions which refer to the pin.
  
 +==== 13.1: Pinout Table by Digilent Pin Number ====
 +^  Digilent Pin #  ^  MCU Pin  ^  Port Bit  ^  PIC32 Signal Name  ^  Function  ^
 +|  0  |  57  |  RF02  |  EBIRDY3/RPF2/SDA3/RF2  |  GPIO, U4RX  |  
 +|  1  |  58  |  RF08  |  EBIRDY2/RPF8/SCL3/RF8  |  GPIO, U4TX  |  
 +|  2  |  18  |  RE08  |  AN25/AERXD0/RPE8/RE8  |  GPIO, IC1, INT1  |  
 +|  3  |  71  |  RD00  |  EMDIO/AEMDIO/RPD0/RTCC/INT0/RD0  |  PWM 1, INT0, OC1  |  
 +|  4  |  60  |  RA03  |  EBIRDY1/SDA2/RA3  |  GPIO  |  
 +|  5  |  76  |  RD01  |  RPD1/SCK1/RD1  |  PWM 2, OC2  |  
 +|  6  |  77  |  RD02  |  EBID14/ETXEN/RPD2/PMD14/RD2  |  PWM 3, OC3  |  
 +|  7  |  19  |  RE09  |  AN26/AERXD1/RPE9/RE9  |  GPIO, IC2,  INT2  |  
 +|  8  |  66  |  RA14  |  AETXCLK/RPA14/SCL1/RA14  |  GPIO, IC3, INT3  |  
 +|  9  |  78  |  RD03  |  EBID15/ETXCLK/RPD3/PMD15/RD3  |  PWM 4, OC4  |  
 +|  10  |  16  |  RG09  |  EBIA2/AN11/C2INC/ERXCLK/EREFCLK/AERXCLK/AEREFCLK/RPG9/PMA2/RG9  |  SPI_SS2, PWM 5, OC9, IC6  |  
 +|  11  |  70  |  RD11  |  EMDC/AEMDC/RPD11/RD11  |  SPI_SDO2/SDI2 PWM 6, OC7  |  
 +|  12  |  85  |  RF00  |  EBID11/ETXD1/RPF0/PMD11/RF0  |  SPI_SDI2/SDO2, T5CK(+)  |  
 +|  13  |  10  |  RG06  |  AN14/C1IND/ECOL/RPG6/SCK2/RG6  |  SPI_SCK2, USER LED1  |  
 +|  14  |  20  |  RB05  |  AN45/C1INA/RPB5/RB5  |  AIN0, GPIO  |  
 +|  15  |  33  |  RB09  |  EBIA7/AN49/RPB9/PMA7/RB9  |  AIN1, GPIO  |  
 +|  16  |  7  |  RC02  |  EBIA12/AN21/RPC2/PMA12/RC2  |  AIN2, GPIO  |  
 +|  17  |  44  |  RB15  |  EBIA0/AN10/ERXD3/AETXD2/RPB15/OCFB/PMA0/RB15  |  AIN3, GPIO  |  
 +|  18  |  11  |  RG07  |  EBIA4/AN13/C1INC/ECRS/RPG7/SDA4/PMA4/RG7  |  AIN4, SDA  |  
 +|  19  |  12  |  RG08  |  EBIA3/AN12/C2IND/ERXDV/ECRSDV/AERXDV/AECRSDV/RPG8/SCL4/PMA3/RG8  |  AIN5, SCL  |  
 +|  20  |  22  |  RB03  |  AN3/C2INA/RPB3/RB3  |  AIN6, GPIO  |  
 +|  21  |  23  |  RB02  |  AN2/C2INB/RPB2/RB2  |  AIN7, GPIO  |  
 +|  22  |  21  |  RB04  |  AN4/C1INB/RB4  |  AIN8, GPIO  |  
 +|  23  |  24  |  RB01  |  PGEC1/AN1/RPB1/RB1  |  AIN9, GPIO  |  
 +|  24  |  32  |  RB08  |  EBIA10/AN48/RPB8/PMA10/RB8  |  AIN10, GPIO  |  
 +|  25  |  25  |  RB00  |  PGED1/AN0/RPB0/RB0  |  AIN11, GPIO, P32_VBUSON  |  
 +|  26  |  91  |  RE00  |  EBID0/PMD0/RE0  |  GPIO  |  
 +|  27  |  94  |  RE01  |  EBID1/PMD1/RE1  |  GPIO  |  
 +|  28  |  98  |  RE02  |  EBID2/PMD2/RE2  |  GPIO  |  
 +|  29  |  99  |  RE03  |  EBID3/RPE3/PMD3/RE3  |  GPIO  |  
 +|  30  |  100  |  RE04  |  EBID4/AN18/PMD4/RE4  |  GPIO  |  
 +|  31  |  3  |  RE05  |  EBID5/AN17/RPE5/PMD5/RE5  |  GPIO  |  
 +|  32  |  4  |  RE06  |  EBID6/AN16/PMD6/RE6  |  GPIO  |  
 +|  33  |  5  |  RE07  |  EBID7/AN15/PMD7/RE7  |  GPIO  |  
 +|  34  |  82  |  RD05  |  SQICS1/RPD5/RD5  |  GPIO, T4CK  |  
 +|  35  |  6  |  RC01  |  EBIA6/AN22/RPC1/PMA6/RC1  |  GPIO, T2CK, IC7  |  
 +|  36  |  86  |  RF01  |  EBID10/ETXD0/RPF1/PMD10/RF1  |  GPIO, T6CK  |  
 +|  37  |  59  |  RA02  |  EBICS0/SCL2/RA2  |  GPIO  |  
 +|  38  |  79  |  RD12  |  EBID12/ETXD2/RPD12/PMD12/RD12  |  GPIO, T3Ck  |  
 +|  39  |  47  |  RD14  |  AN32/AETXD0/RPD14/RD14  |  GPIO, U1RX  |  
 +|  40  |  48  |  RD15  |  AN33/AETXD1/RPD15/SCK6/RD15  |  GPIO, U1TX  |  
 +|  41  |  28  |  RA09  |  VREF-/CVREF-/AN27/AERXD2/RA9  |  GPIO, VREF-  |  
 +|  42  |  29  |  RA10  |  VREF+/CVREF+/AN28/AERXD3/RA10  |  VREF+  |  
 +|  43  |  81  |  RD04  |  SQICS0/RPD4/RD4  |  USER_LED2  |  
 +|  44  |  35  |  RB11  |  AN6/ERXERR/AETXERR/RB11  |  USER_LED3  |  
 +|  45  |  1  |  RG15  |  AN23/AERXERR/RG15  |  USER_LED4  |  
 +|  46  |  2  |  RA05  |  EBIA5/AN34/PMA5/RA5  |  BTN1  |  
 +|  47  |  61  |  RA04  |  EBIA14/PMCS1/PMA14/RA4  |  BTN2  |  
 +|  48  |  42  |  RB13  |  AN8/ERXD1/AECOL/RB13  |  AIN12/POT  |  
 +|  49  |  41  |  RB12  |  EBIA11/AN7/ERXD0/AECRS/PMA11/RB12  |  AIN13/POWER SUPPLY MONITOR  |  
 +|  50  |  80  |  RD13  |  EBID13/ETXD3/PMD13/RD13  |  5V POWER ENABLE  |  
 +|  51  |  43  |  RB14  |  EBIA1/AN9/ERXD2/AETXD3/RPB14/SCK3/PMA1/RB14  |  SD_SCK3  |  
 +|  52  |  8  |  RC03  |  EBIWE/AN20/RPC3/PMWR/RC3  |  SD_SS3  |  
 +|  53  |  34  |  RB10  |  EBIA13/CVREFOUT/AN5/RPB10/PMA13/RB10  |  SD_SDI3  |  
 +|  54  |  9  |  RC04  |  EBIOE/AN19/RPC4/PMRD/RC4  |  SD_SDO3  |  
 +|  55  |  69  |  RD10  |  RPD10/SCK4/RD10  |  MRF24_SCK4  |  
 +|  56  |  68  |  RD09  |  EBIA15/RPD9/PMCS2/PMA15/RD9  |  MRF24_SS4  |  
 +|  57  |  65  |  RF05  |  EBIA8/RPF5/SCL5/PMA8/RF5  |  MRF24_SDI4  |  
 +|  58  |  88  |  RG00  |  EBID8/RPG0/PMD8/RG0  |  MRF24 SDO4  |  
 +|  59  |  67  |  RA15  |  AETXEN/RPA15/SDA1/RA15  |  MRF24_INT4   |  
 +|  60  |  87  |  RG01  |  EBID9/ETXERR/RPG1/PMD9/RG1  |  MRF24_HIBERNATE  |  
 +|  61  |  64  |  RF04  |  EBIA9/RPF4/SDA5/PMA9/RF4  |  MRF24_RESET  |  
 +|  62  |  38  |  RA01  |  TCK/EBIA19/AN29/RA1  |  TCK  |  
 +|  63  |  17  |  RA00  |  TMS/EBIA16/AN24/RA0  |  TMS  |  
 +|  64  |  40  |  RF12  |  TDO/EBIA17/AN31/RPF12/RF12  |  TDO  |  
 +|  65  |  39  |  RF13  |  TDI/EBIA18/AN30/RPF13/SCK5/RF13  |  TDI  |  
 +|  66  |  89  |  RA06  |  TRCLK/SQICLK/RA6  |  TRCLK  |  
 +|  67  |  97  |  RG13  |  TRD0/SQID0/RG13  |  TRD0  |  
 +|  68  |  96  |  RG12  |  TRD1/SQID1/RG12  |  TRD1  |  
 +|  69  |  95  |  RG14  |  TRD2/SQID2/RG14  |  TRD2  |  
 +|  70  |  90  |  RA07  |  TRD3/SQID3/RA7  |  TRD3  |  
 +|  N/A  |  13  |    |  VSS  |  POWER  |  
 +|  N/A  |  14  |    |  VDD  |  POWER  |  
 +|  N/A  |  15  |    |  MCLR  |  MCLR, ICSP  |  
 +|  N/A  |  26  |  RB06  |  PGEC2/AN46/RPB6/RB6  |  ICSP  |  
 +|  N/A  |  27  |  RB07  |  PGED2/AN47/RPB7/RB7  |  ICSP  |  
 +|  N/A  |  30  |    |  AVDD  |  POWER  |  
 +|  N/A  |  31  |    |  AVSS  |  POWER  |  
 +|  N/A  |  36  |    |  VSS  |  POWER  |  
 +|  N/A  |  37  |    |  VDD  |  POWER  |  
 +|  N/A  |  45  |    |  VSS  |  POWER  |  
 +|  N/A  |  46  |    |  VDD  |  POWER  |  
 +|  N/A  |  49  |  RC12  |  OSCI/CLKI/RC12  |  XTAL  |  
 +|  N/A  |  50  |  RC15  |  OSCO/CLKO/RC15  |  XTAL  |  
 +|  N/A  |  51  |    |  VBUS  |  POWER  |  
 +|  N/A  |  52  |    |  VUSB3V3  |  POWER  |  
 +|  N/A  |  53  |    |  VSS  |  POWER  |  
 +|  N/A  |  54  |    |  D-  |  PIC32_USBD-  |  
 +|  N/A  |  55  |    |  D+  |  PIC32_USBD+  |  
 +|  N/A  |  56  |  RF03  |  USBID/RPF3/RF3  |  PIC32_USBID  |  
 +|  N/A  |  62  |    |  VDD  |  POWER  |  
 +|  N/A  |  63  |    |  VSS  |  POWER  |  
 +|  N/A  |  72  |  RC13  |  SOSCI/RPC13/RC13  |  SOSC XTAL  |  
 +|  N/A  |  73  |  RC14  |  SOSCO/RPC14/T1CK/RC14  |  SOSC XTAL  |  
 +|  N/A  |  74  |    |  VDD  |  POWER  |  
 +|  N/A  |  75  |    |  VSS  |  POWER  |  
 +|  N/A  |  83  |    |  VDD  |  POWER  |  
 +|  N/A  |  84  |    |  VSS  |  POWER  |  
 +|  N/A  |  92  |    |  VSS  |  POWER  |  
 +|  N/A  |  93  |    |  VDD  |  POWER  |  
  
-====12.1 Pinout Table by Digital Pin Number====+==== 13.2: Pinout Table by MCU Pin and Port Bit Numbers ==== 
 +^  Port Bit  ^  Digilent Pin #  ^  MCU Pin  ^  PIC32 Signal Name  ^  Function  ^ 
 +|  RA00  |  63  |  17  |  TMS/EBIA16/AN24/RA0  |  TMS  |   
 +|  RA01  |  62  |  38  |  TCK/EBIA19/AN29/RA1  |  TCK  |   
 +|  RA02  |  37  |  59  |  EBICS0/SCL2/RA2  |  GPIO  |   
 +|  RA03  |  4  |  60  |  EBIRDY1/SDA2/RA3  |  GPIO  |   
 +|  RA04  |  47  |  61  |  EBIA14/PMCS1/PMA14/RA4  |  BTN2  |   
 +|  RA05  |  46  |  2  |  EBIA5/AN34/PMA5/RA5  |  BTN1  |   
 +|  RA06  |  66  |  89  |  TRCLK/SQICLK/RA6  |  TRCLK  |   
 +|  RA07  |  70  |  90  |  TRD3/SQID3/RA7  |  TRD3  |   
 +|  RA09  |  41  |  28  |  VREF-/CVREF-/AN27/AERXD2/RA9  |  GPIO, VREF-  |   
 +|  RA10  |  42  |  29  |  VREF+/CVREF+/AN28/AERXD3/RA10  |  VREF+  |   
 +|  RA14  |  8  |  66  |  AETXCLK/RPA14/SCL1/RA14  |  GPIO, IC3, INT3  |   
 +|  RA15  |  59  |  67  |  AETXEN/RPA15/SDA1/RA15  |  MRF24_INT4   |   
 +|  RB00  |  25  |  25  |  PGED1/AN0/RPB0/RB0  |  AIN11, GPIO, P32_VBUSON  |   
 +|  RB01  |  23  |  24  |  PGEC1/AN1/RPB1/RB1  |  AIN9, GPIO  |   
 +|  RB02  |  21  |  23  |  AN2/C2INB/RPB2/RB2  |  AIN7, GPIO  |   
 +|  RB03  |  20  |  22  |  AN3/C2INA/RPB3/RB3  |  AIN6, GPIO  |   
 +|  RB04  |  22  |  21  |  AN4/C1INB/RB4  |  AIN8, GPIO  |   
 +|  RB05  |  14  |  20  |  AN45/C1INA/RPB5/RB5  |  AIN0, GPIO  |   
 +|  RB06  |  N/A  |  26  |  PGEC2/AN46/RPB6/RB6  |  ICSP  |   
 +|  RB07  |  N/A  |  27  |  PGED2/AN47/RPB7/RB7  |  ICSP  |   
 +|  RB08  |  24  |  32  |  EBIA10/AN48/RPB8/PMA10/RB8  |  AIN10, GPIO  |   
 +|  RB09  |  15  |  33  |  EBIA7/AN49/RPB9/PMA7/RB9  |  AIN1, GPIO  |   
 +|  RB10  |  53  |  34  |  EBIA13/CVREFOUT/AN5/RPB10/PMA13/RB10  |  SD_SDI3  |   
 +|  RB11  |  44  |  35  |  AN6/ERXERR/AETXERR/RB11  |  USER_LED3  |   
 +|  RB12  |  49  |  41  |  EBIA11/AN7/ERXD0/AECRS/PMA11/RB12  |  AIN13/POWER SUPPLY MONITOR  |   
 +|  RB13  |  48  |  42  |  AN8/ERXD1/AECOL/RB13  |  AIN12/POT  |   
 +|  RB14  |  51  |  43  |  EBIA1/AN9/ERXD2/AETXD3/RPB14/SCK3/PMA1/RB14  |  SD_SCK3  |   
 +|  RB15  |  17  |  44  |  EBIA0/AN10/ERXD3/AETXD2/RPB15/OCFB/PMA0/RB15  |  AIN3, GPIO  |   
 +|  RC01  |  35  |  6  |  EBIA6/AN22/RPC1/PMA6/RC1  |  GPIO, T2CK, IC7  |   
 +|  RC02  |  16  |  7  |  EBIA12/AN21/RPC2/PMA12/RC2  |  AIN2, GPIO  |   
 +|  RC03  |  52  |  8  |  EBIWE/AN20/RPC3/PMWR/RC3  |  SD_SS3  |   
 +|  RC04  |  54  |  9  |  EBIOE/AN19/RPC4/PMRD/RC4  |  SD_SDO3  |   
 +|  RC12  |  N/A  |  49  |  OSCI/CLKI/RC12  |  XTAL  |   
 +|  RC13  |  N/A  |  72  |  SOSCI/RPC13/RC13  |  SOSC XTAL  |   
 +|  RC14  |  N/A  |  73  |  SOSCO/RPC14/T1CK/RC14  |  SOSC XTAL  |   
 +|  RC15  |  N/A  |  50  |  OSCO/CLKO/RC15  |  XTAL  |   
 +|  RD00  |  3  |  71  |  EMDIO/AEMDIO/RPD0/RTCC/INT0/RD0  |  PWM 1, INT0, OC1  |   
 +|  RD01  |  5  |  76  |  RPD1/SCK1/RD1  |  PWM 2, OC2  |   
 +|  RD02  |  6  |  77  |  EBID14/ETXEN/RPD2/PMD14/RD2  |  PWM 3, OC3  |   
 +|  RD03  |  9  |  78  |  EBID15/ETXCLK/RPD3/PMD15/RD3  |  PWM 4, OC4  |   
 +|  RD04  |  43  |  81  |  SQICS0/RPD4/RD4  |  USER_LED2  |   
 +|  RD05  |  34  |  82  |  SQICS1/RPD5/RD5  |  GPIO, T4CK  |   
 +|  RD09  |  56  |  68  |  EBIA15/RPD9/PMCS2/PMA15/RD9  |  MRF24_SS4  |   
 +|  RD10  |  55  |  69  |  RPD10/SCK4/RD10  |  MRF24_SCK4  |   
 +|  RD11  |  11  |  70  |  EMDC/AEMDC/RPD11/RD11  |  SPI_SDO2/SDI2 PWM 6, OC7  |   
 +|  RD12  |  38  |  79  |  EBID12/ETXD2/RPD12/PMD12/RD12  |  GPIO, T3Ck  |   
 +|  RD13  |  50  |  80  |  EBID13/ETXD3/PMD13/RD13  |  5V POWER ENABLE  |   
 +|  RD14  |  39  |  47  |  AN32/AETXD0/RPD14/RD14  |  GPIO, U1RX  |   
 +|  RD15  |  40  |  48  |  AN33/AETXD1/RPD15/SCK6/RD15  |  GPIO, U1TX  |   
 +|  RE00  |  26  |  91  |  EBID0/PMD0/RE0  |  GPIO  |   
 +|  RE01  |  27  |  94  |  EBID1/PMD1/RE1  |  GPIO  |   
 +|  RE02  |  28  |  98  |  EBID2/PMD2/RE2  |  GPIO  |   
 +|  RE03  |  29  |  99  |  EBID3/RPE3/PMD3/RE3  |  GPIO  |   
 +|  RE04  |  30  |  100  |  EBID4/AN18/PMD4/RE4  |  GPIO  |   
 +|  RE05  |  31  |  3  |  EBID5/AN17/RPE5/PMD5/RE5  |  GPIO  |   
 +|  RE06  |  32  |  4  |  EBID6/AN16/PMD6/RE6  |  GPIO  |   
 +|  RE07  |  33  |  5  |  EBID7/AN15/PMD7/RE7  |  GPIO  |   
 +|  RE08  |  2  |  18  |  AN25/AERXD0/RPE8/RE8  |  GPIO, IC1, INT1  |   
 +|  RE09  |  7  |  19  |  AN26/AERXD1/RPE9/RE9  |  GPIO, IC2,  INT2  |   
 +|  RF00  |  12  |  85  |  EBID11/ETXD1/RPF0/PMD11/RF0  |  SPI_SDI2/SDO2, T5CK(+)  |   
 +|  RF01  |  36  |  86  |  EBID10/ETXD0/RPF1/PMD10/RF1  |  GPIO, T6CK  |   
 +|  RF02  |  0  |  57  |  EBIRDY3/RPF2/SDA3/RF2  |  GPIO, U4RX  |   
 +|  RF03  |  N/A  |  56  |  USBID/RPF3/RF3  |  PIC32_USBID  |   
 +|  RF04  |  61  |  64  |  EBIA9/RPF4/SDA5/PMA9/RF4  |  MRF24_RESET  |   
 +|  RF05  |  57  |  65  |  EBIA8/RPF5/SCL5/PMA8/RF5  |  MRF24_SDI4  |   
 +|  RF08  |  1  |  58  |  EBIRDY2/RPF8/SCL3/RF8  |  GPIO, U4TX  |   
 +|  RF12  |  64  |  40  |  TDO/EBIA17/AN31/RPF12/RF12  |  TDO  |   
 +|  RF13  |  65  |  39  |  TDI/EBIA18/AN30/RPF13/SCK5/RF13  |  TDI  |   
 +|  RG00  |  58  |  88  |  EBID8/RPG0/PMD8/RG0  |  MRF24 SDO4  |   
 +|  RG01  |  60  |  87  |  EBID9/ETXERR/RPG1/PMD9/RG1  |  MRF24_HIBERNATE  |   
 +|  RG06  |  13  |  10  |  AN14/C1IND/ECOL/RPG6/SCK2/RG6  |  SPI_SCK2, USER LED1  |   
 +|  RG07  |  18  |  11  |  EBIA4/AN13/C1INC/ECRS/RPG7/SDA4/PMA4/RG7  |  AIN4, SDA  |   
 +|  RG08  |  19  |  12  |  EBIA3/AN12/C2IND/ERXDV/ECRSDV/AERXDV/AECRSDV/RPG8/SCL4/PMA3/RG8  |  AIN5, SCL  |   
 +|  RG09  |  10  |  16  |  EBIA2/AN11/C2INC/ERXCLK/EREFCLK/AERXCLK/AEREFCLK/RPG9/PMA2/RG9  |  SPI_SS2, PWM 5, OC9, IC6  |   
 +|  RG12  |  68  |  96  |  TRD1/SQID1/RG12  |  TRD1  |   
 +|  RG13  |  67  |  97  |  TRD0/SQID0/RG13  |  TRD0  |   
 +|  RG14  |  69  |  95  |  TRD2/SQID2/RG14  |  TRD2  |   
 +|  RG15  |  45  |  1  |  AN23/AERXERR/RG15  |  USER_LED4  |   
 +|    |  N/A  |  13  |  VSS  |  POWER  |   
 +|    |  N/A  |  14  |  VDD  |  POWER  |   
 +|    |  N/A  |  15  |  MCLR  |  MCLR, ICSP  |   
 +|    |  N/A  |  30  |  AVDD  |  POWER  |   
 +|    |  N/A  |  31  |  AVSS  |  POWER  |   
 +|    |  N/A  |  36  |  VSS  |  POWER  |   
 +|    |  N/A  |  37  |  VDD  |  POWER  |   
 +|    |  N/A  |  45  |  VSS  |  POWER  |   
 +|    |  N/A  |  46  |  VDD  |  POWER  |   
 +|    |  N/A  |  51  |  VBUS  |  POWER  |   
 +|    |  N/A  |  52  |  VUSB3V3  |  POWER  |   
 +|    |  N/A  |  53  |  VSS  |  POWER  |   
 +|    |  N/A  |  54  |  D-  |  PIC32_USBD-  |   
 +|    |  N/A  |  55  |  D+  |  PIC32_USBD+  |   
 +|    |  N/A  |  62  |  VDD  |  POWER  |   
 +|    |  N/A  |  63  |  VSS  |  POWER  |   
 +|    |  N/A  |  74  |  VDD  |  POWER  |   
 +|    |  N/A  |  75  |  VSS  |  POWER  |   
 +|    |  N/A  |  83  |  VDD  |  POWER  |   
 +|    |  N/A  |  84  |  VSS  |  POWER  |   
 +|    |  N/A  |  92  |  VSS  |  POWER  |   
 +|    |  N/A  |  93  |  VDD  |  POWER  |  
  
-^  Digital Pin #  ^  Connector Pin #  ^  Microcontroller Pin Label  | +==== 13.3: Pinout Table by PIC32 Microcontroller Pin ==== 
-|  0  |  J6-1  |  EBIRDY3/RPF2/SDA3/RF2  | +^  MCU Pin  ^  Port Bit  ^  Digilent Pin #  ^  PIC32 Signal Name                                                ^  Function                    ^ 
-|  1  |  J6-3  |  EBIRDY2/RPF8/SCL3/RF8  | +|  1        |  RG15      |  45              |  AN23/AERXERR/RG15                                                |  USER_LED4                   | 
-|  2  |  J6-5  |  AN25/AERXD0/RPE8/RE8  | +|  2        |  RA05      |  46              |  EBIA5/AN34/PMA5/RA5                                              |  BTN1                        | 
-|  3  |  J6-7  |  EMDIO/AEMDIO/RPD0/RTCC/INT0/RD0  | +|  3        |  RE05      |  31              |  EBID5/AN17/RPE5/PMD5/RE5                                         |  GPIO                        | 
-|  4  |  J6-9  |  EBIRDY1/SDA2/RA3  | +|  4        |  RE06      |  32              |  EBID6/AN16/PMD6/RE6                                              |  GPIO                        | 
-|  5  |  J6-11  |  RPD1/SCK1/RD1  | +|  5        |  RE07      |  33              |  EBID7/AN15/PMD7/RE7                                              |  GPIO                        | 
-|  6  |  J6-13  |  EBID14/ETXEN/RPD2/PMD14/RD2  | +|  6        |  RC01      |  35              |  EBIA6/AN22/RPC1/PMA6/RC1                                         |  GPIO, T2CK, IC7             | 
-|  7  |  J6-15  |  AN26/AERXD1/RPE9/RE9  | +|  7        |  RC02      |  16              |  EBIA12/AN21/RPC2/PMA12/RC2                                       |  AIN2, GPIO                  | 
-|  8  |  J5-1  |  AETXCLK/RPA14/SCL1/RA14  | +|  8        |  RC03      |  52              |  EBIWE/AN20/RPC3/PMWR/RC3                                         |  SD_SS3                      | 
-|  9  |  J5-3  |  EBID15/ETXCLK/RPD3/PMD15/RD3  | +|  9        |  RC04      |  54              |  EBIOE/AN19/RPC4/PMRD/RC4                                         |  SD_SDO3                     | 
-|  10  |  J5-5, J8-5  |  EBIA2/AN11/C2INC/ERXCLK/EREFCLK/AERXCLK/AEREFCLK/RPG9/PMA2/RG9  | +|  10       |  RG06      |  13              |  AN14/C1IND/ECOL/RPG6/SCK2/RG6                                    |  SPI_SCK2, USER LED1         | 
-|  11  |  J5-7, J8-4  |  EMDC/AEMDC/RPD11/RD11  | +|  11       |  RG07      |  18              |  EBIA4/AN13/C1INC/ECRS/RPG7/SDA4/PMA4/RG7                         |  AIN4, SDA                   | 
-|  12  |  J5-9, J8-1  |  EBID11/ETXD1/RPF0/PMD11/RF0  | +|  12       |  RG08      |  19              |  EBIA3/AN12/C2IND/ERXDV/ECRSDV/AERXDV/AECRSDV/RPG8/SCL4/PMA3/RG8  |  AIN5, SCL                   | 
-|  13  |  J5-11, J8-3, LD1  |  AN14/C1IND/ECOL/RPG6/SCK2/RG6  | +|  13       |            |  N/A             |  VSS                                                              |  POWER                       | 
-|  14  |  J7-1  |  AN45/C1INA/RPB5/RB5  | +|  14       |            |  N/A             |  VDD                                                              |  POWER                       | 
-|  15  |  J7-3  |  EBIA7/AN49/RPB9/PMA7/RB9  | +|  15       |            |  N/A             |  MCLR                                                             |  MCLR, ICSP                  | 
-|  16  |  J7-5  |  EBIA12/AN21/RPC2/PMA12/RC2  | +|  16       |  RG09      |  10              |  EBIA2/AN11/C2INC/ERXCLK/EREFCLK/AERXCLK/AEREFCLK/RPG9/PMA2/RG9   |  SPI_SS2, PWM 5, OC9, IC6    | 
-|  17  |  J7-7  |  EBIA0/AN10/ERXD3/AETXD2/RPB15/OCFB/PMA0/RB15  | +|  17       |  RA00      |  63              |  TMS/EBIA16/AN24/RA0                                              |  TMS                         | 
-|  18  |  J7-9, J4-1  |  EBIA4/AN13/C1INC/ECRS/RPG7/SDA4/PMA4/RG7  | +|  18       |  RE08      |  2               |  AN25/AERXD0/RPE8/RE8                                             |  GPIO, IC1, INT1             | 
-|  19  |  J7-11, J4-2  |  EBIA3/AN12/C2IND/ERXDV/ECRSDV/AERXDV/AECRSDV/RPG8/SCL4/PMA3/RG8  | +|  19       |  RE09      |  7               |  AN26/AERXD1/RPE9/RE9                                             |  GPIO, IC2,  INT2            | 
-|  20  |  J7-2  |  AN3/C2INA/RPB3/RB3  | +|  20       |  RB05      |  14              |  AN45/C1INA/RPB5/RB5                                              |  AIN0, GPIO                  | 
-|  21  |  J7-4  |  AN2/C2INB/RPB2/RB2  | +|  21       |  RB04      |  22              |  AN4/C1INB/RB4                                                    |  AIN8, GPIO                  | 
-|  22  |  J7-6  |  AN4/C1INB/RB4  | +|  22       |  RB03      |  20              |  AN3/C2INA/RPB3/RB3                                               |  AIN6, GPIO                  | 
-|  23  |  J7-8  |  PGEC1/AN1/RPB1/RB1  | +|  23       |  RB02      |  21              |  AN2/C2INB/RPB2/RB2                                               |  AIN7, GPIO                  | 
-|  24  |  J7-10  |  EBIA10/AN48/RPB8/PMA10/RB8  | +|  24       |  RB01      |  23              |  PGEC1/AN1/RPB1/RB1                                               |  AIN9, GPIO                  | 
-|  25  |  J7-12  |  PGED1/AN0/RPB0/RB0  | +|  25       |  RB00      |  25              |  PGED1/AN0/RPB0/RB0                                               |  AIN11, GPIO, P32_VBUSON     | 
-|  26  |  J6-2  |  EBID0/PMD0/RE0  | +|  26       |  RB06      |  N/A             |  PGEC2/AN46/RPB6/RB6                                              |  ICSP                        | 
-|  27  |  J6-4  |  EBID1/PMD1/RE1  | +|  27       |  RB07      |  N/A             |  PGED2/AN47/RPB7/RB7                                              |  ICSP                        | 
-|  28  |  J6-6  |  EBID2/PMD2/RE2  | +|  28       |  RA09      |  41              |  VREF-/CVREF-/AN27/AERXD2/RA9                                     |  GPIO, VREF-                 | 
-|  29  |  J6-8  |  EBID3/RPE3/PMD3/RE3  | +|  29       |  RA10      |  42              |  VREF+/CVREF+/AN28/AERXD3/RA10                                    |  VREF+                       | 
-|  30  |  J6-10  |  EBID4/AN18/PMD4/RE4  | +|  30       |            |  N/A             |  AVDD                                                             |  POWER                       | 
-|  31  |  J6-12  |  EBID5/AN17/RPE5/PMD5/RE5  | +|  31       |            |  N/A             |  AVSS                                                             |  POWER                       | 
-|  32  |  J6-14  |  EBID6/AN16/PMD6/RE6  | +|  32       |  RB08      |  24              |  EBIA10/AN48/RPB8/PMA10/RB8                                       |  AIN10, GPIO                 | 
-|  33  |  J6-16  |  EBID7/AN15/PMD7/RE7  | +|  33       |  RB09      |  15              |  EBIA7/AN49/RPB9/PMA7/RB9                                         |  AIN1, GPIO                  | 
-|  34  |  J5-2  |  SQICS1/RPD5/RD5  | +|  34       |  RB10      |  53              |  EBIA13/CVREFOUT/AN5/RPB10/PMA13/RB10                             |  SD_SDI3                     | 
-|  35  |  J5-4  |  EBIA6/AN22/RPC1/PMA6/RC1  | +|  35       |  RB11      |  44              |  AN6/ERXERR/AETXERR/RB11                                          |  USER_LED3                   | 
-|  36  |  J5-6  |  EBID10/ETXD0/RPF1/PMD10/RF1  | +|  36       |            |  N/A             |  VSS                                                              |  POWER                       | 
-|  37  |  J5-8  |  EBICS0/SCL2/RA2  | +|  37       |            |  N/A             |  VDD                                                              |  POWER                       | 
-|  38  |  J5-10  |  EBID12/ETXD2/RPD12/PMD12/RD12  | +|  38       |  RA01      |  62              |  TCK/EBIA19/AN29/RA1                                              |  TCK                         | 
-|  39  |  J5-12  |  AN32/AETXD0/RPD14/RD14  | +|  39       |  RF13      |  65              |  TDI/EBIA18/AN30/RPF13/SCK5/RF13                                  |  TDI                         | 
-|  40  |  J5-14  |  AN33/AETXD1/RPD15/SCK6/RD15  | +|  40       |  RF12      |  64              |  TDO/EBIA17/AN31/RPF12/RF12                                       |  TDO                         | 
-|  41  |  J5-16  |  VREF-/CVREF-/AN27/AERXD2/RA9  | +|  41       |  RB12      |  49              |  EBIA11/AN7/ERXD0/AECRS/PMA11/RB12                                |  AIN13/POWER SUPPLY MONITOR  | 
-|  42  |    |  VREF+/CVREF+/AN28/AERXD3/RA10  | +|  42       |  RB13      |  48              |  AN8/ERXD1/AECOL/RB13                                             |  AIN12/POT                   | 
-|  43  |  LD2  |  SQICS0/RPD4/RD4  | +|  43       |  RB14      |  51              |  EBIA1/AN9/ERXD2/AETXD3/RPB14/SCK3/PMA1/RB14                      |  SD_SCK3                     | 
-|  44  |  LD3  |  AN6/ERXERR/AETXERR/RB11  | +|  44       |  RB15      |  17              |  EBIA0/AN10/ERXD3/AETXD2/RPB15/OCFB/PMA0/RB15                     |  AIN3, GPIO                  | 
-|  45  |  LD4  |  AN23/AERXERR/RG15  | +|  45       |            |  N/A             |  VSS                                                              |  POWER                       | 
-|  46  |  BTN1  |  EBIA5/AN34/PMA5/RA5  | +|  46       |            |  N/A             |  VDD                                                              |  POWER                       | 
-|  47  |  BTN2  |  EBIA14/PMCS1/PMA14/RA4  | +|  47       |  RD14      |  39              |  AN32/AETXD0/RPD14/RD14                                           |  GPIO, U1RX                  | 
-|  48  |    |  AN8/ERXD1/AECOL/RB13  | +|  48       |  RD15      |  40              |  AN33/AETXD1/RPD15/SCK6/RD15                                      |  GPIO, U1TX                  | 
-|  49  |    |  EBIA11/AN7/ERXD0/AECRS/PMA11/RB12  | +|  49       |  RC12      |  N/A             |  OSCI/CLKI/RC12                                                   |  XTAL                        | 
-|  50  |  J15-5  |  EBID13/ETXD3/PMD13/RD13  | +|  50       |            |  N/A             |  OSCO/CLKO/RC15                                                   |  XTAL                        | 
-|  51  |    |  EBIA1/AN9/ERXD2/AETXD3/RPB14/SCK3/PMA1/RB14  | +|  51       |            |  N/A             |  VBUS                                                             |  POWER                       | 
-|  52  |    |  EBIWE/AN20/RPC3/PMWR/RC3  | +|  52       |            |  N/A             |  VUSB3V3                                                          |  POWER                       | 
-|  53  |    |  EBIA13/CVREFOUT/AN5/RPB10/PMA13/RB10  | +|  53       |            |  N/A             |  VSS                                                              |  POWER                       | 
-|  54  |    |  EBIOE/AN19/RPC4/PMRD/RC4  | +|  54       |            |  N/A             |  D-                                                               |  PIC32_USBD-                 | 
-|  55  |    |  RPD10/SCK4/RD10  | +|  55       |            |  N/A             |  D+                                                               |  PIC32_USBD+                 | 
-|  56  |    |  EBIA15/RPD9/PMCS2/PMA15/RD9  | +|  56       |  RF03      |  N/A             |  USBID/RPF3/RF3                                                   |  PIC32_USBID                 | 
-|  57  |    |  EBIA8/RPF5/SCL5/PMA8/RF5  | +|  57       |  RF02      |  0               |  EBIRDY3/RPF2/SDA3/RF2                                            |  GPIO, U4RX                  | 
-|  58  |    |  EBID8/RPG0/PMD8/RG0  | +|  58       |  RF08      |  1               |  EBIRDY2/RPF8/SCL3/RF8                                            |  GPIO, U4TX                  | 
-|  59  |    |  AETXEN/RPA15/SDA1/RA15  | +|  59       |  RA02      |  37              |  EBICS0/SCL2/RA2                                                  |  GPIO                        | 
-|  60  |    |  EBID9/ETXERR/RPG1/PMD9/RG1  | +|  60       |  RA03      |  4               |  EBIRDY1/SDA2/RA3                                                 |  GPIO                        | 
-|  61  |    |  EBIA9/RPF4/SDA5/PMA9/RF4  | +|  61       |  RA04      |  47              |  EBIA14/PMCS1/PMA14/RA4                                           |  BTN2                        | 
-|  62  |    |  TCK/EBIA19/AN29/RA1  | +|  62       |            |  N/A             |  VDD                                                              |  POWER                       | 
-|  63  |    |  TMS/EBIA16/AN24/RA0  | +|  63       |            |  N/A             |  VSS                                                              |  POWER                       | 
-|  64  |    |  TDO/EBIA17/AN31/RPF12/RF12  | +|  64       |  RF04      |  61              |  EBIA9/RPF4/SDA5/PMA9/RF4                                         |  MRF24_RESET                 | 
-|  65  |    |  TDI/EBIA18/AN30/RPF13/SCK5/RF13  | +|  65       |  RF05      |  57              |  EBIA8/RPF5/SCL5/PMA8/RF5                                         |  MRF24_SDI4                  | 
-|  66  |    |  TRCLK/SQICLK/RA6  | +|  66       |  RA14      |  8               |  AETXCLK/RPA14/SCL1/RA14                                          |  GPIO, IC3, INT3             | 
-|  67  |    |  TRD0/SQID0/RG13  | +|  67       |  RA15      |  59              |  AETXEN/RPA15/SDA1/RA15                                           |  MRF24_INT4                  | 
-|  68  |    |  TRD1/SQID1/RG12  | +|  68       |  RD09      |  56              |  EBIA15/RPD9/PMCS2/PMA15/RD9                                      |  MRF24_SS4                   | 
-|  69  |    |  TRD2/SQID2/RG14  | +|  69       |  RD10      |  55              |  RPD10/SCK4/RD10                                                  |  MRF24_SCK4                  | 
-|  70  |    |  TRD3/SQID3/RA7  |+|  70       |  RD11      |  11              |  EMDC/AEMDC/RPD11/RD11                                            |  SPI_SDO2/SDI2 PWM 6, OC7    | 
 +|  71       |  RD00      |  3               |  EMDIO/AEMDIO/RPD0/RTCC/INT0/RD0                                  |  PWM 1, INT0, OC1            | 
 +|  72       |  RC13      |  N/A             |  SOSCI/RPC13/RC13                                                 |  SOSC XTAL                   | 
 +|  73       |  RC14      |  N/A             |  SOSCO/RPC14/T1CK/RC14                                            |  SOSC XTAL                   | 
 +|  74       |            |  N/A             |  VDD                                                              |  POWER                       | 
 +|  75       |            |  N/A             |  VSS                                                              |  POWER                       | 
 +|  76       |  RD01      |  5               |  RPD1/SCK1/RD1                                                    |  PWM 2, OC2                  | 
 +|  77       |  RD02      |  6               |  EBID14/ETXEN/RPD2/PMD14/RD2                                      |  PWM 3, OC3                  | 
 +|  78       |  RD03      |  9               |  EBID15/ETXCLK/RPD3/PMD15/RD3                                     |  PWM 4, OC4                  | 
 +|  79       |  RD12      |  38              |  EBID12/ETXD2/RPD12/PMD12/RD12                                    |  GPIO, T3Ck                  | 
 +|  80       |  RD13      |  50              |  EBID13/ETXD3/PMD13/RD13                                          |  5V POWER ENABLE             | 
 +|  81       |  RD04      |  43              |  SQICS0/RPD4/RD4                                                  |  USER_LED2                   | 
 +|  82       |  RD05      |  34              |  SQICS1/RPD5/RD5                                                  |  GPIO, T4CK                  | 
 +|  83       |            |  N/A             |  VDD                                                              |  POWER                       | 
 +|  84       |            |  N/A             |  VSS                                                              |  POWER                       | 
 +|  85       |  RF00      |  12              |  EBID11/ETXD1/RPF0/PMD11/RF0                                      |  SPI_SDI2/SDO2, T5CK(+)      | 
 +|  86       |  RF01      |  36              |  EBID10/ETXD0/RPF1/PMD10/RF1                                      |  GPIO, T6CK                  | 
 +|  87       |  RG01      |  60              |  EBID9/ETXERR/RPG1/PMD9/RG1                                       |  MRF24_HIBERNATE             | 
 +|  88       |  RG00      |  58              |  EBID8/RPG0/PMD8/RG0                                              |  MRF24 SDO4                  | 
 +|  89       |  RA06      |  66              |  TRCLK/SQICLK/RA6                                                 |  TRCLK                       | 
 +|  90       |  RA07      |  70              |  TRD3/SQID3/RA7                                                   |  TRD3                        | 
 +|  91       |  RE00      |  26              |  EBID0/PMD0/RE0                                                   |  GPIO                        | 
 +|  92       |            |  N/A             |  VSS                                                              |  POWER                       | 
 +|  93       |            |  N/A             |  VDD                                                              |  POWER                       | 
 +|  94       |  RE01      |  27              |  EBID1/PMD1/RE1                                                   |  GPIO                        | 
 +|  95       |  RG14      |  69              |  TRD2/SQID2/RG14                                                  |  TRD2                        | 
 +|  96       |  RG12      |  68              |  TRD1/SQID1/RG12                                                  |  TRD1                        | 
 +|  97       |  RG13      |  67              |  TRD0/SQID0/RG13                                                  |  TRD0                        | 
 +|  98       |  RE02      |  28              |  EBID2/PMD2/RE2                                                   |  GPIO                        | 
 +|  99       |  RE03      |  29              |  EBID3/RPE3/PMD3/RE3                                              |  GPIO                        | 
 +|  100      |  RE04      |  30              |  EBID4/AN18/PMD4/RE4                                              |  GPIO                        |