BeagleBone Green Wireless vs. Black Wireless & I2C

It appears BeagleBone Black Wireless units are out of stock everywhere indefinitely and possibly forever. As far as I can tell, the Green Wireless is basically the Black WIreless without HDMI and Ethernet, which we do not need in our application. We do need wi-fi, though.

And we need both I2C buses for our application. The diagrams of Green’s headers, P9_19 & P9_20, are shown as I2C2_xxx lines. P9_24 & P9_26 are not shown as I2C1_xxx lines. Can they be used as I2C1? And are those lines brought out to the Grove connector for the UART? (that would be nice if they are.)

Are there any other gotchas between Black Wireless and Green Wireless that we must know?

P9 & P8 header compatibility is important because our custom boards plug directly into P9.
And we make some jumper connections to P8.

WC

1 Like

Hello,

Some of the items on the BBGW are not the same as the BBBW.

  1. Wireless takes up some pins.
  2. i2cN is taken up by the Grove Connector

There is a UART taken up by one of the Grove Connectors too. So, one UART Grove Connector and one i2c Grove Connector.

I will post what is taken up in the pins by the Wireless on the BBGW.

Seth

P.S. I am not sure if I can find it right away… I will have to research the idea again. These are the files I will search throughout if you are not too busy:

  1. src/arm/am335x-boneblack-wireless.dts · v5.10.x-ti-unified · BeagleBoard.org / BeagleBoard-DeviceTrees · GitLab
  2. src/arm/am335x-bonegreen-wireless.dts · v5.10.x-ti-unified · BeagleBoard.org / BeagleBoard-DeviceTrees · GitLab

Those two, separate files are some of the files I will search through. There are also the -common- files to look into. I think these pins are taken up by Wireless on the P9/P8 headers:

  1. P8.14
  2. P8.17
  3. P8.26
  4. P9.30

But! The pins for HDMI are no longer used up and can be used as GPIO and others like PRU peripheral use:

See here: src/arm/am335x-bonegreen-wireless-common-univ.dtsi · v5.10.x-ti-unified · BeagleBoard.org / BeagleBoard-DeviceTrees · GitLab

2 Likes

Hi Walter,

I would like to share my experience with you and save you a lot of agony.

We needed large quantities of BBBW for a new order of our system, after 8 months we realized that there would be no more available BBBW’s. We then ordered a large quantity of BBBG units,

That is where the struggle started and after 40 hours of reflashing operating systems and googling we still could not get it up and running like the BBBW. Even the GPIO was not working.

The BBBG came with a version that was created in 2016 and there appeared to be a number of differences.

Eventually we just ordered a Beaglebone Black and added a USB wireless adapter and were up and running within an hour.

Perhaps you might have better luck, but I am a professional electronic engineer that has spent my life writing c++ and dealing with complex systems and could not get this going. My theory is that if I stuck with the struggle it will eventually work but you have to find the answers somewhere, and I could not.

After this experience we ended up with a large quantity of useless green matter but hopefully more grey matter - wiser.

Bryan

1 Like

I really appreciate this information. I thought about going with the USB wireless adaptor but was concerned we’d have to do a lot of work with the kernel to get it to work. Would you share the USB adaptor you used and the steps you took to get it working? We’re running Debian 4.19.

We already have some Black’s on hand. Unfortunately, I’ve already ordered two BBGW units. If I can quickly get them working, I’ll share what I did.

@BryanJ - I’m interested in the USB adaptor that you used and any information on what you had to do to the OS to get it working.

Hi Walter,

It is the D-Link Wireless N-150 Mbps (DWA-121)

Less than $10 dollars on Amazon.

5.2. Connecting to the network.

Commands required…

  1. Enter: sudo connmanctl

  2. Enter the password : temppwd

  3. Enter: scan wifi

  4. Enter: services - to see the possible Wi-Fi connections.

  5. Enter: agent on - required to set up a new connection.

  6. Enter: connect and the selected Wi-Fi network

This is difficult to do manually so you need to follow the tip below…
Type in “connect” and a space, then using the mouse highlight the appropriate network id. Then right-click the mouse which should copy the id to where the cursor was displayed.

Press enter to connect.

  1. When requested enter the router password, which is displayed on the back of the router.

  2. Finally enter “services” to check if the network is connected. The connected network will have *AR prefix in front.

  3. The LSC is now connected to the router, and you can now disconnect from Putty.

Thank you! Simpler than I expected!

