Specific Pelion ready example using features of Uhuru RAVEN board including Wi-Fi and SPI flash

DEPRECATED

This example application is not maintained and not recommended. It uses an old version of Mbed OS, Pelion DM, and Arm toolchain. It doesn't work with Mbed Studio.

Please use: https://os.mbed.com/teams/mbed-os-examples/code/mbed-os-example-pelion/

This example is known to work great on the following platforms:
Uhuru RAVEN over Wi-Fi and using onboard SPI flash.

/media/uploads/MACRUM/raven.jpg

Follow the Quick-Start instructions: https://cloud.mbed.com/quick-start

Example functionality

This example showcases the following device functionality:

  • Allow the user to change the state of the board LED from Pelion LWM2M led_state resource and PUT request.

Use this example with Mbed CLI

1. Import the application into your desktop:

mbed import https://os.mbed.com/teams/Uhuru/code/pelion-example-common/

cd pelion-example-common

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.9.x or above.

Set SSID and password in the mbed_app.json.

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

4. Compile and program:

mbed compile -t <toolchain> -m UHURU_RAVEN

(supported toolchains : GCC_ARM / ARM / IAR)

5. You can connect on a virtual terminal/COM port to the platform using:

mbed sterm -b 115200

This should give you an output similar to:

[BOOT] INFO: init - verified SFDP Signature and version Successfully
[BOOT] DEBUG: Erase Type(A) 1 - Inst: 0xFFh, Size: 4096
[BOOT] INFO: Erase Type 1 - Inst: 0x20h, Size: 4096
[BOOT] DEBUG: Erase Type(A) 2 - Inst: 0xFFh, Size: 32768
[BOOT] INFO: Erase Type 2 - Inst: 0x52h, Size: 32768
[BOOT] DEBUG: Erase Type(A) 3 - Inst: 0xFFh, Size: 65536
[BOOT] INFO: Erase Type 3 - Inst: 0xD8h, Size: 65536
[BOOT] DEBUG: Erase Type(A) 4 - Inst: 0xFFh, Size: 1
[BOOT] INFO: Erase Type 4 - Inst: 0xFFh, Size: 1
[BOOT] Mbed Bootloader
[BOOT] ARM: 00000000000000000000
[BOOT] OEM: 00000000000000000000
[BOOT] Layout: 0 80091E0
[BOOT] Active firmware integrity check:
[BOOT] SHA256: DC87CF84F7064E58EF0FD011C1768ADFA4803BA1F6758808972680605CBB2C9B
[BOOT] Version: 1558427552
[BOOT] INFO Read - Inst: 0x3h
[BOOT] Slot 0 is empty
[BOOT] Active firmware up-to-date
[BOOT] Application's start address: 0x8010400
[BOOT] Application's jump address: 0x80108F9
[BOOT] Application's stack address: 0x20080000
[BOOT] Forwarding to application...
..¿<.
Starting Simple Pelion Device Management Client example
You can hold the user button during boot to format the storage and change the device identity.
Connecting to the network using the default network interface...
Connected to the network successfully. IP address: 192.168.11.20
Initializing Pelion Device Management Client...
Initialized Pelion Device Management Client. Registering...
Simulating button press every 5 seconds...
Registered to Pelion Device Management. Endpoint Name: 016ad986878400000000000100xxxxxx
Button clicked 1 times
Button clicked 2 times
Button clicked 3 times
Committer:
MACRUM
Date:
Tue May 21 17:19:38 2019 +0900
Revision:
0:16957896f9cd
initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MACRUM 0:16957896f9cd 1 {
MACRUM 0:16957896f9cd 2 "target_overrides": {
MACRUM 0:16957896f9cd 3 "*": {
MACRUM 0:16957896f9cd 4 "target.components_remove" : ["FLASHIAP"],
MACRUM 0:16957896f9cd 5 "platform.stdio-baud-rate" : 115200,
MACRUM 0:16957896f9cd 6 "platform.stdio-convert-newlines" : true,
MACRUM 0:16957896f9cd 7 "mbed-trace.enable" : null,
MACRUM 0:16957896f9cd 8 "mbed-cloud-client.external-sst-support" : null,
MACRUM 0:16957896f9cd 9 "nsapi.default-wifi-security" : "WPA_WPA2",
MACRUM 0:16957896f9cd 10 "nsapi.default-wifi-ssid" : "\"SSID\"",
MACRUM 0:16957896f9cd 11 "nsapi.default-wifi-password" : "\"Password\""
MACRUM 0:16957896f9cd 12 },
MACRUM 0:16957896f9cd 13 "UHURU_RAVEN": {
MACRUM 0:16957896f9cd 14 "target.components_add" : ["SPIF", "WIFI_ESP32"],
MACRUM 0:16957896f9cd 15 "spif-driver.SPI_MOSI" : "PE_14",
MACRUM 0:16957896f9cd 16 "spif-driver.SPI_MISO" : "PE_13",
MACRUM 0:16957896f9cd 17 "spif-driver.SPI_CLK" : "PE_12",
MACRUM 0:16957896f9cd 18 "spif-driver.SPI_CS" : "PE_11",
MACRUM 0:16957896f9cd 19 "target.network-default-interface-type" : "WIFI",
MACRUM 0:16957896f9cd 20 "esp32.wifi-debug" : false,
MACRUM 0:16957896f9cd 21 "esp32.wifi-en" : "PB_12",
MACRUM 0:16957896f9cd 22 "esp32.wifi-io0" : "PB_13",
MACRUM 0:16957896f9cd 23 "esp32.wifi-tx" : "PB_14",
MACRUM 0:16957896f9cd 24 "esp32.wifi-rx" : "PB_15",
MACRUM 0:16957896f9cd 25 "esp32.provide-default" : true,
MACRUM 0:16957896f9cd 26 "device-management.flash-start-address" : "0x08000000",
MACRUM 0:16957896f9cd 27 "device-management.flash-size" : "(2048*1024)",
MACRUM 0:16957896f9cd 28 "device-management.sotp-section-1-address" : "(MBED_CONF_APP_FLASH_START_ADDRESS + MBED_CONF_APP_FLASH_SIZE - 2*(256*1024))",
MACRUM 0:16957896f9cd 29 "device-management.sotp-section-1-size" : "(256*1024)",
MACRUM 0:16957896f9cd 30 "device-management.sotp-section-2-address" : "(MBED_CONF_APP_FLASH_START_ADDRESS + MBED_CONF_APP_FLASH_SIZE - 1*(256*1024))",
MACRUM 0:16957896f9cd 31 "device-management.sotp-section-2-size" : "(256*1024)",
MACRUM 0:16957896f9cd 32 "update-client.application-details" : "(MBED_CONF_APP_FLASH_START_ADDRESS + 64*1024)",
MACRUM 0:16957896f9cd 33 "update-client.storage-address" : "(2*1024*1024)",
MACRUM 0:16957896f9cd 34 "update-client.storage-size" : "(2*1024*1024)",
MACRUM 0:16957896f9cd 35 "update-client.storage-locations" : "1",
MACRUM 0:16957896f9cd 36 "target.features_add" : ["BOOTLOADER"],
MACRUM 0:16957896f9cd 37 "target.bootloader_img" : "bootloader/mbed-bootloader-UHURU_RAVEN.bin",
MACRUM 0:16957896f9cd 38 "target.header_offset" : "0x10000",
MACRUM 0:16957896f9cd 39 "target.app_offset" : "0x10400",
MACRUM 0:16957896f9cd 40 "use-button" : false
MACRUM 0:16957896f9cd 41 }
MACRUM 0:16957896f9cd 42 },
MACRUM 0:16957896f9cd 43 "config": {
MACRUM 0:16957896f9cd 44 "format-storage-layer-on-error": {
MACRUM 0:16957896f9cd 45 "help": "Whether to format the storage layer when it cannot be read - always disable for production devices!",
MACRUM 0:16957896f9cd 46 "value": 1
MACRUM 0:16957896f9cd 47 },
MACRUM 0:16957896f9cd 48 "main-stack-size": {
MACRUM 0:16957896f9cd 49 "value": 6000
MACRUM 0:16957896f9cd 50 },
MACRUM 0:16957896f9cd 51 "use-button": {
MACRUM 0:16957896f9cd 52 "help": "Whether the target has a button",
MACRUM 0:16957896f9cd 53 "macro_name": "USE_BUTTON",
MACRUM 0:16957896f9cd 54 "value": true
MACRUM 0:16957896f9cd 55 },
MACRUM 0:16957896f9cd 56 "button-pressed-state": {
MACRUM 0:16957896f9cd 57 "help": "Value of the button when pressed",
MACRUM 0:16957896f9cd 58 "value": 1
MACRUM 0:16957896f9cd 59 },
MACRUM 0:16957896f9cd 60 "no_led": {
MACRUM 0:16957896f9cd 61 "help": "This flag disables the heartbeat thread in tests. This is useful for platforms that don't have an LED or the LED is used for other functionality like LED on the SPI clockline etc",
MACRUM 0:16957896f9cd 62 "value": null
MACRUM 0:16957896f9cd 63 },
MACRUM 0:16957896f9cd 64 "tests-fs-size": {
MACRUM 0:16957896f9cd 65 "help": "Maximum size of the file system used for tests",
MACRUM 0:16957896f9cd 66 "value": null
MACRUM 0:16957896f9cd 67 }
MACRUM 0:16957896f9cd 68 }
MACRUM 0:16957896f9cd 69 }