Azure Sphere Cortex-M4のサンプルプログラムを動かしてみた

ベータサポートではありますが、19.05からCortex-M4でプログラムが動かせるようになりました。

matsujirushi.hatenablog.jp

というわけで、マイクロソフトから提供されているサンプルプログラムを動かしてみたいと思います。

サンプルプログラム

Cortex-M4のサンプルプログラムは、azure-sphere-samplesでいくつか提供されています。
Cortex-A7で動かすプログラムはHighLevelApp、Cortex-M4で動かすのはRTAppという名称になっているようです。RTAppは、RealTime Appってことみたい。

ここでは、一番シンプルなGPIO_RTApp_MT3620_BareMetalを動かすことにしましょう。

手順は、readme.mdです。

前提条件(Prerequisites)

MT3620開発ボードなら大丈夫。

サンプルをビルドと実行

SDKMCUが19.05になっていることを確認しておきます。

C:\>azsphere show-version
19.05
Command completed successfully in 00:00:00.2236452.

C:\>azsphere device show-ota-status
Your device is running Azure Sphere OS version 19.05.
The Azure Sphere Security Service is targeting this device with Azure Sphere OS version 19.05.
Your device has the expected version of the Azure Sphere OS: 19.05.
Command completed successfully in 00:00:03.8632201.

C:\>

そして、MT3620のRTCoreを有効にします。

Azure Sphereコマンドプロンプトを管理者権限で起動していない場合、ここでエラーが発生します。

C:\>azsphere dev prep-debug --EnableRTCoreDebugging
Installing USB drivers to enable real-time core debugging.
Drivers installed for all attached devices.
Getting device capability configuration for application development.
Downloading device capability configuration for device ID '961B0F3AF5C4EA9581512975F8E21A81DFED93BEF7A73854D802C8BDEFF7F5A8516639B653E6F082009F5C660C9B96BB1B16F49A56D7DE51A089AC01AE3376EC'.
Successfully downloaded device capability configuration.
Successfully wrote device capability configuration file 'C:\Users\takashi\AppData\Local\Temp\tmpA059.tmp'.
Setting device group ID 'cd037ae5-27ca-4a13-9e3b-2a9d87f9d7bd' for device with ID '961B0F3AF5C4EA9581512975F8E21A81DFED93BEF7A73854D802C8BDEFF7F5A8516639B653E6F082009F5C660C9B96BB1B16F49A56D7DE51A089AC01AE3376EC'.
Successfully disabled over-the-air updates.
Enabling application development capability on attached device.
Applying device capability configuration to device.
Successfully applied device capability configuration to device.
The device is rebooting.
Installing debugging server to device.
Deploying 'C:\Program Files (x86)\Microsoft Azure Sphere SDK\DebugTools\gdbserver.imagepackage' to the attached device.
Image package 'C:\Program Files (x86)\Microsoft Azure Sphere SDK\DebugTools\gdbserver.imagepackage' has been deployed to the attached device.
Application development capability enabled.
Successfully set up device '961B0F3AF5C4EA9581512975F8E21A81DFED93BEF7A73854D802C8BDEFF7F5A8516639B653E6F082009F5C660C9B96BB1B16F49A56D7DE51A089AC01AE3376EC' for application development, and disabled over-the-air updates.
Command completed successfully in 00:00:44.1955946.

C:\>

ここでは、PCにCortex-M4デバッグ用のUSBドライバをインストールして、デバイスのcapabilityを変更、gdbserverをインストールしています。USBドライバはこれかなぁ?
f:id:matsujirushix:20190622205850p:plain

次はビルド。Visual Studioを起動して、メニューのファイル>開く>CMakeで、GPIO_RTApp_MT3620_BareMetalフォルダにあるCMakeLists.txtを開きます。すると、自動的にCMakeが実行されて、outフォルダにいろいろと書き込まれます。

