WIFI+BLE MURATA MODULE

Hi ,
i am used in my project murata wifi+BLE module part number is LBEE5KL1DX-883 , it will support for AT+STA +BLE at a same time ??

Regards
kannan

@Kannan, in general it looks as thou the CYW4343W (1) module used on the LBEE5KL1DK-883 can support BLE + WiFi AP+STA with appropriate driver support. What OS/etc are you utilizing today with your design?

For example, with Linux, make sure you use are using the latest FMAC driver release:

https://community.cypress.com/community/linux/content?filterID=contentstatus[published]~objecttype~objecttype[document]

If you are using something other then linux, please take a look at the Wiced Software package: https://www.cypress.com/products/wiced-software

1: Cypress rebrands Broadcom (same die) ( https://www.cypress.com/news/cypress-acquire-broadcom-s-wireless-internet-things-business-0 )
Regards,

Hi Robert ,

STM32MP157microprocessor development board having same wifi module LBEE5KL1DX-883 , we tried with AP +STA at time process is not happening. it was working either AP or STA only, Please help me out.

Regards
kannan

Hi Robert,

Thanka for the reply.I had gone through the patches from the link you have shared for linux.Our development environment is Linux running STM32mp1 yocto with kernel version 4.19.9.But the patches are explaining about the procedures to do for linux versions 4.14 and below.For my kernel version what is the procedure to do.Or my kernel source is an updated version.

Regards
kannan

@Kannan, so in that situation Cypress really wants you to use the “Back port” method:

https://community.cypress.com/community/linux/blog/2017/11/28/linux-driver-backport-manual

If that’s the only wifi driver you have, that’s fine and should work for you

For the BeagleBoard project we are on v4.19.94, and have the Cypress CYP43455, so instead I went the Nuclear approach.

Re synced the broadcom/brcm80211/brcmfmac/ directory back to v4.14.77

Cleaned up the tree, to build against v4.19.x

and applied Cypress patches on top of that:

Note, with brcmfmac, i had to stick it in “__ap” mode,

This is a little different form other mainline wifi moduels that need to be stuck in “managed” mode…

Regards,

Hi Robert,

As per your input I did the below things but I was not successful to get the AP + STA mode at the same time.
Step 1 : I tried to do backport with the cypress drivers but when I try to cross compile the cypress driver using below command
make KLIB=$MY_KERNEL KLIB_BUILD=$MY_KERNEL modules
I was getting exceptions like

error: implicit declaration of function 'init_timer'; did you mean 'init_timers'? [-Werror=implicit-function-declaration]
  init_timer(&cfg->escan_timeout);
error: 'struct timer_list' has no member named 'data'
  cfg->escan_timeout.data = (unsigned long) cfg;
error: assignment to 'void (*)(struct timer_list *)' from incompatible pointer type 'void (*)(long unsigned int)' [-Werror=incompatible-pointer-types]
  cfg->escan_timeout.function = brcmf_escan_timeout;

Step2: I followed one murata user document where they are explaining the procedure to setup AP +STA mode and I am able to setup the AP + STA interfaces but at a time only hotspot interface is working the other station interface is going down automatically.My ifconfig details are as below:

wlan0     Link encap:Ethernet  **HWaddr 10:98:C3:65:DA:1B**  
          inet addr:192.168.43.135  Bcast:192.168.43.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan1     Link encap:Ethernet  **HWaddr 10:98:C3:65:DA:1B**  
          inet addr:192.168.2.1  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::1298:c3ff:fe65:da1b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:38 errors:0 dropped:0 overruns:0 frame:0
          TX packets:49 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:5909 (5.7 KiB)  TX bytes:7894 (7.7 KiB)

If you observe both the interfaces are getting same HW addr, to use the AP + STA mode parallely we should get different MAC ID’s.

So I want your suggestion on this whether I am missing any thing or do I need to do any changes for this.

Regards
Kannan.

@Kannan,

If you observe both the interfaces are getting same HW addr, to use the AP + STA mode parallely we should get different MAC ID’s.

On pure mainline, only one interface will work on brcmfmac, you need to use cypress’s patchset to get two interfaces working at the same time…

Step 1:
“init_timer” doesn’t exist in v4.19.x: Here the patch i used: https://github.com/RobertCNelson/ti-linux-kernel-dev/blob/ti-linux-4.19.y/patches/backports/brcm80211/0002-drivers-net-brcm80211-use-setup_timer-helper.patch

Step 2:
For the mac address, we use our own for SoftAp0, generated with an offset from the base ethernet mac address.

debian@beaglebone:~$ journalctl | grep bbai:tether
Mar 24 22:12:46 beaglebone bb-bbai-tether[564]: bbai:tether [iw phy phy0 interface add SoftAp0 type __ap]
Mar 24 22:12:46 beaglebone bb-bbai-tether[564]: bbai:tether [phy0 created]
Mar 24 22:12:46 beaglebone bb-bbai-tether[564]: bbai:tether [ip link set dev SoftAp0 down]
Mar 24 22:12:46 beaglebone bb-bbai-tether[564]: bbai:tether [ip link set dev SoftAp0 address 28:EC:9A:4C:63:D8]
Mar 24 22:12:46 beaglebone bb-bbai-tether[564]: bbai:tether [ip link set dev SoftAp0 up]
Mar 24 22:12:47 beaglebone bb-bbai-tether[564]: bbai:tether [ip addr add 192.168.8.1/24 broadcast 192.168.8.255 dev SoftAp0]
Mar 24 22:12:47 beaglebone bb-bbai-tether[564]: bbai:tether [iptables -w -t nat -A POSTROUTING -o wlan0 -j MASQUERADE]
Mar 24 22:12:47 beaglebone bb-bbai-tether[564]: bbai:tether [iptables -w -A FORWARD -i wlan0 -o SoftAp0 -m state --state RELATED,ESTABLISHED -j ACCEPT]
Mar 24 22:12:47 beaglebone bb-bbai-tether[564]: bbai:tether [iptables -w -A FORWARD -i SoftAp0 -o wlan0 -j ACCEPT]

Connect wlan0 to WiFi…

debian@beaglebone:~$ sudo ifconfig wlan0
wlan0: flags=-28605<UP,BROADCAST,RUNNING,MULTICAST,DYNAMIC>  mtu 1500
        inet 192.168.3.53  netmask 255.255.252.0  broadcast 192.168.3.255
        inet6 fe80::8291:33ff:fe4a:2859  prefixlen 64  scopeid 0x20<link>
        ether 80:91:33:4a:28:59  txqueuelen 1000  (Ethernet)
        RX packets 43  bytes 4616 (4.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 61  bytes 11435 (11.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
debian@beaglebone:~$ ping google.com -c3
PING google.com (172.217.1.46) 56(84) bytes of data.
64 bytes from ord37s07-in-f46.1e100.net (172.217.1.46): icmp_seq=1 ttl=55 time=32.8 ms
64 bytes from ord37s07-in-f46.1e100.net (172.217.1.46): icmp_seq=2 ttl=55 time=34.8 ms
64 bytes from ord37s07-in-f46.1e100.net (172.217.1.46): icmp_seq=3 ttl=55 time=33.2 ms
--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 32.776/33.581/34.810/0.882 ms

WiFi SoftAp0 is alive:

debian@beaglebone:~$ sudo ifconfig SoftAp0
SoftAp0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.8.1  netmask 255.255.255.0  broadcast 192.168.8.255
        inet6 fe80::2aec:9aff:fe4c:63d8  prefixlen 64  scopeid 0x20<link>
        ether 28:ec:9a:4c:63:d8  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 64  bytes 14202 (13.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

My Phone connects:

debian@beaglebone:~$ journalctl | grep hostapd
Mar 24 22:12:54 beaglebone bb-bbai-tether[564]: Configuration file: /tmp/hostapd-bbai.conf
debian@beaglebone:~$ journalctl -f | grep hostapd
Mar 25 13:22:42 beaglebone hostapd[1791]: SoftAp0: STA b2:0b:9c:67:32:e0 IEEE 802.11: associated
Mar 25 13:22:42 beaglebone hostapd[1791]: SoftAp0: STA b2:0b:9c:67:32:e0 RADIUS: starting accounting session B7AFD4F75A827C27
Mar 25 13:22:42 beaglebone hostapd[1791]: SoftAp0: STA b2:0b:9c:67:32:e0 WPA: pairwise key handshake completed (RSN)
Mar 25 13:22:45 beaglebone dnsmasq-dhcp[1778]: DHCPDISCOVER(SoftAp0) b2:0b:9c:67:32:e0
Mar 25 13:22:45 beaglebone dnsmasq-dhcp[1778]: DHCPOFFER(SoftAp0) 192.168.8.105 b2:0b:9c:67:32:e0
Mar 25 13:22:45 beaglebone dnsmasq-dhcp[1778]: DHCPDISCOVER(SoftAp0) b2:0b:9c:67:32:e0
Mar 25 13:22:45 beaglebone dnsmasq-dhcp[1778]: DHCPOFFER(SoftAp0) 192.168.8.105 b2:0b:9c:67:32:e0
Mar 25 13:22:45 beaglebone dnsmasq-dhcp[1778]: DHCPREQUEST(SoftAp0) 192.168.8.105 b2:0b:9c:67:32:e0
Mar 25 13:22:45 beaglebone dnsmasq-dhcp[1778]: DHCPACK(SoftAp0) 192.168.8.105 b2:0b:9c:67:32:e0

and i can ping my phone…

debian@beaglebone:~$ ping 192.168.8.105 -c3
PING 192.168.8.105 (192.168.8.105) 56(84) bytes of data.
64 bytes from 192.168.8.105: icmp_seq=1 ttl=64 time=107 ms
64 bytes from 192.168.8.105: icmp_seq=2 ttl=64 time=19.8 ms
64 bytes from 192.168.8.105: icmp_seq=3 ttl=64 time=46.1 ms

--- 192.168.8.105 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 3ms
rtt min/avg/max/mdev = 19.776/57.449/106.520/36.319 ms

Details from my phone:


Regards,

Hai Robert,

I didn’t get how to user user SoftAp for different MAC ID generation to my STM32MP board.

Regards
Kannan.

@Kannan, assuming your softap is wlan1 from your last messages, just bring it down, update the mac and bring it back up:

sudo ip link set dev wlan1 down
sudo ip link set dev wlan1 address 10:98:C3:65:DA:1D
sudo ip link set dev wlan1 up

Feel free to replace, 10:98:C3:65:DA:1D with what ever you want, i just used your wlan0 interface + 2 to come up with that value…

Regards,

Hi,

Still I was not able to make it work with my kernel in (AP + STA) even after changing the HW addr also.I had come across a module QCA9377-3(qualcomm/atheros) and I want to know whether it is possible to make the dual mode working on this module.And if possible which module is better to use.

Regards
Kannan.

@Kannan, sorry i have no direct working knowledge of the Qualcomm QCA9377-3, we’ve only used TI wl18xx and Cypress CYP43455 modules on our designs.

But based on my experience with Qualcomm/Atheros (well mostly Atheros USB adapters), i’d expect it to ‘just’ work. :wink:

Regards,

Hi Robert,

As you know we are using Murata 1DX(CYW4343W) and is there any difference between this module and the module which you have worked i.e CYP43455.And is there any necessity to apply patches for this module also to make it work in AP + STA.Please let me know your thoughts.

Regards
Srikanth.

@Kannan, all Broadcomm/Cypress modules are pretty similar internally, they just enable newer WiFi technologies, radios/algorithms/etc in newer modules…

They all have the same patchset.
https://community.cypress.com/docs/DOC-19000

Regards,

Robert ,

You aware of cypress chip-set CYW43455 , Right now i am going with same chipset for my design. Please confirm me are you worked on same chipset support at a time AT + STA ??

I tried with CYW4343W chipset , it is not working AT+STA at a time .

Regards
kannan

@Kannan, let’s try this another way, can you share/pastebin your version of the startup script that enables wlan1 and tries to enable SoftAp0. Something I can run on my platform and help you debug.

My personal version has many “addon’s” features…

So maybe, by starting with your version, we can get a working one…

Regards,

Just a quick update, looks Like Cypress dropped a new release over the weekend:

Cypress Linux WiFi Driver Release (FMAC) [2020-04-02] (v5.4.18)

https://community.cypress.com/docs/DOC-19375

I have not had a chance to test this yet…

Regards,