機体の準備

使用する機体

機体はJJR/C R010を使用する。
昨年の春ごろにBanggoodで赤・青それぞれ1機ずつ購入したもの。

JJRC R010

こちらの記事などを参考に機体の改造をする。

win-tab.net

win-tab.net

drone4.blog.fc2.com

ネクターの取り付け

基板にコネクタのハンダづけが必要なため、フレームからキャノピーを取り外し、基板を取り出しす。
この時、先に、基板に直接ハンダ付けされているモーター配線を半田ごてを使って取り外すことが必要。

取り出した基板に下の写真のようにコネクター類を取り付ける。

ネクター類の取り付け

ファームウェア書き換え用コネクタの取り付け

アクロモードで飛行できるファームウェアに書き換えするためのUSBドングル接続用に1.25mmピッチの基板コネクターをハンダ付けする。

a.aliexpress.com

banggood.onelink.me

ja.aliexpress.com

バッテリーコネクターの交換

スティック型のLipoバッテリーを使用するため、基板に直付けされているコネクターをはんだごてとはんだ吸い取り線を使って取り外し、コネクター付きのケーブルをハンダ付けする。

Gaoneng 350mAh 1S Lipo Battery HV 30C 3.8V with JST-PH 2.0 Connector for Tiny Whoop Micro FPV Racing Drone (Pack of 6)shop.makerfire.com

helimonster.jp

カメラ用電源コネクターの取り付け

FPVカメラに電源を供給するために、カメラ接続用コネクターを取り付ける。
ネクターはTX06に付属の変換ケーブルを切断して、1.25mmピッチコネクタのオス側付きケーブルを作成して使用する。

TX06付属ケーブル

キャノピーの加工

キャノピーは裏側の突起部分をリューターで削り取り、栓のようなパーツをペンチで引っこ抜く。
バッテリーコネクターのケーブルが干渉するので、後ろの部分もリューターで少し削る。

キャノピーの加工

カメラマウントの作成

カメラの緩衝材に使われていた発泡スチロールをカッターで削ってカメラマウントを作成する。
キャノピーへの取り付けはとりあえず両面テープを使用。

発泡スチロールで作ったカメラマウント

組み立て

キャノピーを戻して、カメラをカメラマウントに差し込めば完成。
カメラの電源ケーブルは、キャノピーの穴に通してカメラと接続する。

練習用TinyWhoop


プロポについて(その3)〜 udevの設定 〜

lsusbを使った接続確認

udevのルールを追加せずにT8SGをDFUモードで接続すると、
DeviationUploaderで認識されず、ファームウェアの書き換えができない。
 lsusbを使用して接続状況を確認してみる。

$ sudo lsusb

Bus 003 Device 008: ID 05ac:8501 Apple, Inc. Built-in iSight [Micron]
Bus 003 Device 040: ID 0483:df11 STMicroelectronics STM Device in DFU Mode
Bus 003 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 003: ID 05ac:022b Apple, Inc. Internal Keyboard/Trackpad (MacBook Pro) (JIS)
Bus 007 Device 002: ID 05ac:8242 Apple, Inc. Built-in IR Receiver
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 005: ID 05ac:0251 Apple, Inc. Apple Keyboard
Bus 001 Device 004: ID 056e:0132 Elecom Co., Ltd TrackBall Mouse M-DPT1MR Wireless
Bus 001 Device 003: ID 05ac:1006 Apple, Inc. Hub in Aluminum Keyboard
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 009: ID 05ac:8205 Apple, Inc. Bluetooth HCI
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

ツリー形式で表示すると、

$ sudo lsusb -t

/:  Bus 07.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
    |__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
    |__ Port 2: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 2: Dev 3, If 1, Class=Human Interface Device, Driver=appletouch, 12M
    |__ Port 2: Dev 3, If 2, Class=Human Interface Device, Driver=usbhid, 12M
/:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/6p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 4: Dev 40, If 0, Class=Application Specific Interface, Driver=, 12M
    |__ Port 4: Dev 8, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 4: Dev 8, If 1, Class=Video, Driver=uvcvideo, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
    |__ Port 1: Dev 9, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 1: Dev 9, If 1, Class=Wireless, Driver=btusb, 12M
    |__ Port 1: Dev 9, If 2, Class=Application Specific Interface, Driver=, 12M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/4p, 480M
    |__ Port 2: Dev 3, If 0, Class=Hub, Driver=hub/3p, 480M
        |__ Port 1: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 1: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 1: Dev 4, If 2, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 1: Dev 4, If 3, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 2: Dev 5, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 2: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M

T8SGである”STMicroelectronics STM Device in DFU Mode”は
Bus 003にDevice 40として、接続されている。
vendorとproductはそれぞれ、0483とdf11。
このvendorとproductを指定してさらに詳細を表示する。

$ sudo lsusb -v -d 0483:df11

Bus 003 Device 040: ID 0483:df11 STMicroelectronics STM Device in DFU Mode
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0483 STMicroelectronics
  idProduct          0xdf11 STM Device in DFU Mode
  bcdDevice            2.00
  iManufacturer           1 STMicroelectronics
  iProduct                2 STM32 DFU
  iSerial                 3 DEVO-7E ㌀⡂䣿ጴ々W
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x002d
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower               64mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       254 Application Specific Interface
      bInterfaceSubClass      1 Device Firmware Update
      bInterfaceProtocol      2 
      iInterface              4 @Internal Flash  /0x08003000/00*001Ka,244*001Kg
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           0
      bInterfaceClass       254 Application Specific Interface
      bInterfaceSubClass      1 Device Firmware Update
      bInterfaceProtocol      2 
      iInterface              5 @SPI Flash: Config/0x00002000/030*04Kg
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       2
      bNumEndpoints           0
      bInterfaceClass       254 Application Specific Interface
      bInterfaceSubClass      1 Device Firmware Update
      bInterfaceProtocol      2 
      iInterface              6 @SPI Flash: Library/0x00020000/030*064Kg
      Device Firmware Upgrade Interface Descriptor:
        bLength                             9
        bDescriptorType                    33
        bmAttributes                       11
          Will Detach
          Manifestation Intolerant
          Upload Supported
          Download Supported
        wDetachTimeout                    255 milliseconds
        wTransferSize                    1024 bytes
        bcdDFUVersion                   1.1a
Device Status:     0x0000
  (Bus Powered)

Devo-7E”などの表示もあり、特に問題は見つからないように思う。

udevadmの出力結果

T8SGを接続する前にudevadmを起動しておく。

$ sudo udevadm monitor -p

-uオプションと-kオプションがどちらも指定されていなければ、
接続や取り外し時にカーネルとudevの両方のメッセージが表示される。

monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[8118569.017950] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-1/3-1.4 (usb)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb3/3-1/3-1.4
SUBSYSTEM=usb
DEVNAME=/dev/bus/usb/003/040
DEVTYPE=usb_device
PRODUCT=483/df11/200
TYPE=0/0/0
BUSNUM=003
DEVNUM=040
SEQNUM=3499
MAJOR=189
MINOR=295

KERNEL[8118569.020321] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-1/3-1.4/3-1.4:1.0 (usb)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb3/3-1/3-1.4/3-1.4:1.0
SUBSYSTEM=usb
DEVTYPE=usb_interface
PRODUCT=483/df11/200
TYPE=0/0/0
INTERFACE=254/1/2
MODALIAS=usb:v0483pDF11d0200dc00dsc00dp00icFEisc01ip02in00
SEQNUM=3500

KERNEL[8118569.020793] bind     /devices/pci0000:00/0000:00:1d.7/usb3/3-1/3-1.4 (usb)
ACTION=bind
DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb3/3-1/3-1.4
SUBSYSTEM=usb
DEVNAME=/dev/bus/usb/003/040
DEVTYPE=usb_device
DRIVER=usb
PRODUCT=483/df11/200
TYPE=0/0/0
BUSNUM=003
DEVNUM=040
SEQNUM=3501
MAJOR=189
MINOR=295

