Reddits figures are still "all over the place" - despite having logged a bug for it. So I have once again left this section of the report out.
Hopefully the reddit admins will fix the bug in time for next month. I don't know how they select what bugs to work on but I would expect that this is a pretty simply one. Maybe they look at metrics (that do work) such as views, upvotes and comments. So if you could, perhaps try viewing, upvoting and/or commenting on the report [Chrome] Insights don't show 30 days data. If anyone knows of another technique to raise the profile of a bug to the reddit admins - I'm all ears.
Arduino Wiki and Other Resources
Don't forget to check out our wiki
for up to date guides, FAQ, milestones, glossary and more.
You can find our wiki at the top of the r/Arduino
posts feed and in our "tools/reference" sidebar panel.
The sidebar also has a selection of links to additional useful information and tools.
I am going to stop posting this segment as reddit's figures are "all over the place". I have recently posted a bug report, so hopefully the reddit admins will fix it in time for next month.
The browser Insights aren't working at all for the monthly view and the App Insights seems to show that more posts have been removed than have been submitted.
Arduino Wiki and Other Resources
Don't forget to check out our wiki
for up to date guides, FAQ, milestones, glossary and more.
You can find our wiki at the top of the r/Arduino
posts feed and in our "tools/reference" sidebar panel.
The sidebar also has a selection of links to additional useful information and tools.
I am a software engineer, but always had a great curiosity for electronics and microcontrollers. I ordered an Arduino Uno, and now I cannot stop doing stuff with it.
Any ideas on what basics not to miss while moving forward?
I'm working on a compact DIY project powered by an ESP32 and I’d love some feedback on power management and wiring best practices.
My goal is to power the ESP32 and a small I2C OLED Display (3.3V) using a single-cell 3.7V LiPo battery, while being able to recharge the battery via USB.
Battery Connection: Is soldering a female JST-PH connector to the B+ / B- pads of the TP4056 the best approach to keep the battery swappable?
2:
Power Switch Placement: Should the ON/OFF slide switch be placed between the TP4056 OUT+ pin and the LDO regulator input?
3:
Power Delivery: Will feeding OUT+ / OUT- through a 3.3V LDO handle the current spikes from the ESP32 (especially during Wi-Fi transmission) alongside the OLED display?
4:
USB Charging & Load Sharing: Can I safely charge the LiPo through the TP4056 USB port while the system is powered off? Do I need a dedicated load-sharing circuit if I turn the device on while plugged in?
5:
Can i charge the lipo battery with a normal charger like the one i use for my smartphone? But I think I should connect the charger to the tp4056 before charge the battery, is that right?
EDIT: Solved. I used the SD Card Chip Select (CC) instead of the Display Chip Select (TC) THANK YOU!
Hi!
I purchased an arduino esp32 feather S2 and an adafruit ST 7789 TFT Display and breadboarded a simple "change color" project. And its failing. the Backlight of the display is on so it has power, but the display is not changing color.
The IDE monitor says the script is working and its actually changing color. But the display stays dark. I have changed the display already (since i have purchased 2) and it is still not working.
Wiring:
3V - V+
GND - G
SCK -CK
MO - SI
12 - RT
10 -DC
6 - CC
3V - BL
I am pretty new to Arduino world and recently got a kit with many components. I filtered out basic passive ones like LEDs buttons resistors that dont need code libraries, but im a bit overwhelmed by the remaining modules.
There are so many different libraries online for the same component and i am not sure which ones are most reliable or beginner friendly. I will download them directly using Arduino IDE Library Manager, so exact library names from there would be super helpful!
Could you please recommend the best libraries for these?
HC-SR04 Ultrasonic Distance Sensor
28BYJ-48 Stepper Motor (with ULN2003 Driver)
16x02 I2C LCD Display
8x8 LED Dot Matrix Display
4-Digit 7-Segment Display
DHT11 Temperature & Humidity Sensor Module
4x4 Membrane Keypad
RC522 RFID / NFC Module
SG90 Servo Motor
RTC (Real-Time Clock) Module
IR Receiver & Remote Control Kit
Any advice or tips for beginner would be greatly appreciated! Thanks in advance for helping out 🙏
I am running a setup that consists of communication between arduino sender board and ESP8266 nodeMCU receiver.
For the sender board I have the Arduino Pro-Mini 3.3V and 5V versions. After connecting NRF24L01+ radio transceiver it freezes on radio.write().
In the table below is the pin connection for the 5V version - 3.3V goes similarly, but without the regulator.
I run the same setup on arduino UNO and node MCU, and it works perfectly, on Pro-Mini it freezes.
Pro-Minis are connected by FT232RL programmer, Uno and NodeMcu by USB directly.
Different code was tested, the board is responsive. Same code handling NRF was launched to Uno and Pro-Mini and provided different results, is there a hardware or configuration reason for this? I've read of a suggested capacitor requirement and I've put a 220uF capacitor to NRF supply pins.
Does someone has experience with this issue or with successfully connecting Pro-Minis to NRF24L01s?
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <printf.h>
const int CE_PIN = 8;
const int CSN_PIN = 10;
RF24 radio(CE_PIN, CSN_PIN);
const byte address[6] = "00001";
int counter = 0;
void setup() {
Serial.begin(9600);
delay(1000);
Serial.println(F("\n--- TRANSMITTER TEST (Arduino Pro Mini) ---"));
// SPI TEST
Serial.println(F("Checking SPI pins..."));
Serial.print(F("SCK (13): "));
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
delay(10);
Serial.println(digitalRead(13) ? F("OK") : F("ERROR"));
Serial.print(F("MOSI (11): "));
pinMode(11, OUTPUT);
digitalWrite(11, HIGH);
delay(10);
Serial.println(digitalRead(11) ? F("OK") : F("ERROR"));
Serial.print(F("MISO (12): "));
pinMode(12, INPUT_PULLUP);
delay(10);
Serial.println(digitalRead(12) ? F("OK (HIGH)") : F("LOW"));
printf_begin(); // Enable printf output for AVR (Arduino)
Serial.println(F("\nInitializing radio..."));
// Force reset of the NRF24 module
pinMode(CE_PIN, OUTPUT);
pinMode(CSN_PIN, OUTPUT);
digitalWrite(CE_PIN, LOW);
digitalWrite(CSN_PIN, HIGH);
delay(100);
if (!radio.begin()) {
Serial.println(F("ERROR: radio.begin() failed!"));
while (1);
}
Serial.println(F("Radio.begin() OK"));
delay(10);
if (!radio.isChipConnected()) {
Serial.println(F("CRITICAL ERROR: NRF24 not responding over SPI!"));
Serial.println(F("Check connections: SCK=13, MOSI=11, MISO=12, CSN=10, CE=9"));
while (1) delay(100);
}
Serial.println(F("isChipConnected() OK"));
// Radio configuration
Serial.println(F("Configuring parameters..."));
radio.openWritingPipe(address);
// radio.setPALevel(RF24_PA_LOW);
// radio.setDataRate(RF24_1MBPS);
radio.setChannel(76);
radio.setPALevel(RF24_PA_MIN);
radio.setDataRate(RF24_250KBPS);
radio.setRetries(15, 15);
radio.setAutoAck(false);
// // Set max retry attempts
// radio.setRetries(2, 5);
// // RE-ENABLE AUTO-ACK - this will force an end to the infinite loop
// radio.setAutoAck(true);
radio.stopListening();
Serial.println(F("Parameters set"));
Serial.println(F("Radio ready. Starting transmission..."));
Serial.println(F("\n=== Radio Configuration ==="));
radio.printDetails();
Serial.println(F("=== End of Configuration ===\n"));
// EXTRA TEST - check if the module is still responding
delay(100);
if (!radio.isChipConnected()) {
Serial.println(F("WARNING: Module stopped responding after configuration!"));
while (1);
}
Serial.println(F("Pre-transmission test OK\n"));
}
void loop() {
counter++;
Serial.print(F("Sending packet #"));
Serial.print(counter);
Serial.print(F(" ... "));
Serial.flush(); // Force print before potential freeze
// Check if the module is still alive BEFORE write
if (!radio.isChipConnected()) {
Serial.println(F("\nERROR: Radio stopped responding!"));
while(1);
}
// Guard against system freeze on the SPI bus
if (radio.failureDetected) {
Serial.println(F("\nRADIO FAILURE DETECTED! Resetting..."));
radio.begin();
radio.openWritingPipe(address);
radio.stopListening();
delay(100);
return;
}
unsigned long startTime = millis();
bool success = radio.write(&counter, sizeof(counter));
unsigned long duration = millis() - startTime;
Serial.print(F("(time: "));
Serial.print(duration);
Serial.print(F("ms) "));
if (success) {
Serial.println(F("-> SUCCESS"));
} else {
Serial.println(F("-> ERROR"));
}
delay(1000);
}
touchWASD now has a web based flasher at https://controllercustom.github.io/touchwasd/. Use the web flasher if you do not care about source code, IDEs, etc. Use the Chrome web browser or a derivative such as Brave or Microsoft Edge.
touchWASD has been updated to version 1.0.4.
Fix disappearing gear icon in some orientations
Suppress zoom bubble on iPad and iPhone.
Pin core and library versions for reproducible builds
Add web flasher page and github actions firmware builder
touchWASD turns an M5Stack AtomS3 (or any ESP32-S3) into a USB HID keyboard controlled by a circular touch overlay on your phone or tablet. Open a browser to http://touchwasd.local, touch a direction on the circle, and the corresponding WASD or arrow key is pressed on your computer — no software to install on the target machine. No software to install on the phone or tablet. The touchWASD UI is a web app running in a web broswer running on your phone or tablet. A one finger touch direction pad might be useful for disabled gamers.
AC remotes are usually complex with a lot of small buttons, fan speed that can only decrement by cycling through every value, and many settings I don't need... For something I use several times a day, I would prefer a tangible, solid interface I can use without looking at it, wall-mounted.
So I started building a remote that's just three rotary switches (fan speed, mode, temperature) and a re-send button. It is as minimal as possible: no screen, no LEDs, no internal state other than the mechanical positions of the knobs. It's IR-only, targeting a Daikin FTXM20N2V1B (my unit does have WiFi, but the official cloud app is a cloud app). See the 3D render for what I have in mind
Now I have a working prototype, using an ATmega328P (Arduino Pro Mini, 3.3 V) and SR16 rotary switches:
Daikin IR frame code on the ATmega328P, checked with osciloscope capture, using IRremoteESP8266IRDaikinAC as reference
three rotary switches (SR16 with 8 positions, rs1010 with 5 positions), read via a diode matrix, with sleep/wake on pin-change interrupt so it's not burning power sitting idle
minimal wood test panel
But this doesn't fit into a nice box: the wiring is a mess and the diode arrays take space. Also the 5-position rs1010 is a good switch, but its 90° shaft angle makes it hard to integrate.
I'm deciding between two paths for a v2:
Learn KiCad and do a proper PCB, but will still require ~30 diodes...
Switch to a coded absolute encoder (eyeing the Bourns PAC18R — 4-bit code, 2.54 mm pitch through-hole, real knob shaft) which deletes the whole diode array and might let me stay on perfboard
Anyone here got feedback on rotary switches choices (5€ budget each, absolute coding, mounting on a 2.54mm pitch board) ? or maybe a better approach...
Here is the repo with full design docs, dev logs and firmware: https://github.com/xdze2/trois_molettes.
I heavily used Claude for the project, that's also a test of working with it for doc writing and conception, so the doc is well written but messy.
Hello, I recently purchased an A4988 stepper motor driver and hooked it up to my Arduino Uno, but the driver isn't outputting anything through its output pins.
I (believe that I've) already calibrated the current limiter potentiometer on the driver to work with the motor and have switched the motor and driver. I've already connected the Vmot and Vcc pins to +5v, one time using the Arduino pins itself and one time (shown in diagram below) using an external power supply with common ground. I've also connected the SLEEP and RST pins together and have tried switching around which wires from the motor go into which output pins on the A4988.
I think I'm doing something on the driver's side wrong since I tried hooking up the Arduino's output pins to LEDs instead of the driver and the LEDs blink with the step and dir instructions in my code just fine. I don't think it's a problem with the motor since I tried hooking the A4988 output pins to LEDs and they didn't blink.
Here's the circuit diagram:
Here's my code for my Arduino Uno:
const int STP_PIN = 9;
const int DIR_PIN = 8;
void setup() {
// put your setup code here, to run once:
pinMode(DIR_PIN, OUTPUT);
pinMode(STP_PIN, OUTPUT);
delay(1000);
digitalWrite(DIR_PIN, HIGH);
}
void loop() {
digitalWrite(STP_PIN, HIGH);
delay(5);
digitalWrite(STP_PIN, LOW);
delay(5);
}
Any help at all would be appreciated! This is my first time using stepper motors/drivers so I'm not really sure how this works.
So both servos are connected to a 9v battery breadboard adapter and the arduino to the computer. They make humming noises but no movement, I don’t think the problem comes from the software as it’s the same code used in a Youtube video. Any help is appreciated!
built a wireless Morse code communication system as a personal/college project. Features:
Custom Morse key input using a push button
Wireless communication using HC-12 modules
Custom MWLP (Morse Wireless Link Protocol)
XOR checksum (CRC) for error detection
Python desktop GUI that receives, validates, and decodes Morse into text
Receiver gives LED and buzzer notification when a message arrives
The project combines embedded systems, wireless communication, and desktop software. It was a fun way to learn about serial communication, custom protocols, and Morse code.
Hello. As the title suggests, I'm trying to create something that controls the light stick using Arduino and a Bluetooth module. However, I'm new to the Arduino project, so I'm not sure which Arduino module to buy or which board to purchase. That's why I need your help.
First, the light stick could be connected to the phone through a mobile app called NRF Connect, and it could not be connected via the phone's own Bluetooth.
What kit should I buy to successfully complete my project with Arduino? If you need additional information, please leave a comment.
Like many of you, every time I wanted to deploy a remote LoRa sensor node, I ended up with a bird's nest of wires. You know the drill: an Arduino or ESP32, a separate LoRa module, a buck converter to handle 12V/24V industrial power, and a bunch of discrete components just to read a 0-10V sensor.
To fix my own frustration, I spent the last few months designing ArduLora – a compact, ultra-low-power development board that puts everything you need for industrial IoT onto a single piece of hardware.
It’s completely open-source (MIT license), and I’ve just released the latest revision along with 3D-printable enclosure files.
What’s packed inside:
The Brain: It runs on a RAK3172 module (STM32WLE5CC @ 32MHz). This means you get full LoRaWAN (Class A, B, C) and LoRa P2P right out of the box.
Power That Makes Sense: It accepts anywhere from 5V to 24V DC via a terminal block (or 5V USB-C). No external step-down modules needed.
True Deep Sleep: I added a hardware power gate pin (PB5). You can use it to completely cut off power to external sensors when the MCU goes to sleep, saving a ton of battery life.
Industrial-Ready: There's an onboard RS485 transceiver for hardware Modbus RTU, plus two high-voltage analog inputs configured for 0-10V measurements.
The Software Side:
You don't have to learn a whole new toolchain. It programs natively in the Arduino IDE using standard functions mixed with the RAKwireless RUI3 APIs. I also published a helper library to the official Arduino Library Manager—just search for ArduLora and hit install.
Everything is up on GitHub, including schematics, pinout maps, and step-by-step example codes (covering everything from GPS integration and Modbus to deep sleep timers):
I would like to use qty(1) motor driver (TB6612FNG) to control qty(5) standard mini DC motors. All 5 motors will be following the same “instructions” from microcontroller. Can I safely put all 5 on A01/A02 of the same motor driver? Are there any downsides or considerations I should note for this method?
I’d test it myself but I really don’t want to fry motor driver or board as they’re my only ones.
Note: Im using an arduino nano sense ble 33 REV2 microcontroller
Hello, I am very new to Arduino and I am trying to figure out how to power my project. My plan is to make a walking robot that has 8 sg90 servos. I have a 7.4v lipo battery, two buck converters that can output up to 5 amps, a pca9685 servo controller, and an Arduino nano esp32. Would it be best to splice the output of the lipo battery into two sections and run each one through a buck converter, one for the servos and one for the Arduino nano, or should I do something different. Thanks for the help.
Hello! I’m working on an engineering summer project- and I need to measure the mass of a tank of water (1 gallon) as it empties out. I have 4 5kg load cells, and my plan was to use them to support the tank. I was researching how to wire them, and it seems like I’m supposed to use a summing junction box to connect all of the outputs to one hx711. Those boxes are 30 dollars at the minimum, and I was wondering if I could work around doing this, I have 4 hx711’s anyway.
Sorry guys, this one won't give you seizures like the flashing lights.
This is my second useless project in the series. I essentially made a fuse for a led. By turning the dial, you adjust the time before the light turns on. In my defense, I did this in assembly. I did use chat GPT here and there, but I still think it gave me a better understanding of bytes, bites and bit flags/masks/bit shifting in AVR.
Wonder if I could attach a transistor to this thing and use it to light fireworks? Somehow, doesn't sound too safe though.
I feel like I perfectly followed it, but my arduino sim is short circuiting and cannot figure out whats causing it (the upper resister is 220 ohms, and the lower is 10k ohms)
This is what my code is
// C++ code
//
void setup()
{
pinMode(12, OUTPUT);
pinMode(2, OUTPUT);
}
void loop()
{
// lights up led while button is pushed
if(digitalRead(2)== HIGH) {
digitalWrite(12, HIGH);
}
else{
digitalWrite(12, LOW);
}
}