SONY WH-1000XM6をBluetooth LE Audio LC3コーデックをサポートしたBluetoothトランスミッターFlooGoo FMA120と一緒に使ってみる

SONYのWH-1000XM6というヘッドホンを持っている。 これはBluetooth接続のヘッドホンで、通話用のマイクも搭載されている。 もちろんclassic BluetoothのHFPとかで、この通話用のマイクは利用できるのだが、 コーデックがSBCであり、音質は良くない。 もちろん、SBCで達成することのできる最高の音質になっているとは思うが…。

一方で、Bluetooth LE Audioもサポートしていて、LC3コーデックによる 通話も可能なことになっている。 ただ、これがHFPでLC3を使う拡張があったと思うので、それを使っているのか、 あるいは、LE Audioには独自のマイクを扱うプロトコルがあるのかは、 全く理解できていない。

通話をせず、本当にヘッドホンとして音を聞きたい場合であれば、 A2DPを使えば良い。WH-1000XM6では、SBCだけでなくAACとLDACがサポートされているので、 AndroidのスマートフォンやAmazon Fireタブレット、iPhone、Windows 11 PCでも 良い音質で音を聞くことはできる。 ただ、ビデオを見ている場合には、基本的には音は遅延する。 LC3の場合には、音の遅延は小さくできることになっているはずである。

私の手元にあるデバイスで、LE Audioをサポートしているものはないので、 LC3を使った場合の音質や遅延について体感できずにいた。

LE Audioは何年か前のBluetooth 5系統の仕様で定められているはずで、 多くのBluetoothホストコントローラーはそのバージョンのBluetoothの 仕様を実装済みのはずである。 ただ、LE AUdioはA2DPのように後からBluetoothスタックに付け足してサポートできず、 Bluetoothをスタックに大きく手を入れないと実装できないと 聞いた気もする。 そのせいかは分からないが、LE Audioが使えるようになるUSB接続の Bluetoothドングルというのも売られているようには見えない。 Bluetooth 5.4対応のBluetoothドングルというを買ってみたが、LE Audioをサポートしてはいなかった。

では何が売られているかと言うと、種類数は少ないのだが、トランスミッター と呼ばれる機器が売られている。 これは、USBでPC等に接続するデバイスで、PCで動くOSからは、 USB Audio classのデバイスとして見え、そのトランスミッターが独自に LE Audio機器とペアリングするというものである。 LE Audioの登場する前から、種類数は少ないが、こういうデバイスは売られていて、 私もCreative製のBT-W3を持っている。 だが、BT-W3はSBCとAptX Low Latency、AptX HD、AptXしかサポートしておらず、 私はAptX系のコーデックを利用するBluetooth機器は持っていないので、あまり役立てることはできなかった。

LE Audioをサポートするトランスミッターというのは数少なく、 どれもQualcommのチップを使っているようである。 Eppfun製のものは日本でも入手が容易で、比較的安価であるようだが、 ヘッドホン側もQualcommのチップを使っていないと、接続できないという コメントをどこかで見た気がする。

SONY WH-1000XM6がどのようなチップを使っているのか分かっていないが、 前世代のWH-1000XM5はXtensaのチップを搭載していたような気がする。 少なくともQualcommのチップが利用されていると期待できないように思われる。

と言うことでWH-1000XM6をサポートしていると明確に書かれているFlooGoo FMA120を購入してみた。 Amazon.comで購入すると、Amazon.co.jpより相当安く買えるので、Amazon.comで購入した。

結果としては、全く問題なくLC3コーデックで接続でき、遅延も気になることはなく、非常に満足している。 NetBSD/amd64-currentに接続したdmesgは以下のようである。 FMA120自体は、USB Audio Class 1.0のデバイスとして認識される。 FMA120の設定は、USB to RS-232Cコンバーターとして見えているデバイス経由で実施されるようだ。 Microsoft Storeでダウンロードできる設定アプリケーションは、これを使っているようだ。