いよいよビルド。ソリューションエクスプローラーでCMakeLists.txtを右クリックして、コンテキストメニューのビルドを実行します。結果、イメージパッケージ(GPIO_RTApp_MT3620_BareMetal.imagepackage)が出来上がります。

最後に、スタートアップアイテムの選択でGDB Debugger(RTCore)を選んでF5で実行すれば、イメージパッケージがMT3620開発ボードに転送されて、プログラムが実行されます。

f:id:matsujirushix:20190622211629p:plain

気になった点

ブレークポイントとか試しましたが止まりませんでした。まだ対応していないのか?それともやり方が悪いのか?
デバッグ機能が使えないのは辛し。

デバッグ機能が使えるっぽい記述があるけど、、、ブレークで止めることができないorz

■2019/6/23追記
RTCoreMain()起動直後のコードだと止まらないみたい。
この2箇所を仕込んで実行すると、line121は止まらず、line132で止まった。
f:id:matsujirushix:20190623195316p:plain

デバイスからAzure IoT Centralに接続する方法

f:id:matsujirushix:20190622123710p:plain

IoT Centralの認知度が上がってきたのか、最近、いくつか質問が来ます。 都度、答えていると回答がブレる回答に時間がかかるので、、、ちょっと取りまとめておきます。

バイスからAzure IoT Centralに接続するには?

公式には、IoT Centralのデバイス受け口にCloud Gatewayがあり、実体はIoT Hubであることが書かれています。

f:id:matsujirushix:20190622134314p:plain

しかし、デバイスの接続情報を見ると、(みんな大好き)IoT Hub接続文字列ではなくて、スコープIDやデバイスIDなんです。

f:id:matsujirushix:20190622135228p:plain

スコープIDとかで、どうやってIoT Hubに接続するの!?となりますが、、、
公式には書かれていませんが、IoT CentralのIoT Hubのデバイスに接続するには、IoT Hub DPSでプロビジョニングをするのが正しい形なのです。

図にするとこんな感じ。

f:id:matsujirushix:20190622140841p:plain

  1. IoT Hub DPSのglobal.azure-devices-provisioning.net(グローバルデバイスエンドポイントと呼ばれている)に接続して、スコープIDやデバイスID、資格情報を渡します
  2. IoT Hub DPSから、IoT Hub接続文字列が返ります
  3. 受け取ったIoT Hub接続文字列を使って、IoT Hubに接続します

Azure IoT SDKを使う(使うべき!)なら、

  • Provisioning client SDKでIoT Hub DPSと通信して、
  • Azure IoT SDKのDevice client SDKでIoT Hubと通信

します。

Provisioning client SDKをインプリせずに接続

ここでちょっと問題が。
バイスによってはAzure IoT SDKがポーティングされていないようです。

  1. Azure IoT SDKが全く用意されていない
  2. Device client SDKがある
  3. Device client SDKとProvisioning client SDKの両方ある

2が多いみたい。
そんなデバイスにオススメなのが、コマンドラインツールでプロビジョニングだけ行う方法です。

dps_cstrコマンドを使うと、デバイスのプロビジョニングを実行して、IoT Hub接続文字列を得ることができます。

C:\>dps_cstr 0ne0005C434 34f65b8f-6c9f-43ad-a7bd-XXXXXXXXXXXX 3p4z+hFUOB5kvtn2aElI14M4Fa7vmw6mXXXXXXXXXXXX
...
Registration Information received from service: iotc-bc1c5eb9-e03c-4657-b971-XXXXXXXXXXXX.azure-devices.net!
Connection String:
HostName=iotc-bc1c5eb9-e03c-4657-b971-XXXXXXXXXXXX.azure-devices.net;DeviceId=34f65b8f-6c9f-43ad-a7bd-XXXXXXXXXXXX;SharedAccessKey=3p4z+hFUOB5kvtn2aElI14M4Fa7vmw6mXXXXXXXXXXXX