UDEV  [8118569.043236] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-1/3-1.4 (usb)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb3/3-1/3-1.4
SUBSYSTEM=usb
DEVNAME=/dev/bus/usb/003/040
DEVTYPE=usb_device
PRODUCT=483/df11/200
TYPE=0/0/0
BUSNUM=003
DEVNUM=040
SEQNUM=3499
USEC_INITIALIZED=8118569042741
ID_VENDOR=STMicroelectronics
ID_VENDOR_ENC=STMicroelectronics
ID_VENDOR_ID=0483
ID_MODEL=STM32_DFU
ID_MODEL_ENC=STM32\x20DFU
ID_MODEL_ID=df11
ID_REVISION=0200
ID_SERIAL=STMicroelectronics_STM32_DFU
ID_BUS=usb
ID_USB_INTERFACES=:fe0102:
ID_VENDOR_FROM_DATABASE=STMicroelectronics
ID_MODEL_FROM_DATABASE=STM Device in DFU Mode
ID_PATH=pci-0000:00:1d.7-usb-0:1.4
ID_PATH_TAG=pci-0000_00_1d_7-usb-0_1_4
DRIVER=usb
ID_FOR_SEAT=usb-pci-0000_00_1d_7-usb-0_1_4
MAJOR=189
MINOR=295
TAGS=:seat:
CURRENT_TAGS=:seat:

UDEV  [8118569.051684] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-1/3-1.4/3-1.4:1.0 (usb)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb3/3-1/3-1.4/3-1.4:1.0
SUBSYSTEM=usb
DEVTYPE=usb_interface
PRODUCT=483/df11/200
TYPE=0/0/0
INTERFACE=254/1/2
MODALIAS=usb:v0483pDF11d0200dc00dsc00dp00icFEisc01ip02in00
SEQNUM=3500
USEC_INITIALIZED=8118569051210
ID_VENDOR_FROM_DATABASE=STMicroelectronics
ID_MODEL_FROM_DATABASE=STM Device in DFU Mode
ID_PATH=pci-0000:00:1d.7-usb-0:1.4:1.0
ID_PATH_TAG=pci-0000_00_1d_7-usb-0_1_4_1_0

UDEV  [8118569.073052] bind     /devices/pci0000:00/0000:00:1d.7/usb3/3-1/3-1.4 (usb)
ACTION=bind
DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb3/3-1/3-1.4
SUBSYSTEM=usb
DEVNAME=/dev/bus/usb/003/040
DEVTYPE=usb_device
DRIVER=usb
PRODUCT=483/df11/200
TYPE=0/0/0
BUSNUM=003
DEVNUM=040
SEQNUM=3501
USEC_INITIALIZED=8118569042741
ID_VENDOR=STMicroelectronics
ID_VENDOR_ENC=STMicroelectronics
ID_VENDOR_ID=0483
ID_MODEL=STM32_DFU
ID_MODEL_ENC=STM32\x20DFU
ID_MODEL_ID=df11
ID_REVISION=0200
ID_SERIAL=STMicroelectronics_STM32_DFU
ID_BUS=usb
ID_USB_INTERFACES=:fe0102:
ID_VENDOR_FROM_DATABASE=STMicroelectronics
ID_MODEL_FROM_DATABASE=STM Device in DFU Mode
ID_PATH=pci-0000:00:1d.7-usb-0:1.4
ID_PATH_TAG=pci-0000_00_1d_7-usb-0_1_4
ID_FOR_SEAT=usb-pci-0000_00_1d_7-usb-0_1_4
MAJOR=189
MINOR=295
TAGS=:seat:
CURRENT_TAGS=:seat:

バイス名は /dev/bus/usb/003/040となっている。
lsを使ってデバイスファイルの状態を確認する。

$ ls -l -d /dev/bus/usb/003/040

crw-rw-r-- 1 root root 189, 295  5月  1 19:50 /dev/bus/usb/003/040

ユーザー、グループの両方がrootになっていて、
otherのパーミッションは”r”しか設定されていないため、
root以外のユーザーでは書き込みができず、コマンドも送れない。

パーミッションの設定