ただ、このdmesgを見ると、FMA120もQualcommのチップを使っているようだ。 なので、EppfunのトランスミッターでWH-1000XM6をサポートできないという訳はなさそうだ。

NetBSD castella 11.99.3 NetBSD 11.99.3 (LEAFFOX1) #1: Wed Sep 24 11:21:54 JST 2025  ryoon@castella:/usr/world/11.99/amd64/obj/sys/arch/amd64/compile/LEAFFOX1 amd64 x86_64
(snip)
uhub10 at uhub1 port 1: Cambridge Silicon Radio (0x0a12) product 4010 (0x4010), class 9/0, rev 2.00/21.18, addr 3
uhub10: 4 ports with 0 removable, bus powered
uhidev6 at uhub10 port 1 configuration 1 interface 0
uhidev6: Qualcomm (0x0a12) QCC3086 USB Dongle (0x4007), rev 2.00/30.91, addr 4, iclass 3/0
uhidev6: 24 report ids
uhid17 at uhidev6 reportid 1: input=2, output=0, feature=0
uhid18 at uhidev6 reportid 2: input=2, output=0, feature=0
uhid19 at uhidev6 reportid 9: input=0, output=1, feature=0
uhid20 at uhidev6 reportid 23: input=0, output=1, feature=0
uhid21 at uhidev6 reportid 24: input=0, output=1, feature=0
uhidev7 at uhub10 port 1 configuration 1 interface 1
uhidev7: Qualcomm (0x0a12) QCC3086 USB Dongle (0x4007), rev 2.00/30.91, addr 4, iclass 3/0
uhidev7: 32 report ids
uhid22 at uhidev7 reportid 1: input=0, output=62, feature=0
uhid23 at uhidev7 reportid 2: input=16, output=0, feature=0
uhid24 at uhidev7 reportid 3: input=0, output=0, feature=62
uhid25 at uhidev7 reportid 4: input=0, output=0, feature=62
uhid26 at uhidev7 reportid 5: input=0, output=254, feature=0
uhid27 at uhidev7 reportid 6: input=12, output=0, feature=0
uhid28 at uhidev7 reportid 7: input=0, output=446, feature=0
uhid29 at uhidev7 reportid 8: input=446, output=0, feature=0
uhid30 at uhidev7 reportid 9: input=11, output=0, feature=0
uhid31 at uhidev7 reportid 32: input=0, output=0, feature=255
uaudio0 at uhub10 port 1 configuration 1 interface 2
uaudio0: Qualcomm (0x0a12) QCC3086 USB Dongle (0x4007), rev 2.00/30.91, addr 4
uaudio0: ignored descriptor type 11 subtype 5
uaudio0: audio rev 1.00
audio2 at uaudio0: playback, capture, full duplex, independent
audio2: slinear_le:16 2ch 48000Hz, blk 11520 bytes (60ms) for playback
audio2: slinear_le:16 1ch 48000Hz, blk 5760 bytes (60ms) for recording
spkr3 at audio2: PC Speaker (synthesized)
wsbell at spkr3 not configured
umodem0 at uhub10 port 1 configuration 1 interface 5
umodem0: Qualcomm (0x0a12) QCC3086 USB Dongle (0x4007), rev 2.00/30.91, addr 4, iclass 2/2
umodem0: data interface 6, has CM over data, has break
umodem0: status change notification available
ucom1 at umodem0 portno 2

Metabaseで管理用のデータベース (application database) にPostgreSQLを使っている場合に、contribモジュールが必要だった

すっかり書くのを忘れてしまっていたのだが、 Metabaseを使っていて気付いたことがあった。

Metabaseは、分析対象のデータソースとは別に管理用のデータベースを利用する。 これについては、 Configuring the Metabase application database に書いてある。 PostgreSQLを利用するのが推奨されているのだが、単にPostgreSQLサーバーを容易するだけだと、例えば新規ユーザーがLDAPの情報でログインする時に、 以下のようなエラーがウェブページ上に表示されてログインできない。

ERROR: could not access file "$libdir/citext": No such file or directory

