Issue with M5stack
-
Hello,
I have an M5 stack with a C2 that works perfectly. However, when I connect the NRF24 module, it doesn't show as connected, and I receive an "NRF24 not found" error. I've checked the wires and connections multiple times, and they're all in the correct places.Is there something I need to flash onto it, or could the NRF24 module be faulty?
-
@elizabetharnold NRF24 Module Connection Troubleshooting Guide
Thank you for reaching out! I understand you're experiencing an "NRF24 not found" error with your M5 Core2. Let me help you troubleshoot this issue.
Current Situation
I've reviewed our available documentation, and I must be transparent: our knowledge base currently has limited specific documentation for the NRF24 module integration with M5 Core2. However, I can provide you with general troubleshooting guidance and point you toward the right resources.
Troubleshooting Steps- Verify SPI Connection
The NRF24 module communicates via SPI. Ensure your connections match the M5 Core2's SPI pins:
• MOSI → GPIO 23
• MISO → GPIO 38
• SCK → GPIO 18
• CS (Chip Select) → GPIO 5 or GPIO 26 (configurable)
• GND → Ground
• VCC → 3.3V (ensure stable power supply) - Power Supply Check
• Verify the NRF24 is receiving stable 3.3V (not 5V)
• Consider adding a 0.1µF capacitor close to the NRF24's power pins for noise filtering
• Check that your power supply can provide sufficient current (NRF24 can draw up to 115mA during transmission) - Library Installation
You'll need to install the appropriate NRF24 library:
• Search for "RF24" or "NRF24L01" in the Arduino IDE Library Manager
• Install the library by TMRh20 (most commonly used)
• Ensure your M5Core2 library is also up to date: M5Core2 GitHub Repository - Initialization Code
Here's a basic initialization template:
#include <SPI.h>
#include <RF24.h>
RF24 radio(5, 4); // CE pin, CSN pin (adjust based on your wiring)
void setup() {
Serial.begin(115200);if (!radio.begin()) {
Serial.println("NRF24 initialization failed!");
} else {
Serial.println("NRF24 initialized successfully!");
radio.setPALevel(RF24_PA_MIN);
radio.setDataRate(RF24_250KBPS);
radio.openReadingPipe(1, 0xF0F0F0F066LL);
radio.startListening();
}
}
5. Hardware Verification
• Double-check all solder joints on the NRF24 module
• Test with a multimeter to confirm continuity on all connections
• Try a different GPIO pin for CS if available
• Verify the NRF24 module isn't damaged (check for burn marks or corrosion)
Next Steps
If the above steps don't resolve the issue:- Test with a simple SPI communication sketch to verify the SPI bus is working
- Check the NRF24 module's address - ensure it matches your code configuration
- Review the RF24 library documentation at GitHub - TMRh20/RF24
- Consider the module might be faulty if all connections and code are correct
Additional Resources
• M5Core2 Arduino API Documentation: Core2 Arduino API
• M5Core2 Quick Start Guide: Getting Started

Note: If you need more specific guidance on NRF24 configuration or encounter persistent issues, I recommend:
• Consulting the NRF24L01 datasheet directly
• Checking the RF24 library's example sketches
• Reaching out to our community forums with your specific wiring diagram and code
Is there a specific error message or behavior you'd like me to help you investigate further?
https://chat.m5stack.com/
- Verify SPI Connection
-
That sounds frustrating have you tried updating the firmware on your M5Stack? Sometimes these kinds of issues pop up because the modules or UI libraries are out of sync. Also, double-check your power supply and wiring; a weak or unstable source can cause odd behavior in modules.
-
NRF24L01 Troubleshooting Guide for M5 Core2 Users
Thanks for bringing this up! The “NRF24 not detected” message usually points to a wiring, power, or SPI initialization issue. While detailed documentation for NRF24L01 specifically paired with M5 Core2 is limited, here’s a comprehensive set of checks to help you isolate the problem.
- Verify SPI Wiring
The NRF24L01 relies on proper SPI mapping. Make sure the following pins align with the Core2’s hardware SPI bus:
MOSI → GPIO 23
MISO → GPIO 38
SCK → GPIO 18
CSN (CS) → GPIO 5 or GPIO 26
CE → Any free GPIO (commonly GPIO 4 or 5 depending on your setup)
VCC → 3.3V (never 5V)
GND → Ground
⚠ Tip: Loose CSN or CE wiring is one of the most common causes of NRF24 initialization failure.
- Power Stability Check
The NRF24L01 is notoriously sensitive to voltage noise.
Ensure a clean 3.3V feed (not exceeding 3.6V).
Add a 0.1µF ceramic capacitor close to the module’s VCC/GND pins.
Prefer a separate 3.3V regulator if you are using the PA+LNA high-powered version.
The module may draw up to ~100mA during TX, so confirm your supply can deliver this reliably.
- Library & Firmware Setup
Make sure the correct software environment is in place:
Install TMRh20’s RF24 library via Arduino IDE → Library Manager.
Update your M5Core2 library from GitHub.
Use a fresh example sketch from the RF24 library to confirm base connectivity.
- Example Initialization Code
Adjust pins depending on your wiring:
#include <SPI.h>
#include <RF24.h>RF24 radio(4, 5); // CE pin, CSN pin
void setup() {
Serial.begin(115200);if (!radio.begin()) {
Serial.println("NRF24 module NOT detected!");
return;
}Serial.println("NRF24 module initialized.");
radio.setPALevel(RF24_PA_MIN);
radio.setDataRate(RF24_250KBPS);
radio.openReadingPipe(0, 0xAABBCCDDEEULL);
radio.startListening();
}void loop() {}
If this fails, the wiring or hardware is almost certainly the issue.
- Hardware Integrity Checks
Before assuming software issues, confirm physical reliability:
Inspect solder joints and header pins.
Use a multimeter to confirm continuity on MOSI/MISO/SCK/CSN/CE lines.
Try a second NRF24 module if available, these modules can fail easily.
Swap CSN/CE to alternate GPIOs if conflicts exist.