So I got a STM32F103C8T6, and 2 other NRF24L01 PA + LNA modules, and the M1 adapters and 100uF capacitors, and I tried the Hello World code with these (The STM32 as a transmitter), but the Arduino as a receiver received the data within random intervals not every second, and sometimes it stopped transmitting, so I tried another time the Hello World code with the 2 arduinos, and I got the same results as with the STM32, then I got the moules to work properly, then everything did not work. I even set the PA to MIN so that the power consumption drops and hopefully the module works. I got the modules to work as a BLE device following this tutorial, and they were all detected by the phone, so I'm pretty sure that the modules are not damaged. I've also tried Robin 2's tutorial (I lost the link) and I always get on the transmitter's serial monitor (Arduino) TX failed, then it worked successfully for a while, then it got back to Tx failed.
Fast forward to today, I did not manage to get the modules to work even with the M2 adapters, or directly powering the modules using a breadboard power board and connecting the grounds to the arduinos, but nothing. Then, I accidently powered one of the modules with 5V, but when I tried to check if it was still working with the BLE code, it was still detected, so does this mean that the module is not damaged ? Can someone please provide me with some help !?
You don't have to make it shorter, just more readable. Even the small change that you have made has done that and will encourage users to read it compared to the original
@00110010_techboy_00110010 , if you are experimenting with nRF24L01 boards, including the higher power variant you have, then the go-to starting point that you will most likely be directed to is this one from Robin2 (which you previously found):
You've discovered:
radio.setPALevel(RF24_PA_LOW);
to reduce the Tx RF power level. You may still need to separate the radio modules by a few feet as well.
In addition, make sure that you have a good 3.3V supply to the radio module.
Where are you getting the 3.3V from to power the radio modules?
As I said, I got the 3.3V from many sources including the M1 and M2 adapters, the Arduino and STM32 onboard voltage regulators, a breadboard power module...
Please note that in the Hello World code the Serial Monitor is only used when radio.available, however, I got the serial monitor running blank forever, and sometimes showing some random characters, but for a little moment, I got some random characters showing every second, and the Tx code is meant to send a data every second, so maybe the connection was established.
Note also that my 4 NRF24L01 PA LNA modules have no white markings on it as it should be , I don't even have the GND marking.
Oh, and I accidently set PA to MIN instead of LOW, I'll try fixing that.
@markd833 Apparently MIN setting for the PA is better that LOW since it reduces the power consumption more than LOW, so what I did is right, but I could not get anything to work. Any help or advice !?
EN_AA = 0x00
EN_RXADDR = 0x00
RF_CH = 0x00
RF_SETUP = 0x00
CONFIG = 0x00
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1 MBPS
Model = nRF24L01+
CRC Length = Disabled
PA Power = PA_MIN
ARC = 0
AND NOW WITH ADDRESS AAAxR 0x41 41 41 78 52 ON P1
and 250KBPS data rate
SPI Speedz = 10 Mhz
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0x0000000000 0x0000000000
RX_ADDR_P2-5 = 0x00 0x00 0x00 0x00
TX_ADDR = 0x0000000000
RX_PW_P0-6 = 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA = 0x00
EN_RXADDR = 0x00
RF_CH = 0x00
RF_SETUP = 0x00
CONFIG = 0x00
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1 MBPS
Model = nRF24L01+
CRC Length = Disabled
PA Power = PA_MIN
ARC = 0
I got that with all 4 modules with the Arduino Mega 2560 but with the Uno I got
EN_AA = 0x3f
EN_RXADDR = 0x03
RF_CH = 0x4c
RF_SETUP = 0x07
CONFIG = 0x0e
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1 MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_MAX
ARC = 0
AND NOW WITH ADDRESS AAAxR 0x41 41 41 78 52 ON P1
and 250KBPS data rate
SPI Speedz = 10 Mhz
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0xe7e7e7e7e7 0x4141417852
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xe7e7e7e7e7
RX_PW_P0-6 = 0x20 0x20 0x20 0x20 0x20 0x20
EN_AA = 0x3f
EN_RXADDR = 0x03
RF_CH = 0x4c
RF_SETUP = 0x27
CONFIG = 0x0e
DYNPD/FEATURE = 0x00 0x00
Data Rate = 250 KBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_MAX
ARC = 0
The STM32F407VET6 gave me the same results as the UNO, so does this mean that the modules work fine ? It's the first time that I tried with the STM32F407VET6 on the NRF24L01's onboard socket, I did not try transmitting. I also noticed that the data was printed on the monitor very slowly, 2 characters at a time in average and it stopped here
AND NOW WITH ADDRESS AAAxR 0x41 41 41 78 52 ON P1
and 250KBPS data rate
Is this normal or is the FTDI converter not working properly !? When I plug the converter, it stops any sound coming from my Bluetooth Speaker connected to the computer for one or two seconds, so maybe it does have a short circuit !?
SPI 50 51 52 and CE 7 and CSN 8 (I changed them in the code) I now remembered that I accidently lowered the SPI pins by 1 row, so I connected them to 52 53 and GND. By wiring the wrong pins, could I damage the SPI port ?
So the modules work, I'll try sending and receiving data with the UNO and the STM32F407VET6, then with the STM32F103C8T6 and the STM32F407VET6 as they are meant to be my project's boards and I'll return to you guys
Well I tried the Hello World program of How To Mechatronics, it worked when I sent data from the STM32 to the Arduino, it printed on the Serial Monitor of the Arduino Hello World each second, and sometimes each 2 seconds, and sometimes it printed Hello World 2 times successively, but showing 2 different timings separated by 1 second(I activated the option that shoes the timing on the Serial Monitor). When I tried the opposite, I also got the message printing on the STM32F4's Serial monitor, so the next step is to try to send data packages and increase the PA power without having power issues. For that, the module on the transmitter will be connected to the NRF24L01 socket, that will be connected to 2 18650 batteries connected in series, so I should not have any power issue on the transmitter's side. However I cannot use this method on the receiver because the NRF24L01 will be directly connected to the board via the onboard socket, thus, using the onboard power regulator. I hope it will work fine