私の場合にはpkgsrcでPostgreSQLサーバーをインストールしているので、pkgsrc/databases/postgresql*-contribもインストールすれば良い。 どこかにこのことは書かれているのだろうか…。

Softbank Airターミナル3 (B610s-77a)のブートメッセージをシリアルコンソールで見てみる

とあるリサイクルショップで、Softbank Airターミナル3を100円で買って来た。 Huawei Technologies Co., Ltd.製で、型番はB610s-77aと裏面に書いてある。

はるろいどの冒険日記 SoftBank Air ターミナル3で遊ぶ(準備編)によると、 底面のSIMカードスロットの隣にあるUSB micro B端子にUARTの端子が出ているらしい。

USB端子の接点 UART
GND GND
D+ RXD
D- TXD

と言うことで、micro BとUSB Type-Cを両端に持ったUSBケーブルを底面のUSB micro B端子に差し込み、 秋月電子のUSBtype-CコネクターDIP化キット(全ピン版)にUSB Type-C側の端子を接続した。 更に、USBtype-CコネクターDIP化キット(全ピン版)の10番のD-ピンはTXDなので、 秋月電子のFTDI USBシリアル変換ケーブル(3.3V)の黄色の線のRXDに接続し、 9番のD+ピンはRXDなので橙色の線のTXDに、 8番のGNDピンはUARTでもGNDなので黒色のGNDに接続した。

FTDI USBシリアル変換ケーブル(3.3V)のUSB A端子をNetBSDマシンに接続して、ucom1として認識された。 以下のように実行して、115200 bpsで接続すれば、ブートメッセージを見ることができた。

# cu -115200 -l /dev/ttyU1
Connected

onchip
NF id boot!
NF ID 0x2CAC9026 0x54000000
NF pagesz 0x00001000B,pagenm 0x00000040,oobsz 0x000000E0B,ecc 0x00000018,addrnum 0x00000005,chipsz 0x00000200MB
Nand save 0x748B0142
UnSec_boot!mddrc init ok
13
src_addr :0x00080000
dst_addr :0x4FD00000
img_size :0x00030E5C
4
sec disable
56
  Start mic now ...
/proc/power_on open failed
start_mode = 0
ifconfig: SIOCGIFFLAGS: No such device
ATP_FOM_RET_OTHER_ERR err1
ATP_FOM_RET_OTHER_ERR err1
GlobeMac Init OK
NV_Read: Para is Error

 mac num={1,4,0,0,0,4}

 ATP_MIC_UpgValueChange ulDbInit=0
Load db now ...
now lAccessSemID [0] will be set to -1

 ATP_MIC_UpgValueChange ulDbInit=1
already config sync cFlags:2

 mic web [/usr1/z00425786/z00216571/B610MR/vendor/hisi/modem/atpv2/vendor/atp/package/atp/libraries/private/ssp/mic/main/src/webmicadapt.c] [MicCheckPortInUse] [211] MicCheckPortInUse sscanf_s failed!


 mic web [/usr1/z00425786/z00216571/B610MR/vendor/hisi/modem/atpv2/vendor/atp/package/atp/libraries/private/ssp/mic/main/src/webmicadapt.c] [MicWebSocketInit] [249] MicWebSocketInit type is 0...

 mic web [/usr1/z00425786/z00216571/B610MR/vendor/hisi/modem/atpv2/vendor/atp/package/atp/libraries/private/ssp/mic/main/src/webmicadapt.c] [MicWebStartCreateSockTimer] [285] Start MicWebStartCreatSockTimer now ...

