/r/arduino

Photograph via snooOG

An unofficial place for all things Arduino!

We all learned this stuff from some kind stranger on the internet. Bring us your Arduino questions or help answer something you might know! 😉

/r/arduino

646,449 Subscribers

1

HELP with STM32G474

Hello I hope someone has this knowledge and can help me with this issue.

I have a NUCLEO-G474RE (Arduino compatible) and I’m trying to configure it in STM32CubeIDE to do a specific task using the HRTIM.

The task is to first output the same PWM form that is inputted in the SYNCLK Pin when Master Timer Synchronisation (Slave) is activated. For example if the input is 70kHz and duty cycle 50%, the same thing should be outputted on TIMER A1. Now if the frequency changes to 90kHz and 40% DC the Output should do the same.

Is this possible to configure? Or is this more complicated than I thought?

0 Comments
2024/05/04
09:43 UTC

5

Arduino based geiger counter

It uses an arduino nano esp32 and a beta1-1 pancake probe for detection.

4 Comments
2024/05/04
08:41 UTC

4

Is Arduino the right Choice? ;)

Hey everyone,
i have an Idea in my Head and want to know if an Arduino is the right choice for the Project ;)
For a good friend of mine i 3D Printed these Tesla Supercharger

https://preview.redd.it/kgklsnkd1dyc1.png?width=604&format=png&auto=webp&s=7969243c885649d30731365c03160a4e4145db7b

In my Head are now 2 ideas.
First Print the Super Charger 2-3 times bigger and then put LEDs into it.
Or i print these 3 times more and build an " Charging station" with LEDs and stuff.

So why the Arduino.
First i would like to light the super chargers up, but not only "full" time.
I would like to imitate the charging process with the LEDs.
So at the charging state its red, maybe red "flashing/Puls" and if its "free" an green light.

So would it be possible with the arduino get the states of the "Chargers" and change the lights depending on it?

thanks for your help in advance ;)

19 Comments
2024/05/04
07:19 UTC

1

32x16 LED RGB matrix coordinates not working

I have to work with an LED board for my project and i got it to light up. However, when the board seems to mirror columns 0-7 with columns 0-15, as well as rows 0-3 with rows 4-7. Is this a human error or a board error?

2 Comments
2024/05/04
07:01 UTC

16

My the Fourth be w... Esp32 Wroom, iLi9341 TFT_LCD, Bodmer's TFT_eSPI Library, "OkuboHeavyIndustries" QtPy_globe_tools.ino I'm a hobbyist and my style of coding some would consider..'Unatural' so no source sorry.

3 Comments
2024/05/04
05:25 UTC

2

I am having problems connecting to my Arduino UNO on my mac

My Arduino program while I upload the sketch says: avrdude: ser_open(): can't open device "/dev/cu.usbmodem11301": No such file or directory

I am new to Arduino so I don't know how to solve this problem. When i tried it for the first time with some basic code it worked so i don't know whats wrong now.

4 Comments
2024/05/04
04:32 UTC

1

Power recommendations

Hello , the project of ours is a sorting bin with multiple components in it , my question is how do we power all of this , 1x arduino uno r3 , 1x esp8266 node mcu v3 , 2x 9g servo , 1x 28byj step motor with its driver , l293d motor driver chip , 4x ultrasonic sensor , 9x led's , how do we power all of them?

0 Comments
2024/05/04
04:10 UTC

1

Arduino Powered Fish Tank

My group has proposed to make an Arduino Powered fish tank that can detect ph, temp, ammonia, DO, and can also automatically scrape algae and replace and dispose the dirty water from a reservoir. What I want to ask you guys is how can I control devices such as water pumps (most probably .5 HP) which consumes more power an arduino can supply using blynk or similar IoT tech ? We barely know anything abt arduino and we're pretty much left to self study LMAO.

7 Comments
2024/05/04
03:59 UTC

2

Connecting two mpu9250's using breadboard with arduino uno

I need to configure two MPU9250 sensors using a breadboard and an Arduino Uno. I'm having trouble finding a diagram or any other source that explains how to configure them correctly.

0 Comments
2024/05/04
03:35 UTC

2

fried my laptop, advice for next time?

