Mbed OS example of Pelion device management client

This example is known to work great on the following platforms:

https://os.mbed.com/media/cache/platforms/M46B_mbed.png.250x250_q85.jpg

To use this example, connect ESP8266 Wi-Fi module (Grove UART WiFi) to the AdBun-M46B board as below:

ESP8266 Wi-FiAdBun-M46B
TXPL1 (CN4-22)
RXPL2 (CN4-24)
VINVCC3.3 (CN11-5)
GNDGND (CN11-6)

https://dl.dropboxusercontent.com/s/5j4glkwhjg5m5ay/IMG_7457.jpg

Example functionality

  • Initialize, connect and register to Pelion DM
  • Interact with the user through the serial port (115200 bauds)
    • Press enter through putty/minicom to simulate button
    • Press i to print endpoint name
    • Press Ctrl-C to to unregister
    • Press r to reset storage and reboot (warning: it generates a new device ID!)

Instructions to use this program with Mbed CLI


1. Import the application into your desktop:

mbed import https://os.mbed.com/teams/Toshiba/code/mbed-os-example-pelion/
cd mbed-os-example-pelion


2. Install the CLOUD_SDK_API_KEY

mbed config -G CLOUD_SDK_API_KEY <PELION_DM_API_KEY>

For instructions on how to generate your API key, please see the documentation.

3. Initialize firmware credentials (done once per repository). You can use the following command:

mbed dm init -d "<your company name in Pelion DM>" --model-name "<product model identifier>" -q --force

If above command do not work for your Mbed CLI, please consider upgrading Mbed CLI to version 1.8.x or above.

4. Connect Pins used with Wifi shield (ESP8266) and SD card shield:

5. Edit mbed_app.json to specify Wi-Fi access point information

            "nsapi.default-wifi-ssid"                   : "\"SSID\"",
            "nsapi.default-wifi-password"               : "\"PASSWORD\""

6. Compile and program:

mbed compile -t <toolchain> -m TMPM46B

(supported toolchains : GCC_ARM / ARM / IAR)

