CaribouLite #42023/06/03 13:53

ドライバの開発に進展があったのでリトライしてみたが,Caribouliteが見付からなくなった。

$ sudo SoapySDRUtil --find
######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################

[INFO] SoapyCaribouliteSession, sessionCount: 0
... 
I FPGA caribou_fpga_init@caribou_fpga.c:124 Initializing io_utils_spi
E IO_UTILS_SPI io_utils_spi_add_chip@io_utils_spi.c:433 spi_init function failed with code -1, (SPI_ERR_OPEN) 
...
W IO_UTILS_SPI io_utils_spi_transmit@io_utils_spi.c:605 generic function transfer not implemented 💦
...
[ERROR] cariboulite_init_driver() failed

meexmachinaさんによるとI'm currently trying to eliminate the SUDO part altogether.とのことで,ログにも出力されている通り・未完・な感じ。

satnogs-clientはSoapySDRServer経由での接続に難があるので,SUDO問題の解決に期待してます!

本日の衛星: RS-44, JO-97で交信。

Jetson Nano,その後2023/05/07 19:06

この連休はJetson Nanoを配置転換してみた。

satnogs-clientをインストールしてみた。インストールにはbullseyeを要求するが,Jetson向け開発環境:JetPackはnanoだとbionicなので, satnogs-client-dockerにした。docker runする毎にvolk_profileが走るが,気にしない。 あとbionicは今月末にEoLになるので,Qengineeringさんのfocalに切り替えておいた。

Creating "/var/lib/satnogs/.volk"...
Writing /var/lib/satnogs/.volk/volk_config...

FUNcubeLibをインストールしてみた。起動が爆速になったし,CPU負荷が(Pi2で100%超えが)30%程度に落ち着いたが,デコードしない。謎だ...

結局,RetroPieに落ち着いた。先人に感謝です。 Falcon3を遊びたいのだが,DOSEMUでMIDIが使えない⇛kernelの再構築が必要と分かったので,PS1エミュレータでワースタを遊んでいる。

本日の衛星: Orbicraft-ZorkiyのSSTVを受像したが,コールサインとロゴの判別にやや難あり。金曜までに(Diplomaに必要な)あと2枚 撮れるかな!?

CaribouLite #32023/04/29 13:29

CaribouLiteの受信周波数をSoapySDRServer経由でセットできない問題は,(理屈は分からないけど)同じマシン/Pi4でSoapySDRSeverとsatnogs-clientを動かす事で解消した。

[INFO] Initializing DeviceID: 1, Label: CaribouLite HiF[795f3bbf], ChannelType: HiF
[INFO] Creating SampleQueue MTU: 0 I/Q samples (0 bytes)
[INFO] Enterring Reader Thread
[INFO] SoapyRemote::setupRxStream(remoteFormat=CS16, localFormat=CF32, scaleFactor=4095, mtu=1500, window=44040192)
...
[INFO] setupStream: dir= RX, format= CS16
...
[INFO] setFrequency dir: 1, channel: 0, freq: 437028001.14

レポートできたが,ビーコンっぽい信号が見当たらず,受信成功の確証なし。データ形式がSatNOGS標準のCF32でなくCS16な表示はAirspyでも表示されていたので,問題ないと思う。

なので,次の観測にトライしたら,受信周波数はセットできたがデータ取得に失敗してた。

