StarXpand SDK for iOS / Android 開発者向けマニュアル Ver. 1.10.0

最終更新日: 2025年 7月 11日

プリンターファームウェアの更新

手順や参照先はOSによって異なります。表示するOSを選択してください。

iOS Android


StarPrinterSettingFirmwareを使って、ご利用のプリンターのファームウェアバージョン確認と、ファームウェアを最新版に更新することができます。

最新のファームウェアには、前バージョンで報告された不具合の修正や新機能の追加が含まれています。
最新版のファームウェアをご利用いただくことをお勧めします。
ファームウェアデータは、スター精密のサーバーから一度ご利用端末にダウンロードされます。
そのためファームウェア更新APIを利用する際には、ご利用端末がインターネットに接続されている必要があります。

ファームウェア更新の流れ

ファームウェア更新APIを実行。

クラウドサーバーから最新ファームウェアバージョンを取得。

クラウドサーバーからファームウェアデータをダウンロード。

ファームウェアデータをプリンターに送信。

ファームウェアデータの送信を完了。ファームウェア更新APIの制御が終了。

プリンターにてファームウェア書き換えを開始。

プリンターが自動で再起動され、書き換え完了。

       

ファームウェア更新時の注意事項

プリンターのファームウェアを更新するときは、以下の点にご注意ください。

  • プリンターのファームウェアの書き換えが完了するまで、プリンターの電源を切らないでください。
  • ファームウェア書き換え中に電源を切って、書き換えに失敗すると、プリンターが正常に動作しなくなることがあります。
    最悪の場合、修理が必要になる可能性がありますのでご注意ください。
  • プリンターファームウェア更新APIの実行が完了するまで、上位端末とプリンターの通信を切断しないでください。
  • プリンターファームウェア更新APIの実行中は、上位端末がスリープ状態にならないようにしてください。


スター精密クラウドサーバーとの通信について

プリンターファームウェア更新APIの利用には、上位端末がスター精密クラウドサーバーと通信する必要があります。

端末がインターネットに接続されている状態で本APIをご利用ください。
クラウドサーバーとの通信については、ファームウェア更新の流れをご参照ください。


クラウドサーバーと通信時、ご利用端末および当社周辺機器の情報を当社サーバーに送信し、サービス向上やSDKの改善・分析に活用します。
詳細はSDKプライバシーポリシー、または下記URLをご参照ください。

https://github.com/star-micronics/StarXpand-SDK-iOS/blob/main/docs/DIAG_INFO_JP.md

この情報の当社サーバーへの送信は、StarIO10DiagInfoUploadにより無効化することができます。




更新手順

以下の手順を参考に、ファームウェアの更新を行ってください。

1こちらの手順1, 2, 4を参考に、プリンターに接続します。

2ファームウェア関連の設定を行うためのインスタンスStarPrinterSettingFirmwareを、StarPrinterインスタンスのプロパティから取得します。

if let firmware = printer.setting?.firmware {
}

3現在のファームウェアバージョンと最新のファームウェアバージョンを確認するため、checkVersions()メソッドを呼び出します。
メソッドが成功したあと、currentVersionプロパティに現在のバージョン、latestVersionプロパティに最新のバージョンがセットされます。

try await firmware.checkVersions()

4ファームウェアの更新メソッドを実行する前に、FirmwareUpdateDelegateプロトコルの提供するメソッドを実装します。
このプロトコルは、update()メソッドによるファームウェア更新の状態を通知するメソッドを提供します。
スター精密クラウドサーバーからのダウンロード開始、プリンターへのデータ送信開始、プリンターへのデータ送信完了と、エラー発生をイベントとして通知することができます。

firmware.updateDelegate = self

~ 中略 ~

nonisolated func firmwareUpdateProgress(step: StarIO10.FirmwareUpdateStep) {
    print("firmwareUpdateProgress : \(step.description)")}

nonisolated func firmwareUpdateTransmitComplete() {
    print("firmwareUpdateTransmitComplete")
}

nonisolated func firmwareUpdate(errorDidOccur error: any Error) {
    print("firmwareUpdate errorDidOccur :  \(error)")
}

5update()メソッドを実行し、ファームウェアの更新を行います。

