1.1.1 WINC Firmware Update Guide
This section explains the WINC Firmware Upgrade Process. 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.
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 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.