****ledservice wifi init.*****
******ledservice wps init.******n>>>>>>button_Create over&t;&t;&t;&t;&t;&t;&t;&t;&t;&t;
>>>>>>button_Create over&t;&t;&t;&t;&t;&t;&t;&t;&t;&t;
>>>>>>button_Create over&t;&t;&t;&t;&t;&t;&t;&t;&t;&t;
>>>>>>button_Create over&t;&t;&t;&t;&t;&t;&t;&t;&t;&t;
Info, init t_exit_cond. pid: 189
Init_sys_netlink completely!
mic enter message loop now.
Info, init t_exit_cond. pid: 238
Info, init t_exit_cond. pid: 236
Info, init t_exit_cond. pid: 235
Info, init t_exit_cond. pid: 245
Info, init t_exit_cond. pid: 239
Mode Switch:Mode=3
Mode Switch:Mode1_check_flag=0
get_antenna_enable 0
ready to load Wi-Fi ko...........
Wi-Fi driver used nvram file is B610s-77a.nvm
Info, init t_exit_cond. pid: 240
AT_Cnum excute fail!
##sendmsg return 16, errno 2.
************************Write db to flash now ...
done sync
enable iptv failed: Operation not supported on transport endpoint
========> macalgrithm_4RSVD failed, ulMacType = 80000335 ulConutIndex = 0 *ulMacTypes[4].pulMacnum = 0, ulLength = 32
EthGetCfgNum return 2
enable vport process status is 0
nvram file :/var/nvram/bcm43217_nvm.txt
enable iptv failed: Operation not supported on transport endpoint
ifconfig: SIOCGIFFLAGS: No such device
smuxctl: socket or ioctl error for rem: Invalid argument
Wanumtscms: func[    WUTR098IniDevice] line[520]Initial UMTS device
wl0.1: No such device
wl1.1: No such device
-l sh start /var/firewall_init.sh
ifconfig wl1 up

===========set tcpnodelay failed

===========set tcpnodelay failed

===========set tcpnodelay failed

  open led file err

===========set tcpnodelay failed
wl0.1: No such device
2
wl1.1: No such device
3
Sorry, rule does not exist.
Sorry, rule does not exist.
Wanumtscms: func[WUIniPrivateMobileDevice] line[ 99]E5 device initial
ChannelWanGuide...0..

deal with rules over...

Read ppp session flash area error.
  open led file errcms init ok.
set_sys_autosleep write data failed.
Wanumtscms: func[   WUAtserverMsgProc] line[172]Nofift dialup to start detecting signal
Wanumtscms: func[     WUDialupMsgProc] line[483]Wireless device service down srv=[1]

AT_Cnum excute fail!
AT_Cnum excute fail!
ip6tables: Bad rule (does a matching rule exist in that chain?).
Sorry, rule does not exist.
Sorry, rule does not exist.
Sorry, rule does not exist.
Sorry, rule does not exist.
wl0.1: No such device
wl1.1: No such device
Unable to chmod /var/atp_boot_track.log: No such file or directory
Start mic now ...
/proc/power_on open failed
start_mode = 0
iptables: Bad rule (does a matching rule exist in that chain?).
iptables: Bad rule (does a matching rule exist in that chain?).
ip6tables: Bad rule (does a matching rule exist in that chain?).
-l sh end /var/firewall_init.sh
ip6tables: Bad rule (does a matching rule exist in that chain?).
************************Write db to flash now ...
done sync
WPS: set msglevel to 0x0
Failed to open /var/devgpio

### wps_wfi_init(): <wl0_wfi_enable=0><wl1_wfi_enable=0><wl1.1_wfi_enable=(null)><wl0.1_wfi_enable=(null)>WFI is not enabled ###
--------------------------------------------------------------------
---------------------------Welcome To Cli---------------------------
--SBAir3, B610s-77aTCPU-V100R001B192D11SP00C643, 54:25:EA:24:60:99--
--------------------------------------------------------------------

Login: >>>>upnp Disalbed......
************************Write db to flash now ...
done sync
ifconfig wl0 up

  open led file err

Login incorrect!

Login:

SONY WH-1000XM6をBluetooth LE Audio LC3コーデックをサポートしたBluetoothトランスミッターFlooGoo FMA120と一緒に使ってみる

SONYのWH-1000XM6というヘッドホンを持っている。 これはBluetooth接続のヘッドホンで、通話用のマイクも搭載されている。 もちろんclassic BluetoothのHFPとかで、この通話用のマイクは利用できるのだが、 コーデックがSBCであり...