@BryanJ I got the D-Link you suggested and an adaptor cable. I connected to the Black with my USB cable first and edited uEnv.txt to comment out the line to disable wireless. Then I shutdown, plugged in the D-Link wireless using the adaptor cable and booted with a 5V supply. It’s running, judging by the USRx Led activity. A new wifi network called ‘Hidden’ shows up off and on. I don’t think that’s the one via the D-link to the Beagle though. I never see this Beagle. Since I can’t run connmanctl and do the wireless setup unless the wifi is working I don’t know how I use that to get the wifi working. I must be missing a step but I don’t know what it is.

Can you help?

@WalterCEden

You need to use Putty , via USB, to connect to the Beaglebone Black and through Putty access the connmanctl .

I would add that depending on what version you are running on your BBB, configuring wifi will be different. On new images connman is no longer used with systemd handling networking and you will need to use wpa_supplicant to configure the wifi. If you google Debian wpa_supplicant you will probably find some instructions. I think @RobertCNelson posted something on a thread here about using wpa_supplicant. Might not have been for the BBB, but the process should be roughly the same.

Obviously to set it up, you will need to use either the serial console, or the USB if connected ( you sould be able to SSH into the board using that )

I think there may be a misunderstanding. After I connect the Dlink adaptor to the BeagleBone Black, and start it, I see a new wifi network from my Windows 10 box. It is listed as “unidentified network”. I want to connect to that from my Windows 10 box. Once I am connected to it, I can do all the connmanctl stuff to connect the Beagle to our wifi network through the D-Link. But right now, I cannot connect to the wifi network that the Beagle brings up with the D-Link when it boots. I’m only assuming the ‘unidentified network’ is the one from the Beagle. It is very unlikely it is some other network nearby as we are in an accelerator location on 27 acres with only one other company in the building and they don’t do this type of tech. There are no other companies or building nearby. I’m fairly certain the ‘unidentified network’ is coming from the Beagle. I connected to the Beagle with a USB cable and using a USB multi-port adaptor have the D-Link plug in to the Beagle too. I can use PuTTY and login to the Beagle but when I use connmanctl and execute scan wifi I get this message

connmanctl> scan wifi
Error /net/connman/technology/wifi: Method "Scan" with signature "" on interface "net.connman.Technology" doesn't exist

Also here is the output of version.sh

root@beaglebone:/boot# /opt/scripts/tools/version.sh
git:/opt/scripts/:[31292bce1d4b35b497cc7a013d6d57e7e1f4f5c4]
eeprom:[A335BNLT00C04417BBBK1847]
model:[TI_AM335x_BeagleBone_Black]
dogtag:[BeagleBoard.org Debian Image 2018-06-17]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot 2018.03-00002-gac9cce7c6a]:[location: dd MBR]
kernel:[4.14.49-ti-r54]
nodejs:[v6.14.3]
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[disable_uboot_overlay_video=1]
uboot_overlay_options:[disable_uboot_overlay_audio=1]
uboot_overlay_options:[uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-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.4.20180611.0-0rcnee0~stretch+20180611]
pkg:[bb-wl18xx-firmware]:[1.20180517-0rcnee0~stretch+20180517]
pkg:[kmod]:[23-2rcnee1~stretch+20171005]
pkg:[roboticscape]:[0.4.4-git20180608.0-0rcnee0~stretch+20180609]
pkg:[firmware-ti-connectivity]:[20170823-1rcnee1~stretch+20180328]
groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal i2c bluetooth netdev cloud9ide gpio pwm eqep admin spi tisdk weston-launch xenomai]
cmdline:[console=ttyO0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk1p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 quiet]
dmesg | grep pinctrl-single
[    1.115247] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
dmesg | grep gpio-of-helper
[    1.125752] gpio-of-helper ocp:cape-universal: ready
END

If there is something else I need to do so connmanctl sees this new wifi let me know please.

Walter

@WalterCEden
Try using …

connmanctl> enable wifi

before the scan wifi

Well, here’s what I get when I do enable wifi

connmanctl> enable wifi
Error wifi: Method "SetProperty" with signature "sv" on interface "net.connman.T                                                      echnology" doesn't exist

I just booted from an SD card with a more recent Linux image on it. I get the same errors. Here’s the output of version.sh

