A free software solution for wireless IP networking over Digi's XBee API.
Set to "API mode (with Escapes)".
Note: These have been verified on Ubuntu 18.04 with XBee-PRO 900HP units . If you can add instructions to broaden the scope of these examples, please do so.
There are two machines in the required setup that I will call "Client" and "Server". It does not matter which XBee is connected where. It only matters that openssh-client
is installed on "Client", and openssh-server
_is installed on "Server".
On both "Client" and "Server", satisfy dependencies of StrangeNet with:
sudo apt update && sudo apt install -y libpython3-dev python3-pip
sudo python3 -m pip install digi-xbee
sudo python3 -m pip install pypacker
sudo python3 -m pip install python-pytun
sudo apt install openssh-{client|server} # client on "Client", server on "Server"
Next, navigate to the strangenet
folder in your local checkout of this repo. Before running, make sure that you have set the following environment variables correctly:
STRANGENET_XBEE_PORT
STRANGENET_XBEE_BAUD
STRANGENET_IP
The first two environment variables are determined by the tty device descriptor (e.g. /dev/ttyUSB0
) and the baud rate specified in the XBee configuration (e.g. 230400), respectively. The third environment variable is whatever IPv4 descriptor you want for the StrangeNet interface.
For example, on the "Client", setup STRANGENET_IP
by executing in your terminal window:
export STRANGENET_IP=10.0.0.1
Give the "Server" interface a different name on the same subnet:
export STRANGENET_IP=10.0.0.2
From the current folder, navigate to the strangenet
folder and then execute the following to launch strangenet
:
python3 main.py
Now, you are setup to run a couple of quick IP networking commands: ping
and ssh
.
On either "Client" or "Server", try to ping the other machine with:
ping 10.0.0.{1|2} # 1 if pinging "Client" from "Server", 2 otherwise
From "Client", connect to "Server" over ssh
with:
ssh {username-on-server}@10.0.0.2 # username-on-server is whatever your username is on "Server"