ファームウェア更新・バイナリーファイル転送
2021年1月 より RISC-V プロセッサを採用した IchigoJam R β版 が出荷されました。
(2021年12月より製品名は同じ基板のまま IchigoJam R に改名しています)
RISC-V ではファームウェアの更新方法が LPC1114 とは異なります。
また、プログラム領域をそのままファイル化する事ができ、ファイルから書き込む事もできます。そのため、別ページにしました。
使用方法 に記載している方法は RISC-V プロセッサの IchigoJam でも使用可能です。
周辺機器/パソコンと接続/使用方法 | イチゴジャム レシピ
IchigoLatte も RISC-V 対応ファームウェアが公開されています。製品 IchigoLatte R の基板は IchigoJam R です。
ファームウェアの更新についてはオプション同じで行える事を確認できています。
ファームウェアのダウンロードは LPC1114 プロセッサ版と同じページで公開されています。
ダウンロード | こどもパソコン IchigoJam (公式) - IchigoJam BASIC 1.5 以降
IchigoJam/IchigoJam.github.io | GitHub - IchigoJam BASIC
ベータ版 - 1.5b01 以降
IchigoLatte (公式) - IchigoLatte -「risc-v GD32VF103」側
ただし GIGA IchigoDake で使用する場合は、通常 D 付バージョンとなります。
こちらは DakeJacket 経由で使用する場合の I2C 動作が含まれています。
また BASIC では IchigoDyhook の対応などで、上のバージョンよりはやく対応される場合があります。
IchigoDake (公式) - IchigoJam BASIC・IchigoLatte -「risc-v GD32VF103」側
このページで紹介している方法は
IchigoJam を ISP モードで接続する必要があります。
LPC1114 プロセッサの IchigoJam などとは異なる接続になります。
IchigoJam | - | IchigoJam |
ISP | - | VCC または 3.3V |
LPC1114 では ISP-GND でしたが、
RISC-V では ISP-VCC と異なりますので、ご注意下さい。
USB-シリアルモジュール | - | IchigoJam |
TXD | - | RXD |
RXD | - | TXD |
GND | - | GND |
3.3V または 3V3 など | - | 3.3V または VCC |
3.3V・VCC の代わりに 5V-5V でも接続できます。
5V 接続では電源スイッチが有効です。
電源供給は USB-シリアルモジュール 経由で
パソコンから IchigoJam へ電源を供給して下さい。
電源の microUSB 端子を外すか、接続している電源を切ります。
他から電源供給を行うと認識しない事があります。
CN5 端子の GND・3.3V が
TXD・RXD に近いので、接続に便利です。
GND・VCC の接続で電源が入った状態になります。
VCC の代わりに 5V を接続した場合は
電源スイッチが有効です。
LPC1114 プロセッサの IchigoJam などとは異なり
LED は点灯しません。
起動音がでないので、これで確認ができます。
LPC1114 とは異なるアプリケーションソフトウェアを使用します。
現在のところ stm32flash を使用するのが推奨手段ですが、シェル・コマンド プロンプト での動作になります。
IchigoJam 公式の GitHub に stm32flash が fork されています。こちらからダウンロードできます。
次のファイルだけが必要になります。全体をダウンロードしなくても問題ありません。
OS | 実行バイナリーファイル名 |
Windows | stm32flash.exe |
macOS(AppleSilicon) | stm32flash-apple |
macOS(Intel) | stm32flash |
IchigoJam/stm32flash の fork 元になっている stm32duino/stm32flash GitHub では
release にバイナリーとして次の場所が紹介されています。win にある stm32flash.exe
は使用できる事を確認できています。
tools - rogerclarkmelbourne/Arduino_STM32 | GitHub
オリジナルの stm32flash は元々 SourceForge で公開されていました。
こちらにも stm32flash-0.5-win64.zip があり、解凍した stm32flash.exe は使用できる事を確認できています。
stm32flash Files | SourceForge
USB-シリアルモジュールを IchigoJam を接続した状態で正常に接続できているかを確認します。
stm32flash デバイス名
デバイス名 は通常 USB-シリアルモジュール を接続している時と共通です。
Windows では COM3 など、macOS では /dev/tty.SLAB_USBtoUART などです。
次は Windows 10 で Windows PowerShell を用いた際に正常接続されている時の表示です。
デバイス名は COM3 で認識されています。
PS C:\Users\balloon> stm32flash COM3
stm32flash STM32duino_0.5.1
https://github.com/stm32duino/stm32flash
Interface serial_w32: 57600 8E1
GET returns unknown commands (0x 6)
Version : 0x30
Option 1 : 0x00
Option 2 : 0x00
Device ID : 0x0410 (STM32F10xxx Medium-density)
- RAM : Up to 20KiB (512b reserved by bootloader)
- Flash : Up to 128KiB (size first sector: 4x1024)
- Option RAM : 16b
- System RAM : 2KiB
PS C:\Users\balloon> ▄
一方、接続に失敗している場合は次の表示のように Failed to init device. と表示されます。
PS C:\Users\balloon> stm32flash COM3
stm32flash STM32duino_0.5.1
https://github.com/stm32duino/stm32flash
Interface serial_w32: 57600 8E1
Failed to init device.
PS C:\Users\balloon> ▄
stm32flash ではファームウェア更新以外に、本体に入っているプログラム領域のままファイル化する事ができます。
はじめて使う場合、ファームウェアの更新を行う前に、まずこのファイルの読み書きを試してみるのをおすすめします。
IchigoJam Rβ x 無線USBキーボード、ピン配置とセーブデータの読み書き方法公開 | 福野泰介の一日一創
プログラム番号 0 は次のとおりです。-s の値は 126-プログラム番号 になります。
(プログラム番号 1 は -s 125、プログラム番号 2 は -s 124、……プログラム番号 14 は -s 112)
1 プログラム分で生成した .bin ファイルは IchigoJam BASIC RPi・IchigoJam ap と共通で、交互に使用可能です。
stm32flash -r ファイル名.bin -s 126 -e 1 デバイス名 (IchigoJam からファイルへ保存)
stm32flash -w ファイル名.bin -s 126 -e 1 デバイス名 (ファイルから IchigoJam へ書込)
PS C:\Users\balloon> stm32flash -r program.bin -s 126 -e 1 COM3
stm32flash STM32duino_0.5.1
https://github.com/stm32duino/stm32flash
Interface serial_w32: 57600 8E1
GET returns unknown commands (0x 6)
Version : 0x30
Option 1 : 0x00
Option 2 : 0x00
Device ID : 0x0410 (STM32F10xxx Medium-density)
- RAM : Up to 20KiB (512b reserved by bootloader)
- Flash : Up to 128KiB (size first sector: 4x1024)
- Option RAM : 16b
- System RAM : 2KiB
Memory read
Read address 0x0801fc00 (100.00%) Done.
PS C:\Users\balloon> ▄
PS C:\Users\balloon> stm32flash -w program.bin -s 126 -e 1 COM3
stm32flash STM32duino_0.5.1
https://github.com/stm32duino/stm32flash
Using Parser : Raw BINARY
Interface serial_w32: 57600 8E1
GET returns unknown commands (0x 6)
Version : 0x30
Option 1 : 0x00
Option 2 : 0x00
Device ID : 0x0410 (STM32F10xxx Medium-density)
- RAM : Up to 20KiB (512b reserved by bootloader)
- Flash : Up to 128KiB (size first sector: 4x1024)
- Option RAM : 16b
- System RAM : 2KiB
Write to memory
Erasing memory
Wrote address 0x0801f800 (100.00%) Done.
PS C:\Users\balloon> ▄
書き込みを行った後、IchigoJam BASIC を通常起動させ、プログラムが書き込まれている事を確認して下さい。
テキスト変換は ijbconv を用いて可能です。
ijbconv - コマンドラインで変換
ijbconv web - Web アプリ版。Web ブラウザ上でファイル変換できます
必要な場合、15 プログラム全体の保存・書き込みも可能です。
stm32flash -r ファイル名.bin -s 112 -e 15 COM3 (IchigoJam からファイルへ保存)
stm32flash -w ファイル名.bin -s 112 -e 15 COM3 (ファイルから IchigoJam へ書込)
ファームウェア更新はプログラムの書き込みと同じ方法で、オプションが若干違うだけです。更新に数秒要します。
stm32flash -w ファームウェアファイル名.bin -g 0 -e 112 デバイス名
ここでは IchigoJam BASIC の例を上げていますが、IchigoLatte でもオプション同じで更新可能です。
ただし IchigoLatte では本体に入っていたプログラムが消去されます。
必要な場合はファームウェア更新前に EEPROM やシリアルを用いてパソコンへプログラムを保存してから更新して下さい。
PS C:\Users\balloon\ichigojam-r-1.5.0> stm32flash -w ichigojam-r.bin -g 0 -e 112 COM3
stm32flash STM32duino_0.5.1
https://github.com/stm32duino/stm32flash
Using Parser : Raw BINARY
Interface serial_w32: 57600 8E1
GET returns unknown commands (0x 6)
Version : 0x30
Option 1 : 0x00
Option 2 : 0x00
Device ID : 0x0410 (STM32F10xxx Medium-density)
- RAM : Up to 20KiB (512b reserved by bootloader)
- Flash : Up to 128KiB (size first sector: 4x1024)
- Option RAM : 16b
- System RAM : 2KiB
Write to memory
Erasing memory
Wrote address 0x0800feac (100.00%) Done.
Starting execution at address 0x08000000... done.
PS C:\Users\balloon\ichigojam-r-1.5.0> ▄
完了後は自動的に更新したファームウェアが起動します。画面は表示されていなくても起動音の BEEP を聞く事ができるでしょう。
RISC-V プロセッサ向けの IchigoJam BASIC ベータ版では起動画面に beta 番号が表示されていないため、
?VER() としてバージョン番号を表示し更新された事を確認して下さい。下 2 桁が beta 番号です。
IchigoJam BASIC 1.5b rv jig.jp
OK
?VER()
15010
OK
▋
15010 → 1.5b10 となります。
IchigoJam BASIC 1.5.0 by jig.jp
OK
?VER()
15011
OK
▋
正式版は起動段階でバージョンが表示されます。
?VER() を行った場合、IchigoJam BASIC 1.5.0 は 15011 の表示です。
また IchigoJam BASIC では本体プログラム部分は更新範囲の対象外になっているため、
ファームウェアを更新してもプログラムは残ります。
KBD によるキーボード設定も残っていますので、設定しなおす必要はありません。
IJUtilities が ver1.0.0 d2 より stm32flash に対応しています。
ウインドウ表示で操作できるメリットがあります。
IJUtilities - 公式サイト
ver1.0.0 d4 より stm32flash も同梱されています。
失敗する場合は 環境設定 - IJUtilities を参照し、
「stm32flash file」が正しく入っているかを確認して下さい。
上の説明で stm32flash を別途ダウンロードしている場合は、
そちらの stm32flash を指定して使用する事もできます。
従来同様 オプション - Firm書換え(IchigoJam, PanCake...) からです。「LPC」を RISC-V に変更します。
Firm のところが選択できるようになります。ここで動作を変更できます。
Read All・Write All は 0~14 の本体 15 プログラムをすべて転送します。
右画像はファームウェア更新が正常に完了した時の表示です。
stm32flash フォルダ内にある stm32flashの使い方.pdf にも
詳しい説明があります。こちらもご参照下さい。
SkyBerryJAM は 栃木県立栃木工業高等学校 が管理する登録商標であり、
SkyBerryJAM は 栃木県立栃木工業高等学校 の商標です。
Raspberry Pi は
Raspberry Pi 財団 の登録商標です。
Raspberry Pi is a registered trademark or
trademark of
the Raspberry Pi Foundation.
"RISC-V" の商品名は RISC-Vインターナショナル が管理する登録商標です。
The “RISC-V” trade name is a registered trade mark of
RISC-V International.