Difference between revisions of "ARM/Advantech integration camp"
Eric.liang (talk | contribs) |
Eric.liang (talk | contribs) |
||
(21 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
= '''mbed-Cloud FW upgrade feature for WISE-3610''' = | = '''mbed-Cloud FW upgrade feature for WISE-3610''' = | ||
− | ( You can get detail information refer to ADV integration camp - Update slides.pdf ) | + | ( You can get detail information refer to ADV integration camp - [[Media:ADV_integration_camp_-_Update_slides.pdf|ADV integration camp - Update slides.pdf]] ) |
Line 15: | Line 15: | ||
</ol> | </ol> | ||
− | [[File:Mbed cloud training 1.jpg|RTENOTITLE]] | + | [[File:Mbed cloud training 1.jpg|RTENOTITLE]] |
[[File:Mbed cloud training 2.jpg|RTENOTITLE]] | [[File:Mbed cloud training 2.jpg|RTENOTITLE]] | ||
Line 109: | Line 109: | ||
'''You can set filter rule in device director''' | '''You can set filter rule in device director''' | ||
− | [[File:Mbed cloud training 9.jpg|RTENOTITLE]] | + | [[File:Mbed cloud training 9.jpg|RTENOTITLE]] |
[[File:Mbed cloud training 10.jpg|RTENOTITLE]] | [[File:Mbed cloud training 10.jpg|RTENOTITLE]] | ||
Line 126: | Line 126: | ||
'''[https://github.com/ARMmbed/mbed-cloud-edge-confidential-a https://github.com/ARMmbed/mbed-cloud-edge-confidential-a]''' | '''[https://github.com/ARMmbed/mbed-cloud-edge-confidential-a https://github.com/ARMmbed/mbed-cloud-edge-confidential-a]''' | ||
+ | |||
+ | |||
Line 131: | Line 133: | ||
== '''To build mbed-edge & pt-example & lorapt-example code''' == | == '''To build mbed-edge & pt-example & lorapt-example code''' == | ||
− | '''Method 1: Get from github | + | '''Method 1: Get from github and download this [[Media:mbed-edge-patch-arm-workshop-20170912.gz|patch]] to patch your source code''' |
− | <pre> | + | <pre>##Create a new folder |
+ | $mkdir WISE-3610/qsdk/package/network/utils/mbed-edge | ||
+ | ##change to this folder | ||
+ | git clone https://github.com/ARMmbed/mbed-cloud-edge-confidential-a | ||
+ | ##To patch this source code for WISE-3610 | ||
cp Makefile to “mbed-edge” folder | cp Makefile to “mbed-edge” folder | ||
cp toolchain.cmake to | cp toolchain.cmake to | ||
Line 142: | Line 148: | ||
'''Method 2: Dowload the package that hands-on at ARM mbed workshop 20170912''' | '''Method 2: Dowload the package that hands-on at ARM mbed workshop 20170912''' | ||
− | + | Download: [[Media:mbed-edge-arm-workshop-20170912.gz|mbed-edge-arm-workshop-20170912.gz]] | |
+ | |||
+ | cd ~/WISE-3610/qsdk/package/network/utils/<br/>tar xvzf mbed-edge-arm-workshop-20170912.gz | ||
<span style="font-size:larger;">'''To create a “Certificates key” refer to above [[Media:Advantech_integration_camp#To_build_FW.C2.A0image_modify_by_ARM.C2.A0|section]]'''</span> | <span style="font-size:larger;">'''To create a “Certificates key” refer to above [[Media:Advantech_integration_camp#To_build_FW.C2.A0image_modify_by_ARM.C2.A0|section]]'''</span> | ||
Line 148: | Line 156: | ||
− | <span style="font-size:larger;">''' | + | <span style="font-size:larger;">'''To Download C code form mbed-cloud mbed_cloud_dev_credentials.c => <span style="color:#FF0000;">This file with mbed-cloud's credntials key</span>'''</span> |
<pre>$cp to “mbed-cloud-edge-confidential-a/client-wrapper/mbed_cloud_dev_credentials.c” | <pre>$cp to “mbed-cloud-edge-confidential-a/client-wrapper/mbed_cloud_dev_credentials.c” | ||
− | $cd | + | </pre> |
− | $make</pre> | + | |
+ | '''To build mbed-edge only''' | ||
+ | <pre>$cd WISE-3610/ | ||
+ | |||
+ | $export TOOLCHAIN_DIR=`pwd`/qsdk/staging_dir/toolchain-arm_cortex-a7_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/ | ||
+ | |||
+ | $cd ./qsdk | ||
+ | |||
+ | $make package/mbed-edge/clean package/mbed-edge/prepare package/mbed-edge/compile V=s -j 8</pre> | ||
+ | |||
+ | '''Copy programs to WISE-3610 Target''' | ||
+ | <pre>## edge-core at | ||
+ | ./staging_dir/target-arm_cortex-a7_uClibc-0.9.33.2_eabi/root-ipq806x/usr/sbin/edge-core | ||
+ | ## lorapt-example | ||
+ | ./build_dir/target-arm_cortex-a7_uClibc-0.9.33.2_eabi/mbed-edge/mbed-cloud-edge-confidential-a/build/mcc-linux-x86/existing/bin/lorapt-example</pre> | ||
== '''Update image to WISE-3610 Target board''' == | == '''Update image to WISE-3610 Target board''' == | ||
Line 170: | Line 192: | ||
<span style="color:#FF0000;">'''requirment example-client-config.json file in the same directory'''</span> | <span style="color:#FF0000;">'''requirment example-client-config.json file in the same directory'''</span> | ||
− | '''./pt-example | + | '''./pt-example 22223 example-client-config.json''' |
== '''Run lorapt-example''' == | == '''Run lorapt-example''' == | ||
Line 176: | Line 198: | ||
#'''To setup WISE-1501 LoRa sensor connect to WISE-3610''' | #'''To setup WISE-1501 LoRa sensor connect to WISE-3610''' | ||
#'''Run lorapt-example''' | #'''Run lorapt-example''' | ||
− | <pre dir="ltr">#./lorapt-example</pre> | + | <pre dir="ltr">#./lorapt-example 22223 example-client-config.json</pre> |
== '''SenHub and Resource on mbed-Cloud Portal''' == | == '''SenHub and Resource on mbed-Cloud Portal''' == | ||
Line 196: | Line 218: | ||
'''You also can select the device ( WISE-3610 ) to show how many sensor hub translator protocol by this GW''' | '''You also can select the device ( WISE-3610 ) to show how many sensor hub translator protocol by this GW''' | ||
+ | |||
+ | == ARM-mbed-Cloud Demo == | ||
+ | |||
+ | [[Media:Mbed-cloud-demo-WISE-3610-20171011.tar.gz|Mbed-cloud-demo-WISE-3610-20171011.tar.gz - Download]] | ||
+ | |||
+ | File Description: mbed-edge & lorap-example source code, binary, workaround and install scripts | ||
+ | |||
+ | */backup/source/mbed-edge-20171011-demo.tar.gz: source code | ||
+ | */etc/init.d/ : auto run script | ||
+ | */usr/sbin/ : edge-core & lorapt-example & workaround programs | ||
+ | *libs : dependience libs for lorapt-example | ||
+ | |||
+ | === '''<span style="color:#FF0000;">The SOP of setup a new WISE-3610 with mbed-cloud + lorapt-example demo</span>''' === | ||
+ | |||
+ | #copy [[Media:Mbed-cloud-demo-WISE-3610-20171011.tar.gz|Mbed-cloud-demo-WISE-3610-20171011.tar.gz]] file to WISE-3610 target platform | ||
+ | ##tar xzf mbed-cloud-demo-WISE-3610-20171011.tar.gz | ||
+ | ##cd mbed-cloud-demo-WISE-3610 | ||
+ | ##./instll_to_wise3610 | ||
+ | ##rm -r /usr/sbin/pal | ||
+ | ##reboot : Complete & reboot system | ||
+ | |||
+ | === Known-issue - 2017-10-11 === | ||
+ | |||
+ | Issue | ||
+ | |||
+ | #edge-core ( mbed-client with protocol translate ) will disconnect and failed to re-connect to mbed-Cloud when the lifetime is expired. | ||
+ | #Known issue: Notifications from protocol translated resource value changes are currently forwarded only as Mbed Cloud Edge value changes and not as connected device value changes. | ||
+ | |||
+ | Workaround | ||
+ | |||
+ | To restart mbed-edge every 20 minitues ( usr/sbin/mbed-demo ) | ||
= <br/><br/>Doc and Informaiton shared by ARM = | = <br/><br/>Doc and Informaiton shared by ARM = | ||
− | == | + | == mbed Cloud Doc == |
− | *[[Media:ADV_Integration_Camp_-_Mbed_Cloud_Services.pdf|ADV Integration Camp - Mbed Cloud Services.pdf]] | + | [https://cloud.mbed.com/docs/v1.2/collecting/collecting-resources.html#creating-custom-object-resources https://cloud.mbed.com/docs/v1.2/collecting/collecting-resources.html#creating-custom-object-resources] |
− | *[[Media:ADV_integration_camp_-_Provisioning.pdf|ADV integration camp - Provisioning.pdf]] | + | |
− | *[[Media:ADV_integration_camp_-_Update_slides.pdf|ADV integration camp - Update slides.pdf]] | + | == IPSO Object ID == |
− | *[[Media:ADV_integration_introduction.pdf|ADV integration introduction.pdf]] | + | |
+ | [https://github.com/IPSO-Alliance/pub/tree/master/reg https://github.com/IPSO-Alliance/pub/tree/master/reg] | ||
+ | |||
+ | [http://www.openmobilealliance.org/wp/OMNA/LwM2M/LwM2MRegistry.html http://www.openmobilealliance.org/wp/OMNA/LwM2M/LwM2MRegistry.html] | ||
+ | |||
+ | == Workshop PPT == | ||
+ | |||
+ | *[[Media:ADV_Integration_Camp_-_Mbed_Cloud_Services.pdf|ADV Integration Camp - Mbed Cloud Services.pdf]] | ||
+ | *[[Media:ADV_integration_camp_-_Provisioning.pdf|ADV integration camp - Provisioning.pdf]] | ||
+ | *[[Media:ADV_integration_camp_-_Update_slides.pdf|ADV integration camp - Update slides.pdf]] | ||
+ | *[[Media:ADV_integration_introduction.pdf|ADV integration introduction.pdf]] | ||
*[[Media:Mbed_Cloud_Edge-A-material.pdf|Mbed Cloud Edge-A-material.pdf]] | *[[Media:Mbed_Cloud_Edge-A-material.pdf|Mbed Cloud Edge-A-material.pdf]] | ||
− | == Related Github repositories | + | == Related Github repositories == |
*[https://github.com/ARMmbed/mbed-cloud-client-example-wise-3610-confidential https://github.com/ARMmbed/mbed-cloud-client-example-wise-3610-confidential] | *[https://github.com/ARMmbed/mbed-cloud-client-example-wise-3610-confidential https://github.com/ARMmbed/mbed-cloud-client-example-wise-3610-confidential] | ||
Line 214: | Line 277: | ||
*[https://github.com/ARMmbed/manifest-tool-restricted https://github.com/ARMmbed/manifest-tool-restricted] | *[https://github.com/ARMmbed/manifest-tool-restricted https://github.com/ARMmbed/manifest-tool-restricted] | ||
*[https://github.com/ARMmbed/mbed-cloud-sdk-workshop https://github.com/ARMmbed/mbed-cloud-sdk-workshop] | *[https://github.com/ARMmbed/mbed-cloud-sdk-workshop https://github.com/ARMmbed/mbed-cloud-sdk-workshop] | ||
− | |||
− |
Latest revision as of 03:33, 13 December 2017
Contents
- 1 mbed-Cloud FW upgrade feature for WISE-3610
- 2 mbed-edge-core
- 3 Doc and Informaiton shared by ARM
mbed-Cloud FW upgrade feature for WISE-3610
( You can get detail information refer to ADV integration camp - ADV integration camp - Update slides.pdf )
To build FW image modify by ARM
- update the lates mbed client source code
$cd WISE-3610-BSP/qsdk/package/network/utils/ $rm -r mbed $git clone --branch openwrt_package https://github.com/ARMmbed/mbed-cloud-client-example-wise-3610-confidential mbed
- Create Certificates Key
3. Download mbed_cloud_dev_credentials.c C code for mbed-Cloud auth
4. Copy this file to
WISE-3610-BSP/qsdk/package/network/utils/mbed/mbed-cloud-client-example-restricted
5. Generate device key ( private , public key ) manifest-tool
( refer to https://github.com/ARMmbed/manifest-tool-restricted )
5.1 Setup and install manifest
To install python2 or Python 3
To install the manifest requirement ( Ubuntu 14.04 )
$sudo apt-get install build-essential libssl-dev libffi-dev python-dev
To install the manifest by github
$sudo pip install git+https://github.com/ARMmbed/manifest-tool-restricted
To Install the manifest by local file
$ git clone ''''''https://github.com/ARMmbed/manifest-tool-restricted $ pip install .'''
5.2. Generate key by manifest
$manifest-tool init --vendor-domain "advantech.com" --model-name "wise-3610"
.update-certificates/ => private, & public key
.manifest_tool.json
update_default_resources.c
To build WISE-3610 image and mbed-client with credential key
cp update_default_resources.c </WISE-3610>/qsdk/package/network/utils/mbed/mbed-cloud-client-example-restricted/ export TOOLCHAIN_DIR=`pwd`/qsdk/staging_dir/toolchain-arm_cortex-a7_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/ make
To package image
cd qsdk/package/network/utils/mbed/sdk #./arm_initial_pack.sh 產生 image folder 裡面有 openwrt-ipq806x-ipq40xx-ubi-root.img nand-ipq40xx-initial.img 產生的 nand-ipq40xx-initial.img 裡面會修改 boot partition 參數 “mkfs.ubifs --space-fixup -m 2048 -e 126976 -c 31 -o ubifs-kcm.img”
Flash WISE-3610 boot loader by TFTP
uboot> set ipaddr 192.168.1.1 uboot> set serverip “Your TFTP Server” uboot> tftpboot nand-ipq40xx-initial.img uboot> boot Upload the new FW Image to mbed-cloud
To crate manifest file by manifest-tools
把剛剛上傳完產生出來的網址 放到下列產生 manifest 更新說明下載位置
manifest-tool create -p openwrt-ipq806x-ipq40xx-ubi-root.img-u http://firmware-catalog-media-ca57.s3.dualstack.us-east-1.amazonaws.com/openwrt-ipq806x-ipq40xx-ubi-root_CovQl9f.img -o mbed-workshop
How to check image by manifest
$manifest-tool parse -j -i mbed-workshop
Upload the manifest to mbed-Cloud
Create a Camp to do FW update by mbed-Cloud
You can set filter rule in device director
Start to update new FW image to devices
mbed-edge-core
( refer to mbed Cloud Edge architecture )
ARM’s github source code
https://github.com/ARMmbed/mbed-cloud-edge-confidential-a
To build mbed-edge & pt-example & lorapt-example code
Method 1: Get from github and download this patch to patch your source code
##Create a new folder $mkdir WISE-3610/qsdk/package/network/utils/mbed-edge ##change to this folder git clone https://github.com/ARMmbed/mbed-cloud-edge-confidential-a ##To patch this source code for WISE-3610 cp Makefile to “mbed-edge” folder cp toolchain.cmake to cp CMakeLists.txt to mbed-edge/mbed-cloud-edge-confidential-a/ cp lorapt-example to mbed-edge/mbed-cloud-edge-confidential-a/
Method 2: Dowload the package that hands-on at ARM mbed workshop 20170912
Download: mbed-edge-arm-workshop-20170912.gz
cd ~/WISE-3610/qsdk/package/network/utils/
tar xvzf mbed-edge-arm-workshop-20170912.gz
To create a “Certificates key” refer to above section
To Download C code form mbed-cloud mbed_cloud_dev_credentials.c => This file with mbed-cloud's credntials key
$cp to “mbed-cloud-edge-confidential-a/client-wrapper/mbed_cloud_dev_credentials.c”
To build mbed-edge only
$cd WISE-3610/ $export TOOLCHAIN_DIR=`pwd`/qsdk/staging_dir/toolchain-arm_cortex-a7_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/ $cd ./qsdk $make package/mbed-edge/clean package/mbed-edge/prepare package/mbed-edge/compile V=s -j 8
Copy programs to WISE-3610 Target
## edge-core at ./staging_dir/target-arm_cortex-a7_uClibc-0.9.33.2_eabi/root-ipq806x/usr/sbin/edge-core ## lorapt-example ./build_dir/target-arm_cortex-a7_uClibc-0.9.33.2_eabi/mbed-edge/mbed-cloud-edge-confidential-a/build/mcc-linux-x86/existing/bin/lorapt-example
Update image to WISE-3610 Target board
WISE-3610 update image file name: nand-ipq40xx-single.img
You can update fw by WebUI
Run mbed-edge-core
#mkdir /usr/sbin/pal #/usr/sbin/edge-core 22223 8000
Run pt-example
requirment example-client-config.json file in the same directory
./pt-example 22223 example-client-config.json
Run lorapt-example
- To setup WISE-1501 LoRa sensor connect to WISE-3610
- Run lorapt-example
#./lorapt-example 22223 example-client-config.json
SenHub and Resource on mbed-Cloud Portal
You can select Resource tab to show sensor resource:
for example: Temperature
/3303/0/5700 -> click + 27.6
You also can select the device ( WISE-3610 ) to show how many sensor hub translator protocol by this GW
ARM-mbed-Cloud Demo
Mbed-cloud-demo-WISE-3610-20171011.tar.gz - Download
File Description: mbed-edge & lorap-example source code, binary, workaround and install scripts
- /backup/source/mbed-edge-20171011-demo.tar.gz: source code
- /etc/init.d/ : auto run script
- /usr/sbin/ : edge-core & lorapt-example & workaround programs
- libs : dependience libs for lorapt-example
The SOP of setup a new WISE-3610 with mbed-cloud + lorapt-example demo
- copy Mbed-cloud-demo-WISE-3610-20171011.tar.gz file to WISE-3610 target platform
- tar xzf mbed-cloud-demo-WISE-3610-20171011.tar.gz
- cd mbed-cloud-demo-WISE-3610
- ./instll_to_wise3610
- rm -r /usr/sbin/pal
- reboot : Complete & reboot system
Known-issue - 2017-10-11
Issue
- edge-core ( mbed-client with protocol translate ) will disconnect and failed to re-connect to mbed-Cloud when the lifetime is expired.
- Known issue: Notifications from protocol translated resource value changes are currently forwarded only as Mbed Cloud Edge value changes and not as connected device value changes.
Workaround
To restart mbed-edge every 20 minitues ( usr/sbin/mbed-demo )
mbed Cloud Doc
IPSO Object ID
https://github.com/IPSO-Alliance/pub/tree/master/reg
http://www.openmobilealliance.org/wp/OMNA/LwM2M/LwM2MRegistry.html
Workshop PPT
- ADV Integration Camp - Mbed Cloud Services.pdf
- ADV integration camp - Provisioning.pdf
- ADV integration camp - Update slides.pdf
- ADV integration introduction.pdf
- Mbed Cloud Edge-A-material.pdf
Related Github repositories
- https://github.com/ARMmbed/mbed-cloud-client-example-wise-3610-confidential
- https://github.com/ARMmbed/mbed-cloud-edge-confidential-a
- https://github.com/ARMmbed/factory-configurator-client-example-wise-3610-confidential
- https://github.com/ARMmbed/manifest-tool-restricted
- https://github.com/ARMmbed/mbed-cloud-sdk-workshop