cascoda-sdk-pages

Border Router Setup

Cascoda provides an example Thread Border router platform for testing & development purposes. The software runs on a Raspberry Pi, using a Chili2S Pi Hat for communication.

Required Hardware

Initial Setup

Please flash an SD card with the latest pre-built Raspberry Pi image.

Manually running the install script

Alternatively, you may manually set up a border router using the legacy install script, though this process takes a couple of hours & should not be necessary for most use cases.

  1. Install a fresh Raspberry Pi OS (Lite is fine) onto a microSD card, and insert into Raspberry Pi
  2. Flash the mac-dongle binary (configured for UART) onto the Pi Hat Chili2
  3. Power on the Pi with the Pi Hat attached
  4. Run the Border Router Setup script on the Pi, follow the prompts

Note: The Pi may lose connectivity during the setup process, so ideally don’t run this script over SSH - run it directly instead. A program such as tmux can be used to work around this.

Form a Network

After installing the border router and rebooting the Pi, a new Thread network can be formed by navigating to the OpenThread Web GUI. The URL of the Web GUI is printed during the final stage of the setup script. (It’s hosted on port 80 of the Raspberry Pi)

More information on network formation is available here.

Commissioning New Nodes on to Network

Nodes can be commissioned onto the network by following the Thread Commissioning Guide.

Enable Local IPv6 on an Adjacent Network that is Currently IPv4 Only

If your local network doesn’t already support IPv6, then you can enable the Raspberry Pi becoming the local IPv6 Router by editing /etc/radvd.conf and un-commenting the commented lines in the eth0 interface. The IPv6 prefixes are randomly generated at install time, so yours will be different.

interface eth0
{
    AdvSendAdvert on;
#    prefix fdbe:7313:14d7:3::/64
#    {
#        AdvOnLink on;
#        AdvAutonomous on;
#    };
    route fdbe:7313:14d7::/48
    {
            AdvRoutePreference high;
    };
};