直接/dev/bus/used/003/040などのデバイスファイルのパーミッションを変更しても、
次回接続時には反映されない。
USB接続のデバイスに所属グループやパーミッションを設定するためには
適切な識別情報を与えてudevルールを追加する。
今回の場合は、idVendorとidProductを指定して、グループをplugdevに、
パーミッション0664に設定するルールを追加している。

$ cat /etc/udev/rules.d/45-stdfu-permissions.rules 
# DFU (Internal bootloader for STM32 MCUs)
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11",  MODE="0664", GROUP="plugdev"

ルールファイルを追加したのち、T8SGを再接続すると、パーミッションとグループが反映され、
plugdevに所属しているユーザーで起動したDeviationUploaderに認識されるようになる。
ということらしい・・・

$ lsusb
Bus 003 Device 008: ID 05ac:8501 Apple, Inc. Built-in iSight [Micron]
Bus 003 Device 041: ID 0483:df11 STMicroelectronics STM Device in DFU Mode
Bus 003 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 003: ID 05ac:022b Apple, Inc. Internal Keyboard/Trackpad (MacBook Pro) (JIS)
Bus 007 Device 002: ID 05ac:8242 Apple, Inc. Built-in IR Receiver
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 005: ID 05ac:0251 Apple, Inc. Apple Keyboard
Bus 001 Device 004: ID 056e:0132 Elecom Co., Ltd TrackBall Mouse M-DPT1MR Wireless
Bus 001 Device 003: ID 05ac:1006 Apple, Inc. Hub in Aluminum Keyboard
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 009: ID 05ac:8205 Apple, Inc. Bluetooth HCI
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

$ ls -l -d /dev/bus/usb/003/041
crw-rw-r-- 1 root plugdev 189, 296  5月  1 19:54 /dev/bus/usb/003/041

プロポについて(その2) 〜 firmwareの書き換え 〜

書き込み用アプリケーションとDeviation(Nightly build)のダウンロード

Deviation - Homeを開き、"Downloads"リンクをクリック。

DeviationTXのページ

"DFU USB Tool"をクリックしてファームウェア書き込み用アプリケーションのダウンロードページへ。

DFU USB Toolのダウンロードページへのリンク

"Download"ボタンをクリックして、"DeviaionUpload-0.9.0.jar"をダウンロードし適当なディレクトリーに保存。

Deviation Uploaderのダウンロード

"Downloads"リンクからダウンロードページへ戻る。

Downloadsページへ

"Nightly Builds"リンクをクリックしてダウンロードページへ

Nightly Buildsダウンロードページへのリンク

Nightly Buildの日付を選択

Buildされた日付の選択

T8SG-V2用(plusはOLEDディスプレイ用なので使用できない)のダウンロードボタンをクリックしてダウンロードし、
適当なディレクトリに保存する。

対象機種選択

ダウンロードしたファームウェア(deviation-t8sg_v2-v5.0.0-xxxxxx.zip)は適当な作業用ディレクトリーに解凍する。

