Outernet提供了一个在Dreamcatcher 3上运行的LoRa双向开源文本聊天应用程序

聊天程序依赖硬件板,所以需要两个Dreamcatcher 3硬件板。

通过该这个程序,可以在电路板之间实时聊天。业余无线电爱好者可能对这些电路板感兴趣(或者某些潮流Geek们),包括那些在短期内可能希望获得加密聊天的用户(虽然这玩意儿没加密)。

Outernet在推广的过程中没有特别宣传他们的广播传输功能,因为这块硬件板没有经过FCC认可,所以它不能合法地用作传输和收听LoRa IoT传感器的ISM频段LoRa设备。但是如果你能确保输出干净合法并且在火腿带上,你可以用火腿传送它。

Dreamcatcher v3.0

我们找到了两个Dreamcatcher 3板来测试聊天应用程序。

与之前的版本一样,Dreamcatcher是一个内置无线电的完整计算板。除了这个时间而不是RTL-SDR,无线电是硬件LoRa模块。另一个区别是现在有一个内置的液晶屏。

在电路板上有两个SMA端口,一个标记为“Direct”,另一个标记为“LNB”。直接端口是我们需要用于聊天应用程序的端口,因为这是可以传输的端口。还有两个SD卡插槽,一个用于操作系统,一个用于存储,麦克风和耳机插孔,带有WiFi适配器的USB-A插槽,以及两个USB微插槽,一个用于USB OTG,另一个用于电源。

该套件还配有一个LNB,旨在与Outernet卫星服务一起使用。LNB仅接收,因此不能与聊天应用程序一起使用,因此如果尝试使用LoRa发射器,则需要使用自己的天线。

聊天设置和使用

首先,我们将最新版本的Dreamcatcher Armbian OS刻录到两个SD卡上,并在每个板中插入一个。由于Dreamcatcher 3具有内置LCD屏幕,您可以通过屏幕登录和访问终端。但由于只有一个USB端口可用,您需要一个USB集线器才能插入鼠标和键盘,以及随附的USB WiFi适配器。或者,如果将USB OTG端口连接到PC,则可以通过USB串行连接与其连接。

聊天软件可在GitHub上获得,要安装它,只需在Dreamcatcher的终端上运行以下命令:

1
2
3
4
sudo apt update
sudo apt install libsoc-dev libsoc2
git clone https://github.com/Outernet-Project/Dreamcatcher-Packet-Tester
make

编译完成后,可以用命令启动聊天程序:

1
sudo ./chat

使用LoRa设置

默认情况下,实际RF输出频率硬编码为2.4 GHz。如果要更改它,可以使用基于终端的文本编辑器(如nano)编辑main.cpp文件,并查找#define RF_FREQUENCY条目。然后,您需要通过再次运行'make'来重新编译。但请注意,在本文发布时,根据Outernet,该软件仅在2.4 GHz左右正常工作。显然这只是一个软件限制,一旦修复,你应该能够在85 MHz到5400 MHz之间的任何频率上进行传输。

此外,默认情况下,LoRa'Spreading Factor'设置为最大值12.这意味着在发送消息和在另一个消息上接收消息之间大约有1秒的延迟。

也可以通过编辑“modulationParams.Params.LoRa.SpreadingFactor”变量在代码中调整扩展项。这决定了数据包在时间上的分散程度。较大的扩展项导致更稳健的无差错通信,而较小的因素导致较低的延迟。下面是代码的一些有效扩展项条目。

请注意,如果减少扩展项,还需要减少RX_TIMEOUT_VALUETX_TIMEOUT_VALUE #defines(需要在代码中搜索这些行。提示:在Nano CTRL + W中搜索。)。对于扩展项7,100ms的超时效果很好。

1
2
3
4
5
6
7
8
LORA_SF5
LORA_SF6
LORA_SF7
LORA_SF8
LORA_SF9
LORA_SF10
LORA_SF11
LORA_SF12

也可以使用“modulationParams.Params.LoRa.Bandwidth”变量上的以下代码将带宽从200 kHz调整到1600 kHz。

1
2
3
4
LORA_BW_0200
LORA_BW_0400
LORA_BW_0800
LORA_BW_1600

LoRa’编码率’也可以通过“modulationParams.Params.LoRa.CodingRate”变量进行更改。

1
2
3
4
5
6
7
LORA_CR_4_5
LORA_CR_4_6
LORA_CR_4_7
LORA_CR_4_8
LORA_CR_LI_4_5
LORA_CR_LI_4_6
LORA_CR_LI_4_7

还可以通过调整#define TX_OUTPUT_POWER指定的值来调整TX输出功率。默认情况下,它设置为最大输出功率13 dBm。可用的最低值为-18 dBm。

请记住,在main.cpp文件中进行更改后,您必须通过运行'make'重新编译聊天程序。

下面我们用HackRF可视化不同的LoRa扩展项。看看扩频项如何改变数据包传输时间很有意思。