Committer:
MACRUM
Date:
Thu Dec 12 10:26:06 2019 +0900
Revision:
0:9f917a7bf2da
Initial commit.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MACRUM 0:9f917a7bf2da 1 {
MACRUM 0:9f917a7bf2da 2 "macros": [
MACRUM 0:9f917a7bf2da 3 "MBED_TRACE_MAX_LEVEL=TRACE_LEVEL_INFO",
MACRUM 0:9f917a7bf2da 4 "MBED_CLIENT_USER_CONFIG_FILE=\"mbed_cloud_client_user_config.h\"",
MACRUM 0:9f917a7bf2da 5 "MBED_CLOUD_CLIENT_USER_CONFIG_FILE=\"mbed_cloud_client_user_config.h\"",
MACRUM 0:9f917a7bf2da 6 "ARM_UC_USE_PAL_BLOCKDEVICE=1",
MACRUM 0:9f917a7bf2da 7 "PAL_PLATFORM_DEFINED_CONFIGURATION=\"mbedOS_SST.h\"",
MACRUM 0:9f917a7bf2da 8 "PAL_USER_DEFINED_CONFIGURATION=\"mbedOS_SST.h\""
MACRUM 0:9f917a7bf2da 9 ],
MACRUM 0:9f917a7bf2da 10 "target_overrides": {
MACRUM 0:9f917a7bf2da 11 "*": {
MACRUM 0:9f917a7bf2da 12 "target.features_add" : ["BOOTLOADER", "STORAGE"],
MACRUM 0:9f917a7bf2da 13 "platform.stdio-baud-rate" : 115200,
MACRUM 0:9f917a7bf2da 14 "platform.stdio-convert-newlines" : true,
MACRUM 0:9f917a7bf2da 15 "platform.stdio-buffered-serial" : true,
MACRUM 0:9f917a7bf2da 16 "platform.stdio-flush-at-exit" : true,
MACRUM 0:9f917a7bf2da 17 "rtos.main-thread-stack-size" : 5120,
MACRUM 0:9f917a7bf2da 18 "update-client.storage-locations" : 1,
MACRUM 0:9f917a7bf2da 19 "mbed-trace.enable" : null,
MACRUM 0:9f917a7bf2da 20 "events.shared-stacksize" : 2048,
MACRUM 0:9f917a7bf2da 21 "nsapi.default-wifi-security" : "WPA_WPA2",
MACRUM 0:9f917a7bf2da 22 "nsapi.default-wifi-ssid" : "\"SSID\"",
MACRUM 0:9f917a7bf2da 23 "nsapi.default-wifi-password" : "\"PASSWORD\""
MACRUM 0:9f917a7bf2da 24 },
MACRUM 0:9f917a7bf2da 25 "Freescale": {
MACRUM 0:9f917a7bf2da 26 "lwip.mem-size" : 12500
MACRUM 0:9f917a7bf2da 27 },
MACRUM 0:9f917a7bf2da 28 "STM_EMAC": {
MACRUM 0:9f917a7bf2da 29 "lwip.pbuf-pool-size" : 16,
MACRUM 0:9f917a7bf2da 30 "lwip.mem-size" : 12500
MACRUM 0:9f917a7bf2da 31 },
MACRUM 0:9f917a7bf2da 32 "K64F": {
MACRUM 0:9f917a7bf2da 33 "target.macros_add" : ["MBEDTLS_USER_CONFIG_FILE=\"mbedTLSConfig_mbedOS.h\""],
MACRUM 0:9f917a7bf2da 34 "target.network-default-interface-type" : "ETHERNET",
MACRUM 0:9f917a7bf2da 35 "target.bootloader_img" : "bootloader/mbed-bootloader-k64f-internal_flash-no_rot-v4.0.1.bin",
MACRUM 0:9f917a7bf2da 36 "target.header_offset" : "0x8000",
MACRUM 0:9f917a7bf2da 37 "target.app_offset" : "0x8400",
MACRUM 0:9f917a7bf2da 38 "target.restrict_size" : "0x74000",
MACRUM 0:9f917a7bf2da 39 "update-client.bootloader-details" : "0x4A6C",
MACRUM 0:9f917a7bf2da 40 "update-client.application-details" : "(32*1024)",
MACRUM 0:9f917a7bf2da 41 "update-client.storage-address" : "(MBED_CONF_STORAGE_TDB_INTERNAL_INTERNAL_BASE_ADDRESS+MBED_CONF_STORAGE_TDB_INTERNAL_INTERNAL_SIZE)",
MACRUM 0:9f917a7bf2da 42 "update-client.storage-size" : "(512*1024-MBED_CONF_STORAGE_TDB_INTERNAL_INTERNAL_SIZE)",
MACRUM 0:9f917a7bf2da 43 "update-client.storage-locations" : 1,
MACRUM 0:9f917a7bf2da 44 "update-client.storage-page" : 8,
MACRUM 0:9f917a7bf2da 45 "mbed-cloud-client.update-storage" : "ARM_UCP_FLASHIAP",
MACRUM 0:9f917a7bf2da 46 "storage_tdb_internal.internal_base_address": "(512*1024)",
MACRUM 0:9f917a7bf2da 47 "storage_tdb_internal.internal_size" : "(48*1024)",
MACRUM 0:9f917a7bf2da 48 "storage.storage_type" : "TDB_INTERNAL"
MACRUM 0:9f917a7bf2da 49 },
MACRUM 0:9f917a7bf2da 50 "K66F": {
MACRUM 0:9f917a7bf2da 51 "target.macros_add" : ["MBEDTLS_USER_CONFIG_FILE=\"mbedTLSConfig_mbedOS.h\""],
MACRUM 0:9f917a7bf2da 52 "target.network-default-interface-type" : "ETHERNET",
MACRUM 0:9f917a7bf2da 53 "target.bootloader_img" : "bootloader/mbed-bootloader-k66f-internal_flash-no_rot-v4.0.0.bin",
MACRUM 0:9f917a7bf2da 54 "target.header_offset" : "0x8000",
MACRUM 0:9f917a7bf2da 55 "target.app_offset" : "0x8400",
MACRUM 0:9f917a7bf2da 56 "update-client.bootloader-details" : "0x4D58",
MACRUM 0:9f917a7bf2da 57 "update-client.application-details" : "(32*1024)",
MACRUM 0:9f917a7bf2da 58 "update-client.storage-address" : "(MBED_CONF_STORAGE_TDB_INTERNAL_INTERNAL_BASE_ADDRESS+MBED_CONF_STORAGE_TDB_INTERNAL_INTERNAL_SIZE)",
MACRUM 0:9f917a7bf2da 59 "update-client.storage-size" : "(1024*1024-MBED_CONF_STORAGE_TDB_INTERNAL_INTERNAL_SIZE)",
MACRUM 0:9f917a7bf2da 60 "update-client.storage-page" : 8,
MACRUM 0:9f917a7bf2da 61 "mbed-cloud-client.update-storage" : "ARM_UCP_FLASHIAP",
MACRUM 0:9f917a7bf2da 62 "storage_tdb_internal.internal_base_address": "(1024*1024)",
MACRUM 0:9f917a7bf2da 63 "storage_tdb_internal.internal_size" : "(96*1024)",
MACRUM 0:9f917a7bf2da 64 "storage.storage_type" : "TDB_INTERNAL"
MACRUM 0:9f917a7bf2da 65 },
MACRUM 0:9f917a7bf2da 66 "NUCLEO_F429ZI": {
MACRUM 0:9f917a7bf2da 67 "target.macros_add" : ["MBEDTLS_USER_CONFIG_FILE=\"mbedTLSConfig_mbedOS.h\""],
MACRUM 0:9f917a7bf2da 68 "target.network-default-interface-type" : "ETHERNET",
MACRUM 0:9f917a7bf2da 69 "target.bootloader_img" : "bootloader/mbed-bootloader-nucleo_f429zi-internal_flash-no_rot-v4.0.0.bin",
MACRUM 0:9f917a7bf2da 70 "target.header_offset" : "0x8000",
MACRUM 0:9f917a7bf2da 71 "target.app_offset" : "0x8400",
MACRUM 0:9f917a7bf2da 72 "update-client.bootloader-details" : "0x080078CC",
MACRUM 0:9f917a7bf2da 73 "update-client.application-details" : "(MBED_ROM_START + MBED_BOOTLOADER_SIZE)",
MACRUM 0:9f917a7bf2da 74 "update-client.storage-address" : "(MBED_CONF_STORAGE_TDB_INTERNAL_INTERNAL_BASE_ADDRESS+MBED_CONF_STORAGE_TDB_INTERNAL_INTERNAL_SIZE)",
MACRUM 0:9f917a7bf2da 75 "update-client.storage-size" : "(1024*1024-MBED_CONF_STORAGE_TDB_INTERNAL_INTERNAL_SIZE)",
MACRUM 0:9f917a7bf2da 76 "update-client.storage-page" : 1,
MACRUM 0:9f917a7bf2da 77 "mbed-cloud-client.update-storage" : "ARM_UCP_FLASHIAP",
MACRUM 0:9f917a7bf2da 78 "storage_tdb_internal.internal_base_address": "(MBED_ROM_START+1024*1024)",
MACRUM 0:9f917a7bf2da 79 "storage_tdb_internal.internal_size" : "(128*1024)",
MACRUM 0:9f917a7bf2da 80 "storage.storage_type" : "TDB_INTERNAL"
MACRUM 0:9f917a7bf2da 81 },
MACRUM 0:9f917a7bf2da 82 "UBLOX_EVK_ODIN_W2": {
MACRUM 0:9f917a7bf2da 83 "target.macros_add" : ["MBEDTLS_USER_CONFIG_FILE=\"mbedTLSConfig_mbedOS.h\""],
MACRUM 0:9f917a7bf2da 84 "target.network-default-interface-type" : "WIFI",
MACRUM 0:9f917a7bf2da 85 "target.bootloader_img" : "bootloader/mbed-bootloader-ublox_evk_odin_w2-block_device-kvstore-v4.0.0.bin",
MACRUM 0:9f917a7bf2da 86 "target.header_offset" : "0x10000",
MACRUM 0:9f917a7bf2da 87 "target.app_offset" : "0x10400",
MACRUM 0:9f917a7bf2da 88 "target.components_add" : ["SD"],
MACRUM 0:9f917a7bf2da 89 "update-client.bootloader-details" : "0x08007300",
MACRUM 0:9f917a7bf2da 90 "update-client.application-details" : "(0x08000000+64*1024)",
MACRUM 0:9f917a7bf2da 91 "update-client.storage-address" : "(1024*1024*64)",
MACRUM 0:9f917a7bf2da 92 "update-client.storage-size" : "((MBED_ROM_START + MBED_ROM_SIZE - APPLICATION_ADDR) * MBED_CONF_UPDATE_CLIENT_STORAGE_LOCATIONS)",
MACRUM 0:9f917a7bf2da 93 "mbed-cloud-client.update-storage" : "ARM_UCP_FLASHIAP_BLOCKDEVICE",
MACRUM 0:9f917a7bf2da 94 "storage_filesystem.internal_base_address" : "(0x08000000+32*1024)",
MACRUM 0:9f917a7bf2da 95 "storage_filesystem.rbp_internal_size" : "(32*1024)",
MACRUM 0:9f917a7bf2da 96 "storage_filesystem.external_base_address" : "(0x0)",
MACRUM 0:9f917a7bf2da 97 "storage_filesystem.external_size" : "(1024*1024*64)",
MACRUM 0:9f917a7bf2da 98 "storage.storage_type" : "FILESYSTEM",
MACRUM 0:9f917a7bf2da 99 "storage_filesystem.filesystem" : "LITTLE",
MACRUM 0:9f917a7bf2da 100 "storage_filesystem.blockdevice" : "SD",
MACRUM 0:9f917a7bf2da 101 "target.lse_available" : 0,
MACRUM 0:9f917a7bf2da 102 "target.macros_remove" : ["MBEDTLS_CONFIG_HW_SUPPORT"]
MACRUM 0:9f917a7bf2da 103 },
MACRUM 0:9f917a7bf2da 104 "NUCLEO_F411RE": {
MACRUM 0:9f917a7bf2da 105 "target.extra_labels_add" : ["PSA"],
MACRUM 0:9f917a7bf2da 106 "target.macros_add" : ["MBEDTLS_USER_CONFIG_FILE=\"mbedTLSConfig_mbedOS_SW_TRNG_PSA.h\"", "MBEDTLS_PSA_CRYPTO_C", "MBEDTLS_ENTROPY_NV_SEED", "PAL_USE_HW_TRNG=0"],
MACRUM 0:9f917a7bf2da 107 "target.network-default-interface-type" : "WIFI",
MACRUM 0:9f917a7bf2da 108 "target.bootloader_img" : "bootloader/mbed-bootloader-nucleo_f411re-block_device-kvstore-v4.0.0.bin",
MACRUM 0:9f917a7bf2da 109 "target.header_offset" : "0x10000",
MACRUM 0:9f917a7bf2da 110 "target.app_offset" : "0x10400",
MACRUM 0:9f917a7bf2da 111 "target.components_add" : ["SD", "WIFI_IDW01M1"],
MACRUM 0:9f917a7bf2da 112 "idw0xx1.provide-default" : true,
MACRUM 0:9f917a7bf2da 113 "idw0xx1.tx" : "PA_9",
MACRUM 0:9f917a7bf2da 114 "idw0xx1.rx" : "PA_10",
MACRUM 0:9f917a7bf2da 115 "update-client.bootloader-details" : "(0x08000000+30*1024)",
MACRUM 0:9f917a7bf2da 116 "update-client.application-details" : "(0x08000000+64*1024)",
MACRUM 0:9f917a7bf2da 117 "update-client.storage-address" : "(1024*1024*64)",
MACRUM 0:9f917a7bf2da 118 "update-client.storage-size" : "((MBED_ROM_START + MBED_ROM_SIZE - APPLICATION_ADDR) * MBED_CONF_UPDATE_CLIENT_STORAGE_LOCATIONS)",
MACRUM 0:9f917a7bf2da 119 "mbed-cloud-client.update-storage" : "ARM_UCP_FLASHIAP_BLOCKDEVICE",
MACRUM 0:9f917a7bf2da 120 "storage_filesystem.filesystem" : "LITTLE",
MACRUM 0:9f917a7bf2da 121 "storage_filesystem.blockdevice" : "SD",
MACRUM 0:9f917a7bf2da 122 "storage_filesystem.internal_base_address" : "(0x08000000+32*1024)",
MACRUM 0:9f917a7bf2da 123 "storage_filesystem.rbp_internal_size" : "(32*1024)",
MACRUM 0:9f917a7bf2da 124 "storage.storage_type" : "FILESYSTEM",
MACRUM 0:9f917a7bf2da 125 "storage_filesystem.external_base_address" : "(0x0)",
MACRUM 0:9f917a7bf2da 126 "storage_filesystem.external_size" : "(1024*1024*64)",
MACRUM 0:9f917a7bf2da 127 "events.shared-stacksize" : 2048,
MACRUM 0:9f917a7bf2da 128 "events.shared-eventsize" : 1024,
MACRUM 0:9f917a7bf2da 129 "drivers.uart-serial-rxbuf-size" : 1024,
MACRUM 0:9f917a7bf2da 130 "drivers.uart-serial-txbuf-size" : 1024,
MACRUM 0:9f917a7bf2da 131 "target.macros_remove" : ["MBEDTLS_CONFIG_HW_SUPPORT"],
MACRUM 0:9f917a7bf2da 132 "sd.SPI_MOSI" : "PC_3",
MACRUM 0:9f917a7bf2da 133 "sd.SPI_MISO" : "PC_2",
MACRUM 0:9f917a7bf2da 134 "sd.SPI_CLK" : "PC_7",
MACRUM 0:9f917a7bf2da 135 "sd.SPI_CS" : "PB_9"
MACRUM 0:9f917a7bf2da 136 },
MACRUM 0:9f917a7bf2da 137 "DISCO_L475VG_IOT01A": {
MACRUM 0:9f917a7bf2da 138 "target.macros_add" : ["MBEDTLS_USER_CONFIG_FILE=\"mbedTLSConfig_mbedOS.h\""],
MACRUM 0:9f917a7bf2da 139 "target.network-default-interface-type" : "WIFI",
MACRUM 0:9f917a7bf2da 140 "target.bootloader_img" : "bootloader/mbed-bootloader-disco_l475vg_iot01a-external_kvstore-qspif.bin",
MACRUM 0:9f917a7bf2da 141 "target.header_offset" : "0x11000",
MACRUM 0:9f917a7bf2da 142 "target.app_offset" : "0x11400",
MACRUM 0:9f917a7bf2da 143 "target.components_add" : ["QSPIF", "WIFI_ISM43362"],
MACRUM 0:9f917a7bf2da 144 "bootloader-size" : "(36*1024)",
MACRUM 0:9f917a7bf2da 145 "ism43362.read-thread-stack-size" : 1024,
MACRUM 0:9f917a7bf2da 146 "mbed-client-pal.pal-max-frag-len" : 1,
MACRUM 0:9f917a7bf2da 147 "mbed-client.sn-coap-max-blockwise-payload-size": 256,
MACRUM 0:9f917a7bf2da 148 "mbed-cloud-client.update-storage" : "ARM_UCP_FLASHIAP_BLOCKDEVICE",
MACRUM 0:9f917a7bf2da 149 "storage.storage_type" : "FILESYSTEM",
MACRUM 0:9f917a7bf2da 150 "storage_filesystem.filesystem" : "LITTLE",
MACRUM 0:9f917a7bf2da 151 "storage_filesystem.blockdevice" : "QSPIF",
MACRUM 0:9f917a7bf2da 152 "storage_filesystem.external_size" : "(1024 * 1024)",
MACRUM 0:9f917a7bf2da 153 "storage_filesystem.external_base_address" : "(0)",
MACRUM 0:9f917a7bf2da 154 "storage_filesystem.rbp_internal_size" : "(32 * 1024)",
MACRUM 0:9f917a7bf2da 155 "storage_filesystem.internal_base_address" : "(MBED_ROM_START + MBED_BOOTLOADER_SIZE)",
MACRUM 0:9f917a7bf2da 156 "update-client.application-details" : "(MBED_CONF_STORAGE_FILESYSTEM_INTERNAL_BASE_ADDRESS + MBED_CONF_STORAGE_FILESYSTEM_RBP_INTERNAL_SIZE)",
MACRUM 0:9f917a7bf2da 157 "update-client.bootloader-details" : "0x800882c",
MACRUM 0:9f917a7bf2da 158 "update-client.firmware-header-version" : "2",
MACRUM 0:9f917a7bf2da 159 "update-client.storage-address" : "(MBED_CONF_STORAGE_FILESYSTEM_EXTERNAL_BASE_ADDRESS + MBED_CONF_STORAGE_FILESYSTEM_EXTERNAL_SIZE)",
MACRUM 0:9f917a7bf2da 160 "update-client.storage-locations" : 1,
MACRUM 0:9f917a7bf2da 161 "update-client.storage-size" : "((MBED_ROM_START + MBED_ROM_SIZE - APPLICATION_ADDR) * MBED_CONF_UPDATE_CLIENT_STORAGE_LOCATIONS)"
MACRUM 0:9f917a7bf2da 162 },
MACRUM 0:9f917a7bf2da 163 "TMPM46B": {
MACRUM 0:9f917a7bf2da 164 "target.macros_add" : ["MBEDTLS_USER_CONFIG_FILE=\"mbedTLSConfig_mbedOS.h\""],
MACRUM 0:9f917a7bf2da 165 "target.components_add" : ["FLASHIAP"],
MACRUM 0:9f917a7bf2da 166 "target.network-default-interface-type" : "WIFI",
MACRUM 0:9f917a7bf2da 167 "esp8266.provide-default" : true,
MACRUM 0:9f917a7bf2da 168 "esp8266.tx" : "D1",
MACRUM 0:9f917a7bf2da 169 "esp8266.rx" : "D0",
MACRUM 0:9f917a7bf2da 170 "target.bootloader_img" : "bootloader/mbed-bootloader-tmpm46b-internal_flash-no_rot-v4.0.1.bin",
MACRUM 0:9f917a7bf2da 171 "target.header_offset" : "0x8000",
MACRUM 0:9f917a7bf2da 172 "target.app_offset" : "0x8400",
MACRUM 0:9f917a7bf2da 173 "target.restrict_size" : "0x70000",
MACRUM 0:9f917a7bf2da 174 "update-client.application-details" : "(32*1024)",
MACRUM 0:9f917a7bf2da 175 "update-client.storage-address" : "(MBED_CONF_STORAGE_TDB_INTERNAL_INTERNAL_BASE_ADDRESS+MBED_CONF_STORAGE_TDB_INTERNAL_INTERNAL_SIZE)",
MACRUM 0:9f917a7bf2da 176 "update-client.storage-size" : "(512*1024-MBED_CONF_STORAGE_TDB_INTERNAL_INTERNAL_SIZE)",
MACRUM 0:9f917a7bf2da 177 "update-client.storage-locations" : 1,
MACRUM 0:9f917a7bf2da 178 "mbed-cloud-client.update-storage" : "ARM_UCP_FLASHIAP",
MACRUM 0:9f917a7bf2da 179 "storage_tdb_internal.internal_base_address": "(512*1024)",
MACRUM 0:9f917a7bf2da 180 "storage_tdb_internal.internal_size" : "(64*1024)",
MACRUM 0:9f917a7bf2da 181 "storage.storage_type" : "TDB_INTERNAL"
MACRUM 0:9f917a7bf2da 182 }
MACRUM 0:9f917a7bf2da 183 },
MACRUM 0:9f917a7bf2da 184 "config": {
MACRUM 0:9f917a7bf2da 185 "bootloader-size": {
MACRUM 0:9f917a7bf2da 186 "help" : "Helper macro to enable calculation of rom regions. target.header_offset and target.app_offset still needs to be calculated manually, though.",
MACRUM 0:9f917a7bf2da 187 "value" : "(32*1024)",
MACRUM 0:9f917a7bf2da 188 "macro_name": "MBED_BOOTLOADER_SIZE"
MACRUM 0:9f917a7bf2da 189 }
MACRUM 0:9f917a7bf2da 190 }
MACRUM 0:9f917a7bf2da 191 }