myname@myhost:~/tmp$ unzip ~/Downloads/deviation-t8sg_v2-v5.0.0-c84450e.zip -d 2021-06-11/
Archive:  /home/myname/Downloads/deviation-t8sg_v2-v5.0.0-c84450e.zip
  inflating: 2021-06-11/deviation-t8sg_v2-v5.0.0-c84450e.dfu  
  inflating: 2021-06-11/UPDATING.md  
  inflating: 2021-06-11/datalog.bin  
 extracting: 2021-06-11/errors.txt   
  inflating: 2021-06-11/hardware.ini  
   creating: 2021-06-11/language/
  inflating: 2021-06-11/language/lang.af  
  inflating: 2021-06-11/language/lang.nl  
  inflating: 2021-06-11/language/lang.pt  
  inflating: 2021-06-11/language/lang.ja  
  inflating: 2021-06-11/language/lang.it  
  inflating: 2021-06-11/language/lang.es  
  inflating: 2021-06-11/language/lang.fr  
  inflating: 2021-06-11/language/lang.de  
  inflating: 2021-06-11/language/lang.ru  
  inflating: 2021-06-11/language/lang.cn  
  inflating: 2021-06-11/language/lang.ro  
  inflating: 2021-06-11/language/lang.hu  
  inflating: 2021-06-11/language/lang.tw  
   creating: 2021-06-11/layout/
  inflating: 2021-06-11/layout/empty.ini  
  inflating: 2021-06-11/layout/default.ini  
   creating: 2021-06-11/media/
  inflating: 2021-06-11/media/toggle2.bmp  
  inflating: 2021-06-11/media/toggle0.bmp  
  inflating: 2021-06-11/media/5x7.fon  
  inflating: 2021-06-11/media/splash.bmp  
  inflating: 2021-06-11/media/10narrow.fon  
  inflating: 2021-06-11/media/noicon.bmp  
  inflating: 2021-06-11/media/48normal.fon  
  inflating: 2021-06-11/media/04b03.fon  
  inflating: 2021-06-11/media/sound.ini  
  inflating: 2021-06-11/media/18bold.fon  
  inflating: 2021-06-11/media/12normal.fon  
  inflating: 2021-06-11/media/toggle3.bmp  
  inflating: 2021-06-11/media/config.ini  
  inflating: 2021-06-11/media/10normal.fon  
  inflating: 2021-06-11/media/14bold.fon  
  inflating: 2021-06-11/media/toggle1.bmp  
   creating: 2021-06-11/modelico/
  inflating: 2021-06-11/modelico/plane.bmp  
  inflating: 2021-06-11/modelico/multi.bmp  
  inflating: 2021-06-11/modelico/heli.bmp  
   creating: 2021-06-11/models/
  inflating: 2021-06-11/models/model16.ini  
  inflating: 2021-06-11/models/model11.ini  
  inflating: 2021-06-11/models/model24.ini  
  inflating: 2021-06-11/models/model17.ini  
  inflating: 2021-06-11/models/model30.ini  
  inflating: 2021-06-11/models/model15.ini  
  inflating: 2021-06-11/models/model13.ini  
  inflating: 2021-06-11/models/model21.ini  
  inflating: 2021-06-11/models/model3.ini  
  inflating: 2021-06-11/models/model27.ini  
  inflating: 2021-06-11/models/model28.ini  
  inflating: 2021-06-11/models/model12.ini  
  inflating: 2021-06-11/models/default.ini  
  inflating: 2021-06-11/models/model20.ini  
  inflating: 2021-06-11/models/model2.ini  
  inflating: 2021-06-11/models/model6.ini  
  inflating: 2021-06-11/models/model10.ini  
  inflating: 2021-06-11/models/model1.ini  
  inflating: 2021-06-11/models/model26.ini  
  inflating: 2021-06-11/models/model29.ini  
  inflating: 2021-06-11/models/model5.ini  
  inflating: 2021-06-11/models/model23.ini  
  inflating: 2021-06-11/models/model19.ini  
  inflating: 2021-06-11/models/model4.ini  
  inflating: 2021-06-11/models/model7.ini  
  inflating: 2021-06-11/models/model8.ini  
  inflating: 2021-06-11/models/model22.ini  
  inflating: 2021-06-11/models/model18.ini  
  inflating: 2021-06-11/models/model9.ini  
  inflating: 2021-06-11/models/model14.ini  
  inflating: 2021-06-11/models/model25.ini  
   creating: 2021-06-11/template/
  inflating: 2021-06-11/template/4ch_dr.ini  
  inflating: 2021-06-11/template/4chsmpl.ini  
  inflating: 2021-06-11/template/6chplane.ini  
  inflating: 2021-06-11/template/6ch_heli.ini  
  inflating: 2021-06-11/template/heli_std.ini  
  inflating: 2021-06-11/tx.ini       
 extracting: 2021-06-11/debug-t8sg_v2-v5.0.0-c84450e.zip  

PC側の準備

Java ランタイムのインストール

PCからT8SGへファームウェアを書き込むためのソフト"DeviaionUpload-0.9.0"はJavaで書かれているので、
PCにもJavaランタイムをインストールする。

myname@myhost:~$ sudo apt install openjdk-11-jre

Deviation Uploaderの実行時にWarningが出力されるのでcanberra-gtk-moduleもインストールしておく。

