Border Router on Arduino Nano 33 ble

Hi all,

I’m trying to build and run gnrc_border_router example on an Arduino Nano 33 ble board.

$ cd ${RIOT_BASE}/examples/gnrc_border_router
$ BOARD=arduino-nano-33-ble make
$ BOARD=arduino-nano-33-ble make flash

Command lines succeed but the next one failed because the serial interface to the board (/dev/ttyACM0) is not longer anymore.

$ BOARD=arduino-nano-33-ble make term

I’ve checked if hello-world and default examples work and both are ok. I also known the border router example work fine with boards with similar but less powerfull cpu (nrf52832 vs nrf52840, 64KB vs 256KB of RAM). Moreover I known the usb of this board is detected differently in flashing mode:

$ lsusb
Bus 001 Device 021: ID 2341:005a Arduino SA Arduino nano 33 BLE

or in normal mode:

$ lsusb
Bus 001 Device 022: ID 1209:7d00 Generic arduino-nano-33-ble

When the board doesn’t detect the normal mode after being flashed, that usually means the firmware haven’t initialized properly.

Here is a list of modules includes during the build for the default example but not for the gnrc_border_router example:

auto_init_usbus						
periph_init_usbdev					
periph_init_usbdev_clk					
periph_usbdev						
periph_usbdev_clk					
stdio_available						
stdio_cdc_acm						
usb_board_reset						
usbus							
usbus_cdc_acm

I’ve added all these modules, one by one, to the border router example and failed to build with the last one, usbus_cdc_acm, which complained about duplicate codes between drivers/ethos/stdio.c and sys/usb/usbus/cdc/acm/cdc_acm_stdio.c.

Thanks in advance for your comments, suggestions or advice.

Sam.

The situation is quite similar to that described in previous discussion : Border router with USB CDC-ECM.

Sam.