C:\>

予めPCでdps_cstrコマンドでIoT Hub接続文字列を取得して、これを使ってデバイスからIoT Hubに接続する、、、なら、IoT Hubの知識だけでデバイスとIoT Centralを連携することができます。お手軽ですね。

た・だ・し!

作法としては、デバイスが接続する都度、IoT Hub DPSとやりとりするのが正しいので、この方法は開発時だけにとどめておきましょう。

まとめ

  • バイスからIoT Centralへの接続は、IoT Hub DPS -> IoT Hub
  • IoT Hub DPSをスキップしたいときは、dps_cstrコマンドで

余談

わたしがIoT Centralの動きを調べるときに使うデバイスは、、、

プロビジョニング以外の部分は、MT3620開発ボード。(Azure Sphere
プロビジョニングを含むときは、ReButton。

を使っています。

この話は、機会があればどこかで。

SORACOM User Group 東海 #5 やりました

昨日、SORACOM UG東海 #5をやりました。

soracomug-tokyo.connpass.com

イベントダイジェスト

直前にキャンセルした方がいたものの、出席率は驚異の100%!!ドタキャンがゼロでした。

わたしから簡単に全体の説明の後、高野さんからオープニングの挨拶。
アットホームな雰囲気の滑り出し。

SORACOM最新アップデート

ソラコム松下さんから、前回(1月)からのアップデートを猛スピードで説明いただきました。

f:id:matsujirushix:20190616180744j:plain

わたし的には、、、
Unified Endpoint良いですよね。さっそく使っていますw
あと、SORAZINEもウォッチしています。

そうそう、忘れていけないものが、 「Wio Extension - RTCが購入可能に」なりました。わーい。
みんなポチってね。

GPSトラッカーの制作

続いて、GPSトラッカーを制作しました。

f:id:matsujirushix:20190616181206j:plain

Wio LTEでLチカした後、HarvestのサンプルスケッチでSORACOMサービスへ送れることを確認して、あらかじめ用意してあるGPSトラッカーのスケッチを書き込み。最後に、段ボールやマスキングテープでケースを(!)作りました。

Wio LTE書き込みに必要なデバイスドライバの案内が抜けていたり、時間見積が甘くて、60min予定のところを90minに延長しました。(それでも時間が足りなかった気がします申し訳ない)

フィールドテスト

わずか1.5時間で制作したブツを持って、名古屋駅近くへ移動して動作確認しました。

f:id:matsujirushix:20190616181543j:plain

ここで、

  • あれ?GPS捕捉したかどうか見る方法が無いがやー
  • スイッチをケースに入れてしまって押せねー
  • Harvestの画面をどうやって確認しよう。。。

と困惑するのを想定していたのだが、みなさん終始冷静で。。。わたしはちょっと拍子抜けでした。

思うところ

仕掛人として、

  • 意外と適当に作れば十分なことを知る。配線とかケースとか。
  • アタマでは分かっていても、実際に作って動かして気づくことがある。GPS捕捉具合とか。

あたりを体験してもらうことを狙っていたのですが、みなさん楽しんでいただけたのだろうか?

あと、今回運営に巻き込まれてガッツリとやらされた牧さん、Wio LTEのスケッチ作らされたり、githubを操作させられたりと、「運営するとスキル上がるよ!」を楽しんでいただけたようで良かったです。
次回に向けて、運営側のトレーニングみたいなことをやりたいなーなんて考え中。 (運営はコツコツと深く、参加者は短期集中といった感じか?)

最後に、場所を快く提供いただいたアイレット株式会社さん、毎度説明に来ていただいているソラコム松下さん、どうもありがとうございました。(また次回もよろしくお願いします。)

Azure Sphere 19.05がリリース

本日、Azure Sphereの19.05がリリースされました。 リリースノートを確認してみたいと思います。

docs.microsoft.com

OSとSDKがアップデート

OSとSDKの両方がアップデートしています。
OSはOTAで配信されているので、MCUWi-Fiに接続して放置しましょう。
SDKは新しいものをダウンロード、インストールで。

新機能と変更

リアルタイムコアのプレビュー

やっと!やっときました!
ベータサポートという扱いですが、MCU内蔵のCortex-M4にアプリケーションが開発できるようになりました。
アプリケーション名称はreal-time ccapable applications(RTApps)です。覚えておきましょう。
RTApps開発の詳細はこちらです。

ハードウェアプラットフォームの追加

いままでは、ハードウェアプラットフォームはSeeed MT3620開発ボードしかサポートしていませんでしたが、今回のアップデートで増えました。

  • Seeed MT3620 Mini Development Board。シングルバンドWi-Fi。サイズが小さいプロトタイプに最適。
  • AI-Link WF-M620-RSA1 Module。シングルバンドWi-Fi。安い。
  • USI Azure Sphere Combo Module。デュアルバンドWi-FiBluetoothNFCタグによるBluetoothペアリングとデバイスプロビジョニングが可能。
  • Avnet Guardian module。既存の設備をインターネットに繋ぐ用。スターバックスのやつ。
  • Avnet MT3620 Starter Kit。デュアルバンドWi-Fi。MikroE ClickとGroveをサポート。
  • Avnet Wi-Fi Module。デュアルバンドWi-Fi

アプリケーションランタイムバージョン

アプリケーションランタイムバージョン(ARV)が1から2になりました。
最新のSDKでは、 * 1 * 2 * 2+Beta1905 が選べます。

ADCプレビュー

RTAppsでADコンバーターがベータサポートされました。

API変更

RTApps関連が増えたり、ベータだったものがプロダクションになったり。
乱数生成のPOSIX APIが追加れました。

Visual Studioサポート

以下がサポートされます。

Ethernet

Wi-Fiの代わりに、有線Ethernetが使えるようになりました。

ローカルデバイス探索

mDNSとDNS-SDによる、デバイス探索ができるようになりました。

githubサンプルコード

githubにあるAzure Sphereサンプルコードは、19.05 SDK必須となりました。

気になったもの

Cortex-M4のアプリケーションが開発できるようになったこと!
やっときた!って感じです。
これで、またしばらく調査のために時間が吸い取られてしまいそうです。

次は、有線Ethernet。展示会などWi-Fiが繋がらない場でも動かすことができるようになりました。

Azure SphereをX.509でAzure IoT Centralに接続する

連休後半に入って、ようやく落ち着いて作業できる時間が取れたので、かねてから気になっていた「Azure SphereをX.509でAzure IoT Centralに接続」をやってみました。

f:id:matsujirushix:20190503200225p:plain

動機

Azure SphereとAzure IoT Centralに接続するのに、いままでは、Azure IoT Centralに手動でデバイスを追加してから、デバイスの接続情報を使ってdps_cstrコマンドでAzure IoT Hub接続文字列を取得して、これをAzure Sphereのコードに埋め込んでいました。

Azure Sphereから見れば、結局、Azure IoT Hubへ接続文字列で繋ぎにいくので分かりやすいわけですが、これを大規模にスケールするには問題があります。

  • Azure IoT Centralに手動で追加が手間
  • SASトークンなので若干不安
  • OTAで配布が困難

と、もやもやしていたところ、X.509でAzure IoT Centralに接続するサンプルコードが公式githubにアップされたので、試してみました。

github.com

やり方

Azure IoT Centralアプリケーションを作成

いつものように、Sign in to Azure IoT CentralにアクセスしてAzure IoT Centralアプリケーションを作ります。Trialでも大丈夫だと思いますが、なにか引っかかるとヤなのでPay-As-You-Goにしておきます。

f:id:matsujirushix:20190503184201p:plain

Azure SphereテナントとAzure IoT Centralを連携

次に、Azure SphereテナントとAzure IoT Centralを連携します。
細かく言うと、Azure Sphereテナントが証明書を発行したデバイスを、Azure IoT Centralが信頼するよう、Azure IoT Centralに設定します。

Azure SphereテナントのCA証明書を取得します。

azsphere tenant download-CA-certificate --output CAcertificate.cer

f:id:matsujirushix:20190503185250p:plain

Azure IoT Centralの、Administration - Device conneciton画面にある、Certificates(X.509)のPrimaryのところのフォルダアイコンをクリックして、さきほど取得したCA証明書を選択します。このとき、拡張子でフィルタされて表示されないので*.*に切り替える必要があります。

f:id:matsujirushix:20190503185740p:plain

すると、「Needs Verification」という警告が表示されているかと思います。これは、さきほど設定したCA証明書(のプライベートキー)を本当に所有しているのか?検証が必要だぞ!という警告です。

それでは、Verificationしましょう。
Primaryのところの歯車マークをクリックして、Verification Codeを生成します。

f:id:matsujirushix:20190503190224p:plain

Verification CodeをAzure Sphereテナントに渡して、検証証明書を取得します。

azsphere tenant download-validation-certificate --output ValidationCertification.cer --verificationcode <Verification Code>

f:id:matsujirushix:20190503190411p:plain

検証証明書をAzure IoT Centralに渡します。
Verifyをクリックして、さきほど取得した検証証明書を選択します。すると、Verifiedに切り替わります。

f:id:matsujirushix:20190503190808p:plain

Azure Sphereアプリケーションに必要な情報を揃える

あとは、Visual Studioazure-sphere-samples/AzureIoT.sln at master · Azure/azure-sphere-samples · GitHub を開いて、環境固有の情報を書き入れて実行するだけですが、、、

現在のサンプルコードでは、これだけの情報を入れる必要があります。

  • Azure IoT Central Scope ID
  • Azure Sphere tenant ID
  • Azure DPS global endpoint URL
  • Azure IoT Hub URL <- 曲者

思うところがいろいろと。

  • Azure Sphere tenant IDは、Azure Sphereアプリケーションで自動的に取得できるのでは?
  • Azure DPS global endpoint URLって、固定だよね??固定じゃないの??
  • Azure IoT Hub URL、、、、デバイスをRegisterしてProvisioningしないと分からない。いつも一緒とは限らないのでは?となるとOTAできない??

特に最後のは、AzureIoTライブラリとPluton Subsystemを連携できるようにしないといけないんでしょうけど、、、GAまでには対処してほしぃ。

気を取り直して、それぞれの情報を取得します。

Azure IoT Central Scope IDは、Azure IoT Centralの、Administration - Device conneciton画面にあります。

f:id:matsujirushix:20190503193305p:plain

Azure sphere tenant IDは、azsphereコマンドで取得します。

azsphere tenant show-selected

f:id:matsujirushix:20190503193430p:plain

Azure DPS global endpoint URLはglobal.azure-devices-provisioning.netです。

Azure IoT Hub URLは、、、
Azure IoT Centralに、ダミーのDevice Template、Real Deviceを登録して、ShowIoTCentralConfigコマンド(もしくはdps_cstrコマンド)で取得します。

f:id:matsujirushix:20190503194259p:plain

Azure Sphereアプリケーションを修正

サンプルコードのAzureIoT.slnを開いて、AzureIoTのapp_manifest.jsonに、先に調べた情報を入力します。

f:id:matsujirushix:20190503194803p:plain

実行

実行すると、出力ウィンドウにAZURE_SPHERE_PROV_RESULT_PROV_DEVICE_ERRORというエラーメッセージが表示されますが、

f:id:matsujirushix:20190503195005p:plain

Azure IoT Centralの、Device Explorer - Unassociated devicesにデバイスが追加されていれば正常です。

ここで自動的に追加されたデバイスの名称はAzure SphereのDevice IDを小文字にしたものです。Device IDはazsphere device show-attachedで確認することができます。

あとは、公式ドキュメントを参考にして、Device Templateを作って、TelemetryやEventを追加(TelemertyにTemperatureとか、EventにButtonPressとか。 )して、デバイスをAssociateすればOKです。

最後に

  • バイスに証明書埋め込まれているっていいね。手間がかからない。
  • 技術要素を学習するのにAzure Sphere + Azure IoT Centralは良さげ。
  • IoT Hub URLを省略できるようにしてほしい。(中の人がんばって!)
  • シナリオによってはAzure Sphereのマルチテナント必要と感じた。

ALGYAN4周年イベントで登壇しました

4/6にマイクロソフト品川で開催された、ALGYAN4周年 IoT祭り2019『IoTとAIとセキュリティ』大講演会&豪華ノベルティ抽選会!に登壇しました。

algyan.connpass.com

ちょっと過去の思い出を

ALGYAN発足から、わずか4年。まだ4年だったのね。

一番最初のイベントで、いきなり東京と大阪の同時開催。東京以外も大事にしている感ありますw
イベント申込ページが初々しい。

このときは、PinKit(GR-PEACH)+NETMFの講習でした。

PinKit(NETMF) -> Event Hub -> Stream Analytics -> Power BI, Machine Leaning

Event Hubってのが、時代を感じるなー

f:id:matsujirushix:20190413102150j:plain

当時の写真を見ると、あれまここで出会っていたのねという方々が。このイベントをキッカケに、デバイス沼にハマってしまった人も多数いるようです。

ALGYAN4周年

で、ALGYAN4周年。

まぁ、すごかった。

人多すぎ

f:id:matsujirushix:20190413103848j:plain

溢れんばかりの。。。というか、セミナールーム溢れていました。

ある方は「セミナールーム入ったときに(熱気で)曇っていた。」とおっしゃっていました。

講演すご

日本マイクロソフトSeeed(「e」3つ)、インテル、エヌビディア、ソニーセミコンダクタソリューションズ、STMicroelectronics、などなど、、、

名だたる企業の中の人が、IoT, AI, セキュリティの最新情報を一気に聞くことができました。

f:id:matsujirushix:20190413105328j:plain

支部の活動紹介も楽しかったです。
もうちょっとちゃんと時間を取ってあげたかったですね。

ふんわりした雰囲気

ビジネスイベントと違って、良い意味でふんわりとした雰囲気でした。

登壇者の方々も楽しそう。

f:id:matsujirushix:20190413140504j:plain

で、登壇振り返り

当日の様子は、4/6のtweetを見ていただくということで、、、

わたし自身の登壇について、振り返りたいと思います。

ノベルティボード解説&CAD解説

www.slideshare.net

今回、Seeed(「e」3つ)のFusionPCBチームにスポンサーになっていただき、先着約130名にノベルティボードを配布しましたが、このノベルティボードの開発経緯と開発の流れ、部品の実装方法を解説しました。

概要と苦労した点、実装の3部でざっと説明しましたが、みなさん実装に興味があるようでした。カプトンテープ。

なお、ノベルティボードはこちらのリンクからデータをダウンロード、追加発注可能です。どうぞよろしく!

IoT祭り2019 Azure Sphereの今

www.slideshare.net

2018年10月からの、Azure Sphereのアップデートを解説するつもりでしたが、Azure Sphere知らない人も多いかな?と思い、Azure Sphereの本質(なぜ我々はAzure Sphereを作ったのか?)と、アップデートの2部構成にしました。

冒頭、Azure Sphereを知っている方に挙手いただいたのですが、、、8割くらい知っていると。
想定崩れて、うろたえて気持ち不安定になり、、、思っていたより言葉少なめ、硬めなトークになってしまいました。XBoxネタ、滑った感じだしorz
聞き苦しかったかと思います...。

思うところ

  • 良くも悪くも、tweetしたり声をかけてもらえたりして、嬉しかった。(反応無いと寂しい)
  • 次は、もうちょっと落ち着いて丁寧に話そう。
  • 人多くて想定外な部分もあったかと思うが、大きなトラブルなく運営すばらしい。

Azure Sphere 19.02がリリース

Azure Sphere 19.02がリリースされました。

azure.microsoft.com

このブログ記事から気になる点のピックアップと、リリースノートを確認したいと思います。

ブログ記事

わたしが気になったところだけ抜粋。

Expect to see additional silicon announcements in the near future,

今はMT3620一択ですが、近いうちに別のチップが発表されることを示唆しています。

organizations will be able to use new peripheral classes (I2C, SPI) from the A7 core.

A7(Cortex-A7)から、I2CとSPIが使えるようになりました。
I2CはSeeed製Grove Shield併用で通信できたので気になりませんが、SPIは出来なかったので、SPI使いたい人には朗報ですね。

adding new platform support for critical networking services (DHCP and SNTP)

プライベートイーサネットDHCPとSNTP追加されました。
プライベートイーサネット、、、ゲートウェイ用途が多いのかなぁ。IIoTとか。

by leveraging our new reference solutions and hardware modules,

リファレンスソリューションとハードウェアモジュールが増えました。
リファレンスソリューションはこれ。AzureIoTとI2C, SPIは気になるので後で見る。
ハードウェアモジュールは、、、具体的に何だろう?ブログからは分かりませんでした。

リリースノート

docs.microsoft.com

新機能と変更

SPI

MT3620のSPIサポートが追加されました。(BetaAPI) (^^)/
APIこちら

I2C

MT3620のI2Cサポートが追加されました。(BetaAPI) (^^)/
APIこちら

DHCPサーバとSNTPサーバ

プライベートイーサネットDHCPサーバとSNTPサーバのサポートが追加されました。
(プライベートイーサネット試している人って、どれくらいいるんだろう??)

アプリケーションサイズとストレージ

フラッシュメモリの1MBを、アプリケーションを展開するイメージパッケージで使えるようになりました。
Flash、RAMに関して、詳しくはこちら
アプリケーションのメモリ使用状況を知ることができるようになりました。こちら。これはかなりうれしい。
また、azsphere device sideload show-quotaコマンドでmutable storageの使用量を表示できるようになりました。

アプリからread-only flash storageが読めるようになったっぽい。18.02でも出来たのかな?

Azure IoTサポート

Azure Sphere OSに入っているAzure IoT SDKを2018/10 LTSバージョンに更新しました。
Azure IoT CentralやAzure IoT Hubに繋ぐことができます。

ぱっと見、Azure IoT Centralは未だ辛そう... 要調査。

OSアップデートのリカバリ

Azure Sphere OSは、デバイス起動に失敗する可能性があるアップデートを検知して、ロールバックします。

CMake

CMakeのプレビューを公開しました。

BLE経由のWi-Fi設定

BLEからWi-Fiを設定するリファレンスソリューションを更新しました。

OSフィード

OSフィードをPreview MT3620から、

  • Retail Azure Sphere OS
  • Retail Evaluation Azure Sphere OS <- 追加

にしました。

くわしくはこちら

将来、Retail Evaluation Azure Sphere OSRetail Azure Sphere OSよりも2週間前にリリースされる予定。(いまは同時リリース)

旧リリースとの互換性

(省略。Previewなんだから、最新の19.02で再構築しましょう。)

既知の問題

詳細はリリースノートを見てください。

  • Visual Studio 2017とVisual Studio 2019 Previewの両方をインストールしているとき
  • azsphere device wifi show-statusdevice error 13.1
  • パスにASCII以外(日本語とか)が含まれているのは未サポート
  • C++コードでビルドエラーは発生しないが未サポート。(C言語のみサポート)