Network Configuration - Offset-official/Nautilus-One GitHub Wiki

At this point, we should have a functional Nano and RPI4, but we need to configure the networks of each device so that they can communicate with one another. Additionally, we should configure a laptop to use for tethered and bench operations. This laptop is referred to as the OCU (operational command unit) from this point forward.

Our Nano and RPI are connected directly via their Ethernet ports. This makes connections between them relatively straightforward. However, Nautilus does not currently have space for an Ethernet switch, meaning that the connection to the OCU is managed through one computer using a USB-Ethernet adaptor. In our case, we use the RPI. So essentially, we have to manage the connection between the RPI and Nano, the RPI and OCU, and forwarding between the Nano and OCU via the RPI.

The IPs current in use are as follows:

  • OCU (external): 192.168.2.1
  • RPI (internal): 192.168.2.2
  • Nano (internal): 192.168.2.3

We use the 192.168.2 subnet for internal addresses.

Configure and Test Network

The following sections have instructions for each device to configure their network setup.

To test, ping the RPI and Nano from one another, and ping them both from the OCU. Once this has been confirmed, ssh between all machines. Consider setting up ssh keys to reduce the amount of password typing you'll have to do. Please do your testing with Ethernet cables that are known to be working, and do this testing before putting the Nano or RPI in the robot. Make sure that your network setup is working before trying to assemble, having a broken network setup and trying to debug with devices in the robot is annoying.

Configuring the RPI's Network

The Raspberry Pi, in our case, is the device that connects to the OCU via a USB-Ethernet adaptor. This means that we need to configure the RPI to connect to the OCU via its USB-Ethernet adaptor, and then connect to the Nano via its Ethernet port.

It also acts as a router between the OCU and the Nano, so we need to configure it to forward packets between the two networks.

Start by assigning the RPI a static IP address on it's USB-Ethernet adaptor (eg, usb0). This is done in the /etc/dhcpcd.conf file. Add the following lines to the end of the file:

interface <usb0>
static ip_address=192.168.2.2

There's an additional step to create a systemd service that will automatically start the USB-Ethernet interface on boot.

This step is a little hacky and we have not documented it well. If you are interested in this step, please reach out to us and we can help you set it up.

Configuring the Nano's Network

The Nano is connected to the RPI via its Ethernet port.

Again, we need to assign the Nano a static IP address on its Ethernet port.

The most straightforward way to do this is by logging into the Nano and using the system settings to configure the network.

IP Address: 192.168.2.4
Netmask: 255.255.255.0

The OCU needs one additional step to connect to Nano via RPi. Based on your OS, you need to add a route which tells the OCU to send packets destined for the Nano's IP address through the RPI.

For eg, if you are using a Mac, you can add the route by running the following command in the terminal:

sudo route add -host 192.168.2.4 192.168.2.2
⚠️ **GitHub.com Fallback** ⚠️