BeagleBone Black Industrial fails to find Element 14 Wireless Cape

Hi all,
I have a BeagleBone Black Industrial that has been flashed with Debian 11.x (Bullseye) IOT Snapshot. When trying to connect to the Wireless Connectivity Cape from Element 14, I followed this tutorial along with the comment made by chicagobob:
https://community.element14.com/products/devtools/technicallibrary/m/files/420?CommentSortBy=CreatedDate&CommentSortOrder=Descending

It boots up normally, however I am not sure that the /boot/uEnv.txt is correctly finding the Wireless Cape. wlan0 does not show up in ifconfig even after modifying the config file at /etc/wpa_supplicant/wpa_supplicant-wlan0.conf. The only results in ifconfig are eth0, lo, usb0, and usb1. wpa_cli and wpa_supplicant commands fails when trying to interact with or bring up wlan0. Similar results for using ip link set.

Is the Wireless Connectivity Cape being booted properly in /boot/uEnv.txt or is there a specific way to bring up wlan0?

This cape used the wrong pins for i2c id so you have to force the specific overlay

On the Element 14 page, someone commented that the “/lib/firmware/BB-GATEWAY-WL1837-00A0.dtbo” overlay made the cape connect to the board. I have tried this and got the same result. Is there a way to know which overlay file matches with the BBB in /lib/firmware?

I’m using a standard BBB, but having the same issue here.

Not sure if the BB-GATEWAY-WL… file is supposed to be downloaded from somewhere, or if it just isn’t in my install from Robert’s site (Ubuntu 24.04.1 LTS)

rocko@rockobbb:/lib/firmware$ find /lib/firmware -name "*.dtbo"
/lib/firmware/ADAFRUIT-UART1-00A0.dtbo
/lib/firmware/ADAFRUIT-SPI0-00A0.dtbo
/lib/firmware/ADAFRUIT-UART5-00A0.dtbo
/lib/firmware/ADAFRUIT-UART4-00A0.dtbo
/lib/firmware/ADAFRUIT-UART2-00A0.dtbo
/lib/firmware/ADAFRUIT-SPI1-00A0.dtbo

Using this stack for a senior capstone at school, hoping I’m just missing something?

EDIT: I’m working on building the bb-cape-overlays package on my end now, will report back with future findings/progress.

So I wasn’t successful in getting these blobs to run on Ubuntu 24. Per messages from Robert on Discord, apparently this is because the kernel doesn’t support the mmc syntax, and the overlay syntax changed.

I downgraded to 20.04 for experimentation’s sake. This time, I can install the bb-cape-overlays package without trouble, but I seem to be having the same issue as @mandatoryseven.

My device will boot with the shield connected, but I’m not seeing a wifi network interface.

#Docs: http://elinux.org/Beagleboard:U-boot_partitioning_layout_2.0

uname_r=5.10.168-ti-r79
#uuid=
dtb=am335x-boneblack-overlay.dtb

###U-Boot Overlays###
###Documentation: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#U-Boot_O>
###Master Enable
enable_uboot_overlays=1
###
###Overide capes with eeprom
#uboot_overlay_addr0=<file0>.dtbo
#uboot_overlay_addr1=<file1>.dtbo
#uboot_overlay_addr2=<file2>.dtbo
#uboot_overlay_addr3=<file3>.dtbo
###
###Additional custom capes
uboot_overlay_addr4=/lib/firmware/BB-GATEWAY-WL1837-00A0.dtbo
#uboot_overlay_addr5=<file5>.dtbo
#uboot_overlay_addr6=<file6>.dtbo
#uboot_overlay_addr7=<file7>.dtbo
###
###Custom Cape
#dtb_overlay=<file8>.dtbo
###
###Disable auto loading of virtual capes (emmc/video/wireless/adc)
disable_uboot_overlay_emmc=1
disable_uboot_overlay_video=1
disable_uboot_overlay_audio=1
#disable_uboot_overlay_wireless=1
disable_uboot_overlay_adc=1
###
###PRUSS OPTIONS
###pru_uio (5.4.106-ti-rt-r40 & 5.10.100-ti-r40 newer...)
###Default is PRU_REMOTEPROC, but classic UIO_PRUSS can be enabled here.
#uboot_overlay_pru=AM335X-PRU-UIO-00A0.dtbo
###
###Cape Universal Enable
#enable_uboot_cape_universal=1
###Debug: disable uboot autoload of Cape
#disable_uboot_overlay_addr0=1
#disable_uboot_overlay_addr1=1
#disable_uboot_overlay_addr2=1
#disable_uboot_overlay_addr3=1
###
###U-Boot fdt tweaks... (60000 = 384KB)
#uboot_fdt_buffer=0x60000
###U-Boot Overlays###

console=ttyS0,115200n8
cmdline=coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100>

#In the event of edid real failures, uncomment this next line:
#cmdline=coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=10>

#Use an overlayfs on top of a read-only root filesystem:
#cmdline=coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=10>

