tweliter
モジュールは、現在ベータ版です。概要
tweliter
モジュールは、TWELITE のファームウェアを書き込むためのPythonモジュールです。
PyPIからインストールでき、コマンドラインツールとして使用できるほか、Pythonスクリプトから制御することもできます。
インストール方法
PyPIからインストールしてください。
pip install tweliter
Poetryなら
poetry add tweliter
Linuxにおける追記事項
udev
によって権限を与える必要があるかもしれません。
/etc/udev/rules.d/99-ftdi.rules
を作成します
# TWELITE R / MONOSTICK (FT232R / 0403:6001)
SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE="0666"
# TWELITE R2 / R3 (FT230X / 0403:6015)
SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6015", MODE="0666"
- udev ルールを更新します
sudo udevadm control --reload-rules
sudo udevadm trigger
また、TWELITE STAGE アプリでは ftdi_sio
モジュールのアンロードが必要ですが、Pythonで使用する際はこれをロードする必要があります。
modprobe usbserial
modprobe ftdi_sio
使用例
コマンドラインツールとして
tweliter
に続いて、バイナリファイル(.bin
)を指定します。
tweliter dir/SomeApp_BLUE.bin
BLUE シリーズと RED シリーズを間違えないようにしてください。
コマンドラインオプション
tweliter -h
usage: tweliter [-h] [--url URL] [--startmsg STARTMSG] file
Write TWELITE BLUE/RED firmware
positional arguments:
file Firmware file to write
options:
-h, --help show this help message and exit
--url URL Device URL starting with ftdi://
--startmsg STARTMSG Prefix for startup message to check
url
:FTDIデバイスを指定するためのURLを指定できます- 未指定では、接続されたFTDIデバイスが一点なら自動選択、複数なら選択を促します
startmsg
:完了後、指定したテキスト以降の起動メッセージを捕捉して表示します- デフォルトは
!INF MONO WIRELESS
としています
- デフォルトは
スクリプトから
Twelite
クラスのインスタンスを利用してください。
from pathlib import Path
from tweliter import Tweliter
file = Path('dir/SomeApp_BLUE.bin')
try:
with Tweliter(url="ftdi://:ft-x:/1") as liter:
# Get serial interface for communication
ser = liter.get_serial_instance()
# Reset and enter program mode
liter.enter_program_mode()
# Write firmware
liter.write_firmware(ser, file)
# Reset device to check startup message
liter.reset_device()
# Show startup message
ser.read_until(b"!INF MONO WIRELESS") # wait for prefix
line = ser.readline()
print(line.decode("utf-8").strip())
except IOError as e:
print(e)