TX failed with status 6

Hello everyone,

I have a question I am trying to send data from a station to another station. So just send out a message to the adress 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, so that it is broadcasting to every listing device.

When I use the example sta_connect, from mm-iot-esp32, I commented out the mmosal_semb_wait function and I looped the mmwlan_tx as followed:

I get the following message in the terminal:

I have already used the correct bcf file for the module: Quectel, fgh100maamd. I cannot find anywhere what the status 6 means. Can anybody help me out how to fix this? If you need any extra information just say so. If I discard the for loop then I get TX failed with status 1, if I leave out the mmosal_assert, but when I leave mmosal_assert in, it is still status 6. Thank you in advance!

yours sincerely

Sten

@BeSten909 ,

In your output it does not appear you are associating to an AP. Is that correct?

If you look at the mmwlan.h, I believe that 6 is MMWLAN_TIMED_OUT.

@dwrice0

I see the error in mmwlan.h and yes I am not connecting to an AP. I am trying to broadcast a message to multiple stations. With normal WiFi I can broadcast it using the 0xff mac address. For some reason it doesn’t work with the WiFi HaLow module and I don’t know why. I got it working with normal WiFi. I am scared it is in the code that is encrypted (.A files).

I believe according to the standard you cannot send a data frame (broadcast or otherwise) to the BSS unless your radio has passed the authentication and association states. That’s why you’re getting the timeout.

@dwrice0

Hmm okay I was scared for that, thanks for the info I will look if there is any way to go arround that.

I have solved the sending problem I get now status 0 back. I was stupid and in the menuconfig I had 2 pins at the same output and that caused the error. And I figured out that the semaphore is created using Freertos. So also with a freertos function: xSemaphoreGive() I made sure that the link looked up.

Now I have the next problem, the other station won’t recieve anything. I have already tried to make the mac adress, the adress of the reciever, but that doesn’t help. Do you have any ideas what the condition is that triggers the RX callback?

Hello everyone,

I am trying to broadcast a signal from one station to another station. I bypassed the link up connection to trick the module that is connected to an AP. I did that using Freertos semaphore, and then the function: xSemaphoreGive(link_up_semaphore); Now when I use the function: status = mmwlan_tx(arp_packet, sizeof(arp_packet)); I get back status 0 so I think it is sending data in to the air. I am going to verify that using a spectrum analyzer, but it will take some time to do that. So for now I will guess it is sending data.

Now the problem is that the other station isn’t recieving anything. I think it has to with the condition of the trigger of the rx callback. Does anybody know when exactly the callback is called. Does it really need to connect to an AP to recieve anything. Maybe I can simulate the way an AP sends data with the arp_packet. Because in theory it shouldn’t matter who sends a signal on the correct frequency, the module will see it. So something in the code is keeping it from actually seeing it.

Does anybody have any information on this matter?

Yours sincerly,

Sten

Hi @BeSten909

Our driver/mac library (the .a file) definitely hasn’t been designed for transmitting without joining a BSS, so you’re definitely operating in uncharted territory! The good news is that we will be open sourcing that shortly.

Without joining an AP, I don’t even think you can guarantee that the two station devices are configured for the same frequency, or that anything has been sent at all. If you have one of our Linux based evaluation kits (eg a HaLowLink1), you could put that into “monitor” mode and iterate through all the channel combinations to verify your station is even transmitting.

PS: I’ve moved your other thread into this one to keep the discussion in one place :slight_smile:

Okay I understand what you are saying. I limited the assigned channels for EU to only one channel. So the frequency it uses should be the same.

If I can find out if the module is sending data, using a frequency analyzer could you maybe help me why it isn’t receiving anything. I think I can use it at school in the next week or so. Or do you think that this is at this moment it not possible at all?

And thanks for combining the threads, I wasn’t sure if I needed to make a new post or continue on the other one.

Speaking with our chip firmware team, you’re going to be blocked on this at a deeper layer as the chip requires an interface be initialised before it receives anything! So this might not be possible at all.

Out of interest, can you provide more detail about your intended application?

Okay that is really to bad, I am now trying to use a: asiarf mm610x-h06 and a raspberry pi 4b. Then downloading your openwrt and connecting to that for sending data.

I am doing an internship at a company and it is currently using a peer-2-peer connection using wifi. They send data from one controller to 4 nodes and receive data from those 4 nodes. I need to recreate this connection using wifi HaLow, because they want greater distance.