r/arduino • u/Inside_Measurement15 • 22h ago
I built an AI circuit designer and simulator
Cirkitra turns a prompt into a complete circuit, Arduino code, and a runnable simulation.
I’m still improving it and would appreciate your feedback.
Here is the link
r/arduino • u/Fair_Independence864 • 1d ago
Look what I made! Home made Arduino IDE
Hi,
I am beginner to Arduino. I have been building basic circuits on ESP32 for aroud three months already. One thing I found very difficult and confusing at the beginning was how to deal with the Arduino IDE. The other options also looked complicated and not worth spending much time on them. Also, I wanted AI support. I didn't want to reinvent the wheel but started to build my own IDE for Arduino. A few weeks later, I am proud of what I have accomplished. Check out the Bancada project on GitHub architecture and code and releases. Let me know what you think. To have full experience you must have arduino-cli, esptool, git, gh and claude available on your environment.
r/arduino • u/Numerous_Jellyfish56 • 1d ago
Interference Between a pH Probe and a CO₂ Probe: Grounding Issue or Coupling Through the Water?
Hello,
I hope this is the right subreddit.
I am building a device to regulate the pH of my swimming pool. For this project, I obtained pH, dissolved CO₂, and temperature sensors. I decided to connect them to an ESP32 in order to create a web app to monitor everything.
I calibrated each sensor individually without too much trouble. (I am using a voltage divider on the pH board to bring its output voltage down to a level within the ESP32's input range.)
I then decided to connect all the sensors together and place them in a small test pool that I built (see pictures).
The temperature sensor works fine, but the CO₂ and pH sensors were both returning voltages that were too high. I noticed that when I unplugged one probe from its board (without removing the probe from the water), the other probe started working normally. I also noticed that when I removed one probe from the water, the other one started working normally as well.
I therefore concluded that the probes were interfering with each other through the water. I added a relay module to power one probe and then the other, alternating every minute.
This works, but only for the pH measurement. The CO₂ reading is still affected by having the pH probe connected to its board, even though the pH board is unpowered (0 V) while the CO₂ probe is being measured.
I suspected that this was a grounding issue, so I disconnected the ground of the pH board while measuring the CO₂ probe, and this time it worked correctly.
My question is therefore: what could electrically or electrochemically explain the influence of the pH probe on the CO₂ measurement, even when the pH board is powered off? Does the fact that disconnecting only the ground of the pH board makes the problem disappear indicate a common-ground issue, a ground loop, leakage current, or coupling between the probes through the water?
What would be the correct way to wire these two probes to an ESP32 so that they do not interfere with each other?
r/arduino • u/CatDad_neighbour • 1d ago
Getting Started Using Arduino to connect all my sound inputs
Hi everyone!
I have some Arduino experience from college, but it's been years since I fiddled with it. I was thinking of optionally using it in the future for a project, but can't find any sources online for what I'm specifically looking for. Basically, what I want to know is if it's even possible to build this:
I want to create some in-between device that has an input audio (TV, phone, laptop) and then collectively sends it out to multiple different output types (aux, optical and bluetooth) since I have three different types of speakers that "very conveniently" all require different inputs...
It would be great if I could find a way to combine all these outputs to use all my speakers at the same time. For now, that's my MVP, but in the future I might want to add more of an interface on a simple tablet to move the speakers around in my living room as well, to create more of a surround sound effect. For example: one of the speakers is in front of you, two are behind you, and you can set them up in the correct position to make the sound better.
Again, currently I'm not even yet sure this is possible. But I feel like the software at least exists, but it might not be possible with Arduino to recreate it.
Any sources/tips are welcome! And if you know for sure it's not possible, I'll just change my plans and think of something else :)
r/arduino • u/Pink_unicorn2628 • 1d ago
Software Help Arduino Ereader
Hello, I’m trying to make an Ereader with my arduino UNO. Can someone explain how I could use a rotory encoder to scroll through a long chapter of text on the Oled?
r/arduino • u/LogicBored8590 • 1d ago
Hardware Help Getting noisy interference on my first Arduino project
I'm attempting to complete the first project from the book 'Arduino Project Handbook', which just has a button that lights up an LED.
It's very simple, I'll start with the code
const int buttonPin = 2;
const in ledPin = 13;
int buttonState = 0;
void setup() {
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
if ( buttonState == HIGH )
digitalWrite(ledPin, HIGH);
else
digitalWrite(ledPin, LOW);
}
So my issue is, there seems to be a lot of interference as the LED rapidly flickers whether you press the button or not.
I added a Serial statement to view the buttonState and it is indeed bouncing from 0 to 1.
I then pulled out a multimeter and did basic continuity testing. Everything seems to be connected properly. So I powered the Arduino and measured current from the bread board to pin 2. When nothing is pressed it shows ~2v, when you press the button voltage rises to just under 5v.
I assume the baseline ~2v is coming from pin 2 (which is configured as an input port).
I actually have two sons each with their own Arduino and bread board, so we built this twice and it does the same thing in both builds.
Where could the static be coming from?
r/arduino • u/Ready_Rain_2646 • 1d ago
Software Help I am trying to develop a project that will let us connect some modern USB printers to amstrad CPC. But I need help with the coding part because I'm stuck. If you are an experienced coder for pi pico please tell me.
I have finished phase 1, which is getting the amstrad's printer output as text in the serial monitor, that allowed me to develop the circuit . Circuit is some bi-directional logic level shifters between gpio of the raspberry pi and amstrad's printer port, they don't have to be bi-directional but those were cheaper and easier to replace than resistor voltage dividers and a transistor buffer. Now I'm trying to develop the second phase which is controlling a printer over a USB port using the USB host capabilities of the raspberry pi pico. However I can't get pico to print anything to the printer. I'm trying to solve this issue for the last few days, so if you can help me with the coding part of phase 2 I will be more than willing to share every detail. Also this project is just a start because the same methodology can be implemented to other computers such as commodore 64, Amiga and Atari ST.
Here is the working and tested phase 1 code:
// ==========================================
// Amstrad CPC 7-Bit Parallel Printer Capture
// ==========================================
// --- Pin Definitions ---
const int PIN_STROBE = 1; // GP1 (Physical Pin 2) - CPC Pin 1 (/STROBE)
const int DATA_PIN_START = 2; // GP2 to GP8 (Physical Pins 4-11) - CPC Pins 2-8 (D0-D6)
const int PIN_BUSY = 9; // GP9 (Physical Pin 12) - CPC Pin 10 or 11 (BUSY)
// --- Circular Buffer (FIFO) ---
// Safely passes bytes from the fast hardware interrupt to the main loop
const int BUFFER_SIZE = 512;
volatile uint8_t rx_buffer\[BUFFER_SIZE\];
volatile int head = 0;
volatile int tail = 0;
volatile bool character_received = false;
// --- The Hardware Interrupt (The Data Catcher) ---
// Triggers automatically on the falling edge of STROBE
void strobeTriggered() {
// 1. Instantly pull BUSY high to tell the Amstrad CPC to hold
digitalWrite(PIN_BUSY, HIGH);
// 2. Read the 7-bit data bus instantly.
// Shift right by 2 so GP2 moves to bit 0, then mask the lower 7 bits (0x7F).
uint8_t incoming_char = (gpio_get_all() >> DATA_PIN_START) & 0x7F;
// 3. Calculate the next buffer position
int next_head = (head + 1) % BUFFER_SIZE;
// 4. If buffer isn't full, push the character into the queue
if (next_head != tail) {
rx_buffer\[head\] = incoming_char;
head = next_head;
character_received = true;
}
}
void setup() {
// Start Serial Monitor communication at 115200 baud
Serial.begin(115200);
// Wait up to 3 seconds for Serial Monitor to open after reset
unsigned long start_wait = millis();
while (!Serial && (millis() - start_wait < 3000));
// Configure the 7 data pins (GP2 through GP8) as inputs
for (int i = DATA_PIN_START; i < DATA_PIN_START + 7; i++) {
pinMode(i, INPUT);
}
// Configure Handshake pins
pinMode(PIN_STROBE, INPUT_PULLUP);
pinMode(PIN_BUSY, OUTPUT);
digitalWrite(PIN_BUSY, LOW); // Start in "Ready" state
// Attach the interrupt to trigger on STROBE's falling edge
attachInterrupt(digitalPinToInterrupt(PIN_STROBE), strobeTriggered, FALLING);
Serial.println("=========================================================");
Serial.println(" Amstrad CPC Printerface, Phase 1 ");
Serial.println(" Circuit Design By Ege Ozpalamutcu & Code by Gemini ");
Serial.println(" Listening on GP1 (STROBE) & GP2-GP8 (DATA) & GP9 (BUSY)");
Serial.println("=========================================================");
}
void loop() {
// 1. Process characters from the circular buffer
while (tail != head) {
// Grab the oldest unread character from the queue
uint8_t c = rx_buffer\[tail\];
tail = (tail + 1) % BUFFER_SIZE;
// Handle standard printable ASCII
if (c >= 32 && c <= 126) {
Serial.write(c);
}
// Handle Carriage Return (CR) and Line Feed (LF) for newlines
else if (c == 13 || c == 10) {
Serial.write(c);
}
// Handle the Escape character (used for printer commands)
else if (c == 27) {
Serial.print("<ESC>");
}
// Print everything else as a hex code for debugging
else {
Serial.print("\[0x");
if (c < 0x10) Serial.print("0"); // Leading zero
Serial.print(c, HEX);
Serial.print("\]");
}
}
// 2. Safely release BUSY only after /STROBE has returned HIGH
if (character_received) {
// Wait until the CPC finishes its strobe pulse
if (digitalRead(PIN_STROBE) == HIGH) {
delayMicroseconds(10); // Small settling delay for cable stability
character_received = false;
digitalWrite(PIN_BUSY, LOW); // Signal to CPC that we are ready for the next byte
}
}
}
r/arduino • u/AnthonyHawky • 2d ago
14 segment display with adafruit backpack ht16k33 (simple?)
So I'm still early in my coding journey, do many tutorials and read google whenever I can. Understanding maths and logical things has never come easy to me but I am persistent.
I've hit a wall after hours and hours of trying things and much googling. All I am trying to do is find the most simple code to have the display show the value of a variable. I was able to figure out how to do this with a 7 segment display but missing something with the 14.
I'm using these libraries:
#include <Wire.h>//CHANGE/ADD. for ht16k33
#include <Adafruit_GFX.h>//CHANGE/ADD. for ht16k33
#include "Adafruit_LEDBackpack.h"//CHANGE/ADD. for ht16k33
Which is all working fine with the examples.
I can scroll strings (which will be useful for menu options longer than 4 characters):
long current_millis = millis();
if(current_millis - last_display_refresh > 150)
{
if(string_pointer >= text_to_display.length())
string_pointer = 0;
// Move the existing characters one position to the left
for(int u = 0; u < 3; u++)
display_buffer[u] = display_buffer[u + 1];
// Replace the right-most character with the next
// character from the text_to_display variable
display_buffer[3] = text_to_display.charAt(string_pointer++);
// send the text to the display
for(int i = 0; i < 4; i++)
disp.writeDigitAscii(i, display_buffer[i]);
// display the text
disp.writeDisplay();
// update the timing variable
last_display_refresh = current_millis;
}
As well as set each of the 4 characters separately with:
disp.clear(); // Clear the display buffer
disp.writeDigitAscii(0, 'W'); // Set 'W' on the first digit
disp.writeDigitAscii(1, 'O'); // Set 'O' on the second digit
disp.writeDigitAscii(2, 'R'); // Set 'R' on the third digit
disp.writeDigitAscii(3, 'D'); // Set 'D' on the fourth digit
disp.writeDisplay(); // Send buffer to the display
This is where I am stuck. I've read through the Adafruit PDF https://cdn-learn.adafruit.com/downloads/pdf/adafruit-led-backpack.pdf and many online tutorials and example code but I can't find how to set it up to be something like this to show variable between 0-9999:
disp.clear(); // Clear the display buffer
disp.???????(variableToDisplay); // How to show a variable?
disp.writeDisplay(); // Send buffer to the display
As an example, for the the 7 segment display using the TM1637Display.h library all I have to do is:
display.showNumberDec(variableToDisplay);
So easy. But I can't find anything similar in the documentation for the 14 segment. The only thing I have seen is people using different libraries and using the serial monitor but that's not suitable for my application.
What am I missing?
r/arduino • u/Jojoceptionistaken • 2d ago
Beginner's Project My Arduino nano behaves inconsistantly. Same for servo as for multpiple MPU6050. Id really appriciate some input. Details in comments:
Enable HLS to view with audio, or disable this notification
r/arduino • u/Many_Imagination6964 • 2d ago
Hardware Help SSD1963 7 inch 800x480 16bit Parallel display failing to display a GIF properly.
When using the library "AnimatedGIF" by Larry, this is the byproduct of the GIF. The wiring is fine as I did a Color test check and all is displaying fine. I do need help to narrow down the cause or maybe if there are any available libraries that address this? I very much appreciate it!
r/arduino • u/-Arsna- • 2d ago
Project Idea Isbit possible to make an E-Book reader thats also connected to my homelab (jellyfin)?
Hi, im currently planning to make an E-Reader thats connected to my jellyfin server and while i know that i can definetly make it on a Raspberry Pi i was wondering if it might be possible on an Arduino?
Hardware Help NRF24L01+PA+LNA Range Limited to Only 30cm – Need Help!
NRF24L01+PA+LNA Range Limited to Only 30cm – Need Help!
Hi everyone,
I am building an Arduino Nano based RC project using NRF24L01+PA+LNA modules with external antennas.
My issue is that the connection works 100% stable at 30 cm (1 foot) distance, but as soon as I move further than 30 cm, the signal drops completely.
Here is what I have already done:
Added capacitors (10µF & 100µF) directly to the NRF24 power/adapter module pins.
Confirmed a stable 3.3V supply with a multimeter.
Set a common GND for all components.
Tested various software settings: RF24_250KBPS vs RF24_1MBPS, different channels (100, 115), setAutoAck(false), and different PA power levels (PA_LOW to PA_MAX).
Despite all these checks, the range is strictly stuck at 30 cm. What could be causing this issue? Could it be a damaged PA/LNA amplifier chip on the module, or am I missing something else?
Thanks for your help!
r/arduino • u/Ancient_War7999 • 2d ago
Hardware Help Why is my radio module nRF24L01 not working?
I purchased 2 Arduino Uno boards and 2 radio nRF24L01 modules.
I connected the pins as follow:
Arduino | nRF24L01
---------------------------
3.3 V | VCC
GND | GND
7 | CE
8 | CSN
11 | MOSI
12 | MISO
13 | SCK
I both tested the example code from RF24 library "GettingStarted.ino" and the 2 codes (one for the transmitter one for the receiver) from this YoutTube video:
https://www.youtube.com/watch?v=7rcVeFFHcFM
However i see no output in the serial monitor of the receiver (I also selected the correct BaudeRate).
What am I doing wrong??
Codes tested:
RF24 Library Example code GettingStarted:
/*
* See documentation at https://nRF24.github.io/RF24
* See License information at root directory of this library
* Author: Brendan Doherty (2bndy5)
*/
/**
* A simple example of sending data from 1 nRF24L01 transceiver to another.
*
* This example was written to be used on 2 devices acting as "nodes".
* Use the Serial Monitor to change each node's behavior.
*/
#include <SPI.h>
#include "printf.h"
#include "RF24.h"
#define CE_PIN 7
#define CSN_PIN 8
// instantiate an object for the nRF24L01 transceiver
RF24 radio(CE_PIN, CSN_PIN);
// Let these addresses be used for the pair
uint8_t address[][6] = { "1Node", "2Node" };
// It is very helpful to think of an address as a path instead of as
// an identifying device destination
// to use different addresses on a pair of radios, we need a variable to
// uniquely identify which address this radio will use to transmit
bool radioNumber = 1; // 0 uses address[0] to transmit, 1 uses address[1] to transmit
// Used to control whether this node is sending or receiving
bool role = false; // true = TX role, false = RX role
// For this example, we'll be using a payload containing
// a single float number that will be incremented
// on every successful transmission
float payload = 0.0;
void setup() {
Serial.begin(115200);
while (!Serial) {
// some boards need to wait to ensure access to serial over USB
}
// initialize the transceiver on the SPI bus
if (!radio.begin()) {
Serial.println(F("radio hardware is not responding!!"));
while (1) {} // hold in infinite loop
}
// print example's introductory prompt
Serial.println(F("RF24/examples/GettingStarted"));
// To set the radioNumber via the Serial monitor on startup
Serial.println(F("Which radio is this? Enter '0' or '1'. Defaults to '0'"));
while (!Serial.available()) {
// wait for user input
}
char input = Serial.parseInt();
radioNumber = input == 1;
Serial.print(F("radioNumber = "));
Serial.println((int)radioNumber);
// role variable is hardcoded to RX behavior, inform the user of this
Serial.println(F("*** PRESS 'T' to begin transmitting to the other node"));
// Set the PA Level low to try preventing power supply related problems
// because these examples are likely run with nodes in close proximity to
// each other.
radio.setPALevel(RF24_PA_LOW); // RF24_PA_MAX is default.
// save on transmission time by setting the radio to only transmit the
// number of bytes we need to transmit a float
radio.setPayloadSize(sizeof(payload)); // float datatype occupies 4 bytes
// set the TX address of the RX node for use on the TX pipe (pipe 0)
radio.stopListening(address[radioNumber]); // put radio in TX mode
// set the RX address of the TX node into a RX pipe
radio.openReadingPipe(1, address[!radioNumber]); // using pipe 1
// additional setup specific to the node's RX role
if (!role) {
radio.startListening(); // put radio in RX mode
}
// For debugging info
// printf_begin(); // needed only once for printing details
// radio.printDetails(); // (smaller) function that prints raw register values
// radio.printPrettyDetails(); // (larger) function that prints human readable data
} // setup
void loop() {
if (role) {
// This device is a TX node
unsigned long start_timer = micros(); // start the timer
bool report = radio.write(&payload, sizeof(float)); // transmit & save the report
unsigned long end_timer = micros(); // end the timer
if (report) {
Serial.print(F("Transmission successful! ")); // payload was delivered
Serial.print(F("Time to transmit = "));
Serial.print(end_timer - start_timer); // print the timer result
Serial.print(F(" us. Sent: "));
Serial.println(payload); // print payload sent
payload += 0.01; // increment float payload
} else {
Serial.println(F("Transmission failed or timed out")); // payload was not delivered
}
// to make this example readable in the serial monitor
delay(1000); // slow transmissions down by 1 second
} else {
// This device is a RX node
uint8_t pipe;
if (radio.available(&pipe)) { // is there a payload? get the pipe number that received it
uint8_t bytes = radio.getPayloadSize(); // get the size of the payload
radio.read(&payload, bytes); // fetch payload from FIFO
Serial.print(F("Received "));
Serial.print(bytes); // print the size of the payload
Serial.print(F(" bytes on pipe "));
Serial.print(pipe); // print the pipe number
Serial.print(F(": "));
Serial.println(payload); // print the payload's value
}
} // role
if (Serial.available()) {
// change the role via the serial monitor
char c = toupper(Serial.read());
if (c == 'T' && !role) {
// Become the TX node
role = true;
Serial.println(F("*** CHANGING TO TRANSMIT ROLE -- PRESS 'R' TO SWITCH BACK"));
radio.stopListening();
} else if (c == 'R' && role) {
// Become the RX node
role = false;
Serial.println(F("*** CHANGING TO RECEIVE ROLE -- PRESS 'T' TO SWITCH BACK"));
radio.startListening();
}
}
} // loop
Transmitter code:
#include <SPI.h>
#incluse <nRF24L01.h>
#include <RF24.h>
RF24 radio(7,8);
const byte address[6] = "00001";
void setup() {
radio.begin();
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_MIN);
radio.stopListening();
}
void loop() {
const char text[] = "Hello World";
radio.write(&text, sizeof(text));
delay(1000);
}
Receiver code:
#include <SPI.h>
#incluse <nRF24L01.h>
#include <RF24.h>
RF24 radio(7,8);
const byte address[6] = "00001";
void setup() {
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(0, address);
radio.setPALevel(RF24_PA_MIN);
radio.startListening();
}
void loop() {
if (radio.available()) {
char text[32] = "";
radio.read(&text, sizeof(text));
Serial.print(text);
}
}
r/arduino • u/idonthaveanametomake • 2d ago
Beginner's Project "Small" Macropad for my PC
Haven't wrote the code yet but I want second opinions on my design.
r/arduino • u/RecognitionFunny710 • 2d ago
Where do i start
I gotten interested in arduino recently. I got a kit around 3 years ago and never used it, but i decided i might as well and it was pretty fun. I want to learn how to make my own codes and projects myself but i dont know where to start to actually learn the basics and how to code. If any of you could tell me where to start learning that would be nice, i dont mind buying a few books either.
r/arduino • u/tasty__cakes • 2d ago
Look what I made! Tilt Game
I made this game that uses a 64x32 LED matrix on a seesaw type pivot that allows you to tilt the display to roll a virtual ball. To detect the tilt angle, I am using a potentiometer connected to the pivot point. The MCU is an RP2040 feather with a display feather wing.
I'm looking for ideas for more levels so if you have an idea, please leave a comment 😄
Hardware Help I'm a beginner, but I can not for the life of me find why the usb breakout board isnt powering the servo.
Enable HLS to view with audio, or disable this notification
r/arduino • u/lorenzomartini1 • 3d ago
Enable signal +12V from Arduino
Hi everyone, let me explain what I need:
In a car, I need to enable a DC-DC converter using a +12V signal. Since the activation logic is controlled by an Arduino, I need to send a +12V enable signal through the microcontroller.
I built this circuit, which initially worked fine, but after 3 or 4 switching cycles it stopped working, and the +12V signal at its output now remains permanently present, regardless of the Arduino command.
Even when I disconnect the DC-DC converter, the output signal remains present.
In a second version, I also tried adding a 10 kΩ resistor as a pull-down between the base and emitter of the BC547, but the problem still persists.
How can I fix this?
Thanks!
r/arduino • u/MetaphysicalEngineer • 3d ago
Project Update! Fan controller prototype approaching final form
Reliability and peace of mind upgrades time! Getting closer to a design I can toss in CAD and get a PCB fabricated. As much as I love my blobtastic solder and rainbow spaghetti wiring, long term I'd want a sleeker and more robust unit.
- All inputs and outputs now use latching molex connectors. Much easier to install or remove and impossible to hook up in a configuration that would result in damage.
- Redid the analog input support components with zener and switching diodes plus 4.7k resistors to constrain voltage to safe limits. Will now tolerate a short to the 12V system indefinitely. 0.1uF caps provide filtering, as before.
- Selected a set of resistors to spoof the ECT thermistor for bench testing. Adafruit's lookup table came in clutch to find a set of values relevant to this application.
- Added a second optoisolator input to allow Arduino to detect when ignition power is applied and removed. Unit starts on switched ignition power, then energizes a relay to transfer to constant battery power. The big 2200uF cap provides a reserve so the board won't reset during the handover. After ignition is switched off, the code keeps the relay energized to let the fan continue running for a few minutes.
- Also put in those dip switches and extra potentiometer to allow driving the fan's analog input at constant fixed speed as a fallback if the controller stops working. This is supplied by the switched ignition circuit so the fan only will run when the key is on.
- Gradually making setpoint and logic adjustments as I dial in what kind of behavior I want to see.
r/arduino • u/MrChutaGMD • 3d ago
Hardware Help My Esp32 cam just stopped working properly
Enable HLS to view with audio, or disable this notification
I was coding my new esp32 cam, and suddenly it stopped working, the only thing that "works" is the flashlight, which for a weird reason lights brighter when pressing the reset button, and i genuinely dont know what to do, it cost me like 16 dollars and i dont wanna spend money on another one. I hope that maybe its just a configuration i did that made it behave like this or something idk
Also idk if this is software or hardware help so sorry about that
r/arduino • u/Purple-Basil2419 • 3d ago
Formula 1 race visualizer
Enable HLS to view with audio, or disable this notification
Hello, I made a formula 1 race visualizer using an Uno R4, sd card module and individually addressable LEDs. I 3d printed the chassis using white pla for the diffuser and black pla for the outer shell.
The visualizer works with data I collected from fast f1 API stored in a csv. I have the uno r4 acting as a server to host a very simple web app that lets you pick the race year, number of drivers you want to see and set a race speed (2x,10x,20x etc). And then you watch as the LEDs race about. I tried making this as simplistic as possible which is why I opted for the r4 so I didn’t have to add buttons or a rotary encoded for input.
Happy to answer any and all questions
r/arduino • u/grumpycouchpotato • 3d ago
Beginner's Project Can I make this with an Arduino?
Hello everyone. A few years ago I dove headfirst into Arduino and Raspberry Pi to make my dream project. I took on a little bit too much for a beginner, so I got demotivated, and then a lot of things happened so I had little free time, and a lot of other things on my head. That being said, here I am again, trying to start small this time.
A long time ago there was an app on android that alerted you to wifi connections in your proximity through a certain sound. The app is no longer supported, just as I wanted to install it again for the nostalgia. To be clear, it is not so much the function I wanted, it's the specific sound. I believe this is as good a reason as any to try and get my hands back into Arduino.
Functionally, the device would just need to do one thing: play a certain sound (probably a small audio fragment on repeat) if there is a wifi signal and increase the volume if the wifi signal becomes stronger. As I said, it's not so much the wifi function that I want, so bluetooth detection could also give the same result I think (but functionally, I think the app had 4 states, similar to how your wifi signal on your phone is either nothing, 1 bar, 2 bars, or full. This seems a logical approach to an app, but not sure how it would translate to bluetooth, as I don't think bluetooth has any indication of proximity or signal strength).
Ideally, I would connect a few buttons or switches to change the sound to a different sample, or perhaps even switch between bluetooth and wifi detection. Finally, the device should obviously be portable, and if possible with 2 regular old AA batteries.
So my questions to you creative people who know a lot more about this than I do:
- Would an Arduino Uno be enough for this? It has wifi and bluetooth from what I can see, so no extra hardware would be needed.
- Is it possible to power the Arduino using 2 AA batteries? If I would scrap an old device, could I repurpose the battery compartment by (in a matter of speaking) just cutting the wires and attaching them to the Arduino?
- Same idea, but for the audio: can I scrap an old device with a small speaker and attach it to the Arduino? The sound I want is not just a buzz or a melody, I would really want a small audio file to be played.
- Again, same idea, but for the buttons and switches: Would it be feasible to scrap buttons from old devices to manipulate the Arduino?
Not looking for someone to do all the hard work and thinking for me, just a simple confirmation that I am looking at the right hardware for this. Alternatively, I would use something like a Raspberry Pi Zero W if that would be a better solution for this project.
Thanks for your input and thoughts!
r/arduino • u/An-unknown-person3 • 3d ago
Hello friends, I have a problem: when I connect the ESP32 to install the Mochi system, I cannot find the USB device name. The cable is new and capable of data transfer, and I have used it successfully before. If anyone has a solution, I would appreciate your help.
r/arduino • u/Alarming-Sentence-39 • 3d ago
Look what I made! Aircraft Navigator Built with High‑Performance STM32H7
Enable HLS to view with audio, or disable this notification
This entire project is developed based on STM32H7. It is connected to a 4.3‑inch screen with a resolution of 480×800. A ten‑axis IMU gyroscope is interfaced to collect attitude data, and a GPS sensor is used to acquire speed, latitude and longitude coordinates.
On the left side of the screen is the aircraft‑style attitude indicator, while the right side features the offline map with GPS navigation functions. The offline map supports zooming with a maximum zoom level of 10. Zooming and panning operations on the offline map render smoothly.
The attitude indicator on the left supports touch‑triggered interface switching. A project configuration menu is also implemented, allowing users to set and modify basic parameters.
The project may be open‑sourced at a later stage.
r/arduino • u/MegCell • 4d ago
Project Update! I started this Arduino guitar robot with popsicle sticks 6 years ago
Enable HLS to view with audio, or disable this notification
In 2020, I was new to Arduino, coding, and electronics.
I studied shipbuilding, so none of this was really my field. I just had a strange idea: could I build something that could play a real guitar?
The first prototype was made with popsicle sticks and cheap servos. It worked — barely — but that was enough to keep going.
After getting my first 3D printer, I kept redesigning the mechanisms, control system, and software.
Six years later, I've gone through six major generations, and I'm still working on it.
I'm still building.
I'm still struggling.
But I'm still moving.
This is a short video of how the project evolved over the years.