I tried to setup my WF121E module as a TCP client from an external MCU :
[17:20:26:804] Run 'setup'␊
[17:20:26:826] TX : [ 0807020100e25bc13dfa00 ]␊ // wifi_cmd_config_set_mac (e25bc13dfa00)
[17:20:26:826] RX : [ 08030201000000 ]␊
[17:20:26:826] TX : [ 0801030a01 ]␊ // wifi_cmd_sme_set_operating_mode( 1 - Station mode )
[17:20:26:826] RX : [ 0802030a0000 ]␊
[17:20:26:849] TX : [ 0801010300 ]␊ // wifi_cmd_system_set_max_power_saving_state( 0 - Low latency, high performance )
[17:20:26:849] RX : [ 080201030000 ]␊
[17:20:26:871] TX : [ 08000300 ]␊// wifi_cmd_sme_wifi_on()
[17:20:26:871] RX : [ 080203000000 ]␊
[17:20:30:503] RX : [ 880203000000 ]␊// wifi_msg_sme_wifi_on_evt
[17:20:37:131] Run 'connect_wlan'␊
[17:20:37:131] TX : [ 081103051057237635742954215b6567503e393c46 ]␊ // wifi_cmd_sme_set_password( "ap-psk" )
[17:20:37:131] RX : [ 0801030500 ]␊
[17:20:37:131] TX : [ 080b03070a50657872617974656368 ]␊// wifi_cmd_sme_connect_ssid( ""ap-ssid"" )
[17:20:37:154] RX : [ 08090307000000000000000000 ]␊
[17:20:37:154] TX : [ 08070401c0a8006c3930ff ]␊// wifi_cmd_tcpip_tcp_connect("192.168.0.108", "12345", -1 )
[17:20:37:154] RX : [ 08030401040200 ]␊// Routing error, endpoint index = 0x00
A series of events :
[17:20:40:871] RX : [ 8808030500007c8bcae233a1 // wifi_msg_sme_connected_evt, status = 0 - Wi-Fi is connected
880d0400c0a800d2ffffff00c0a8000100 // wifi_msg_tcpip_configuration_event,
8805040100d043dede // wifi_msg_tcpip_dns_configuration_evt,
880203070001 ]␊// wifi_msg_sme_interface_status_evt, status = 1 - network up
I'd like to know if the endpoint index 0x00 is valid with the routing error present in the response of wifi_cmd_tcpip_tcp_connect(), please ? Because there's no other way to get the endpoint index for data sending after that.
Another question is how to avoid this routing error? Should any delay between connecting to AP and connecting to TCP socket be added ?
Thanks and regards,
I'm trying to use the WF200 with a BBB ( or any other linux SBC with SPI ) instead of Rpi. but getting errors when the driver is loaded
I've managed to build the wfx-linux-driver from source and copied the wfx.ko file to the BBB
Connected signals are : 5V, GND, MISO, MOSI, CLK, CSn, WiRQ, RESETn and WUP
SPI mode selected on Switch
LDO selected on power switch
I built the wfx linux driver on the same machine as the BBB kernel by specifying the Kernel directory and the correct cross compiler ( instructions were unclear but I think I got it working ) :
... KDIR = /home/bbuild/bb-kernel/KERNEL ...
Build command from inside ~/wfx-linux-driver ( CC toolchain name is shortened here )
make ARCH=arm CROSS_COMPILE=/home/bbuild/bb-kernel/dl/gcc-linaro-7.3.1 ... /bin/arm-linux-gnueabihf-
Then copied wfx.ko and the firmwares (wfm_wf200.sec and wf200.pds ) to the BBB and loaded it with :
I'm Getting this error when I insert the module :
root@arm:~# insmod wfx.ko [ 244.549127] wfx-spi spi1.0: chip mute. Bus configuration error or chip wasn't reset?
dmesg output :
[ 244.539527] wfx: Silicon Labs WFX_2.0.3 [ 244.539892] wfx-spi spi1.0: setup: speed 48000000, sample leading edge, clk normal [ 244.539913] wfx-spi spi1.0: setup mode 0, 8 bits/w, 48000000 Hz max --> 0 [ 244.539923] wfx-spi spi1.0: current setup is 8 bits/word. You may improve performance using 16 bits/word [ 244.549127] wfx-spi spi1.0: chip mute. Bus configuration error or chip wasn't reset? [ 244.558868] wfx-spi: probe of spi1.0 failed with error -5
The error is generated here.
Screenshot of Logic analyser connected to the Expansion header (first transaction after loading wfm.ko) :
Do you have any suggestions on where the issue might be coming from ?
I set the SPI speed down to 10 and 2 MHz and got the following :
insmod wfx.ko [ 38.164635] wfx_wlan: ERROR inconsistent HIF message length 65535 != 8192 [ 38.171654] wfx-spi spi1.0: chip mute. Bus configuration error or chip wasn't reset? [ 38.189105] wfx_wlan: ERROR inconsistent HIF message length 65535 != 8192
it seems one still has to connect the 3v3 signal to iether the EXP header or RPI header even if the on board LDO is selected, now I get " bad hardware revision " - still running at 2 MHz - The jumper cables don't play well with the Faster signalling
[ 2711.412267] wfx: Silicon Labs WFX_2.0.3 [ 2711.417348] wfx-spi spi1.0: setup: speed 2000000, sample leading edge, clk normal [ 2711.417375] wfx-spi spi1.0: setup mode 0, 8 bits/w, 2000000 Hz max --> 0 [ 2711.417384] wfx-spi spi1.0: current setup is 8 bits/word. You may improve performance using 16 bits/word [ 2711.424447] wfx-spi spi1.0: bad hardware revision number: 7
It also seems that the RESETn GPIO is not being toggled, after a manual reset of the WF200 EXP board I get :
insmod wfx.ko [ 3202.096545] wfx-spi spi1.0: timeout while waiting for startup indication. IRQ configuration error?
I'm trying to use the WF200 wi-Fi EXP board with Compute module I/O board. These are the steps I took to get the wf200 to work with CM3
pi@raspberrypi:~ $ wfx_show Driver installed file: /lib/modules/4.19.34-v7+/extra/wfx.ko Driver installed version: WFX_2.0.3 Driver loaded version: WFX_2.0.3 Firmware installed file: /lib/firmware/wfm_wf200_C0-FW2.2.1.sec Firmware loaded version: 2.2.1 Firmware loaded label: WF200_ASIC_WFM_(Jenkins)_FW2.2.1 PDS file: /lib/firmware/BRD8022A_Rev_A06.pds PDS version: 2.2
pi@raspberrypi:~ $ sudo wfx_troubleshooter --checks Current configuration dtparam=audio=on dtparam=spi=on dtoverlay=enc28j60-spi2 dtoverlay=spi2-1cs,cs0_spidev=no dtparam=i2c_vc=on dtoverlay=wfx-spi System: Raspberry Pi Compute Module 3 Plus Rev 1.0 System: Raspbian GNU/Linux 9 (stretch) System: Debian version 9.8 System: Linux kernel 4.19.34-v7+ System: Error: Can't read board information User: WFX SPI overlay enabled (in /boot/config.txt) Startup Error: Cannot identify board, /proc/device-tree/hat/ does not exist. Empty eeprom? Setup: /boot/overlays/wfx-spi.dtbo file present Startup: loaded system files: 002830.964: Loading 'kernel7.img' to 0x8000 size 0x4ee1a8 002835.413: Loading 'bcm2710-rpi-cm3.dtb' to 0x4f61a8 size 0x5eb5 Setup: device tree overlay files: 003008.511: brfs: File read: /mfs/sd/overlays/enc28j60-spi2.dtbo 003078.850: brfs: File read: /mfs/sd/overlays/spi2-1cs.dtbo 003195.395: brfs: File read: /mfs/sd/overlays/wfx-spi.dtbo Startup: loaded overlays: 003021.453: Loaded overlay 'enc28j60-spi2' 003096.508: Loaded overlay 'spi2-1cs' 003208.830: Loaded overlay 'wfx-spi' Startup: dtparams: 002972.311: dtparam: audio=on 002990.650: dtparam: spi=on 003096.562: dtparam: cs0_spidev=no 003097.300: dtparam: i2c_vc=on Setup: WFX driver /wfx.ko (/lib/modules/4.19.34-v7+/extra/wfx.ko) Setup: WFX driver version: WFX_2.0.3 (from 'modinfo wfx') Setup: WFX Firmware wfm_wf200_C0.sec (/lib/firmware/wfm_wf200.sec) Setup: WFX FW Keyset KEYSETC0 Setup: WFX PDS BRD8022A_Rev_A06.pds (/lib/firmware/wf200.pds) User: WFX Power mode not set (in /etc/modprobe.d/wfx.conf file) Startup: Driver loaded ([ 4.466487] wfx: Silicon Labs WFX_2.0.3) Startup: all OK, WFx part ready to act as wlan0 Startup: Firmware loaded [ 4.785474] wfx-spi spi0.0: Firmware "WF200_ASIC_WFM_(Jenkins)_FW2.2.1" started. Version: 2.2.1 API: 1.2 caps: 0X00000002 [ 56.832854] wfx-spi spi0.0: Firmware exception. Startup: Power Mode -1 (/sys/module/wfx/parameters/power_mode) Startup: Firmware WF200_ASIC_WFM_(Jenkins)_FW2.2.1 Startup: current wlan0 status from 'ip addr show wlan0': 3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000 link/ether 00:0d:6f:1b:78:8e brd ff:ff:ff:ff:ff:ff Startup: wpa_supplicant running: root 838 1 0 13:28 ? 00:00:00 wpa_supplicant -i wlan0 -Bs -C /var/run/wpa_supplicant Startup: wpa_cli status: Selected interface 'wlan0' wpa_state=SCANNING p2p_device_address=00:0d:6f:1b:78:8e address=00:0d:6f:1b:78:8e uuid=1ee33387-43b6-57b7-b1ff-6782abd6b912
|Function||GPIO IO Board||WF200|
Firmware, driver seems to loaded properly. See the attached screenshot. I can ping 126.96.36.199 when I first run the wfx_sta script. But after sometime I get an error and it doesn't connect anymore. See the attached screenshot. If I restart and run the wfx_sta script, then it connects and gives error after sometime. Any help regarding this would be really appreciated.
I have an issue with the module AMW007. In my application, I use the module as TCP client and I want to get a data-block of about 80kbytes from a server. After I received about 6000 bytes (approximately the initial TCP-window size of the module) without error, the module sends some corrupted data to the application and then proceeds with correct data. As the server sends the data faster than I am able to read it from the module, of course the TCP-Buffer of the module runs full. I can watch this behavior in the Wireshark record, the window size of the module decreased to nearly zero and the server stops sending until the window size was increased again. TCP should have no problem with such congestion.
An interesting detail: in single cases, the SSID of the WLAN network appears in the corruct data from the module.
When I slow down the data transmission from the server, the sending of the corrupted data from the module to the application is shifted backwards. If I further slow down the transmission thus far, the window size did not run to nearly zero, the transfer of the whole data-block succeeds.
If it would be helpful, I can provide a Wireshark log of the TCP-stream and a terminal log of the received output from the module.
The module version is: SILABS-AMW007-2.1.5, Gecko OS-2.1.5, AMW007-W00001.
Does anyone hve an idea, what's going wrong?
Greetings Silicon Labs Community.
My question is simple but with a complex answer.
What's the best way to implement a wireless mesh network in an entire city?
My focus is to enable free communication via text messages as a main goal.
Avoid thinking about the price of this project, just focus on the infrastructure.
I was thinking in using high dBI antennas with RTs connecting to it.
I tried looking up for an answer related to this problem via internet and this forum without any reference so could we all gather up and think about how this could be applied?
In my honest opinion this must be a priority, offer free communiaction in any place.
I had a problem related to the use of certain GPIO pins.
To start with in my AMW136, I use the Pin number 5 to 8 (these correspond to GPIO_1 to GPIO_4) for JTAG debugging and programming my device. In the data sheet of AMW136 these pins have the primary function of GPIO and alternative functions of SPI. However, I have tried to set GPIO_2, GPIO_3 and GPIO_4 to different output values as high and low. The device did not respond to my written code, which means that I cannot change the GPIO values of those pins. In my board I have to use those pin's GPIO functionality.
How can I do that?
Does the JTAG functionality affect the GPIO use?
I have downloaded the Zentri SDK and it seems that without the piranha debugger, it is impossible to use the SDK. Thus, I will order one piranha module. The piranha module is claimed to be suitable for AMW106 and AMW004. Can I use piranha debugger for my Custom PCB board with AMW136?
Also what would be the JTAG pins. I have seen in the docs that for AMW106, the pins in the attached picture are used. Is it the same for AMW136?
Thank you very much for your help.
I struggle to compile the driver for the WF111 chip for a ARMv7 powered single board computer.
I follow the instructions presented in the documentation, but when I execute the
make install_static ARCH=arm KDIR=... CROSS_COMPILE=/usr/bin/arm-linux-gnueabi-
command, the compilation terminates with the error:
/home/stegemann/Downloads/wf111-linux-driver_5.2.2-r2_armv7-a/csr/os_linux/driver/../../os_linux/driver/../../synergy/framework/3.1/bsp/ports/pclin/inc/csr_framework_ext_types.h:38:5: error: unknown type name ‘wait_queue_head_t’
I use the kernel 4.13.0, downloaded from cdn.kernel.org, the host system is a Linux Mint with a 4.10.0 kernel. As a cross compiler I use the arm-linux-gnueabi, located here https://packages.ubuntu.com/de/trusty/gcc-arm-linux-gnueabi.
The required settings in .config (WIRELESS_EXT=y, ...) are present in the kernel config. I executed make modules_prepare before.
Any ideas? Is this a known problem?
Thanks in advance,
I am using AMW037 module in machine mode, I have been trying to find a document that presents the meaning of the response codes, e.g. R000003 when tcpc is sent. I would like a list of expected codes, not all command descriptions seem to give this information and what the error codes are.
Has any progress been made on the WGM110's DHCP problems that have been reported here a couple of times? I'm still seeing intermittent failures. I just caught one on Wireshark where I can see it send a DHCP Discover and it immediate gets a DHCP Offfer but it never makes a response.
I have two access points I'm testing with - one is the main router and DHCP server for the office, and the other one is connected to that one. Connections to the second AP fail at the DHCP stage far more frequently than direct to the main AP, if that means anything.
Is there anything that can be done to get some insight into what's going on in the WGM110 when DHCP fails?
I've attached a screenshot of another DHCP transaction that I also have a logic analyzer recording for. This one didn't fail outright, but you can see that it's apparently not taking the 'ack' from the DHCP server. The offer is made at 17.39 seconds, a request is made at 17.46, an ack comes back at 17.47, and then the WGM110 starts over at 19.38 with a new request.