LinHT Image Manual

From M17 Foundation Wiki
Jump to navigation Jump to search

Connecting to LinHT

After connecting LinHT over USB-C a new network adapter should appear in your system (RNDIS driver needed under Windows).

LinHT should be reachable under the IP address of 10.17.17.17.

Network services

There are 2 ways to manage LinHT:

SSH

A SSH server is listening on port 22

For remote connections with vscode, an entry with the platform type is needed:

Press ctrl+, to open settings and search for remote.ssh.remoteplatform.

Enter 10.17.17.17 as Item and select linux as value

LinHT Web Manager

A simple web management is accessible over http://10.17.17.17:7373.

Credentials are as follows:

Username: linht
Password: linht

Files and folders

Path Content
/usr/share/linht Configuration YAML file along with fonts, flowgraphs, icons, and sounds
/var/lib/linht Application files like the message database etc.

Environment variables

Variable Content
FG_PATH Location of GNU Radio flowgraphs
MSG_DB Message database (SQLite) path

SX1255 configuration

SX1255 is a complete IQ transceiver chip, supporting full duplex operation. Effective frequency coverage is 356-562MHz (RX and TX oscillators report PLL lock within this range at room temperature). Baseband input and output uses I2S interface (I and Q branches are mapped to left and right audio channels). Supported sample rates are 125, 250, and 500kHz.

sx1255-spi tool

sx1255-spi tool can be used to configure the RF front end chip.

Example SX1255 initialization for reception:

sx1255-spi -E -s 500 -r 433475000 -l 24 -p 20 -R 1 -P

Example SX1255 initialization for transmission:

sx1255-spi -E -s 500 -t 433475000 -m -7.5 -d -3 -T 1 -P

After boot-up, only the first sx1255-spi command requires the -E option (it resets the SX1255), unless it is really required to reset the front end.

LinHT-utils

Compiling and running GNU Radio flowgraphs

Change the directory to the one holding GNU Radio flowgraphs:

cd /usr/share/linht/grc

Then, run grcc:

grcc som_m17_test_rx.grc

This should generate an executable python file. It is required to set the execution privileges using chmod:

chmod u+x som_m17_test_rx.py

At this point, the flowgraph can be executed:

./som_m17_test_rx.py

Note

Performance of the Sinc Compensating Filter (custom Python Block) is low. Its intended use is fine-tuning the inverse sinc filter required in the baseband path. Knowing its set of parameters, the filter taps can be used with a much more robust Decimating/Interpolating FIR Filter block.

Miscellaneous tests

Keypad test

Keypad test can be conducted using evtest:

evtest /dev/input/event0

Every key press should result in a few new lines added to the log, notifying the user which key was pressed (or released).

Other

ALSA device blocked after killing a GNU Radio flowgraph

Sometimes, for various reasons, flowgraphs might freeze. Normally, killing them is the only option, but it keeps the sound device(s) blocked. This prevents the user from restarting the flowgraph, as it can not initialize resources properly (ALSA: device or resource is busy error). Fortunately, a simple fix exists.

To list blocking processes, issue:

fuser -fv /dev/snd/*

Then, when the PID is known, do:

kill -9 PID

The blocked sound interface should now be freed.

Playing .wav files

To play a WAVE audio file using CLI, issue:

aplay -D plughw:wm8960audio /usr/share/linht/sounds/sms.wav

Playing video files to the framebuffer

ffmpeg -re -i <file> -s 160x128 -pix_fmt bgra -f fbdev /dev/fb0