Switch Management Software

Please view our blog on our latest Switch Management Software, ARIES.


The need for smarter switches

Our customers like our boards because they're incredibly small and easy to integrate, but increasingly we are seeing applications calling for "smarter" switches. 

A smart switch (often called a managed switch) is a general term but it generally means a switch that can be configured to do some kind of extra functionality above just routing packets to the right ports, for example...

  • Quality of Service: Routing specific types of packets with more priority to ensure that high-priority traffic is always given the most network capacity. 
  • Link Aggregation: Bundling individual ethernet ports to act like a single logical link to achieve increased data rates. 
  • VLANs: Separating devices based on a network into separate groups that can only communicate with each other. 
  • Port Mirroring: Duplicating network traffic on one port onto another port for analysis and monitoring.

In compact mobile platforms, the functionality of a smart managed switch can be highly advantageous. For example, Quality of Service can be used to ensure a stream from a specific sensor is always given priority to reduce sensing latency.

At BotBlox, we are developing a set of open-source software tools to allow configuration of our boards. This functionality, when coupled with the tiny size of our hardware, makes our switches the ideal solution for complex, specific, space-constrained networking inside mobile networks.

Our Software

Our management software currently consists of two key components.

Board specific firmware

This is firmware that runs on a microcontroller embedded onto our boards. This generally takes one of two forms:

  1. Custom written firmware that runs on an embedded STM32 microcontroller. This firmware communicates directly with the ethernet switch IC on the board for configuration.
  2. Off-the-shelf firmware provided by the manufacturer of the switch IC that runs internally on a microcontroller inside the switch IC itself).

The purpose of the board specific firmware is to:

  • Abstract the low level communication bus (usually MDIO) used for configuration away from the user.
  • Provide non-volatile memory that allows configurations to be stored and loaded to the ethernet IC between power cycles.
  • Provide a simpler way to set configuration variables for the user. For example, the user can send human readable commands to the microcontroller over UART, which is then parsed into MDIO.

Universal configuration software

This is software that runs on a command line interface and allows human readable configuration commands to be send to the switch. The aim of this software is to provide an easy to use switch configuration method that is common among all our boards. 

The general structure of this mechanism is shown below.

  • BotBlox Software receives user input and outputs serial on the computer USB port
  • A USB to UART converter is used to convert this to logic-level serial
  • UART commands are received by the microcontroller.
  • The BotBlox Firmware converts these UART commands to MDIO commands to configure the Ethernet IC.

Management Abilities on our boards

As a new feature for our products, only SwitchBlox and SwitchBlox Nano currently have management capability, and only a subset of the total possible features are currently implemented.

The table below shows the status of software and firmware for all our boards, as of August 2021.

Board Switch IC Embedded MCU Current Firmware State Current Software State Current functionality Future functionality
SwitchBlox IP175G No longer embedded Deprecated Deprecated None None
SwitchBlox Industrial IP175G STM32L011 Implemented Implemented VLAN IEEE std 802.1q(Port and Tag based)
Port Trunking (LACP)
Port Mirroring
QoS (Port based, 802.1p, IP DiffServe)
SwitchBlox Nano IP175G STM32L011 Deprecated, needs updating Deprecated, needs updating VLAN (Port and Tag)
Port Mirroring
Link Aggregation
QoS (Port basedf, 802.1p, Diffserve)
GigaBlox RTL8367 None None None None None
GigaBlox Nano RTL8367 None None None None None
SwitchBlox Rugged KSZ8567 STM32L011 Unimplemented Unimplemented None Various, see KSZ8567S functionality
GigaBlox Rugged VSC7511 None, use VSC7511 internal MCU Third-party NA Various, see VSC7511 functionality Various, see VSC7511 functionality

 Last updated: 19 December 2022

Getting Started on the Software

Currently all our boards ship without firmware, so to get started you will need to upload the firmware directly. We recommend reading the software guide, and also to get in touch with us so we can support your application.