Switchblox Nano as a on-the-fly VLAN tag adder

Hi, I’d like to share our config of Switchblox Nano (and possibly also older Switchblox and new Switchblox Industrial) as an on-the-fly adder/remover of VLAN tags.

We used this successfully to isolate a weird network device which produced a lot of traffic that confused other computers on the network and did not allow to configure a VLAN in its config. This way, you just connect this device to port 3 of the Switchblox and all of its traffic is automatically wrapped in VLAN 131. The device, however, sees the packets from VLAN 131 as untagged, so it can really be a dumb VLAN-unaware device. Any computer on the other switch ports can opt in receiving the weird device’s traffic by joining VLAN 131 network.


This only works with the older firmware that was controlled via command line. It should be possible to configure it from the new GUI, too, but I don’t have experience with that.

@josh-elijah do new Switchblox Nanos still have the STM32? The product page says nothing about it missing…


First, flash firmware from GitHub - botblox/switchblox-nano-firmware (or GitHub - botblox/switchblox-firmware: Firmware created in STM32CubeIDE that runs embedded on the SwitchBlox for large Switchblox) using the J-Link cable and a Nucleo board reflashed to act as J-Link debugger (this re-flash requires Windows). The Nucleo firmware is here: ST-LINK On-Board . Or you can use an official J-Link debugger if you have it.

Then connect the Switchblox Nano to a USB-serial. Best is connecting the Nano RX pin on the J-Link connector, and holding a cable at the TX test point while you’re executing the configuration commands.

Install the management software from GitHub - botblox/botblox-manager-software: Universal Command Line Interface for programming managed BotBlox offerings and configure the switch with this command (have RX and TX connected while it is running):

python3 -m botblox_config -S nano -D /dev/ttyUSB0 tag-vlan --default-vlan 131 --vlan-mode STRICT --header-action STRIP --port-header-action 3 ADD --port-default-vlan 3 1 --vlan 131 1 2 3

This sets port 3 to tag all packets received over wire with VLAN 131 and send them as tagged to other ports. If there is traffic on VLAN 131 coming from the other ports to port 3, the packets are untagged before they are sent to wire so that the device sees plain non-VLAN packets.

1 Like

Nice, thanks for sharing this, it’s an interesting use case for SwitchBlox Nano!

Yes, new versions of SwitchBlox Nano will contain the same microcontroller, and will do in the future. The same is not true of SwitchBlox, where the management has moved over to SwitchBlox Industrial.

This does leave SwitchBlox Nano as a bit of a product development “stub”, as not many customers are using it for any management functions, and we don’t plan to develop on the software we wrote for it. We are more focused on the switch management GUI/CLI/API for UbiSwitch and the layer 3 routing and multicast functionalities for Rugged Som + SwitchBlox Rugged.