Update Network Co-Processor Firmware

The ZigBee/Thread radio on the ARTIK module works with the main processor on the module in what is called network co-processor (NCP) operation. The radio takes on its identity, as either a ZigBee device or a Thread device, depending on the firmware that has been flashed to it.

The factory default firmware gives the module a ZigBee identity. For Thread operation or to use a newer revision of ZigBee, different firmware must be flash-uploaded.

New network co-processor firmware must first be copied to the ARTIK processor module file system, and from there flashed to the radio chip on the module.

• ARTIK 520, 710, and 1020 modules use the EM3587 radio chip as NCP
• ARTIK 530 modules use the EFR32 radio chip as NCP.

Before you begin: You need to stop any currently running process that might be using the serial port linking the NCP to the main processor.

• Execute ps at the Linux prompt to see if the ip-driver-app process is running; kill it if so.

• Type systemctl status zigbee-daemon to see if the ZigBee daemon is running; type systemctl stop zigbee-daemon if so.

Otherwise, the update will fail with a 'port open' error.

Load the NCP firmware

The uploading procedure is short, but the file names are long! Review the instructions and table carefully before you start so that you copy only the needed files.

1. To your development PC, download ncp_firmware_2017_01_31.zip and extract all files.
flash_firmware
xxx.ebl (all .ebl files)

2. In your Simplicity Studio® installation, locate additional xxx.ebl files as noted in the section below.

3. Determine the correct .ebl file to use as described in the section below.

4. On your ARTIK board, at the root directory:
1. Copy over the correct xxx.ebl file.
2. Copy over the flash_firmware file.
3. Run
chmod 777 flash_firmware
to make the file executable.
5. Run the following command to use an internal serial port to transfer the file to the EM3587 radio IC.
./flash_firmware -p /dev/ttyxxxx -f ncp-xxx.ebl
where ttyxxxx and ncp-xxx.ebl are as shown in the table below.

The ZigBee or Thread NCP firmware is now flashed into the radio and will be retained until replaced.

Command Line Parameters

You'll need to determine the correct serial port and image file for your installation.

ARTIK
Type
Serial port Flow control ZigBee image Thread 2.0
image
520 <pre>ttySAC1</pre> rts-cts
(hardware)
NCP_UART_HW_FC-use-with-serial-btl-mfg0003-verE001.ebl
530 <pre>ttyAMA1</pre> rts-cts
(hardware)
710 <pre>ttySAC0</pre> xon-xoff
(software)
NCP_uart-xon-xoff-use-with-serial-btl-mfg0003-verC001_20161027.ebl
1020 <pre>ttySAC0</pre> rts-cts
(hardware)
ncp-uart-rts-cts-use-with-serial-uart-btl-xxx.ebl not available

ZigBee installations. Use the ZigBee .ebl ncp image file in the .zip file if you have the ARTIK 530. Otherwise, use the ones in your Simplicity Studio Thread installation as shown below, replacing the version directory names with the correct ones for your installation. Make sure you choose the right "flow control" type.

 1 C:\SiliconLabs\SimplicityStudio\v4\developer\stacks\znet\v5.7.4.1\protocol\zigbee_5.7\ncp-images\em3587

Thread installations. Use the Thread .ebl ncp image files in the .zip file if you have the ARTIK 530 or 710. Otherwise, use the ones in your Simplicity Studio Thread installation as shown below, replacing the version directory names with the correct ones for your installation.

 1 C:\SiliconLabs\SimplicityStudio\v4\developer\stacks\thread\v2.0.0.0\protocol\thread_2.0\ncp-images\em3587

Troubleshooting

If you see

• 'port open' error: There may be an NCP driver running. Try killing the ip-driver-app process, or running
systemctl stop zigbee-daemon

• 'open fail' error on ARTIK 520 or 1020:
open fail : /sys/devices/virtual/sec/artik_zb_power/recovery
then try adding -d artik520 or -d artik1020 to the command line.

Last updated on: