11. Appendix

11.1. pymkimage

mkimage is a CLI python application for:
  1. building SUOTA ready s/w images,

  2. adding header in raw binary configuration files,

  3. creating multi-image for first time programming

11.1.1. Requirements

Python = Required version is Python 3.7.3

Installation:
  1. Download Python installer from Python 3.7.3

  2. Add Python to PATH

11.1.2. PyInstaller

PyInstaller freezes (packages) Python applications into stand-alone executables.

Installation:
  1. pip3 install PyInstaller==3.6

  2. rename pyinstaller.exe to pyinstaller37.exe

11.1.3. Create the executable under current folder

  1. Open any command prompt.

  2. navigate to the folder that contains configurator.

  3. build the executable.

    pyinstaller37.exe --onefile mkimage.py --nowindowed --distpath

11.2. Appendix A Configuration Parameters

All the configuration parameters that are supported until now are shown in the next table:

Table 16 Configuration Parameters

Element ID

Name

0x0100

ELEM_ID_ADV_INTERVAL_MIN

0x0101

ELEM_ID_ADV_INTERVAL_MAX

0x0102

ELEM_ID_ADV_CHANNEL_MAP

0x0103

ELEM_ID_ADV_MODE

0x0104

ELEM_ID_ADV_FILTER_POLICY

0x0105

ELEM_ID_ADV_PEER_ADDR

0x0106

ELEM_ID_ADV_PEER_ADDR_TYPE

0x0200

ELEM_ID_GAP_ROLE

0x0201

ELEM_ID_GAP_MTU

0x0202

ELEM_ID_GAP_ADDR_TYPE

0x0203

ELEM_ID_GAP_ADDRESS

0x0204

ELEM_ID_GAP_REGEN_ADDR_DUR

0x0205

ELEM_ID_GAP_DEVICE_IRK

0x0206

ELEM_ID_GAP_ATTR_CONFIG

0x0207

ELEM_ID_GAP_SERVICE_START _HANDLE

0x0208

ELEM_ID_GATT_SERVICE_START _HANDLE

0x0209

ELEM_ID_GAP_MAX_MPS

0x020A

ELEM_ID_GAP_MAX_TX_OCTETS

0x020B

ELEM_ID_GAP_MAX_TX_TIME

0x0300

ELEM_ID_CONN_INTERVAL_MIN

0x0301

ELEM_ID_CONN_INTERVAL_MAX

0x0302

ELEM_ID_CONN_LATENCY

0x0303

ELEM_ID_CONN_TIME_OUT

0x0304

ELEM_ID_CONN_CE_LEN_MIN

0x0305

ELEM_ID_CONN_CE_LEN_MAX

0x0400

ELEM_ID_USER_ADV_DATA

0x0401

ELEM_ID_USER_ADV_DATA_LEN

0x0402

ELEM_ID_USER_ADV_SCAN_RESP _DATA

0x0403

ELEM_ID_USER_ADV_SCAN_RESP _DATA_LEN

0x0404

ELEM_ID_USER_DEVICE_NAME

0x0405

ELEM_ID_USER_DEVICE_NAME _LEN

0x0500

ELEM_ID_PERIPH_UART_BAUDR ATE

0x0600

ELEM_ID_CENTRAL_CODE

0x0601

ELEM_ID_CENTRAL_ADDR_SRC

0x0602

ELEM_ID_CENTRAL_SCAN_INTER VAL

0x0603

ELEM_ID_CENTRAL_SCAN_WINDO W

0x0604

ELEM_ID_CENTRAL_PEER_ADDR _0

0x0605

ELEM_ID_CENTRAL_PEER_ADDR _0_TYPE

0x0700

ELEM_ID_GPIO_UART1_RX

0x0701

ELEM_ID_GPIO_UART1_TX

0x0702

ELEM_ID_GPIO_UART1_CTS

0x0703

ELEM_ID_GPIO_UART1_RTS

0x0704

ELEM_ID_GPIO_EXT_WAKEUP

0x0705

ELEM_ID_GPIO_EXT_WAKEUP_P OLARITY

0x0706

ELEM_ID_GPIO_EXT_WAKEUP_D EBOUNCE

0x0707

ELEM_ID_GPIO_ACTIVE_STATU S_PIN

0x0708

ELEM_ID_GPIO_WAKEUP_EXT_H OST

0x0709

ELEM_ID_GPIO_POR_PIN

0x070A

ELEM_ID_GPIO_POR_PIN_POLA RITY

0x070B

ELEM_ID_GPIO_POR_PIN_TIMEO UT

0x070C

ELEM_ID_GPIO_UART2_RX

0x070D

ELEM_ID_GPIO_UART2_TX

11.3. Appendix B SPS Configuration Parameters

The SPS application supports both DA14531, DA14535 and DA14585 chips, and both Device and Host roles. In the Host role, both chips use the same configuration structure. So, the SPS application supports the following three configuration structures.

11.3.1. SPS Device for DA14531

Table 17 SPS Device Configuration Structure for DA14531

Element ID

Name

Default Values

0x0100

ELEM_ID_PARAM_ADV_INTERVAL_MIN

160 ble slots (100 ms)

0x0101

ELEM_ID_PARAM_ADV_INTERVAL_MAX

160 ble slots (100 ms)

0x0102

ELEM_ID_PARAM_ADV_CHANNEL_MAP

7 (ADV_ALL_CHNLS_EN)

0x0201

ELEM_ID_PARAM_GAP_MTU

247 bytes

0x0300

ELEM_ID_PARAM_CONN_INTERVAL_MIN

20 ble doubleslots (25 ms)

0x0301

ELEM_ID_PARAM_CONN_INTERVAL_MAX

20 ble doubleslots (25 ms)

0x0302

ELEM_ID_PARAM_CONN_LATENCY

0 ms

0x0303

ELEM_ID_PARAM_CONN_TIME_OUT

1000 timer units (10000 ms)

0x0400

ELEM_ID_PARAM_USER_ADV_DATA

x11x07xb7x5cx49xd2x04xa3x40x71xa0xb5x35x85x3exb0x83x07x03x03xf5xfe

0x0401

ELEM_ID_PARAM_USER_ADV_DATA_LEN

22 bytes

0x0402

ELEM_ID_PARAM_ADV_SCAN_RESP_DATA

Null

0x0403

ELEM_ID_PARAM_ADV_SCAN_RESP_DATA_LEN

0 bytes

0x0404

ELEM_ID_PARAM_USER_DEVICE_NAME

SPS-531

0x0405

ELEM_ID_PARAM_DEVIC_NAME_LEN

7

0x0500

ELEM_ID_PARAM_PERIPH_UART_BAUDRATE

8 (921600 Kbps)

0x0700

ELEM_ID_GPIO_UART1_RX

GPIO 5, PORT 0

0x0701

ELEM_ID_GPIO_UART1_TX

GPIO 6, PORT 0

0x0702

ELEM_ID_GPIO_UART1_CTS

GPIO 8, PORT 0

0x0703

ELEM_ID_GPIO_UART1_RTS

GPIO 7, PORT 0

0x0707

ELEM_ID_GPIO_ACTIVE_STATUS_PIN

GPIO 11, PORT 0

0x0709

ELEM_ID_GPIO_POR_PIN

GPIO 9, PORT 0

0x070A

ELEM_ID_GPIO_POR_PIN_POLARITY

1 (High)

0x070B

ELEM_ID_GPIO_POR_PIN_TIMEOUT

0 ms

11.3.2. SPS Device for DA14535

Table 18 SPS Device Configuration Structure for DA14535

Element ID

Name

Default Values

0x0100

ELEM_ID_PARAM_ADV_INTERVAL_MIN

160 ble slots (100 ms)

0x0101

ELEM_ID_PARAM_ADV_INTERVAL_MAX

160 ble slots (100 ms)

0x0102

ELEM_ID_PARAM_ADV_CHANNEL_MAP

7 (ADV_ALL_CHNLS_EN)

0x0201

ELEM_ID_PARAM_GAP_MTU

247 bytes

0x0300

ELEM_ID_PARAM_CONN_INTERVAL_MIN

20 ble doubleslots (25 ms)

0x0301

ELEM_ID_PARAM_CONN_INTERVAL_MAX

20 ble doubleslots (25 ms)

0x0302

ELEM_ID_PARAM_CONN_LATENCY

0 ms

0x0303

ELEM_ID_PARAM_CONN_TIME_OUT

1000 timer units (10000 ms)

0x0400

ELEM_ID_PARAM_USER_ADV_DATA

x11x07xb7x5cx49xd2x04xa3x40x71xa0xb5x35x85x3exb0x83x07x03x03xf5xfe

0x0401

ELEM_ID_PARAM_USER_ADV_DATA_LEN

22 bytes

0x0402

ELEM_ID_PARAM_ADV_SCAN_RESP_DATA

Null

0x0403

ELEM_ID_PARAM_ADV_SCAN_RESP_DATA_LEN

0 bytes

0x0404

ELEM_ID_PARAM_USER_DEVICE_NAME

SPS-535

0x0405

ELEM_ID_PARAM_DEVIC_NAME_LEN

7

0x0500

ELEM_ID_PARAM_PERIPH_UART_BAUDRATE

8 (921600 Kbps)

0x0700

ELEM_ID_GPIO_UART1_RX

GPIO 5, PORT 0

0x0701

ELEM_ID_GPIO_UART1_TX

GPIO 6, PORT 0

0x0702

ELEM_ID_GPIO_UART1_CTS

GPIO 8, PORT 0

0x0703

ELEM_ID_GPIO_UART1_RTS

GPIO 7, PORT 0

0x0707

ELEM_ID_GPIO_ACTIVE_STATUS_PIN