satnogs-client[1986]: [INFO] setFrequency dir: 1, channel: 0, freq: 145724999.74
SoapySDRServer[1606]: 04-29 12:19:37.364  1606  2000 D CARIBOULITE Radio cariboulite_radio_activate_channel@cariboulite_radio.c:803 Activating channel 1, dir = RX, activate = 1
SoapySDRServer[1606]: 04-29 12:19:37.365  1606  2000 D CARIBOULITE Radio cariboulite_radio_activate_channel@cariboulite_radio.c:835 Setup Modem state tx_prep
SoapySDRServer[1606]: 04-29 12:19:37.365  1606  2000 D CARIBOULITE Radio cariboulite_radio_activate_channel@cariboulite_radio.c:849 Setup Modem state cmd_rx
kernel: [ 5925.980630] smi-stream-dev soc:smi_dev: Set STREAMING_STATUS = 2, cur_addr = 12
SoapySDRServer[1606]: 04-29 12:19:37.665  1606  2003 D CARIBOULITE Radio cariboulite_radio_read_samples@cariboulite_radio.c:967 SMI reading operation returned timeout
...
kernel: [ 5927.032813] smi-stream-dev soc:smi_dev: DMA bounce timed out
...
satnogs-client[1639]: satnogsclient.observer.observer - ERROR - Waterfall data array is empty

CaribouLiteにアクセスできないみたいで,SoapySDRUtilからも見えなくなったが,SoapySDRServerを再起動したら解消した。

$ sudo SoapySDRUtil --find
...
I IO_UTILS_Main io_utils_setup@io_utils.c:26 initializing pigpio
V initInitialise@pigpio.c:8306 Can't lock /var/run/pigpio.pid

本日の衛星: FO-99, RS-44で交信。

CaribouLite #22023/04/22 14:22

Raspbian SatNOGS ImageでSMI kernel moduleがコンパイルできない件, ググると『Kernelは64bitだがOSが32bitなのが問題』で /boot/config.txtでarm_64bit=0にすると解決した。

$ uname --machine
aarch64
$ getconf LONG_BIT
32

自分が想定する用途:satnogs-clientからCaribouliteを利用するときには,sudo問題が課題となるので,SoapySDRServerをroot権限で動かしてSoapy Remoteでアクセスすれば良いハズだ。

satnogs_soapy_rx_device: remote=192.168.0.111,soapy=0,driver=remote,remote:driver=Cariboulite,device_id=1
satnogs_antenna: TX/RX 6GHz
satnogs_rx_samp_rate: 4e6
satnogs_rf_gain: '25'

別マシンにsatnogs-client-dockerをインストールしてから,SoapySDRServerが動いているPi4のCaribouliteにリモートアクセスすると,pigpio問題は回避できたが,周波数がセットできない!

[ERROR] setFrequency dir: 1, channel: 0, freq: 435625000.00 FAILED 

SoapySDRServerのログを視ると,エラーがやっぱり発生しており,観測は失敗している。Audio,Waterfallが記録されず💦

SoapyServerListener::accept([::ffff:192.168.0.112]:53034)
Printing 'findCariboulite' Request:
D CARIBOULITE Radio cariboulite_radio_activate_channel@cariboulite_radio.c:803 Activating channel 1, dir = RX, activate = 1
E IO_UTILS_SPI io_utils_spi_transmit@io_utils_spi.c:517 uninitialized device 
...
D CARIBOULITE Radio cariboulite_radio_read_samples@cariboulite_radio.c:967 SMI reading operation returned timeout

SoapySDRServerの設定は,Airspyで追試すると観測できているので,問題無さゲ。

CaribouLite #12023/04/01 21:25

CaribouLite

ラズパイ専用SDR:CaribouLiteが やっと 届いた。

SatNOGSな環境にドライバ類をインストールしたが, kernelを更新したらSMI kernel moduleの再buildに失敗! 状況はissue #92と同じで, /usr/srcに6.1.19-v8+のkernel headersが見つからない。 別の aarch64なbullseyeな環境:PiSDRだとbuildできるのが不思議だ...

SDRソフトを動かす際にsudoが必要でビックリ! So currently, sudo'ing is needed whenever CaribouLite is accessed だそうだ。

sudo+αの設定をした結果,SDR++が動くようになったが,電波が見えないので悩む。 GitHubのissueを読んで,konimaruさんのforkに切り替える。 config.txtを設定変更する。 SDR++のBandwidthを2.0MHzに変更して, 「Decimationは4〜8で, AGCはオフが良い」というバッドノウハウを設定したのが添付画像。FM放送が やっと 視えるようになった。