##enable Generic eMMC Flasher:
#cmdline=init=/usr/sbin/init-beagle-flasher

cape_enable=bone_capemgr.enable_partno=BB-BONE-WL183

Connman generates some interesting results also when I poke at it:

ubuntu@ubuntu:~$ sudo connmanctl
[sudo] password for ubuntu:
Error getting VPN connections: The name net.connman.vpn was not provided by any 
connmanctl> enable wifi
Error wifi: Method "SetProperty" with signature "sv" on interface "net.connman.Technology" doesn't exist

I’m not familiar with these APIs and am not even really sure where to look to learn more. Will try again tomorrow, but hoping someone has some insight.

EDIT: OK. For now, sadly… I’m out of ideas.

This is where I landed with the environment where I made the most progress.

dtb=am335x-boneblack-w11835mod.dtb
uboot_overlay_addr4=/lib/firmware/BB-GATEWAY-WL1837-00A0.dtbo
enable_uboot_cape_universal=1
  • beagle-version displays the following:
model:[TI_AM335x_BeagleBone_Black_Gateway_Cape]
dogtag:[rcn-ee.net Ubuntu 20.04.6 Console Image 2024-10-17]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot SPL 2022.04-gbaca7b46 (Jan 15 2024 - 19:59:28 +0000)]:[location: dd MBR]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot SPL 2019.04-00002-g31a8ae0206 (May 13 2020 - 09:26:17 -0500)]:[location: dd MBR]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot 2019.04-00002-g31a8ae0206]:[location: dd MBR]
UBOOT: Booted Device-Tree:[am335x-boneblack-uboot-univ.dts]
UBOOT: Loaded Overlay:[BB-ADC-00A0.bb.org-overlays]
UBOOT: Loaded Overlay:[BB-BONE-eMMC1-01-00A0.bb.org-overlays]
UBOOT: Loaded Overlay:[BB-GATEWAY-WL1837-00A0]
UBOOT: Loaded Overlay:[BB-HDMI-TDA998x-00A0.bb.org-overlays]
kernel:[4.19.94-ti-r74]
device-tree-override:[dtb=am335x-boneblack-wl1835mod.dtb]
/boot/uEnv.txt Settings:
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[uboot_overlay_addr4=/lib/firmware/BB-GATEWAY-WL1837-00A0.dtbo]
uboot_overlay_options:[enable_uboot_cape_universal=1]
pkg check: to individually upgrade run: [sudo apt install --only-upgrade <pkg>]
pkg:[bb-cape-overlays]:[4.14.20210821.0-0~focal+20210821]
pkg:[bb-customizations]:[1.20240119.0-0~focal+20240119]
pkg:[bb-usb-gadgets]:[1.20240717.0-0~focal+20240717]
pkg:[bb-wl18xx-firmware]:[1.20230703.0-0~focal+20240703]
pkg:[kmod]:[27-1ubuntu2.1]
WARNING:pkg:[librobotcontrol]:[NOT_INSTALLED]
groups:[ubuntu : ubuntu adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal input render bluetooth netdev i2c gpio admin tisdk weston-launch cloud9ide]
cmdline:[console=ttyS0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet]
dmesg | grep remote
[   40.086436] remoteproc remoteproc0: wkup_m3 is available
[   40.101332] remoteproc remoteproc0: powering up wkup_m3
[   40.101358] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217148
[   40.101634] remoteproc remoteproc0: remote processor wkup_m3 is now up
dmesg | grep pru
dmesg | grep pinctrl-single
[    0.948071] pinctrl-single 44e10800.pinmux: 142 pins, size 568
dmesg | grep gpio-of-helper
[    0.961305] gpio-of-helper ocp:cape-universal: ready
dmesg | grep wlcore
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
END
  • ip a resolves:
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: can0: <NOARP,ECHO> mtu 16 qdisc noop state DOWN group default qlen 10
    link/can
3: can1: <NOARP,ECHO> mtu 16 qdisc noop state DOWN group default qlen 10
    link/can
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 90:06:f2:55:10:09 brd ff:ff:ff:ff:ff:ff
    inet 137.112.90.140/24 metric 1024 brd 137.112.90.255 scope global dynamic eth0
       valid_lft 2481sec preferred_lft 2481sec
    inet6 fe80::9206:f2ff:fe55:1009/64 scope link
       valid_lft forever preferred_lft forever
5: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 90:06:f2:55:10:0c brd ff:ff:ff:ff:ff:ff
    inet 192.168.7.2/24 brd 192.168.7.255 scope global usb0
       valid_lft forever preferred_lft forever
    inet6 fe80::9206:f2ff:fe55:100c/64 scope link
       valid_lft forever preferred_lft forever
6: usb1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 90:06:f2:55:10:0e brd ff:ff:ff:ff:ff:ff

There are a number of new interfaces here (can0, can1, and another usb interface appearing) but no wireless interface to be seen.