29-Oct-2018
[二つ目]

Baofeng UV-5R/UV-3RやYAESU FT-65ではRDA1846S→2SC3356→2SK3078→RQA0009という構成を採っていますが、RT80は2SK3078互換のHE3078を使っているのでこれに近いだろうと考えて捜索範囲を絞ってみることにします。

丝印RB sot」でひたすら探した結果、KTC3770Sが出てきました。しかし14-Oct-2018のRT80の内部写真を見るに、RB DIと書かれたチップの形状はSOT-23ではなくSOT-323のようであるため、KTC3770Uと考えます。データシートを見るに、どちらも2SC3356に近いパラメータを持つのでこのシリーズであることは確かそうです。

残るはKC 7Y2と書かれたチップの特定です。SMP458なる無線機の回路図SMP418なる無線機の回路図を見比べてみると、SMP458ではRQA0009が、SMP418ではHE0009なる互換品が使われています。RT80ではRQA0009もHE0009も載っていないように見えますが、これらに近い何かが載っていても不思議ではなさそうです。58.55kg(23:35)

28-Oct-2018
[一つ目]

RT80に使われているSOT-89のチップのうち、H3と書かれたものはHERO HE3078(2SK3078互換)と思われます。

検索に中国語が必要になるだけでなく、よく知られているチップであってもこちら側で知られた型番とは違うものになっているとなると、残る二つのチップを調べるのもかなり難航しそうです…58.55kg(07:05)

20-Oct-2018
[OpenBSD-6.4/amd64に上げてみたけどさ]

何故かSSD上の/bsd(に限らず/bsd.rdとかも)のロード途中でマシンが再起動してしまうため、何もできなくなるという事態に。アップグレードに失敗したかなーと思ってクリーンインストールをしてみても状態は変わらず。

カーネルのロード途中でコケるならbiosboot絡みだろうなーということで、UEFIブートローダで起動できるかどうかを試してみました。UEFIならパーティーションはGPTを使うのが普通ではあるのですが、今回はMBRでやっています。とりあえずこんな感じで。


framboise# fdisk /dev/rsd0c
Disk: /dev/rsd0c        geometry: 62260/255/63 [1000215216 Sectors]
Offset: 0       Signature: 0xAA55
            Starting         Ending         LBA Info:
 #: id      C   H   S -      C   H   S [       start:        size ]
-------------------------------------------------------------------------------
 0: EF      4  20  17 -     69  89  20 [       65536:     1048576 ] EFI Sys
 1: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
 2: 00      0   0   0 -      0   0   0 [           0:           0 ] unused
 3: A6     69  89  21 -  62260 131  63 [     1114112:   999101104 ] OpenBSD
framboise# disklabel /dev/rsd0c
# /dev/rsd0c:
type: SCSI
disk: SCSI disk
label: Crucial_CT512MX1
duid: 92eb8be5dbded1e3
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 62260
total sectors: 1000215216
boundstart: 1114112
boundend: 1000215216
drivedata: 0

16 partitions:
#                size           offset  fstype [fsize bsize   cpg]
  a:        965546624         34668544  4.2BSD   4096 32768 26062 # /
  b:         33554432          1114112    swap                    # none
  c:       1000215216                0  unused
  i:          1048576            65536   MSDOS
framboise#

手順としては

  1. インストール時のfdiskでEFIシステム/OpenBSDの区画を作っておくが、起動フラグは立てない
  2. 普通にOpenBSDをインストールする
  3. インストール終了後はrebootせずshellに落ちて、newfs_msdos sd0iでEFIシステム区画をフォーマット
  4. (インストール直後において、OpenBSD区画は/mntにマウントされているため)mount /dev/sd0i /mnt2でEFIシステム区画をマウント
  5. mkdir -p /mnt2/efi/boot; cp /mnt/user/mdec/BOOT* /mnt2/efi/bootでUEFIブートローダを配置
  6. reboot

