NetHubQuickBringup
NetHub Quick Start
This document is for customers using NetHub for the first time. The goal is to get you to the currently supported bring-up path as quickly as possible.
1. Start with the Current Support Matrix
| Item | Current status |
|---|---|
| Recommended end-to-end reference path | SDIO
|
| USB profile | device-side backend implemented with USB ECM + USB ACM
|
| SPI profile | not implemented |
| USER virtual channel | current in-tree end-to-end path is SDIO
|
| Optional AT control solution | available, but not required for data-only use cases |
| Low power | currently BL618DG only
|
Read this table literally:
- if you want the shortest successful path today, choose
SDIO - if you are evaluating the new USB device-side backend, focus on the device profile and USB descriptors first
- do not plan on
SPIbring-up yet
2. Decide Whether You Need Only Data or Data Plus Control
NetHub core always focuses on the data plane first.
- data-only products
- keep
nethub - do not depend on
ATModule - host users simply use the exposed netdev path
- keep
- data plus AT-style control products
- optionally enable the example composition built around
ATModule + bflbwifid + bflbwifictrl
- optionally enable the example composition built around
The important boundary is:
nethubcore does not directly depend onATModuleATModuleis an optional example control consumer of the NetHub control-path facade
3. Choose the Host-Link Profile
The profile is selected at build time through exactly one CONFIG_NETHUB_PROFILE_* option.
3.1 SDIO
Recommended today.
What you get:
- current in-tree reference data path
- current in-tree host Linux stack
- current in-tree USER virtual-channel path
3.2 USB
Use this when you specifically want the device-side USB backend.
Current device-side behavior:
- data path through
USB CDC ECM - control transport plumbing through
USB CDC ACM
Current limitation:
- the in-tree host Linux docs and
nethub_vchanwrapper are still centered on the SDIO reference path
3.3 SPI
Not implemented yet.
4. Choose the Wi-Fi Backend
Default configuration:
CONFIG_WL80211disabledfhostselected
If you want wl80211, enable this in examples/wifi/nethub/defconfig:
CONFIG_WL80211=y
Notes:
fhostandwl80211are mutually exclusive- current NetHub supports both device-side Wi-Fi backends
5. Device Build and Flash
Build:
cd examples/wifi/nethub
# BL616
make CHIP=bl616 BOARD=bl616dk
# BL616CL
make CHIP=bl616cl BOARD=bl616cldk
# BL618DG
make CHIP=bl618dg BOARD=bl618dgdk CPU_ID=ap
Flash example:
cd examples/wifi/nethub
make flash CHIP=bl618dg COMX=/dev/ttyUSB0
6. Important Configuration Switches
Main configuration file:
examples/wifi/nethub/defconfig
Important switches:
CONFIG_NETHUB=yCONFIG_NETHUB_PROFILE_SDIO=yCONFIG_NETHUB_PROFILE_USB=yCONFIG_NETHUB_PROFILE_SPI=y- choose exactly one profile per build
CONFIG_NETHUB_CTRLCHANNEL_USE_ATMODULE=y- enable the optional example AT control solution
CONFIG_MR_VIRTUALCHAN=y- required for the current in-tree SDIO virtual-channel path
CONFIG_NETHUB_LOWPOWER_ENABLE=y- currently meaningful only on
BL618DG
- currently meaningful only on
About CONFIG_NETHUB_AT_USE_VCHAN:
- it still exists in the example configuration
- it is best treated as an example or legacy SDIO control-path switch
- do not document it as the core selector for all NetHub interfaces
Current default example facts:
CONFIG_NETHUB_PROFILE_SDIO=yCONFIG_NETHUB_PROFILE_USB=nCONFIG_NETHUB_CTRLCHANNEL_USE_ATMODULE=yCONFIG_MR_VIRTUALCHAN=yCONFIG_NETHUB_AT_USE_VCHAN=nCONFIG_MR_TTY=n
7. Hardware Interface Pins
The pin tables below are the current default mappings used by the in-tree BSP board helpers.
Reference sources in the repository:
- SDIO/USB pins
bsp/board/bl616dk/board_gpio.cbsp/board/bl616cldk/board_gpio.cbsp/board/bl618dgdk/board_gpio.c
7.1 Default SDIO Pins
These are the current board_sdh_gpio_init() mappings used by the BSP.
| Pin Function | BL616 / BL618 (bl616dk) |
BL618DG (bl618dgdk) |
BL616CL (bl616cldk)
|
|---|---|---|---|
SDIO_DAT2 |
GPIO10 |
GPIO43 |
GPIO6
|
SDIO_DAT3 |
GPIO11 |
GPIO44 |
GPIO7
|
SDIO_CMD |
GPIO12 |
GPIO45 |
GPIO8
|
SDIO_CLK |
GPIO13 |
GPIO46 |
GPIO9
|
SDIO_DAT0 |
GPIO14 |
GPIO47 |
GPIO10
|
SDIO_DAT1 |
GPIO15 |
GPIO48 |
GPIO11
|
Notes:
- this is the current 4-bit SDIO reference wiring used by the NetHub SDIO path
- the BSP configures these pins with `GPIO_FUNC_SDH | GPIO_ALTERNATE | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_1`
- if you are doing first bring-up, use this exact mapping first before trying a custom board layout
7.2 Default USB Pins
The current USB profile uses the board's default USB differential pair.
| Chip / Board family | Default USB pins in current BSP | Current BSP behavior | Notes |
|---|---|---|---|
BL616 / BL618 (bl616dk) |
board default USB port path | current BSP enables USB clock in board.c, but does not expose a dedicated board_usb_gpio_init() helper |
treat this as the board's fixed default USB routing in the current example |
BL616CL (bl616cldk) |
GPIO32, GPIO33 |
board_usb_gpio_init() configures the pair as analog pins |
current BSP documents the pair, not separate DP / DM labels
|
BL618DG (bl618dgdk) |
GPIO40, GPIO41 |
board_usb_gpio_init() configures the pair as analog pins |
current BSP documents the pair, not separate DP / DM labels
|
Notes:
- for
BL616CLandBL618DG, the BSP helper only tells us the USB pair used by the board, not which pin isD+and which pin isD- - if you are wiring a custom board and need explicit
DP/DMpolarity, confirm it from the board schematic or chip/package documentation - for the current in-tree NetHub reference flow, USB is device-side bring-up work, while the full host reference stack is still centered on SDIO
8. Host Bring-Up Guidance
For the current in-tree host Linux reference stack, use:
bsp/common/msg_router/linux_host/userspace/nethub/README.md
Today that host stack is primarily the SDIO reference flow.
For USB projects, keep expectations aligned with current code status:
- device-side
ECM + ACMbackend exists - host-side transport flattening into the same
nethub_vchanbehavior as SDIO is not fully documented or aligned in-tree yet
9. USER Virtual Channel Guidance
If you need private application messages between host and device:
- device API:
components/net/nethub/include/nethub_vchan.h - host API:
bsp/common/msg_router/linux_host/userspace/nethub/virtualchan/nethub_vchan.h
Current reality:
- end-to-end in-tree USER virtual channel is the
SDIOpath - the public device API is transport-neutral by design
- the in-tree implementation behind it is still SDIO-backed today
10. Low-Power Note
CONFIG_NETHUB_LOWPOWER_ENABLE is currently supported only on BL618DG. The example configuration automatically disables it on other chips.
11. Where to Go Next
- overall entry: NetHub.md
- architecture: NetHubArchitecture.md
- USER virtual channel: NetHubVirtualChannel.md
