The Nimble is a tightly integrated radio solution for autonomous robots and unmanned systems. It leverages Doodle Labs’ industrial long-range transceivers and runs the Mesh Rider Lite operating system on the robot’s CPU. Mesh Rider Lite includes customized drivers and software, which includes optimized configuration and our proprietary interference avoidance solution, Sense. The transceiver has a mini PCIe interface and works with Linux-based machines. For this evaluation guide we are using the Nvidia Jetson Orin Platform.
1. Nimble Radio
2. M.2 Key E to mPCIe adapter (recommended option)
3. Nvidia Jetson Orin running Jetpack 6.0 with Ubuntu 22.04.5 LTS with Linux 5.15.136-tegra kernel
4. Nimble Software Package (please contact your Doodle Labs Sales Representative for this)
5. Internet Access via ethernet
Nvidia Jetson Orin Nano Requirements
The Nimble software suite only supports the Nvidia JetPack 6.0 stack which features Ubuntu 22.04.5 LTS with GNU/Linux 5.15.136-tegra kernel. It is very important to ensure that the system is using the 5.15.136-tegra kernel as certain packages depend on it.
To check if you are running Jetpack 6.0, run the following command in a terminal on your Jetson Orin board.
sudo nvbootctrl dump-slots-info
Jetpack 6.0 correspond to version 36.3.0
If you are not running Jetpack 6.0 please follow this guide but note the guide is likely to be using a newer Jetpack version than supported by our software. At step 6 of the guide, don't download the image listed but get it from here. The image should be jp60-orin-nano-sd-card-image.zip . For other details about Jetpack 6.0 look at this page.
We will be removing the wifi module that comes with the Jetson Nano Orin and replacing it with the Nimble Radio.
1. Make sure the hardware is powered down.
2. Flip the board over carefully and you will see the Wi-Fi Module and the antennas.
3. Carefully undo the antenna cables from the antenna ports as shown below. A small flathead screwdriver should provide enough leverage to undo the connection.
4. Unscrew the screw in the photo above. Now you should be able to carefully remove the Wi-Fi module from the slot. Place the Wi-Fi module somewhere ESD safe and keep the screw as it will be used to install the Nimble Radio.
5. Install the M.2 Key E to mPCIe adapter to where the Wi-Fi module used to be. If you are using the recommended ADT-Link adapter. Insert the adapter into the slot.
To secure the adapter, lift up the cable to reveal the screw hole.
Use the screw from earlier to secure the adapter.
6. Install the Nimble radio into the miniPCIe connector of the adapter.
7. Attach antennas to the Nimble radio. You could potentially use the existing antennas on the board if you have the U.FL connector variant of the Nimble radio.
The Nimble drivers are only compatible with a specific version of the Linux kernel so we need to disable auto upgrade to prevent kernel updates which may cause the drivers to stop working.
1. Open a terminal (Ctrl + Alt + T) and run the following commands
sudo -i
nano /etc/apt/apt.conf.d/20auto-upgrades
2. Paste these lines. If this file already contains these lines but with a "1" instead, please change it as below.
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";
3. Save the file by pressing Ctrl + o
4. Close nano by pressing Ctrl + x
You are free to update your applications but just be careful not to do updates that will update the linux kernel.
1. Install an SSH server such as openssh-server. This will allow you to SSH into the board.
sudo apt install openssh-server
2. Install net-tools. This will allow you to use utilities such as ifconfig.
sudo apt install net-tools
3. After installing the above, you can now SSH into the Jetson Orin board from another PC on the same network. If you wish to SSH in follow the rest of these instructions.
a ) Run the following and note down the IP address of the network interface you are using to connect to the local network.
ifconfig
b) Run the following to SSH in.
ssh <username>@<IP>
username is the user name you selected during your installation, and IP is the IP address you noted down from ifconfig.
4. Install iperf3. iperf3 is a useful tool for throughput testing.
sudo apt install iperf3
5. Install bridge-utils. This allows you to run the brctl command.
sudo apt install bridge-utils
6. Install socat. This allows you to use the messaging system from the command line.
sudo apt install socat
7. Install Additional Packages for Remote Access: Install htop, nload, iperf and screen for enhanced remote monitoring and networking utilities:
sudo apt update && sudo apt install htop nload iperf screen nano
8. Modify Network Manager Settings to unmanaged the Wireless NIC: If you want to ensure the wireless network interface card (NIC) is no longer managed by NetworkManager, modify its configuration file:
sudo nano /etc/NetworkManager/NetworkManager.conf
At the end of the file, add the following lines:
[keyfile]
unmanaged-devices=interface-name:wl*
9. To apply the changes made to the configuration file, restart the NetworkManager service
sudo systemctl restart NetworkManager
Please contact your Doodle Labs Sales Representative for the Nimble Software package
The Nimble software package has both kernel space driver and user space applications and libraries packaged into multiple .deb Debian packages. The kernel driver packages for 802.11n is coupled to specific version of Kernel. Below is the list of kernel specific debian packages we will be installing.
File Name |
Description |
hostap_0.0-1_arm64.deb |
Provides customized hostapd, hostapd_cli, wpa_supplicant and wpa_cli |
iw_5.19-1_arm64.deb |
Provides customized iw utility and dependent libraries |
backports-5.15.136-tegra_6.6.15-1__arm64.deb |
Provides customized ath9k driver (Kernel version specific) for DoodleLabs 802.11n transceiver. |
1. On the Jetson Orin board, create a folder ~/Nimble and copy the Nimble Software Package to this folder.
2. Install the .deb packages
sudo dpkg -i backports-5.15.136-tegra_6.6.15-1_arm64.deb hostap_0.0-1_arm64.deb iw_5.19-1_arm64.deb
3. Reboot the board
sudo reboot
4. Check that the radio interface is running by running
lsmod | grep compat
You should see the following line.
compat 12ss288 4 ath9k_common,ath9k,mac80211,cfg80211
By default, Ubuntu uses the Network Manager service for network configuration. We have already stopped the Network Manager from managing wireless interfaces. We will be using the Nimble Front-end software to manage the wireless interface by using wpa-supplicant, hostapd, and isc-dhcp-server. The Nimble Front-End provides a unified configuration interface for wireless configuration, IP configuration, traffic prioritization, and Sense. The Front-End also enables compatibility with Doodle Labs Mesh Rider radios.
The following files are provided for Front-End Installation.
nimble_config.tar |
CLI utility to configure Nimble/Hostapd/wpa_supplicant AP and STA device |
nimble_installer.tar |
CLI utility to install and configure binaries, libraries and dependency services of Nimble including acs_multiband. |
1. Go back the to folder where the Nimble software package was installed ~/Nimble
2. Extract the two Nimble Front-End files
tar -xf nimble_installer.tar
tar -xf nimble_config.tar
Note: Internet Connectivity is required for this next step of using the Nimble Installer
There are two ways to proceed. One option is to configure for Nimble to be in Access Point mode and the other is to configure Nimble to be in Client/Station mode.
Access Point Mode
To install and configure the radio to be in AP mode do the following
1. Navigate to the ~/Nimble/nimble_installer directory in a terminal and run the following command
sudo ./nimble_installer.sh AP
Below is a sample output for reference
2. Reboot the device after installation is complete
sudo reboot
3. Check if the AP is functional using iw command, please use the DoodleLabs WiFi card interface name, for example “wlp3s0”
sudo iw wlp3s0 info
The device will act as a WiFi AP with the following settings
SSID: wireless-hotspot
PSK: DoodleSmartRadio
IP: 10.223.3.1/16 and running a DHCP server
Client Mode
To install and configure the radio to be in AP mode do the following
1. Navigate to the ~/Nimble/nimble_installer directory in a terminal and run the following command
sudo ./nimble_installer.sh Client
Below is a sample output of the script for reference
2. Reboot the device after installation is complete
sudo reboot
The device will act as a WiFi Client device with the following parameters
SSID: wireless-hotspot
PSK: DoodleSmartRadio
IP: DHCP Client
3. If an access point is running with the above credentials, on the same channel and bandwidth (it should be if it is the default Nimble AP installation). Check if this client/station is connected to AP using following commands, please use the DoodleLabs WiFi card interface name, for example “wlp3s0”
sudo iw wlp3s0 info
sudo iw wlp3s0 station dump
You can switch between AP and Client mode by running the nimble_installer.sh script again with the desired mode and rebooting.
iperf3 -s
2. On the WiFi Client device terminal, run a ping test from Client to AP device and a iperf3 test to check connectivity and minimum throughput. Client will be assigned with a DHCP address from 10.223.x.x/16 subnet by the AP
ping 10.223.3.1
iperf3 -c 10.223.3.1 -t 30
Please check out the Nimble Application Guide for more details on using the Nimble Radio.