となります。(参考:openbsd 6.3 を UEFI なパソコンにインストールし印刷含め日常的に使う

ASRock A88-M/G3.1に限った問題なのかもしれませんが、USBメモリにインストールしたOpenBSD-6.4/amd64を(biosbootによって)起動した場合は問題ないものの、UEFI経由で起動するとradeondrmがこんなエラーを吐きます。


initializing kernel modesetting (KAVERI 0x1002:0x130F 0x1849:0x130F).
error: [drm:pid0:cik_ring_test] *ERROR* radeon: ring 2 test failed (scratch(0x3010C)=0xCAFEDEAD)
error: [drm:pid0:uvd_v1_0_start] *ERROR* UVD not responding, trying to reset the VCPU!!!
error: [drm:pid0:uvd_v1_0_start] *ERROR* UVD not responding, trying to reset the VCPU!!!
error: [drm:pid0:uvd_v1_0_start] *ERROR* UVD not responding, trying to reset the VCPU!!!
error: [drm:pid0:uvd_v1_0_start] *ERROR* UVD not responding, trying to reset the VCPU!!!
error: [drm:pid0:uvd_v1_0_start] *ERROR* UVD not responding, trying to reset the VCPU!!!
error: [drm:pid0:uvd_v1_0_start] *ERROR* UVD not responding, trying to reset the VCPU!!!
error: [drm:pid0:uvd_v1_0_start] *ERROR* UVD not responding, trying to reset the VCPU!!!
error: [drm:pid0:uvd_v1_0_start] *ERROR* UVD not responding, trying to reset the VCPU!!!
error: [drm:pid0:uvd_v1_0_start] *ERROR* UVD not responding, trying to reset the VCPU!!!
error: [drm:pid0:uvd_v1_0_start] *ERROR* UVD not responding, trying to reset the VCPU!!!
error: [drm:pid0:uvd_v1_0_start] *ERROR* UVD not responding, giving up!!!
error: [drm:pid0:cik_startup] *ERROR* radeon: failed initializing UVD (-1).
error: [drm:pid0:vce_v1_0_start] *ERROR* VCE not responding, trying to reset the ECPU!!!
error: [drm:pid0:vce_v1_0_start] *ERROR* VCE not responding, trying to reset the ECPU!!!
error: [drm:pid0:vce_v1_0_start] *ERROR* VCE not responding, trying to reset the ECPU!!!
error: [drm:pid0:vce_v1_0_start] *ERROR* VCE not responding, trying to reset the ECPU!!!
error: [drm:pid0:vce_v1_0_start] *ERROR* VCE not responding, trying to reset the ECPU!!!
error: [drm:pid0:vce_v1_0_start] *ERROR* VCE not responding, trying to reset the ECPU!!!
error: [drm:pid0:vce_v1_0_start] *ERROR* VCE not responding, trying to reset the ECPU!!!
error: [drm:pid0:vce_v1_0_start] *ERROR* VCE not responding, trying to reset the ECPU!!!
error: [drm:pid0:vce_v1_0_start] *ERROR* VCE not responding, trying to reset the ECPU!!!
error: [drm:pid0:vce_v1_0_start] *ERROR* VCE not responding, trying to reset the ECPU!!!
error: [drm:pid0:vce_v1_0_start] *ERROR* VCE not responding, giving up!!!
radeondrm0: 1920x1080, 32bpp

こんな状態でも一応は動くのですが、起動にやたらと時間がかります。とはいえ、全く起動できないのに比べればはるかにマシなのでこのまま使ってしまいます。こういう状況って本当はエラー報告の一つでも書いて伝えておいた方が良いのでしょうが、自分の英語力でこの微妙な状況をどう伝えたものか…頭が痛いです…58.20kg(25:20)

17-Oct-2018
[カッとなってやった、反省はしていない]

その代わりこんな対価を払った訳ですが。

tpa173699.jpg

Retevis RT80の赤いキーパッドは何となく落ち着かないので照明用のLEDを黄緑色のに交換してみたものの、自分の腕ではキーパッド周りのビニールっぽい奴を焦がさずに済ますことはできず。半田付けが汚いのは仕方がないとして、キーパッドを壊さずに済んだのはラッキーなのかも。

で、before/afterはこんな感じ。

tpa173698.jpg tpa173701.jpg

交換後はだいぶ暗くなっていますが、操作に困らない程度の明るさは確保できています。LCDパネルのバックライトが明るいのでそれに負けないよう(加えて赤いLEDは安価ですし)、こういう作りになっているのでしょうかね。

そういえば自動車界隈ではこの手の作業を「LED打ち替え」と言うそうですが、何故交換ではなく打ち替えと言うのでしょう…?58.70kg(20:25)

16-Oct-2018
[Lichee Pi nanoにLEDを付けてみたんだけど…]

Lichee Pi nanoのLED端子に付くチップLEDのサイズは1005が合うのですが、回路図を見るとLCD背光驱动の出力がそのまま出ているので注意が必要です。黄緑色のLEDをどうにか取り付けてみたものの、橙色で光ってやたらと熱いので変だなーと思い、慌てて電源を切ってLEDを取り外すなんてことをしておりました。

動作確認用のLEDが無いというのも不便なのですが、お手軽に付けられる訳でもなさそうなので無くても仕方がないということになりますかね…

1005と同時に1608のチップLEDも買っているのですが(これも黄緑色)、どう有効利用したものでしょうか。RT80のキーパッドが赤く光るので、これの色を変えるのは面白そうですが…自分の技量で4箇所も交換するのは非常に難しそうに見えます。59.35kg(23:20)

14-Oct-2018
[Retevis RT80届く(2)]

メイン基板の取り外し方は散々悩んだのですが、Tytera MD-380 Teardown MD380 Reverse Engineeringが参考になりました。基板を留めているネジをすべて外した後に、半田ごてを用意してアンテナ端子のところを加熱し基板を引っ張る、という手順です。PTTスイッチを外す必要はありません。

で、こんな部品を拝むことができた訳なのですが。

tpa143682_stitch.jpg tpa143684_stitch.jpg tpa143686_stitch.jpg

※コンデジで撮った画像をImage Composite Editorで繋ぎ合わせているため、画質はあまり良くありません。

TLV320AIC3204→SCT3258TD→AT1846S→[RB DI]→[RB DI]→[H3 0937]→[KC 7Y2]→filterという作りになっているように見えます。[]で括った部品は部品に書かれたIDをそのまま書いていますが、これらの部品は正しい型番が分からないと送信機系統図の書きようがありません。キーパッド側のLCDの下にも、RDAなんとかと書かれていたものと8pinのICらしきものが付いていましたが、おそらく送信機としての機能には関係しない部品と考えています。

AT1846S/RDA1846SはFT-65にも載っていて、この無線機のマニュアル(PDF)にある送信機系統図は非常にシンプルなものになっています。おそらくRT80についてもこんな感じになるのかもしれません。59.80kg(20:45)

16-Oct-2018補足:撮り直して全体像を作ってみましたが、部品全体を読めるように撮るのは難しいですね…

tpa163690_stitch.jpg

とりあえずいつまでもメイン基板を転がしておくのは可哀想なので、筐体に戻しておきました。

13-Oct-2018
[Retevis RT80届く]

届いたのは良いんだけど…

tpa133669.jpg tpa133670.jpg tpa133671.jpg

送信機系統図を書くために必要な資料は一切同梱されておらず、とりあえず分解することに。とはいえ、アンテナ端子を筐体から外す方法が分からないためメイン基板が拝めません。

ざっと触ってみた感じだとTYT MD-380より操作しやすい感じがありましたが、電源を入れてから操作可能になるまでの待ち時間は少し長めです。無線局免許の変更申請を出せない以上、当面は87.5MHz〜108.0MHzのFMラジオとして使うことにします。60.10kg(19:15)

08-Oct-2018
[城山湖の水全部抜く]

31-Jan-2010とか14-Mar-2010以来になるのでしょうか、城山湖が干上がっていました。子連れで来ていたので以前と全然違うアングルで取っていますが(機材も違うし)。

tpa083658.jpg tpa083659.jpg tpa083660.jpg

tpa083661.jpg tpa083663.jpg tpa083662.jpg

tpa083666.jpg tpa083667.jpg

前回干上がっていた時の「取水口スクリーンを取り替えています」という看板を探してみたのですが見つからず、代わりに「城山発電所の点検作業のため、城山湖(本沢調整池)の水を抜いています」と書かれた小さな張り紙がありました。

なお、これを書いている時点では台風24号による倒木のため穴川林道は通行止めになっていました。60.55kg(12:15)

07-Oct-2018
[RT-Thread: x86]

Lichee Pi nanoで動かしたRT-Thread、bsp/x86なるディレクトリがあったので何かなーと思ったらPC/AT向けです。

どうやると動くのか散々悩んだのですが、どうも

という感じです。気付いた問題はなるたけpull requestを投げるようにしてはいるのですが、CFLAGSの問題はどう(よりスマートに)解決すれば良いか見当が付かない…59.65kg(18:00)

06-Oct-2018
[クロスコンパイラ覚え書き]

久々にi386-elfなクロスコンパイラが必要になったため、ビルドすることに。ついでなので、x86_64-elf, x86_64-x32-elfについても用意します。

最初はgcc-6系や7系を試してみたのですが、OpenBSD-6.3ではportsのgcc-4.9.4(egcc)を使ってもPIC周りのエラーが起こるので、システム標準のgcc-4.2.1でbinutils-2.28.1, gcc-5.5.0(とnewlib-3.0.0)をビルドしました。

基本的な手順は09-Mar-2015のコピペですが、折角なのでCだけでなくC++も追加しています。

・x86_64-elf

binutils-2.28.1
../configure --target=x86_64-elf --prefix=/usr/local --disable-nls --disable-werror
gcc-5.5.0 + newlib-3.0.0
../configure --target=x86_64-elf --enable-languages=c,c++ --prefix=/usr/local --with-newlib --disable-nls --disable-libssp --disable-libgomp --with-gmp=/usr/local --disable-lto --with-abi=m64

・x86_64-x32-elf

binutils-2.28.1
../configure --target=x86_64-x32-elf --prefix=/usr/local --disable-nls --disable-werror
gcc-5.5.0 + newlib-3.0.0
../configure --target=x86_64-x32-elf --enable-languages=c,c++ --prefix=/usr/local --with-newlib --disable-nls --disable-libssp --disable-libgomp --with-gmp=/usr/local --disable-lto --with-abi=mx32

・i386-elf

binutils-2.28.1
../configure --target=i386-elf --prefix=/usr/local --disable-nls --disable-werror
gcc-5.5.0 + newlib-3.0.0
../configure --target=i386-elf --enable-languages=c,c++ --prefix=/usr/local --with-newlib --disable-nls --disable-libssp --disable-libgomp --with-gmp=/usr/local --disable-lto

ulimit -dによるリソース設定はしなくてもビルドは通っています(複数のgccを同時にビルドしようとするとか、make -jで多数のジョブを動かすとかする場合は別かもしれません)。60.15kg(18:55)

03-Oct-2018
[Lichee Pi nano上のRT-ThreadでLチカしたいんだけど、他]

Lichee Pi nanoはLED取り付け用のランドがあるもののLEDは取り付けられておらず、自分でやってね状態。サイズをノギスで測っても、1608なのか1005なのかが分からないので、とりあえず両方をeBayで発注して到着待ち。どちらにせよこんな小さな部品を取り付けられるスキルは持っていないのですが…うぅむ。

RT-Thread、bsp/<boardname>/applications/の下にお馴染みのmain()なコードが置かれるので、起動後に何かをしたい場合はここで色々コードを書くことになります。Lichee Pi nanoではRT-Thread起動後にPLL/CPU/AHB/APBクロックが表示されますが、これはbsp/allwinner_tina/main.cによるものです。お馴染みのLチカ(LED点滅)をさせるにはこのディレクトリ内に然るべきコードを書くようですが、大概のmain()は何もしないとかHello, world!的なものを表示してreturnしてしまうのであまり参考になりません。bsp/apollo2/applications/main.cとか、bsp/m16c62p/applications/辺りを見ると良さそうです。

μT-Kernelと異なり、RT-ThreadではRTOS自体を立ち上げる手順が必要です。少し古いですが、https://www.rt-thread.org/download/rttdoc_1_0_0/を読み、用意されているAPIや起動手順を調べておく必要がありそうです。

OCTOPATH TRAVELLERで遊びたいのでNintendo Switchが欲しいのですが、本体価格を見る度に「諦めるか…」とため息をついています。Steamで出てくれたら買うのだけど、サントラ設定資料集くらいは入手できるうちに入手しておいた方が良いのでしょうか、と思う程度には気になるのですよねえ。

Retevis RT80、CPSを覗いてみるとG:\linton\LD66\code\LD3800\LD3800_PRJ\UserCode\Drv\Code\SCT3252RxHpiDrv.cという文字列があるので、LINTON LD-3800と同じものではないかと考えています。

これに加え、FCC ID 2AN96DM18301 Product Similarity Declarationにはmodel names LD-3800 and LD-2100, LD-3000, LD-3900, LD-6000, LD-6800, LD-7000, LD-7800, LD-300, LD- 500, LD-580, LD-600, LH-100, LH-200, LH-210, LD-6100PLUS, LD-1600, LD-2600, LD-3600, LD-5600, LD-6600, LD-7600, LD-8600, LD-9600 are electrically identical.という記述があり、RetevisやLINTONの他にTID TD-DP580, TSSD TS-D8200RといったOEM(?)があることを見ると、かなり幅広いモデルで同じような回路を使っている可能性があります。

SCT3252なる型番から検索してみるに、SICOMM SCT3252 Digital Radio Baseband Signal Processorを使っていそうです。実際に使われているかどうかは分解してみないことには分かりませんが、SCT3252Fおよび開発キットのご紹介や(別の無線機ですが)Kirisun FM540 service manualのPDFが送信機系統図作成の役に立つのかもしれません。

もやもやしていてもしょうがないので、RT80を一台発注してきました。支払いを考えると来月以降に回したいのですが、納期を考えるとこのタイミングが良さそうです。eBayやAliExpressよりもちょっとお高くなるものの、Retevisのサイトから直接、「日本で使うために必要な資料も出してください」のコメントを添えて注文しているので、どう反応が返ってくるか楽しみです(なお、事前にメールで問い合わせた際は情報の開示を拒まれています)。59.10kg(19:10)

12-Dec-2018補足:RetevisのFacebookページのライブチャットで質問してみましたが、RT80はLD-3800と同一だそうです(共同開発した、と返事が返っています)。