myname@myhost:$ apt install libcanberra-gtk-module

udevの設定

DFUモードで起動したT8SGをUSB接続し、読み書きができるように、次の内容のudev rulesファイルを、
"45-stdfu-permisshions.rules"というファイル名で、/etc/udev/rules.d/に保存する。

# DFU (Internal bootloader for STM32 MCUs)
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11",  MODE="0664", GROUP="plugdev" 

保存した後はsystemd-udevdに読み込ませる。

myname@myhost:~$ sudo udevadm control -R

"plugdev"グループに入っていなければ追加する。

myname@myhost:~$ sudo usermod -a -G plugdev myname

<参考>
github.com

ファームウェアの書き換え

DeviationUploader の起動

"DeviationUpload-0.9.0.jar"を保存したディレクトリに移動し、実行。

myname@myhost:~/Deviation$ java -jar ./DeviationUpload-0.9.0.jar

起動したらDFUタブをクリック

Deviation Uploader

T8SGの接続とdfuファイルの書き込み

T8SG(電源OFF)とPCをUSBケーブルで接続。
Exit キーを押しながら電源ボタンを押し、T8SGをDFUモードで起動。

Exitキーを押しながら電源を入れてDFUモードで起動する

"Transmitter"が"Devo 7e"と表示され、"Name"、"Start Address"などが表示されれば接続成功。
"File"の右側の"..."ボタンをクリックしてファイル選択ダイアログを表示。

プロポの認識成功

あらかじめ解凍してあったファームウェアディレクトリの中の"deviation-t8sg_v2-v5.0.0-xxxx.df"を選択し
"OK"ボタンをクリック。

ファイル選択ダイアログ

ファイル名などを確認したら”Send”ボタンをクリック。

ファイル選択後

書き込み完了のダイアログが表示されたら、Debiation Uploaderを終了し、 T8SGの電源を落とす。

書き込み完了

システムファイルの書き込み

T8SGとPCを接続したまま、T8SGの”Confirm key”を押しながら電源をOnにし、USBモードで起動する。
USBモードで起動するとT8SGのディスプレイにはUSBマークが表示され、PC側ではUSBメモリーとして認識される。

USBモードでの起動

ファームウェアを解凍したフォルダ内のファイルをT8SGのストレージにファームウェアを解凍したフォルダの内容を全てコピー(容量が足りない場合はストレージを一度全て消去してかかコピーした方が良いかも)する。
コピーが完了したらPC側でストレージをUnmountしてT8SGの電源を落とし、USBケーブルを抜く。
普通にT8SGの電源を入れて起動できれば完了。

プロポについて(その1)

f:id:dachkerokero:20220102175339j:plain使用するプロポはJumper T8SG V3(carbon edition)
技適付きのマルチプロトコル対応のプロポとして、3年ほど前に話題になったプロポ
今となっては、同じJumperのT-LiteやRadioMaster のTX16Sなどが主流になり
新たな情報は出てこなくなっているが、2〜3年前の豊富な情報をもとに設定をしていく。

f:id:dachkerokero:20211231192907j:plain
Jumper T8SG V3(carbon edition)
f:id:dachkerokero:20211231193505j:plain
製品ラベル

プロポに付属してきたバッテリーケースは18650バッテリー×2本用のものだけだったので、
amazonでKEEPOWER製の18650バッテリーの2本セットを購入
こちらのバッテリーは安全装置付きのためやや長さが長く、バッテリーケースがキツキツなので、
素手でバッテリーの取り出しができるようケースを加工

f:id:dachkerokero:20220102173652j:plain
18650バッテリーとプロポ付属のケース

<参考>
Jumper T8SG V2 plusのバッテリーを変更 – 砂井さんのオモチャ箱

また、本体側のコネクターの位置がちょっと奥まった位置なので、バッテリーケースのコネクターがとても抜きにくい
毛抜きやラジオペンチをつかって抜いていたが、コネクターを壊しそうになったので、
JST-XH 2Sバランスプラグの延長ケーブルで接続するようにした

f:id:dachkerokero:20220102175339j:plain

Debianのログイン画面でのサスペンドの無効化について