GPIO 11, PORT 0

0x0709

ELEM_ID_GPIO_POR_PIN

GPIO 9, PORT 0

0x070A

ELEM_ID_GPIO_POR_PIN_POLARITY

1 (High)

0x070B

ELEM_ID_GPIO_POR_PIN_TIMEOUT

0 ms

11.3.3. SPS Device for DA14585

Table 19 SPS Device Configuration Structure for DA14585

Element ID

Name

Default Values

0x0100

ELEM_ID_PARAM_ADV_INTERVAL_MIN

160 ble slots (100 ms)

0x0101

ELEM_ID_PARAM_ADV_INTERVAL_MAX

160 ble slots (100 ms)

0x0102

ELEM_ID_PARAM_ADV_CHANNEL_MAP

7 (ADV_ALL_CHNLS_EN)

0x0201

ELEM_ID_PARAM_GAP_MTU

247 bytes

0x0300

ELEM_ID_PARAM_CONN_INTERVAL_MIN

20 ble doubleslots (25 ms)

0x0301

ELEM_ID_PARAM_CONN_INTERVAL_MAX

20 ble doubleslots (25 ms)

0x0302

ELEM_ID_PARAM_CONN_LATENCY

0 ms

0x0303

ELEM_ID_PARAM_CONN_TIME_OUT

1000 timer units (10000 ms)

0x0400

ELEM_ID_PARAM_USER_ADV_DATA

x11x07xb7x5cx49xd2x04xa3x40x71xa0xb5x35x85x3exb0x83x07x03x03xf5xfe

0x0401

ELEM_ID_PARAM_USER_ADV_DATA_LEN

22 bytes

0x0402

ELEM_ID_PARAM_ADV_SCAN_RESP_DATA

Null

0x0403

ELEM_ID_PARAM_ADV_SCAN_RESP_DATA_LEN

0 bytes

0x0404

ELEM_ID_PARAM_USER_DEVICE_NAME

SPS-585

0x0405

ELEM_ID_PARAM_DEVIC_NAME_LEN

7

0x0500

ELEM_ID_PARAM_PERIPH_UART_BAUDRATE

8 (921600 Kbps)

0x0700

ELEM_ID_GPIO_UART1_RX

GPIO 2, PORT 0

0x0701

ELEM_ID_GPIO_UART1_TX

GPIO 4, PORT 0

0x0702

ELEM_ID_GPIO_UART1_CTS

GPIO 6, PORT 0

0x0703

ELEM_ID_GPIO_UART1_RTS

GPIO 7, PORT 0

0x0707

ELEM_ID_GPIO_ACTIVE_STATUS_PIN

GPIO 5, PORT 2

0x0709

ELEM_ID_GPIO_POR_PIN

GPIO 9, PORT 2

0x070A

ELEM_ID_GPIO_POR_PIN_POLARITY

1 (High)

0x070B

ELEM_ID_GPIO_POR_PIN_TIMEOUT

0 ms

11.3.4. SPS Host for DA14531, DA14535 and DA14585

SPS Host Configuration Structure for DA14531, DA14535 and DA14585

Table 20 SPS Host Configuration Structure for DA14531, DA14535 and DA14585

Element ID

Name

Default Value

0x0201

ELEM_ID_PARAM_GAP_MTU

247 bytes

0x0300

ELEM_ID_PARAM_CONN_INTERVAL_MIN

20 ble doubleslots (25 ms)

0x0301

ELEM_ID_PARAM_CONN_INTERVAL_MAX

20 ble doubleslots (25 ms)

0x0302

ELEM_ID_PARAM_CONN_LATENCY

0 ms

0x0303

ELEM_ID_PARAM_CONN_TIME_OUT

1000 timer units (10000 ms)

0x0304

ELEM_ID_CONN_CE_LEN_MIN

32 ble doubleslots (40 ms)

0x0305

ELEM_ID_CONN_CE_LEN_MAX

32 ble doubleslots (40 ms)

0x0400

ELEM_ID_PARAM_USER_ADV_DATA

x11x07xb7x5cx49xd2x04xa3x40x71xa0xb5x35x85x3exb0x83x07x03x03xf5xfe

0x0401

ELEM_ID_PARAM_USER_ADV_DATA_LEN

22 bytes

0x0500

ELEM_ID_PARAM_PERIPH_UART_BAUDRATE

8 (921600 Kbps)

0x0600

ELEM_ID_CENTRAL_CODE

19 (GAPM_CONNECTION_DIRECT)

0x0602

ELEM_ID_CENTRAL_SCAN_INTERVAL

384 ms

0x0603

ELEM_ID_CENTRAL_SCAN_WINDOW

352 ms

0x0604

ELEM_ID_CENTRAL_PEER_ADDR_0

00:00:00:00:00:00

0x0605

ELEM_ID_CENTRAL_PEER_ADDR_0_TYPE

0 (public)