0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Moddable SDK 4.0.0でXIAO BLE(nRF52840)を動かす

Last updated at Posted at 2023-08-13

はじめに

Moddable SDK 4.0.0でNordic SemiconductorのnRF52840がサポートされたので、さっそく試してみました。

nRF52840用の環境構築手順はこちらです。

xs-devで環境構築

xs-devツールで環境構築する方が楽です。
xs-devツールのインストール手順はこちらです。

まず、brewコマンドでxzツールをインストールします。

brew install xz

xs-devツールをアップデートします。

sudo npm update -g xs-dev 

Moddable SDKをアップデートします。

xs-dev update

nRFツールをインストールします。

xs-dev setup --device nrf52

ℹ Ensuring nrf52 directory
✔ 
  Successfully set up nrf52 platform support for Moddable!
  Test out the setup by starting a new terminal session, plugging in your device, and running: xs-dev run --example helloworld --device nrf52

別のターミナルを開き、XIAO BLEを接続(RESETボタンを2回ダブルクリックしてDFUモードへ変更)し、helloworldのプログラムをビルド・インストールしますが、インストールが完了しません。

xs-dev run --example helloworld --device nrf52/xiao

manifest.jsonを変更する

手動でmcconfigコマンドでビルド・インストールを実行したところ、uf2ファイルをXIAO BLEへ書き込もうとしているところで止まっていることがわかった。

cd ${MODDABLE}/examples/helloworld
mcconfig -d -m -p nrf52/xiao

# xsl modules
# mcrez resources
Total resource size: 0 bytes
# cc mc.resources.c (slots in flash)
### 289 instances, 567 keys, 65 colors, 0 holes
# cc mc.xs.c (slots in flash)
# buildinfo
# creating xs_nrf52.out
# link to .out file
# Version
#  XS:    4.0.0
# Memory usage
#  Ram:    41016 bytes
#  Heap:  217088 bytes
#  Flash: 489544 bytes
#  QSPI:       0 bytes

Making: /Users/kitazaki/moddable/build/bin/nrf52/xiao/debug/helloworld/xs_nrf52.uf2 from xs_nrf52.hex
Converting to uf2, output size: 547840, start address: 0x27000
Wrote 547840 bytes to /Users/kitazaki/moddable/build/bin/nrf52/xiao/debug/helloworld/xs_nrf52.uf2
/dev/cu.usbmodemD14CE42966AF1
Setting programming mode. product/vendor match: /dev/cu.usbmodemD14CE42966AF1
Waiting for /Volumes/MODDABLEnRF..........

XIAO BLEをDFUモードに変更すると、XIAO-SENSEという名前で認識されているため、MODDABLEnRFというボリュームが見つからず、書き込みが失敗していることが原因と判明しました。

デバイスのmanifest.jsonファイルを変更します。

cd $MODDABLE/build/devices/nrf52/targets/xiao
manifest.json
"UF2_VOLUME_NAME": "MODDABLEnRF"

"UF2_VOLUME_NAME": "XIAO-SENSE"

もう一度、mcconfigコマンドを実行すると、今度はビルド・インストールが成功し、デバッガ(xsbug)が起動して問題なく動作しました。

スクリーンショット 2023-08-13 20.35.18.png

xs-dev infoコマンドにはnRF環境の情報が表示されない?!

xs-dev info

xs-dev environment info:
  CLI Version                0.27.0
  OS                         Darwin
  Arch                       arm64
  Shell                      /bin/zsh
  NodeJS Version             v18.14.2 (/usr/local/bin/node)
  Python Version             3.9.12 (/Users/kitazaki/.espressif/python_env/idf4.4_py3.9_env/bin/python)
  Moddable SDK Version       4.0.0 (/Users/kitazaki/moddable)                 Supported target devices   mac, esp32, pico
  ESP32 IDF Directory        /Users/kitazaki/.local/share/esp32/esp-idf
  Pico SDK Directory         /Users/kitazaki/pico/pico-sdk

If this is related to an error when using the CLI, please create an issue at "https://github.com/hipsterbrown/xs-dev/issues/new" with the above info.

XIAO BLEのbootloaderの書き込み

XIAO BLEは出荷時点でAdafruit nRF52 Bootloaderが書き込まれているため、bootloaderの書き込みを行う必要はありませんが、bootloaderを書き換えた場合に備えて、bootloaderの書き込み手順を確認しておきます。

git clone https://github.com/adafruit/Adafruit_nRF52_Bootloader
cd Adafruit_nRF52_Bootloader
git submodule update --init

XIAO BLEを接続し、DFUモードへ変更します。makeコマンドでbootloaderを書き込みます。

make BOARD=xiao_nrf52840_ble SERIAL=/dev/cu.usbmodem1101 dfu-flash
または
make BOARD=xiao_nrf52840_ble_sense SERIAL=/dev/cu.usbmodem1101 dfu-flash

BOARDにxiao_nrf52840_bleを指定した場合、XIAO BLEを接続しDFUモードへ変更するとXIAO_BOOTとして認識されます。
BOARDにxiao_nrf52840_ble_senseを指定した場合、XIAO BLEを接続しDFUモードへ変更するとXIAO_SENSEとして認識されます。
デバイスのmanifest.jsonの"UF2_VOLUME_NAME"の設定値を変更する際は注意してください。

Moddable用のBootloaderの書き込み (2023年9月6日 追記)

Moddable用のBootloaderを書き込むと、デバイスのmanifest.jsonの"UF2_VOLUME_NAME"の設定値を変更する必要がありません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?