try await firmware.update()
ご注意
メソッドから制御が返ってくるまで、上位端末およびプリンターの電源を切らないでください。
メソッドが終了したあとも、プリンターはファームウェアの書き換え処理を行っています。
プリンターの再起動が行われるまで、プリンターの電源を切らないでください。


6update()メソッドが完了し、プリンター再起動後、getCurrentVersion()メソッドを実行し、ファームウェアが更新されたことを確認します。
プリンターが再起動を行うまでの時間については、こちらをご参照ください。

let currentVersion = try await firmware.getCurrentVersion()

サンプルコード全体はこちらをご参照ください。

ファームウェアデータの送信にかかる通信時間について

Bluetoothインターフェイスでプリンターと通信を行う場合、ファームウェアデータの送信完了までに長い時間がかかります。
LANまたはUSBインターフェイスでのご利用を推奨します。

上位端末からプリンターへのファームウェアデータの送信には、目安として以下の時間がかかります。

       

インターフェイス

mC-Print3の場合

mC-Label3の場合

LAN

25~35秒 60~70秒

USB

45~55秒 70~80秒

Bluetooth

55~65秒 7分

プリンターのファームウェア書き換えにかかる時間について

update()メソッドによりプリンターへのファームウェアデータ送信が完了したあと、プリンターは書き換え処理を開始します。
この書き換え処理には長い時間がかかります。以下に示す時間は目安であり、実際にはこれ以上かかることもあります。

  

mC-Print3の場合

mC-Label3の場合

60~90秒

3~4分


ファームウェアデータの送信中に、通信エラーなどが発生した場合

ファームウェアデータの送信が最後まで完了しない状態でメソッドが終了します。そのため、プリンターはデータ受信待機状態のままとなります。
この場合は、プリンターの電源を一度切り、再度入れ直してください。
ファームウェア更新APIに対応するプリンターは、復旧用のファームウェアを保持しているため、データ受信中に電源をオフにしても問題なく元のファームウェアバージョンで起動することができます。
プリンターが起動したら、再度ファームウエアの更新を行ってください。

ご注意
APIが成功し、プリンターがファームウェアデータの書き換えを行なっている最中にプリンターの電源をオフにすることは、絶対におやめください。


StarPrinterSettingFirmwareを使って、ご利用のプリンターのファームウェアバージョン確認と、ファームウェアを最新版に更新することができます。

最新のファームウェアには、前バージョンで報告された不具合の修正や新機能の追加が含まれています。
最新版のファームウェアをご利用いただくことをお勧めします。
ファームウェアデータは、スター精密のサーバーから一度ご利用端末にダウンロードされます。
そのためファームウェア更新APIを利用する際には、ご利用端末がインターネットに接続されている必要があります。

ファームウェア更新の流れ

ファームウェア更新APIを実行。

クラウドサーバーから最新ファームウェアバージョンを取得。

クラウドサーバーからファームウェアデータをダウンロード。

ファームウェアデータをプリンターに送信。

ファームウェアデータの送信を完了。ファームウェア更新APIの制御が終了。

プリンターにてファームウェア書き換えを開始。

プリンターが自動で再起動され、書き換え完了。

       

ファームウェア更新時の注意事項

プリンターのファームウェアを更新するときは、以下の点にご注意ください。

  • プリンターのファームウェアの書き換えが完了するまで、プリンターの電源を切らないでください。
  • ファームウェア書き換え中に電源を切って、ファームウェアの書き換えに失敗すると、プリンターが正常に動作しなくなることがあります。
    最悪の場合、修理が必要になる可能性がありますのでご注意ください。
  • プリンターファームウェア更新APIの実行が完了するまで、上位端末とプリンターの通信を切断しないでください。
  • プリンターファームウェア更新APIの実行中は、上位端末がスリープ状態にならないようにしてください。

スター精密クラウドサーバーとの通信について

プリンターファームウェア更新APIの利用には、上位端末がスター精密クラウドサーバーと通信する必要があります。

端末がインターネットに接続されている状態で本APIをご利用ください。
クラウドサーバーとの通信については、ファームウェア更新の流れをご参照ください。


クラウドサーバーと通信時、ご利用端末および当社周辺機器の情報を当社サーバーに送信し、サービス向上やSDKの改善・分析に活用します。
詳細はSDKプライバシーポリシー、または下記URLをご参照ください。

