We are using the WFM200S expansion module with a Variscite iM8M Mini development board. The module is connected via SPI and we have WiFi configured in access point mode. We are using the Silabs driver 2.7-public from https://github.com/SiliconLabs/wfx-linux-driver, and the host is running Yocto Dunfell (kernel 5.4.74).
The basic functionality is working. However, we sometimes see a kernel panic due to a call to skb_put going beyond the end of the buffer in wfx_tx. This often occurs if starting a video stream after a client newly connects. We are also often seeing a warning message about incoherent status and result flags and the debug message "requested frame size (1620) is larger than maximum supported (1616)". These often occur before the panic, but can occur separately.
A file containing the error and warning messages is attached. Are you able to help with this issue?
Question 2: Do I only need Config register and Control register for sending and receiving data with WF200?
Questions about queues:
According to the URL link above, it says
The Input/Output queue (0x02) can be accessed with any multiple of 16-bit legal length.
Question 3: Does Input/Output queue mean that I need too call that register by my self? Or what does it mean? I don't understand this text.
4.2.1 Output Queue
When the Host sees the interrupt, it reads the control register. Afterwards the interrupt is de-asserted by the HIF. At this moment the Host knows if there is an item pending in the Input/Output queue and also the size of the data to be received. The control register includes the length of the next available data expressed in half-word.
The control register can only be read safely when the interrupt is asserted. the content of the register is not guaranteed otherwise.
From this point on, the Host sends a command to request the data in the output queue. The data sent from the HIF to the Host has the control register appended to the end of each packet (called piggy-backed value), thus allowing the Host to know if there are more data pending or not. If the “next output queue item length” field of the piggy-backed value is set to 0, it means that the output queue is empty. Otherwise, the Host sends another command to request the additional data. This continues until the piggy-backed value has its “next output queue item length” field set to 0.
To take into account the piggy-backed value at the end of each message, the Host has to read a size equal to "next output queue item length field + 1". This length is expressed in half-word.
4.2.2 Input Queue
There is a limited number of input queues defined in the HIF implementation. The exact number of input queues is sent by the WF200 after a boot in the start-up indication. The Input Queue is a list of buffer space available for the Host to write to.
In addition to the input queue number, the start-up indication contains the maximum size of each buffer. The Host can prefer to write less data than defined here, which is allowed. When the host tries to write more data than defined, an error is encountered. (See Section 3.2.3 Catching Communication Errors).
Questions about firmware:
Question 4: When I want to send the firmware to the Shared RAM direct access channel, I need first to send it to the address 101 and bit 15 = 0 (write) and the length should be sizeof(sl_wfx_firmware)/16? Where sl_wfx_firmware is the firmware array.
Is there not any command list examples, what to write, when to read etc?
I use Simplicity Studio Version: SV4.1.13.9 to build wfx-fullMAC-tools\Examples\SiliconLabs\commissioning\micrium_os project and it works but suddenly
got build error
make: *** No rule to make target `/altcp_tls_mbedtls.c', needed by `lwip/src/apps/src/apps/altcp_tls/altcp_tls_mbedtls.o'. Stop.
make: *** Waiting for unfinished jobs....
Tried to re-install Simplicity Studio but still not help
We have AMW006 modules configures as TCP servers (default port : 3000) and on occasion these would hung up where the TCP client cannot connect to it.
However when we run a ping command, we do get a response. It seems the TCP server portion is non-responsive. Power cycling the wifi module clears the problem.
The client communication is about 100 bytes every 6 seconds.
The OS is still "WiConnect-2.4.1.5". I had an issue upgrading ( as per some of my previous posts)
Could there be an option i am configuring wrongly?
Below is the result of the "get tcp.server" command
We have AMW006 modules configures as TCP servers (default port : 3000) and on occasion these would hung up where the TCP client cannot connect to it.
However when we run a ping command, we do get a response. It seems the TCP server portion is non-responsive. Power cycling the wifi module clears the problem.
The client communication is about 100 bytes every 6 seconds.
Is it possible to setup a service/server on the wifi module (configured as a tcp server) to act similar to an Administrative mode that can be communicated with via the Wifi side ( Not MCU) to reboot the wifi module.
The OS is still "WiConnect-2.4.1.5". I had an issue upgrading ( as per some of my previous posts)
I tried to add nvm3 functionality from \wfx-fullMAC-tools\Examples\SiliconLabs\commissioning\micrium_os
nvm_open returns a error , res = 1111 0000 0000 0000 1110 0000 0000 0001
Would you please take a look to see what's wrong ? Following is test code for that
// Initialize the structure managing the NVM3 area and open it
NVM3_DEFINE_SECTION_INIT_DATA(nvm3Data, &nvm3_halFlashHandle);
nvm3Data.maxObjectSize = NVM3_MAX_OBJECT_SIZE;
res = nvm3_open(&nvm3_handle, &nvm3Data);
APP_RTOS_ASSERT_CRITICAL(res == 0,; );
I have recently bought three different access points using Wi-Fi 6 with a return policy to test things out. They all work great, the best one is the Xiaomi AX3600. In Wireless LAN, I max out the Gigabits. In others words, I can easily max out the 1Gbits connection to my Synology NAS without any issue (110 MB/s). However, I cannot get the same speed with my WAN/Internet connection of 560Mbits download.
With the Ethernet cable directly connected to my AP, i get 555 Mbits. However, any Wi-Fi 6 clients (e. g., Samsung Note 10+, S10+, laptops with AX200, desktops with AX200, or Killer 1650AX) cannot get more than 450 Mbits at maximum. Usually, 420Mbits.
I tried everything. Multiple APs (i.e., Mi AX3600, Swisscom Internet Box 3, Xiaomi AX1800), resetting, restarting, multiple clients being extremely close, disconnecting all wireless clients, changing channels, tweaking settings, etc. Nothing works https://19216801.onl/.
I tried iPerf3 and get only about 450 mbits as well to my PfSense. Sometimes I get more like 750mbits, especially if I use laptop's if I go with: iPerf3 -c 192.168.1.1 -P 32
Is it normal? I will soon have a Gigabit Internet and my family and I will use it a lot as heavy users for work https://routerlogin.uno/.
I am new to micrium-os and like to know how to start a micrium-os project ( WGM 160p ) from Simplicity Studio to support mqtt ?
We was taking Gecko OS Studio project to implement mqtt and it's works as expected. now we want to migrate to micrium-os, so far I have installed and tested wgm160p_commissioning_micriumos and wgm160p_secure_mqtt example code and both worked as expected. at this point I want start a new project to do real things but don't know how to start a new micrium-os project, also some sdk file need to be changed how can copy them into the project ?
Forum
gos_gpio_irq_enable not working
Dear sir ,
I am working with WGM160p and Gecko OS , and try to make a input pin irq event, but it never trigger a event.
I tested hardware connection is no problem.
My test code as below :
gos_gpio_init( GOS_GPIO_1, GOS_GPIO_INPUT_PULL_UP, true);
gos_gpio_irq_enable(GOS_GPIO_1, GOS_GPIO_TRIGGER_FALLING_EDGE, gpio_irq_callback, (void*)GOS_GPIO_1);
static void gpio_irq_callback(void *arg)
{
const gos_gpio_t gpio_pin = (gos_gpio_t)arg;
const bool value = gos_gpio_get(gpio_pin);
GOS_LOG("gpio_pin = %d:%d", gpio_pin, value);
}
Thanks in advance
Jason
Which is the Wireless HDMI for Gaming?
Kernel Panic with WFM200S in AP mode
We are using the WFM200S expansion module with a Variscite iM8M Mini development board. The module is connected via SPI and we have WiFi configured in access point mode. We are using the Silabs driver 2.7-public from https://github.com/SiliconLabs/wfx-linux-driver, and the host is running Yocto Dunfell (kernel 5.4.74).
The basic functionality is working. However, we sometimes see a kernel panic due to a call to skb_put going beyond the end of the buffer in wfx_tx. This often occurs if starting a video stream after a client newly connects. We are also often seeing a warning message about incoherent status and result flags and the debug message "requested frame size (1620) is larger than maximum supported (1616)". These often occur before the panic, but can occur separately.
A file containing the error and warning messages is attached. Are you able to help with this issue?
WF200 and its registers - What do I need to know?
Hi!
I was planning to use the working example of WF200 from GitHub, but I could not implement it because it was too difficult to use.
Questions about registers:
So I'm planning now to write to registers by using my own code. I have some questions about the registers.
From here we can see that there are 5 registers from the address map:
Question 1: Only Config and Control registers are available - Why?
https://docs.silabs.com/wifi/wf200/rtos/latest/wf200-registers
Here there are more registers where aren't visible.
Only Config register and Control register are available
https://docs.silabs.com/wifi/wf200/rtos/latest/wf200-hif
Question 2: Do I only need Config register and Control register for sending and receiving data with WF200?
Questions about queues:
According to the URL link above, it says
Question 3: Does Input/Output queue mean that I need too call that register by my self? Or what does it mean? I don't understand this text.
Questions about firmware:
Question 4: When I want to send the firmware to the Shared RAM direct access channel, I need first to send it to the address 101 and bit 15 = 0 (write) and the length should be sizeof(sl_wfx_firmware)/16? Where sl_wfx_firmware is the firmware array.
Is there not any command list examples, what to write, when to read etc?
RS911x, compile 2.0.0.0024 OSD release
Hi,
I'm trying to update to from v2.0.RC6 to v2.0.0.0024. But compiling the new version fails with
Some other facts:
I see there are som changes in the driver, calling those functions...
Do you see any way to fix that?
Thanks
Martin
AMW006 replacement with u.Fl
Can you suggest a possible replacement for our current use of the AMW006 wifi module as a tcp server:
a) a u.FL connection
b) Can be configured as a TCP server.
c) MCU connection is via UART
Thanks
David Nyarko
No rule to make target `/altcp_tls_mbedtls.c
Dear sir,
I use Simplicity Studio Version: SV4.1.13.9 to build wfx-fullMAC-tools\Examples\SiliconLabs\commissioning\micrium_os project and it works but suddenly
got build error
make: *** No rule to make target `/altcp_tls_mbedtls.c', needed by `lwip/src/apps/src/apps/altcp_tls/altcp_tls_mbedtls.o'. Stop.
make: *** Waiting for unfinished jobs....
Tried to re-install Simplicity Studio but still not help
Thanks in advance
Jason
What is the most useful Host API commands for WF200?
Hi!
I want to communicate with WF200. What I want is to:
I have found a minimal working example:
https://github.com/SiliconLabs/wfx-fullMAC-tools/blob/master/Examples/STM32/commissioning/F429ZI_freertos/Src/sl_wfx_host/sl_wfx_host_spi.c
But it missing a lot of functions.
https://github.com/SiliconLabs/wfx-fullMAC-driver/blob/master/wfx_fmac_driver/sl_wfx_host_api.h
These functions are:
So what should I write in sl_wfx_host_api.c to achieve these commands?
AMW006 hungup issue
Followup to a previous post:
We have AMW006 modules configures as TCP servers (default port : 3000) and on occasion these would hung up where the TCP client cannot connect to it.
However when we run a ping command, we do get a response. It seems the TCP server portion is non-responsive. Power cycling the wifi module clears the problem.
The client communication is about 100 bytes every 6 seconds.
The OS is still "WiConnect-2.4.1.5". I had an issue upgrading ( as per some of my previous posts)
Could there be an option i am configuring wrongly?
Below is the result of the "get tcp.server" command
> get tcp.server
tcp.server.auto_interface: default
tcp.server.auto_start: 1
tcp.server.connected_gpio: -1
tcp.server.data_gpio: -1
tcp.server.idle_timeout: 0
tcp.server.max_clients: 8
tcp.server.port: 3000
tcp.server.tls_cert:
tcp.server.tls_enabled: 0
tcp.server.tls_key:
tcp.server.tls_verify_peer: 0
>
AMW006 TCP server issues
Hi,
We have AMW006 modules configures as TCP servers (default port : 3000) and on occasion these would hung up where the TCP client cannot connect to it.
However when we run a ping command, we do get a response. It seems the TCP server portion is non-responsive. Power cycling the wifi module clears the problem.
The client communication is about 100 bytes every 6 seconds.
Is it possible to setup a service/server on the wifi module (configured as a tcp server) to act similar to an Administrative mode that can be communicated with via the Wifi side ( Not MCU) to reboot the wifi module.
The OS is still "WiConnect-2.4.1.5". I had an issue upgrading ( as per some of my previous posts)
Thanks
David
nvm3_open Fails device WGM160P
Der Sir,
I tried to add nvm3 functionality from \wfx-fullMAC-tools\Examples\SiliconLabs\commissioning\micrium_os
nvm_open returns a error , res = 1111 0000 0000 0000 1110 0000 0000 0001
Would you please take a look to see what's wrong ? Following is test code for that
// Initialize the structure managing the NVM3 area and open it
NVM3_DEFINE_SECTION_INIT_DATA(nvm3Data, &nvm3_halFlashHandle);
nvm3Data.maxObjectSize = NVM3_MAX_OBJECT_SIZE;
res = nvm3_open(&nvm3_handle, &nvm3Data);
APP_RTOS_ASSERT_CRITICAL(res == 0,; );
How to add following into project ?
For Simplicity IDE linker file (.ld) :
Actually I found It is inside nvm3.ld but
Set NVM3_DEFINE_SECTION_STATIC_DATA(nvm3Data, 128, 100);
Said ECODE_NVM3_ERR_PAGE_SIZE_NOT_SUPPORTED ( NVM3 error: 0000e004 on line 88)
Thanks in advance
Jason
gecko os studio
Per the webpage
https://docs.silabs.com/gecko-os/4/standard/latest/sdk/user-guide/getting-started
It says that i can connect my device via USB to my computer and turn it on and Gecko os studio
will detect it. I can talk to my prototype just fine via USB but the studio fails to see it.
The instructions seem to want it connect to a dev board ?
How does one write c code to run directly on the WGM160P board on a customer designed PCB with no processor,
using gecko OS studio?
AMW136 zentri module support 9-bit SPI ??
Hi,
I would like that my AMW136 zentri module communicate with ili9341 chip by 9-bit SPI, but I don't find the option in SPI stream.https://nox.tips/
Does this option exist ?
Best regard
Wi-Fi 6 AP and Client Good in LAN not WAN
Hey guys,
I have recently bought three different access points using Wi-Fi 6 with a return policy to test things out. They all work great, the best one is the Xiaomi AX3600. In Wireless LAN, I max out the Gigabits. In others words, I can easily max out the 1Gbits connection to my Synology NAS without any issue (110 MB/s). However, I cannot get the same speed with my WAN/Internet connection of 560Mbits download.
With the Ethernet cable directly connected to my AP, i get 555 Mbits. However, any Wi-Fi 6 clients (e. g., Samsung Note 10+, S10+, laptops with AX200, desktops with AX200, or Killer 1650AX) cannot get more than 450 Mbits at maximum. Usually, 420Mbits.
I tried everything. Multiple APs (i.e., Mi AX3600, Swisscom Internet Box 3, Xiaomi AX1800), resetting, restarting, multiple clients being extremely close, disconnecting all wireless clients, changing channels, tweaking settings, etc. Nothing works https://19216801.onl/.
I tried iPerf3 and get only about 450 mbits as well to my PfSense. Sometimes I get more like 750mbits, especially if I use laptop's if I go with: iPerf3 -c 192.168.1.1 -P 32
Is it normal? I will soon have a Gigabit Internet and my family and I will use it a lot as heavy users for work https://routerlogin.uno/.
Thanks!!!!
How to start a micrium-os ( WGM 160p ) from Simplicity Studio ?
Dear Sir,
I am new to micrium-os and like to know how to start a micrium-os project ( WGM 160p ) from Simplicity Studio to support mqtt ?
We was taking Gecko OS Studio project to implement mqtt and it's works as expected. now we want to migrate to micrium-os, so far I have installed and tested wgm160p_commissioning_micriumos and wgm160p_secure_mqtt example code and both worked as expected. at this point I want start a new project to do real things but don't know how to start a new micrium-os project, also some sdk file need to be changed how can copy them into the project ?
Thanks
Jason