debian@beaglebone:~$ sudo /opt/scripts/tools/version.sh
git:/opt/scripts/:[e4e4854ef8ff9ada5c85553376043ee7679167ca]
eeprom:[A335BNLT00C04417BBBK1847]
model:[TI_AM335x_BeagleBone_Black]
dogtag:[BeagleBoard.org Debian Buster IoT Image 2021-02-15]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot SPL 2019.04-g21094ce (                                                    Aug 18 2021 - 20:56:27 +0000)]:[location: dd MBR]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot 2019.04-g21094ce]:[loc                                                    ation: dd MBR]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot SPL 2018.03-00002-gac9cce7c6a                                                     (Apr 05 2018 - 13:07:46 -0500)]:[location: dd MBR]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot 2018.03-00002-gac9cce7c6a]:[l                                                    ocation: dd MBR]
UBOOT: Booted Device-Tree:[am335x-boneblack-uboot-univ.dts]
UBOOT: Loaded Overlay:[AM335X-PRU-RPROC-4-19-TI-00A0.kernel]
UBOOT: Loaded Overlay:[BB-ADC-00A0.kernel]
UBOOT: Loaded Overlay:[BB-BONE-eMMC1-01-00A0.kernel]
kernel:[4.19.94-ti-r68]
nodejs:[v10.23.1]
/boot/uEnv.txt Settings:
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[disable_uboot_overlay_video=1]
uboot_overlay_options:[disable_uboot_overlay_audio=1]
uboot_overlay_options:[uboot_overlay_pru=AM335X-PRU-RPROC-4-19-TI-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.20210809.0-0~buster+20210816]
pkg:[bb-customizations]:[1.20210810.1-0~buster+20210810]
pkg:[bb-usb-gadgets]:[1.20200504.0-0~buster+20200504]
pkg:[bb-wl18xx-firmware]:[1.20200813.1-0~buster+20200813]
pkg:[kmod]:[26-1]
pkg:[librobotcontrol]:[1.0.5-git20200715.0-0~buster+20200716]
pkg:[firmware-ti-connectivity]:[20190717-2rcnee1~buster+20200305]
groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev us                                                    ers systemd-journal input bluetooth netdev i2c gpio admin spi iio docker tisdk w                                                    eston-launch xenomai cloud9ide pwm eqep remoteproc]
cmdline:[console=ttyS0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/m                                                    mcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 lpj=1990656                                                     rng_core.default_quality=100 quiet]
dmesg | grep remote
[   79.234120] remoteproc remoteproc0: wkup_m3 is available
[   79.623897] remoteproc remoteproc0: powering up wkup_m3
[   79.623930] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf,                                                     size 217148
[   79.624211] remoteproc remoteproc0: remote processor wkup_m3 is now up
[   82.063959] remoteproc remoteproc1: 4a334000.pru is available
[   82.087885] remoteproc remoteproc2: 4a338000.pru is available
dmesg | grep pru
[   82.063959] remoteproc remoteproc1: 4a334000.pru is available
[   82.064167] pru-rproc 4a334000.pru: PRU rproc node pru@4a334000 probed succes                                                    sfully
[   82.087885] remoteproc remoteproc2: 4a338000.pru is available
[   82.088097] pru-rproc 4a338000.pru: PRU rproc node pru@4a338000 probed succes                                                    sfully
dmesg | grep pinctrl-single
[    1.027187] pinctrl-single 44e10800.pinmux: 142 pins, size 568
dmesg | grep gpio-of-helper
[    1.040807] gpio-of-helper ocp:cape-universal: ready
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
END

what’s weird, the usb device is not even showing up…

If it’s not plugged in, re-plug it in and run lsusb

Regards,

Until I can get wifi running I’m connecting to it from my Windows 10 PC via the USB connection. So I am using a USB multiport adaptor. Could that be the problem?

I unplugged the wifi adaptor from the multiport adaptor and plugged it back in.

Here’s the output you requested.

root@beaglebone:~# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Well, based on that log, it does not see the usb device…

Regards,

I use an external power supply and don’t rely on the usb to power the board.

If possible, could you power up with an external power supply , and once running then connect the USB

So, I powered up from the microSD card with an external power supply. After it came up, I then connected the USB hub which is connecting to my Windows 10 machine and the DLink adaptor. I’m getting the same result. I get the following though when I start connmanctl.

debian@beaglebone:~$ sudo connmanctl
Error getting VPN connections: The name net.connman.vpn was not provided by any                                             connmanctl>

I know I never see this when I run it on BeagleBone Black Wireless Units. @BryanJ - how are you actually connecting the DLink adaptor to the Beagle since the Beagle has a miniUSB socket? And how do you connect with PuTTY BEFORE the wifi adaptor is running? I’m using the USB connection to do that.

@WalterCEden

I connect the PC to the USB adapter nearest the Ethernet Socket. I think that is the miniUSB socket.

Then using Putty on Address 192.168.7.2 Port 22 I connect to the BBB. This should be work whether you have the DLink adaptor connected or not. As this is a special implementation of the TCP IP stack that allows the USB port to appear as a network lan.

The DLink is connected as shown below…

1 Like