1.2.1 WINC Firmware Update Guide

This document explains the WINC Firmware Upgrade Process.

Description

The ATWINC1500 and ATWINC3400 WiFi devices require firmware to be loaded into flash memory to operate. These devices will come shipped with firmware preloaded, however it may become necessary to update this firmware to take advantage of fixes and new or expanded features. MPLAB Harmony 3 and later include the WINC Firmware Update utilities required to update the flash firmware of the WINC devices. These utilities can be found in the /utilities/wifi/winc directory.

User has to follow below steps to update the WINC module firmware • From the 'wireless_wifi' repo, at 'wireless_wifi\apps\serial_bridge' program the serial bridge application. • The application will put host device in serial bridge mode, where it will take the WINC module image from laptop utility and program into WINC module.

Note: Programming the application into SAMA5D27 SOM1-Ek1 board

On SAMA5D27 SOM1-Ek1 board, the Serial Bridge application will be programmed into the RAM unlike the previous devices where it would be on the host's flash. It is therefore recommended to not reset the board after programming the application until the firmware upgrade is complete.

Below example shows a SAMD21 Xplained connected to WINC1500 Xplained on EXT1 for upgrading the WINC15x0 module firmware.

firmware_update

Firmware Update Utilities

Updating a WINC device requires two utilities, an Image Tool which builds a file containing the changes required to the WINCs flash memory and a WINC Programming Tool which applies the changes to the WINC device.

Image Tool

The Image Tool is responsible for constructing an image of the WINCs flash memory from components such as firmware files, certificates and other data and creating a change description file which can be passed to the WINC Programmer to be applied to a WINC device. The Image Tool is located in the /utilities/wifi/winc directory. Each WINC firmware release will consists of a configuration file and a number of firmware and other files. The configuration file is presented to the Image Tool and is processed, in whole or in part to produce and output file. An example directory layout of a WINC firmware release is:

The configuration file, config.txt, is in the winc1500_19.7.7 directory. There are three subdirectories in this release: • Firmware – contains firmware which runs on the WINC device. • HTTP Files – contains files which are loaded into the HTTP web server made available by the WINC device when it enters a provisioning Soft-AP mode.

User can modify the config.txt file to add/remove devices certificate and customize the provisioning page.

type is root certificates schema is 2 size is 4K default is 0xff

file is /utilities/wifi/wincroot_certs/BaltimoreCyberTrustRoot.cer

file is /utilities/wifi/wincroot_certs/DigiCert.cer

file is /utilities/wifi/wincroot_certs/DigiCertSHA2.cer

file is /utilities/wifi/wincroot_certs/EnTrust.cer

file is /utilities/wifi/winc/root_certs/GeoTrust.cer

file is /utilities/wifi/winc/root_certs/GlobalSignRoot.cer

file is /utilities/wifi/winc/root_certs/cas.cer

file is /utilities/wifi/winc/root_certs/caswin.cer

file is /utilities/wifi/winc/root_certs/QuoVadis_Root.cer

file is /utilities/wifi/winc/root_certs/VeriSign.cer

Generating Device Programming Files

The following command line will generate a device programming file winc1500_19.6.1.prog.

image_tool.exe -c (version)\flash_image.config -o (version).prog -of prog

The file produced can be used to upgrade a WINC1500 to available or latest version including the firmware, HTTP files and root certificates.

WINC Programmer

The WINC Programmer is responsible for reading, erasing and writing the flash memory of the WINC device. A device programming file can be provided to the tool to update the flash memory contents. The WINC Programmer is located in the /utilities/wifi/winc directory.

Programming Device

The following command line will program a WINC1500 device via the serial port COM29.

 winc_programmer -p COM29 -d winc1500 -i (version).prog -if prog -w -r -pfw (version)\firmware\programmer_firmware.bin

Output:

WINC Programming Tool 1.0.0 (Jun 27 2018)

Copyright (C) Microchip Technology Inc. 2018

WINC serial bridge found

chip ID is 0x001503a0

programming fw file: \firmware\programmer_firmware.bin

starting device

reinitialise serial bridge to 500000

waiting for firmware to run

flash ID 0x001440ef

flash size is 8 Mb

begin write operation

0x000000: 0x008000: 0x010000: 0x018000: 0x020000: 0x028000: 0x030000: 0x038000: 0x040000: 0x048000: 0x050000: 0x058000: 0x060000: 0x068000: 0x070000: 0x078000: 0x080000: 0x088000: 0x090000: 0x098000: 0x0a0000: 0x0a8000: 0x0b0000: 0x0b8000: 0x0c0000: 0x0c8000: 0x0d0000: 0x0d8000: 0x0e0000: 0x0e8000: 0x0f0000: 0x0f8000:

begin read operation

0x000000: 0x008000: 0x010000: 0x018000: 0x020000: 0x028000: 0x030000: 0x038000: 0x040000: 0x048000: 0x050000: 0x058000: 0x060000: 0x068000: 0x070000: 0x078000: 0x080000: 0x088000: 0x090000: 0x098000: 0x0a0000: 0x0a8000: 0x0b0000: 0x0b8000: 0x0c0000: 0x0c8000: 0x0d0000: 0x0d8000: 0x0e0000: 0x0e8000: 0x0f0000: 0x0f8000:

verify range 0x000000 to 0x100000

begin verify operation

0x000000: 0x008000: 0x010000: 0x018000: 0x020000: 0x028000: 0x030000: 0x038000: 0x040000: 0x048000: 0x050000: 0x058000: 0x060000: 0x068000: 0x070000: 0x078000: 0x080000: 0x088000: 0x090000: 0x098000: 0x0a0000: 0x0a8000: 0x0b0000: 0x0b8000: 0x0c0000: 0x0c8000: 0x0d0000: 0x0d8000: 0x0e0000: 0x0e8000: 0x0f0000: 0x0f8000:

verify passed

Conclusion

Once verified, the Firmware has been updated. The WINC module now contains the updated Firmware and it can be used with any other application of choice.