I soldered the board and tried to test the chip, but the corresponding function returns 0.
Wiring: Arduino soldering - Album on Imgur
The schematic is as follows: two joysticks are powered by 5V Arduino, connected to A0-A3, ground is the lowest copper wire.
The Arduino is powered by an input voltage greater than 7V (currently using the battery, it outputs 8.4V) on Vin. A board with AM1117 is connected in parallel to this line, nRF24 is powered from it. I have a 16V 22uF capacitor soldered to GND and Vin of the nRF, the polarity is visible in the photos above.
The nRF pinout is as follows:
D11 – CE
D12 – CSN
D4 – MISO
D5 – SCK
D7 – MOSI
In config.h of the RF24 library, I wrote the following according to the documentation (Optimized high speed nRF24L01+ driver class documentation: Arduino):
#ifndef SOFT_SPI_MISO_PIN
#define SOFT_SPI_MISO_PIN 4
#endif // SOFT_SPI_MISO_PIN
#ifndef SOFT_SPI_MOSI_PIN
#define SOFT_SPI_MOSI_PIN 7
#endif // SOFT_SPI_MOSI_PIN
#ifndef SOFT_SPI_SCK_PIN
#define SOFT_SPI_SCK_PIN 5
#endif // SOFT_SPI_SCK_PIN
Using the following code:
#include "RF24.h"
#include "printf.h"
#define CE_PIN 11
#define CSN_PIN 12
RF24 radio(CE_PIN, CSN_PIN);
const uint8_t num_channels = 126;
uint8_t values[num_channels];
void setup(void) {
Serial.begin(115200);
printf_begin();
radio.begin();
radio.setAutoAck(false);
radio.startListening();
radio.stopListening();
radio.printPrettyDetails();
}
void loop(void) {
if (radio.isChipConnected()) {
Serial.println("Connected");
} else {
Serial.println("No connected");
}
delay(10000);
}
I get the following result: Imgur: The magic of the Internet
What I checked: the voltage between GND and Vin pins nRF 3.36V. I have no problems with joysticks, they produce the correct values on all 4 axes, even if there is no additional power and the Arduino only supplied from USB. If there is no additional power supply, and the Arduino is powered only from USB, then the voltage on the nRF module is too low, but this does not affect the result of the sketches in any way (sadly). I also checked the code from the GettingStarted sketch in the library, the result is the same as in the photo above, but instead of Not Connected it produces the same information from printeDetails() and fills the screen with F characters: Imgur: The magic of the Internet
I know that the soldering is not of very high quality, this is my first hardware/low software project, I'm learning ![]()
Question: what should I do to check the module/start using it?