https://github.com/star-micronics/StarXpand-SDK-android/blob/main/docs/DIAG_INFO_JP.md

この情報の当社サーバーへの送信は、StarIO10DiagInfoUploadにより無効化することができます。




更新手順

以下の手順を参考に、ファームウェアの更新を行ってください。

1こちらの手順1, 2, 4を参考に、プリンターに接続します。

2ファームウェア関連の設定を行うためのインスタンスStarPrinterSettingFirmwareを、StarPrinterインスタンスのプロパティから取得します。

printer.setting?.firmware?.let { firmware ->
}

3現在のファームウェアバージョンと最新のファームウェアバージョンを確認するため、checkVersionsAsync()メソッドを呼び出します。
メソッドが成功したあと、currentVersionプロパティに現在のバージョン、latestVersionプロパティに最新のバージョンがセットされます。

firmware.checkVersionsAsync().await()

4ファームウェアの更新メソッドを実行する前に、FirmwareUpdateDelegateクラスの提供するメソッドを実装します。
このクラスは、updateAsync()メソッドによるファームウェア更新の状態を通知するメソッドを提供します。
スター精密クラウドサーバーからのダウンロード開始、プリンターへのデータ送信開始、プリンターへのデータ送信完了と、エラー発生をイベントとして通知することができます。

firmware.updateDelegate = object : FirmwareUpdateDelegate() {
  override fun onFirmwareUpdateProgress(step: FirmwareUpdateStep) {
        Log.d("FirmwareUpdate update()", "onFirmwareUpdateProgress : $step")
    }
  override fun onFirmwareUpdateTransmitComplete() {
       Log.d("FirmwareUpdate update()\"", "onFirmwareUpdateWriteComplete")
    }
  override fun onFirmwareUpdateTransmitComplete(e: StarIO10Exception) {
        Log.d("FirmwareUpdate update()\"", "onFirmwareUpdateError")
    }
}

5updateAsync()メソッドを実行し、ファームウェアの更新を行います。

firmware.updateAsync().await()
ご注意
メソッドから制御が返ってくるまで、上位端末およびプリンターの電源を切らないでください。
メソッドが終了したあとも、プリンターはファームウェアの書き換え処理を行っています。
プリンターの再起動が行われるまで、プリンターの電源を切らないでください。



6updateAsync()メソッドが完了し、プリンター再起動後、getCurrentVersionAsync()メソッドを実行し、ファームウェアが更新されたことを確認します。
プリンターが再起動を行うまでの時間については、こちらをご参照ください。

val currentVersion = firmware.getCurrentVersionAsync().await

サンプルコード全体はこちらをご参照ください。

ファームウェアデータの送信にかかる通信時間について

Bluetoothインターフェイスでプリンターと通信を行う場合、ファームウェアデータの送信完了までに長い時間がかかります。
LANまたはUSBインターフェイスでのご利用を推奨します。

上位端末からプリンターへのファームウェアデータの送信には、目安として以下の時間がかかります。

       

インターフェイス

mC-Print3の場合

mC-Label3の場合

LAN

25~35秒 60~70秒

USB

45~55秒 70~80秒

Bluetooth

55~65秒 7分

プリンターのファームウェア書き換えにかかる時間について

updateAsync()メソッドによりプリンターへのファームウェアデータ送信が完了したあと、プリンターは書き換え処理を開始します。
この書き換え処理には長い時間がかかります。以下に示す時間は目安であり、実際にはこれ以上かかることもあります。

  

mC-Print3の場合

mC-Label3の場合

60~90秒

3~4分


ファームウェアデータの送信中に、通信エラーなどが発生した場合

ファームウェアデータの送信が最後まで完了しない状態でメソッドが終了します。そのため、プリンターはデータ受信待機状態のままとなります。
この場合は、プリンターの電源を一度切り、再度入れ直してください。
ファームウェア更新APIに対応するプリンターは、復旧用のファームウェアを保持しているため、データ受信中に電源をオフにしても問題なく元のファームウェアバージョンで起動することができます。
プリンターが起動したら、再度ファームウエアの更新を行ってください。

ご注意
APIが成功し、プリンターがファームウェアデータの書き換えを行なっている最中にプリンターの電源をオフにすることは、絶対におやめください。