Ameba RTL8722DM Mini voltage mode

Is there any way to choose 1.8V or 3.3V for the Ameba RTL8722 Mini. Right now it is in 1.8V mode but I want it in 3.3V mode…

Are you sure you have the details correct? The RTL8722DM mini dev board has the voltage regulator configured for 3.3V by default.

Ok, but why do I only see 14dBm TX-power with 1Mbps CCK ? Using Arduino example “ConnectNoEncryption”. This is also the case when configuring wifi with AT-commands…

Can you try turning off wifi powersaving mode with WiFi.disablePowerSave()

If you are testing for specifications, I would suggest using the SDK, since it is possible that the Arduino code layer uses default configurations that are in conflict with what you are testing for.

Ok, I will try to use the SDK. Are there any examples that would be good for this? Just want to connect the module to a AP.

The SDK by default will build an image that allows for the use of UART AT commands to connect to an AP.

Refer to AN0025 for a list of AT commands and how to use them.

Refer to AN0400 wifi chapter for a list of wifi APIs.

So if I understood it correctly, I should include the API calls in the src code if I for example want to set the tx-power?
I want to add that the TX-power when using the AT commands is still 14dBm. So by calling wifi_set_txpower I can increase it?

I have checked with internal wifi engineers, and the default behavior of the SDK is dynamic TX power regulation, depending on distance to AP and WiFi regulations and specifications. You should be able to use wifi_set_txpower to increase it to a certain limit.

To disable this behavior would require specific testing tools and binaries which in turn require an NDA.

Ok thank you wery much. Is the power index used in set_tx_power the dBm value or does it use some other format?

// Note: power index value = power*2
// => ex: 16dBm => 0x32 , 13dBm => 0x26

1 Like

I am really thankful for your help so far! I we look at the default image, where should I call the wifi_set_txpower? By this I mean in which file should I call it?

The WiFi AT commands are at \component\common\api\at_cmd\atcmd_wifi.c, you could choose to add it into a command that you will use, or create a new command to change the tx power using the AT command interface.

I called the API when connecting to the AP (in “ATWC”). The power is still on 14dBm. I’ve also disabled powersave.
When reading the TX-power with wifi_get_txpower I get random values (sometimes 0, sometimes for example -1515870811).
All the functions run correctly as their return vales are RTW_SUCCESS.
I noticed that the get_txpower and set_txpower functions are commented out in wifi_conf.c with a comment “not ready”. I uncommented them, but are they even functional in the SDK?

Apologies, it was my mistake for not looking at the code first.
It looks like wifi_set_txpower and wifi_get_txpower are non functional as described.
I would suggest you proceed with the NDA path to get access to the MP tool which is what is normally used for RF power configuration, as well as contact with an FAE who would be able to answer your questions better. This forum is mostly focused on the open-source and Arduino side of the code, so most of these are new to me as well.

So as long as I’m using the SDK the tx power will be limited to 14 dBm? The only thing I am doing now is setting up a connection to a AP. Shouldn’t there be some way to maximize the tx power(and the reach) of the signal so that the module can be used to it’s full potential?

Where can I contact FAE?

Please refer to this post on how to start the NDA process. An FAE will contact you to process the NDA request.

Ok, thank you very much for your help! :slight_smile:

I still have one question about the open source SDK. Does it support all the 802.11 standards? I’m having some problems with the g/n standards not connecting.

It should support a/b/g/n.

I can connect when my AP is set to b/g mode as well as in n only mode

Hmm for some reason it will not connect to all data rates(for example 6Mbps). I have also tried to read the wifi mode with wifi_get_network_mode but it returns -1 for some reason.