ドローンの設定に使うMacBookは、USBに接続するなど以外は
宅内でもsshを使って設定作業などをおこなっているが、
サスペンドが有効になっているため、ほおっておくと20分で
ssh接続できなくなる。
不便なので解消を試みる。

GUIでの設定

まずは、自分のアカウントでログインし、
"アクティビティ"→"設定"→"電源"で、電源接続時の自動サスペンドを無効にする。

f:id:dachkerokero:20220102151859p:plain
自動サスペンドの設定

このままでは、ログイン状態での自動サスペンドは無効になるが、ログイン待ちの状態では
やはり自動でサスペンドしてしまう。

ログイン画面での自動サスペンドの無効化

ログイン待ちの状態でもサスペンドを無効にするには、手動で次の2つの設定ファイルを書き換える必要があるとのこと。

編集するファイル

  • /usr/share/gdm/dconf/90-debian-settings
  • /etc/gdm3/greeter.dconf-defaults

編集する内容

両方のファイルの末尾に次の行を追加

sleep-inactive-ac-timeout = 0
sleep-inactive-battery-timeout = 0

<参考にした記事>
Ubuntu,Debianの自動サスペンドの解除 - Qiita

情報の入手先

まずは室内練習用に、トイドローンを改造してAcroモードが使える
練習機を作成します。
話題としては、2〜3年前のもので、すでに先人の皆さんが、
ブログやYoutubeでいろいろな情報を残してくださってます。
また、mixi内の「ドローン友の会」では、プロポや機体の設定など
貴重な情報をいただいております。

【参考にさせていただいた主なサイト】
win-tab.net

jizomae.com

drone4.blog.fc2.com

使用するPC環境

ハードウェア

Macbook 4.1(early 2008)(最後のポリカーボネート筐体のMacbookかな?)

  • メモリ:4GB
  • ストレージ:300GB SSD
  • 外付キーボード:USB接続Appleキーボード
f:id:dachkerokero:20211031231036j:plain
Macbook early 2008

OS

Macbook 4.1が対応しているMacOSは、OS X Lionまで、Bootcampが対応しているWindowsWindows7まで。
どちらもとっくにサポート期間が終了しているので、使用し続けるのはセキュリティー的に問題があり。
ブートマネージャーとしてrEFInedをインストール。
The rEFInd Boot Manager
OS X LionとDebian GNU/Linuxデュアルブートにし、主にLinuxマシンとして使用。

バージョン

2021年現在のstable releaseのDebian 11 (bullseye)(amd64)を使用。
インストールは有線LAN接続して、ネットワークインストールイメージで特に問題なく終了。

kernel boot paramater

インストールした直後の状態では、OSの起動時にものすごく時間がかかる。
ブートパラメーターとしてvideo=SVIDEO-1:dを与えると解決するので、
rEFIndとGRUBの両方で起動する際にパラメーターが与えられるよう設定する。

rEFIndの設定

/boot/refind_liniux.conf の各エントリーに次のようにオプションを追加

"Boot with standard options"  "root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx ro quiet video=SVIDEO-1:d"
"Boot to single-user mode"    "root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx ro quiet single video=SVIDEO-1:d"
"Boot with minimal options"   "ro root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx video=SVIDEO-1:d"
GRUBの設定

/etc/default/grubを編集
GRUB_CMDLINE_LINUXに下記のようにのオプションを追加

GRUB_CMDLINE_LINUX="video=SVIDEO-1:d"

/etc/default/grub内のコメント

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'

に従って/boot/grub.cfgを更新

xxxx@debian:~$ sudo update-grub
[sudo] xxxx のパスワード:
Generating grub configuration file ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-5.10.0-10-amd64
Found initrd image: /boot/initrd.img-5.10.0-10-amd64
Found linux image: /boot/vmlinuz-5.10.0-9-amd64
Found initrd image: /boot/initrd.img-5.10.0-9-amd64
Found linux image: /boot/vmlinuz-5.10.0-8-amd64
Found initrd image: /boot/initrd.img-5.10.0-8-amd64
Found Mac OS X on /dev/sda2
done

[出典]
askubuntu.com