hey yall, just fried my laptop. thankfully was on warranty but going forward how do i prevent power surges thru my usb-c port? i was being stupid and ground wire slipped loose while i was powering things with 12v and it completely fried my whole laptop :( read online i could’ve avoided this by having a powered usb port, is this true?

1 Comment
2024/05/04
02:31 UTC

76

Waldo (a.k.a. Old-school motion capture) using Arduino!

8 Comments
2024/05/04
02:04 UTC

5

Game Joystick / button panel

I’m interested in building out a side panel with a joystick + buttons to use in video games and the like;

I’ve never used arduino before, but I’ve got experience on the programming side of things, and using an online simulator, it doesn’t look /too/ difficult to do.

Is it reasonable to build something like this as a beginner? I’m not planning on throwing myself straight in at the deep end with it, but I don’t want to have to spend 6 months on it when I could buy one for a couple hundred quid.

Also - what parts might I need, and where’s the best place to get them from?

Many thanks in advance!!

1 Comment
2024/05/04
01:00 UTC

2

HELP with arduino project involving LEDs and buttons

Hello everybody, I need a little help with a project of mine involving Arduino.

I need to turn 5 LEDs on using 5 buttons.

I'm having a bit of trouble here because it's not working and I don't know why. I believe the code is good, but I think I messed something up in the circuit design, because the LEDs aren't turning on.

Here's the code:

const int numLEDs = 5;

const int leds[] = {13, 12, 11, 10, 9};

const int buttons[] = {7, 6, 5, 4, 3};

void setup() {

for (int i = 0; i < numLEDs; i++) {

pinMode(leds[i], OUTPUT);

pinMode(buttons[i], INPUT);

}

}

void loop() {

for (int i = 0; i < numLEDs; i++) {

if (digitalRead(buttons[i]) == HIGH) {

digitalWrite(leds[i], HIGH);

delay(3000);

digitalWrite(leds[i], LOW);

}

}

}

thank you very much for your help.

circuit design using Tinkercad

1 Comment
2024/05/04
00:19 UTC

2

Using a Adafruit Feather nRF52840 Sense to collect data using a PC and eventually over BLE

Hey everyone,
I wish to get into electronics, so I picked up the Adafruit Feather nRF52840 Sense (because of its on-board sensors) and I was hoping if someone could nudge me towards a great tutorial on how to start reading data from the sensors. I have experience with an Arduino Uno and I understand how the IDE and the process works but I don't quite understand how to get started with the adafruit sense.

A complete noob here so an help would be appreciated. If you can also help with maybe receiving the raw data on my phone using BLE then that would be great!

Thanks in advance and I appreciate your time.

1 Comment
2024/05/03
18:36 UTC

3

Compile every time evenif output folder is set

Hi,
I make a project on VSCode with the Arduino extension.
Everytime I verify the code, it recompile the libs, even if I have an output folder set.

   "output": "../ArduinoOutput",

What can I do ?

Thks

0 Comments
2024/05/03
23:41 UTC

2

Is there hardware and software I2C just like SPI, or is it just one of them?

I was doing some research and found this image. It mentions hardware SDA and SCL pins for I2C. I have used software SPI and when I found out there is a hardware SPI, I tested it, and it was 4x faster on my tests. So my question is, is there also software and hardware I2C (which one is faster than the other), or I understood it wrong?

https://preview.redd.it/1o7pfhe5payc1.png?width=761&format=png&auto=webp&s=cb50bc6cc2cb1034cebb40b8b660e26ae5a61935

5 Comments
2024/05/03
23:28 UTC

13

Which sensor is best for detecting human presence?

Hi, I am new to Arduino coding and wants to make a system which cut the power to devices when no one is around for a long period of time, and I was wondering which sensor is best suited for this application. I was thinking of using PIR, is there any better alternatives?

The area of detection is a closed space such as a room, and it does not matter where the target is located in the room as long as there is a person (stationary or moving/ one or many) is inside the room (day/night/light/dark), I was thinking of doing something simple like saving the time when the first motion is detected then wait for a set amount of time (using millis) until it gets low to a certain amount and then it will start checking for people again.

20 Comments
2024/05/03
20:47 UTC

1

Need help with Oximeter MAX30100 and SMS

I am a beginner at using Arduino and there's a project that I'm trying to do which is supposed to read the Oxygen level (SpO2) and Heartrate of a person which will send an SMS message if it ever fulfills a condition. But the problem is that if I were to stop pressing the MAX30100 it will set the SpO2 and heartrate to 0 which is a problem since my condition is that if the SpO2 were to go lower than 85% & if the heartrate were to go lower than 65 it would send an SMS message and I am scared that it would send an SMS if I were to stop pressing the MAX30100, since it might use up all of the resources in the Sim card for the GSM SIM900.

Is there a way for me to stop sensor from reading if I were to stop pressing it or a way for the SMS to be sent properly?

Here is my code:

#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include "MAX30100_PulseOximeter.h"

#define REPORTING_PERIOD_MS     1000

LiquidCrystal_I2C lcd (0x27, 16, 2);
// PulseOximeter is the higher level interface to the sensor
// it offers:
//  * beat detection reporting
//  * heart rate calculation
//  * SpO2 (oxidation level) calculation
PulseOximeter pox;

uint32_t tsLastReport = 0;

// Callback (registered below) fired when a pulse is detected
void onBeatDetected()
{
    Serial.println("Beat!");
}

void setup()
{
    Serial.begin(9600);
    lcd.init();
    lcd.setContrast(50);
    lcd.backlight();
    
    Serial.print("Initializing pulse oximeter..");

    // Initialize the PulseOximeter instance
    // Failures are generally due to an improper I2C wiring, missing power supply
    // or wrong target chip
    if (!pox.begin()) {
        Serial.println("FAILED");
        for(;;);
    } else {
        Serial.println("SUCCESS");
    }

    // The default current for the IR LED is 50mA and it could be changed
    //   by uncommenting the following line. Check MAX30100_Registers.h for all the
    //   available options.
    // pox.setIRLedCurrent(MAX30100_LED_CURR_7_6MA);

    // Register a callback for the beat detection
    pox.setOnBeatDetectedCallback(onBeatDetected);
}

void loop()
{
    // Make sure to call update as fast as possible
    pox.update();

    // Asynchronously dump heart rate and oxidation levels to the serial
    // For both, a value of 0 means "invalid"
    if (millis() - tsLastReport > REPORTING_PERIOD_MS) {
        Serial.print("Heart rate:");
        Serial.print(pox.getHeartRate());
        Serial.print("bpm / SpO2:");
        Serial.print(pox.getSpO2());
        Serial.println("%");
        

        tsLastReport = millis();
    
    
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("HRate:");
    lcd.print(pox.getHeartRate());
    lcd.print("bpm");
    lcd.setCursor(0,1);
    lcd.print("SpO2:");
    lcd.print(pox.getSpO2());
    lcd.print("%");
    }
0 Comments
2024/05/03
22:40 UTC

44

I automated my room using Arduino and Raspberry boards!

I used a Raspberry Pi 3B as a server running Node Red to control nodes which are based on Arduino and a Pico W. These nodes control the lights, blinds as well as opening and closing the window! It's all open source, so if you wanna give it a try, all files are available for free!

9 Comments
2024/05/03
21:25 UTC

2

Arduino USB-C clone not showing up in device manager

I bought a USB-C Arduino clone off AliExpress, tried it and it doesn't show up in device manager. The ON light stays on and the RX light lights up for a bit then turns off. I've tried a different cable, plugging it into the back USB port, a different computer running Windows 7 (my main PC has windows 11) and still nothing. I've got a refund already so is there a way to repair it or should I just buy a new board?

3 Comments
2024/05/03
20:24 UTC

1

Simple Spinning Toy - How to Make?

Aloha! I want to motorize the toy in the attached video so that it rotates back and forth on its own. I.e., you press a button or flip a switch and it just goes, back and forth, until you turn it off. Someone on reddit steered me toward Arduino for a solution. I have zero knowledge of robotics or programming so the platform is a bit much at first glance. Would you say Arduino is the easiest way to accomplish this, and where would I start? Are there premade motors with this behavior, or is it something I would need to code? I learned there are lots of different types of motors and not sure which to pick there... servo motors seem logical since they're designed to rotate back and forth, but if Arduino is able to control rotation then a simple DC motor I think would offer more flexibility right?

Anyway, just a bit overwhelmed for something I thought would be pretty straightforward in my head, so any guidance is appreciated. Mahalo!

6 Comments
2024/05/03
19:06 UTC

2

Need help for school project / motor encoder

Hello, I'm reposting with update of my code.

I'm doing a school project where we are using this motor and encoder. We tried running the motor in both directions and checked the encoder last week, and everything was working fine.

However, when we tried it again today, we encountered a strange issue. The code remains the same but is combined with other components used to control the motor.

Essentially, we're using an encoder object, a global variable 'position', the .read() function and an interrupt. We're utilizing encoder.h.

The issue we're facing is that every time we start the code, the encoder reads the direction differently.

For example in a test with the encoder turning clockwise :

  1. Printing negatives values in the monitor (decreasing)

2.Printing negatives values

3.Printing zeros

4.Printing negatives values

5.Printing positives values

Here is the code :

#include <Encoder.h>

#include "EMGFilters.h"

#define ENCA 3 // numéro de la broche du signal A de l'encodeur

#define ENCB 4 // numéro de la broche du signal B de l'encodeur

#define SensorInputPin A0 // Numéro de la broche d'entrée du capteur EMG

const int L_PWM = 11; // Broche pour activer le moteur vers la gauche

const int R_PWM = 10; // Broche pour activer le moteur vers la droite

Encoder myEnc(ENCA, ENCB); // avec aduiuno nano seul 2,3 sont interupts

int pos=0;

EMGFilters myFilter; // Crée une instance de la classe EMGFilters

SAMPLE_FREQUENCY sampleRate = SAMPLE_FREQ_1000HZ; // Taux d'échantillonnage à 1000 Hz

NOTCH_FREQUENCY humFreq = NOTCH_FREQ_50HZ; // Fréquence du réseau électrique à 50 Hz

static int Threshold = 40; // Seuil de détection de l'EMG à redifnir à chaqeues fois

void setup() {

Serial.begin(115200);

attachInterrupt(digitalPinToInterrupt(ENCA),ReadEnc,RISING);

// Initialise le filtre EMG avec le taux d'échantillonnage et la fréquence du réseau électrique

myFilter.init(sampleRate, humFreq, true, true, true);

}

void loop() {

// Lecture de la valeur du capteur EMG

int Value = analogRead(SensorInputPin);

// Filtrage du signal EMG

int DataAfterFilter = myFilter.update(Value);

// Calcul de l'enveloppe du signal (carré de la valeur après filtrage)

int envelope = sq(DataAfterFilter);

// Si la valeur est supérieure au seuil, une contraction musculaire est détectée

if (envelope > Threshold) {

// Activer le moteur vers la gauche

analogWrite(R_PWM, 255); // le moteur vers la droite est désactivé

analogWrite(L_PWM, 0); // Active le moteur à pleine vitesse vers la gauche

}

else {

// Si aucune contraction n'est détectée, arrêter le moteur

analogWrite(L_PWM, 0);

analogWrite(R_PWM, 0);

}

Serial.println(pos);

}

void ReadEnc() {

pos += myEnc.read();

}

2 Comments
2024/05/03
17:36 UTC

2

Building a hanging XY plotter with Arduino. Help with parts or other advice

Howzit guys & gals,
Saw some interesting projects going on and got me interested to get into this and try out something I have found!
This will be my first Arduino project and I would really appreciate a second set of eyes and guidance!

I will be following this guide:
https://www.instructables.com/XY-Plotter-Drawing-Robot-Arduino-Polargraph/
I have looked but couldn't find any other guide that is more detailed?

Main components I will be getting are:
HKD UNO REV3
BMT DC MOTOR SHIELD L293D 1.2A
HKD STEPPER MOTOR 34MM NEMA 17
HKD MICRO SERVO 4.8V-6V MG90-90D
HKD GT2-6MM TIMING BELT P/MT
HKD GT2 TIMING PULLEY 16T 5MM
PSU SWM 12V 2A #TT
And a bunch of M to M, F to F and M to F jumpers.

Would those be sufficient for a project like this?
Please let me know if I should post additional info on the components if needed.

There is a section where the L293D Motor shield is upgraded/moded to account for overeating. His motors are operating at 320 mn, as far as I can tell the ones in my list are at 290 mn. Would this mod still be needed? (soldering 2x L293D chips on top of each other)

On the software side I am a bit unclear if I would be ale to import a project from DrawingBotV3?

Any other help or advice would be much appreciated as well!

1 Comment
2024/05/03
17:08 UTC

0

why is the push button not working ?

hello good people i want help with coding

i am fresh with coding things in Arduino i just know The basics

but now i am facing problems with the code including the delay function

and if i don't use the delay everything goes wrong

for example, in my code, i have a bush button RTC module and 16*2 LCD screen

and the idea i want to make is if the time of the bills is correct show a message on the screen (take the medicine) and the state of the button is 8==0

and if its not the correct time i want to display a message that says (wrong bills) and the button is 8==1

the problem i am facing is the delay if the time of the bills is correct it shows the message( take the medicine) and it sticks inside the if function until the time of delay is finished

and when it's not the correct time and 8==1 it sometimes shows the message (wrong bills)

sometimes doesn't

i know the problem because of the delay function and i know i should not use the delay function to much

but i don't know how to make everything work without the delay

so it is correct to use the delay function or not?

any ideas of how i can make this work step by step?

thanks for any help

the link for the code

https://pastebin.com/rTiK67hs

11 Comments
2024/05/03
17:26 UTC

2

I2C and SPI connections with Arduino NANO RP2040

Im using an Arduino NANO RP2040, and I have connected the next things to it:

Micro SD card reader/writer (SPI pins)

Camera OV2640 (SPI and I2C pins)

BME688 (I2C pins)

The MicroSD and the OV2640 have to share the MISO/MOSI/SCK pins (D11,12,13) and the OV2640 and the BME688 have to share the SDA/SCL pins (A4,5).

I dont know if this will work, and I would like to know it before I buy the sensors.

And in the case this works with that connections, how do I do to address them and how quickly could I change from one read to another read.

And before you say "change boards", I have to fit the circuit and sensors inside a cilinder of 60mm of radious and 108mm of height, so no other boards can fit inside with all the sensors.

1 Comment
2024/05/03
16:55 UTC

2

Issue with flex sensor controlled car

Hey guys, I need the help of an arduino master, I believe my problem has something to do with code (I hope), the car's slave HC-05 is connected to TX and RX on arduino (let me know if I should change them to other digital pins).

  • The controller circuits master HC-05 is connected to D10 and D11 on the arduino Nano.
  • The car is supposed to move forward when A0 flex sensor is bent, backward with A1, left with A2, and right with A3.
  • The flex sensors are working, and the values are being sent to the serial monitor, as well as the commands are trying to be sent, but they don't seem to be received by the slave HC-05!
  • The circuit schematic is available above, I've taken out the IMU MPU-6050 for now so I can focus on the flex sensors for now.
  • I'll put the code down in the comments for the wizards to look at.
  • Thank you for any help in advance!
2 Comments
2024/05/03
16:23 UTC

7

It seems that the motor of the balancing robot made with Arduino is not receiving the signal.

Hello, I am currently working on building a balancing robot. I am not building this robot from scratch but rather following a tutorial. However, despite following the tutorial exactly, I have encountered a problem.

I have uploaded the code to the Arduino and confirmed that the Arduino itself is not malfunctioning, but the motors are not working. I am currently using an L298N and an MPU6050 to build the balancing robot, and I have verified that both components are operational.

Could you please help me identify what the issue might be? Here are the code and the current situation.

Thank you for your help.

#include "I2Cdev.h"
#include <PID_v1.h>
#include "MPU6050_6Axis_MotionApps20.h"
MPU6050 mpu;

// MPU control/status vars
bool dmpReady = false;  // set true if DMP init was successful
uint8_t mpuIntStatus;   // holds actual interrupt status byte from MPU
uint8_t devStatus;      // return status after each device operation (0 = success, !0 = error)
uint16_t packetSize;    // expected DMP packet size (default is 42 bytes)
uint16_t fifoCount;     // count of all bytes currently in FIFO
uint8_t fifoBuffer[64]; // FIFO storage buffer

// orientation/motion vars
Quaternion q;           // [w, x, y, z]         quaternion container
VectorFloat gravity;    // [x, y, z]            gravity vector
float ypr[3];           // [yaw, pitch, roll]   yaw/pitch/roll container and gravity vector


double setpoint= 180;

double Kp = 21; 
double Kd = 0.8; 
double Ki = 140; 


double input, output;
PID pid(&input, &output, &setpoint, Kp, Ki, Kd, DIRECT);

 

volatile bool mpuInterrupt = false;     // MPU6050의 인터럽트 발생유무 확인
void dmpDataReady()
{
    mpuInterrupt = true;
}

void setup() {
  Serial.begin(115200);

    Serial.println(F("Initializing I2C devices..."));
    mpu.initialize();

    Serial.println(F("Testing device connections..."));
    Serial.println(mpu.testConnection() ? F("MPU6050 connection successful") : F("MPU6050 connection failed"));

    devStatus = mpu.dmpInitialize();


    mpu.setXGyroOffset(220);
    mpu.setYGyroOffset(76);
    mpu.setZGyroOffset(-85);
    mpu.setZAccelOffset(1688); 

    if (devStatus == 0)
    {

        Serial.println(F("Enabling DMP..."));
        mpu.setDMPEnabled(true);

        Serial.println(F("Enabling interrupt detection (Arduino external interrupt 0)..."));
        attachInterrupt(0, dmpDataReady, RISING);
        mpuIntStatus = mpu.getIntStatus();

        Serial.println(F("DMP ready! Waiting for first interrupt..."));
        dmpReady = true;

        packetSize = mpu.dmpGetFIFOPacketSize();

        pid.SetMode(AUTOMATIC);
        pid.SetSampleTime(10);
        pid.SetOutputLimits(-255, 255);  
    }
    else
    {

        Serial.print(F("DMP Initialization failed (code "));
        Serial.print(devStatus);
        Serial.println(F(")"));
    }

    pinMode (6, OUTPUT);
    pinMode (9, OUTPUT);
    pinMode (10, OUTPUT);
    pinMode (11, OUTPUT);

    analogWrite(6,LOW);
    analogWrite(9,LOW);
    analogWrite(10,LOW);
    analogWrite(11,LOW);
}

 

void loop() {
 
    if (!dmpReady) return;

    while (!mpuInterrupt && fifoCount < packetSize)
    {
        pid.Compute();   
        
        Serial.print(input); Serial.print(" =>"); Serial.println(output);
               
        if (input>150 && input<200){
          
        if (output>0)
        Forward();
        else if (output<0)
        Reverse();
        }
        else
        Stop();
        
    }

    // reset interrupt flag and get INT_STATUS byte
    mpuInterrupt = false;
    mpuIntStatus = mpu.getIntStatus();

    // get current FIFO count
    fifoCount = mpu.getFIFOCount();

    // check for overflow (this should never happen unless our code is too inefficient)
    if ((mpuIntStatus & 0x10) || fifoCount == 1024)
    {
        // reset so we can continue cleanly
        mpu.resetFIFO();
        Serial.println(F("FIFO overflow!"));

    // otherwise, check for DMP data ready interrupt (this should happen frequently)
    }
    else if (mpuIntStatus & 0x02)
    {
        // wait for correct available data length, should be a VERY short wait
        while (fifoCount < packetSize) fifoCount = mpu.getFIFOCount();

        // read a packet from FIFO
        mpu.getFIFOBytes(fifoBuffer, packetSize);
        
        // track FIFO count here in case there is > 1 packet available
        // (this lets us immediately read more without waiting for an interrupt)
        fifoCount -= packetSize;

        mpu.dmpGetQuaternion(&q, fifoBuffer); //get value for q
        mpu.dmpGetGravity(&gravity, &q); //get value for gravity
        mpu.dmpGetYawPitchRoll(ypr, &q, &gravity); //get value for ypr

        input = ypr[1] * 180/M_PI + 180;

   }
}

void Forward()
{
    analogWrite(6,output);
    analogWrite(9,0);
    analogWrite(10,output);
    analogWrite(11,0);
    Serial.print("F"); 
}

void Reverse()
{
    analogWrite(6,0);
    analogWrite(9,output*-1);
    analogWrite(10,0);
    analogWrite(11,output*-1); 
    Serial.print("R");
}

void Stop()
{
    analogWrite(6,0);
    analogWrite(9,0);
    analogWrite(10,0);
    analogWrite(11,0); 
    Serial.print("S");
}

https://preview.redd.it/p7jysolyk8yc1.png?width=823&format=png&auto=webp&s=d7a22ad23ec442c4cdf322fce965adc1129b2c49

https://preview.redd.it/o9cltw6wk8yc1.jpg?width=3024&format=pjpg&auto=webp&s=3aad31a15e76dc608dcc994d7673d49258bf9dad

3 Comments
2024/05/03
16:16 UTC

Back To Top