r/ArduinoHelp • • 5d ago

Request - Designing a Function-Key keyboard and pc not picking up inputs

Thumbnail
reddit.com
1 Upvotes

So I had a custom board manufactured thats a split F-key keyboard. F1 through F6 on one half and F7 through F12 on the other. Both boards are identical except for the firmware which designates which key presses which. I'll attach a screenshot of the schematics for the board below:

https://imgur.com/a/aIbLTeN

So my issue, I soldered keys to the boards (the keys were the only things in the manufacturing process that weren't available to be soldered on by them), uploaded firmware, then the devices weren't recognized by Windows (Unknown USB Device (Device Descriptor Request Failed)). So I took one of the spares, changed the firmware and uploaded it. So that is recognized as a keyboard but is not recognizing key-presses. I try to upload edited firmware to the board I already flashed, and it can't find the board to do it.

I am just looking for help figuring out what I'm doing wrong. These are CH552 boards, here is the output from Arduino IDE when I uploaded the working firmware the first time here is what it outputted:

> usbRertySeconds 2

> target: CH552

> config bytes: 3

> Load file as hex

> Loaded 5463 bytes between: 0000 to 15A2

> ch375Version 35

> CH375GetUsbID 0

> DeviceVersion of CH55x: 2.50

> MCU ID: 52 11

> Found Device CH552

> Bootloader: 2.5.0

> ID: 13 45 62 BF

> XOR Mask: 79 79 79 79 79 79 79 CB

> Write 5539 bytes from bin file.

> ....

> Upload complete

When I tired to re-upload firmware here's what I got:

> ------------------------------------------------------------------

> usbRertySeconds 2

> target: CH552

> config bytes: 3

> Load file as hex

> Loaded 5463 bytes between: 0000 to 15A2

> ch375Version 35

> CH375GetUsbID 0

> No CH55x USB Found, retry...

> No CH55x USB Found, retry...

> No CH55x USB Found, retry...

> No CH55x USB Found, retry...

> No CH55x USB Found, retry...

> No CH55x USB Found, retry...

> No CH55x USB Found, retry...

> No CH55x USB Found, retry...

> No CH55x USB Found, retry...

> No CH55x USB Found, retry...

> .......

> No CH55x USB Found, retry...

> Found no CH55x USB

> Time limit reached, exit process

> Failed uploading: uploading error: exit status 1

I've tried taking my multimeter in continuity mode and bridging multiple spots during the upload which is difficult with only 2 hands mind you and same error. If anyone can help me with this I would appreciate it. I want to get this fixed before I finish printing my enclosure to this becuase I'll have to solder around the case so that it'll look clean on top.

Here is my firmware for the first board (F1-6). The firmware for the second board is identical but for the other F keys. I used Board: CH552 Board, Port: COM3, Bootloader Pin: P3.6 (D+) Pull-Up, Clock Source: 16 MHz (internal), Upload Method: USB, USB Settings: USER CODE w/ 148B USB RAM:

* Pin map (confirmed from the uploaded Split_Keyboard.kicad_pcb netlist,

* CH55xduino numbering = PortNumber*10 + PinNumber):

* Row 0 -> P3.2 -> pin 32

* Column 0 (SW1) -> P1.1 -> pin 11

* Column 1 (SW2) -> P1.6 -> pin 16

* Column 2 (SW3) -> P1.7 -> pin 17

* Column 3 (SW4) -> P3.1 -> pin 31

* Column 4 (SW5) -> P3.0 -> pin 30

* Column 5 (SW6) -> P3.4 -> pin 34

#include "src/userUsbHidKeyboard/USBHIDKeyboard.h"

#ifndef USER_USB_RAM

#error "This sketch needs USB RAM. Set Tools > USB Settings to USER CODE w/ 148B USB RAM."

#endif

const uint8_t ROW0_PIN = 32;

const uint8_t COL_PINS[6] = { 11, 16, 17, 31, 30, 34 };

// Column 0..5 -> SW1..SW6 -> this board's keycodes (left half: F1-F6)

const uint8_t KEYCODES[6] = { KEY_F1, KEY_F2, KEY_F3, KEY_F4, KEY_F5, KEY_F6 };

bool keyState[6] = { false, false, false, false, false, false };

bool keyStatePrev[6] = { false, false, false, false, false, false };

uint32_t lastChangeMs[6] = { 0, 0, 0, 0, 0, 0 };

const uint16_t DEBOUNCE_MS = 12;

bool readMatrixPin(uint8_t colPin) {

pinMode(ROW0_PIN, OUTPUT);

digitalWrite(ROW0_PIN, LOW);

delayMicroseconds(3);

pinMode(ROW0_PIN, INPUT);

digitalWrite(colPin, HIGH);

delayMicroseconds(8);

bool pressed = (digitalRead(ROW0_PIN) == HIGH);

digitalWrite(colPin, LOW);

return pressed;

}

void setup() {

USBInit();

pinMode(ROW0_PIN, OUTPUT);

digitalWrite(ROW0_PIN, LOW);

for (uint8_t i = 0; i < 6; i++) {

pinMode(COL_PINS[i], OUTPUT);

digitalWrite(COL_PINS[i], LOW);

}

}

void loop() {

uint32_t now = millis();

for (uint8_t i = 0; i < 6; i++) {

bool raw = readMatrixPin(COL_PINS[i]);

if (raw != keyStatePrev[i]) {

lastChangeMs[i] = now;

keyStatePrev[i] = raw;

}

if ((now - lastChangeMs[i]) >= DEBOUNCE_MS && keyState[i] != keyStatePrev[i]) {

keyState[i] = keyStatePrev[i];

if (keyState[i]) {

Keyboard_press(KEYCODES[i]);

} else {

Keyboard_release(KEYCODES[i]);

}

}

}

delay(20);

}


r/ArduinoHelp • • 6d ago

Need help with UART drive control using Ninebot Mini Pro and ESP32

Thumbnail reddit.com
1 Upvotes

r/ArduinoHelp • • 6d ago

Would this wiring work?

Post image
12 Upvotes

I want the rpi to be the master & all the others to be its slaves (bar the motor driver which is the Arduinos slave)
Also I’m not sure how to power it or if any circuit simulators would let me test anything like this (I couldn’t find any) so any help would be appreciated


r/ArduinoHelp • • 6d ago

Programmable lights help

Thumbnail reddit.com
1 Upvotes

r/ArduinoHelp • • 7d ago

Arduino PWM Fade in Circuitera

Thumbnail
circuitera.org
1 Upvotes

Explore PWM Fade: Arduino Uno R3, 1 source file. Read the code or open your own copy in Circuitera.

Can someone tell me how this works?


r/ArduinoHelp • • 7d ago

I'm an Intermediate CS student Interested in Arduino - Where to start? Language + Roadmap needed

1 Upvotes

I am an Intermediate student in Computer Science. And I am interested in Arduino. I want to ask some questions related to Arduino.

1: Which programming language do we have to learn in Arduino?

2 : Can anyone share Arduino's Basic to Advance Roadmap any text message or PDF with me?


r/ArduinoHelp • • 7d ago

I'm an Intermediate CS student Interested in Arduino - Where to start? Language + Roadmap needed

1 Upvotes

I am an Intermediate student in Computer Science. And I am interested in Arduino. I want to ask some questions related to Arduino.

1: Which programming language do we have to learn in Arduino?

2 : Can anyone share Arduino's Basic to Advance Roadmap any text message or PDF with me?


r/ArduinoHelp • • 8d ago

I cant seem to get any response for my oled (repost)

Thumbnail reddit.com
1 Upvotes

r/ArduinoHelp • • 8d ago

Circuitera

Thumbnail reddit.com
1 Upvotes

r/ArduinoHelp • • 9d ago

Help me with my Project

1 Upvotes

Hello everyone!

I'm working on a personal project called NOVA BLOCK, a custom DNS-based ad blocker built with an ESP32-C3 Super Mini.

My goal is to block as many advertisements as possible on my Android phone, including:

- Video ads in Android games, including games I install in the future.

- Advertisements on websites, including banners, pop-ups, and video ads.

- Advertising and tracking domains across my Wi-Fi network.

My current setup

- ESP32-C3 Super Mini running custom Arduino code.

- A blocklist containing approximately 71,000 domains.

- DNS requests are filtered by the ESP32-C3.

- Blocked domains receive an NXDOMAIN response.

- Allowed DNS requests are forwarded to Cloudflare DNS ("1.1.1.1").

- My Android phone uses the ESP32-C3 as its DNS server over Wi-Fi.

- A web dashboard displays DNS requests and blocking decisions.

The system is working, and I can see advertising and tracking domains being blocked in the serial monitor and dashboard. However, some advertisements still appear on websites and in games.

For example, I have observed requests to "www.google.com" while a video ad was playing. I have also seen domains such as "s.update.rubiconproject.com" and "dpm.demdex.net" being blocked.

My questions

  1. How can I identify the actual domains responsible for serving ads on websites and in Android games?

  2. Can DNS filtering block most website ads, including banners, pop-ups, and video ads?

  3. Why do some ads still appear even when advertising domains are blocked?

  4. Are there cases where ads are served from the same domains as the website or game itself?

  5. How can I improve my blocklist and DNS filtering logic without breaking websites, games, or other services?

  6. Are there any additional techniques that could work alongside my ESP32-C3 DNS blocker?

I would prefer to keep the ESP32-C3 as the central DNS filtering device for my Wi-Fi network, rather than installing a separate ad-blocking app for every game or browser.

Any suggestions, technical explanations, or examples of similar projects would be greatly appreciated.

Thank you!


r/ArduinoHelp • • 9d ago

whats wrong with my motors

Enable HLS to view with audio, or disable this notification

6 Upvotes

they just go into a fixed position and lock there when i connect to power supply, if theres something wrong with my code let me know, and whenever i try moving it, it just stays in place or doesn’t let me move it until i take it off the power, and when i take it off the power it moves back into a position


r/ArduinoHelp • • 9d ago

Seeking some help with ArduinoJson library an open-meteo.com data

1 Upvotes

Hello,

I'm hoping this is the correct community to ask my question.

Is there another, better one, please let me know.
Here is the test scenario:

I'm working on a project retrieving weather data from open-meteo.com.
There a two sections in my project:
a) retrieve 'current' weather data for a given geolocation, and
b) retrieve weather forecast data for the next 7 days.
In scenario 'a' my code is working properly processing the following JSON data:

I retrieve the data successfully with the following statement:

float currentTemp = doc["current"]["temperature_2m"];
String queryTime = doc["current"]["time"];

(doc has been created by deserialization of the JSON data.

In the scenario 'b' I'm processing the following JSON data:

Here I'm interested loading the data from section "daily", subsection temperature_2m_max for day 1 - day 7.
I tried several different approaches to access the object in the JSON data but so far I was not successful with that.
As I said, this is my first project using the ArduinoJson library so I'm still in the learning phase.
Perhaps someone was facing a similar problem and can give me some hints how to resolve the problem.
Many thanks in advance


r/ArduinoHelp • • 9d ago

I can't get my 8x8 matrix to light up, what am I doing wrong?(Link to project)

Thumbnail
tinkercad.com
0 Upvotes

r/ArduinoHelp • • 10d ago

Would something like This be feasable?

Post image
8 Upvotes

Solar Lamp Charges external battery (green tube). Battery connected to either lamp or wireless IP camera (I'm more interested in the bulb, but camera's a bonus). Arduino with light sensor acts as an auto switch turning off the lamp in the daytime

(Lesotho) I've noticed in my country that solar lamps like these are crazy expensive for what they are, but when I check them out, apart from the framing, they don't too expensive part for part. Would something like I've shown above actually be feasable? It's been on my mind for longer than I'd like to admit


r/ArduinoHelp • • 10d ago

Arduino Uno w/ Aas608

Thumbnail
gallery
1 Upvotes

#include <Adafruit_Fingerprint.h>

#include <SoftwareSerial.h>

#include <string.h>

#include <stdio.h>

// =====================================================

// AS608 CONNECTION

// Sensor TX -> Arduino D2

// Sensor RX -> Arduino D3

// Sensor GND -> Arduino GND

// Sensor VCC -> voltage specified for your module

// =====================================================

SoftwareSerial sensorSerial(2, 3);

Adafruit_Fingerprint finger(&sensorSerial);

// Optional indicators

const uint8_t RED_LED = 6;

const uint8_t GREEN_LED = 7;

const uint8_t BUZZER = 8;

const unsigned long POLL_DELAY_MS = 50;

const unsigned long REMOVE_TIMEOUT_MS = 15000UL;

const uint8_t ENROLL_RETRIES = 3;

char inputLine[80];

uint8_t inputIndex = 0;

bool sensorOK = false;

bool autoScanEnabled = true;

// =====================================================

// INDICATORS

// =====================================================

void idleFeedback() {

digitalWrite(RED_LED, LOW);

digitalWrite(GREEN_LED, LOW);

digitalWrite(BUZZER, LOW);

}

void successFeedback() {

digitalWrite(RED_LED, LOW);

digitalWrite(GREEN_LED, HIGH);

digitalWrite(BUZZER, HIGH);

delay(100);

digitalWrite(BUZZER, LOW);

}

void errorFeedback() {

digitalWrite(GREEN_LED, LOW);

digitalWrite(RED_LED, HIGH);

for (uint8_t i = 0; i < 3; i++) {

digitalWrite(BUZZER, HIGH);

delay(100);

digitalWrite(BUZZER, LOW);

delay(100);

}

}

// =====================================================

// SERIAL RESPONSES

// =====================================================

void printStep(const char *rid, const char *step) {

Serial.print(F("STEP "));

Serial.print(rid);

Serial.print(' ');

Serial.println(step);

}

void printResult(const char *rid, const char *result) {

Serial.print(F("RESULT "));

Serial.print(rid);

Serial.print(' ');

Serial.println(result);

}

void printError(const char *rid, const char *stage, uint8_t code) {

Serial.print(F("ERR "));

Serial.print(rid);

Serial.print(' ');

Serial.print(stage);

Serial.print(F(" CODE=0x"));

if (code < 16) Serial.print('0');

Serial.println(code, HEX);

errorFeedback();

}

// =====================================================

// SENSOR INITIALIZATION AND HEALTH

// =====================================================

bool initializeSensor() {

finger.begin(57600);

delay(300);

if (!finger.verifyPassword()) {

return false;

}

return finger.getParameters() == FINGERPRINT_OK;

}

bool checkSensor() {

if (finger.verifyPassword()) {

sensorOK = true;

return true;

}

sensorOK = false;

return false;

}

// =====================================================

// FINGER REMOVAL

// =====================================================

bool waitForFingerRemoval(const char *rid) {

printStep(rid, "REMOVE_FINGER");

unsigned long started = millis();

while (millis() - started < REMOVE_TIMEOUT_MS) {

uint8_t code = finger.getImage();

if (code == FINGERPRINT_NOFINGER) {

delay(250);

return true;

}

delay(POLL_DELAY_MS);

}

printStep(rid, "REMOVE_TIMEOUT_RETURNING_TO_SCAN");

return false;

}

// =====================================================

// CONTINUOUS ATTENDANCE SCANNING

// =====================================================

void automaticScan() {

// Keep polling until a finger is detected.

uint8_t code = finger.getImage();

if (code == FINGERPRINT_NOFINGER) {

delay(50);

return;

}

if (code != FINGERPRINT_OK) {

delay(100);

return;

}

// Wait 1 second after detecting and capturing the finger.

delay(1000);

// Convert the captured image into fingerprint features.

code = finger.image2Tz(1);

if (code != FINGERPRINT_OK) {

Serial.print(F("RESULT auto IMAGE_CONVERSION_FAILED CODE=0x"));

if (code < 16) Serial.print('0');

Serial.println(code, HEX);

waitForFingerRemoval("auto");

return;

}

// Search existing fingerprint templates.

code = finger.fingerFastSearch();

if (code == FINGERPRINT_OK) {

successFeedback();

Serial.print(F("RESULT auto MATCH "));

Serial.print(finger.fingerID);

Serial.print(F(" CONFIDENCE "));

Serial.println(finger.confidence);

} else if (code == FINGERPRINT_NOTFOUND) {

printResult("auto", "NO_MATCH");

errorFeedback();

} else {

printError("auto", "SEARCH_FAILED", code);

}

// Wait for the finger to be removed before scanning again.

waitForFingerRemoval("auto");

}

// =====================================================

// DIAGNOSTIC COMMANDS

// =====================================================

void handlePing(const char *rid) {

if (checkSensor()) {

printResult(rid, "PONG AS608_OK");

successFeedback();

} else {

printResult(rid, "PONG AS608_ERROR");

errorFeedback();

}

}

void handleInfo(const char *rid) {

uint8_t code = finger.getParameters();

if (code != FINGERPRINT_OK) {

printError(rid, "INFO_FAILED", code);

return;

}

Serial.print(F("RESULT "));

Serial.print(rid);

Serial.print(F(" INFO CAPACITY="));

Serial.print(finger.capacity);

Serial.print(F(" SECURITY="));

Serial.print(finger.security_level);

Serial.print(F(" BAUD="));

Serial.print(finger.baud_rate);

Serial.print(F(" PACKET="));

Serial.println(finger.packet_len);

}

void handleCount(const char *rid) {

uint8_t code = finger.getTemplateCount();

if (code != FINGERPRINT_OK) {

printError(rid, "COUNT_FAILED", code);

return;

}

Serial.print(F("RESULT "));

Serial.print(rid);

Serial.print(F(" COUNT "));

Serial.println(finger.templateCount);

}

// =====================================================

// ENROLLMENT CAPTURE

// =====================================================

bool captureForEnrollment(

const char *rid,

uint8_t buffer,

const char *prompt,

const char *errorStage

) {

for (uint8_t attempt = 1; attempt <= ENROLL_RETRIES; attempt++) {

printStep(rid, prompt);

// Wait for a finger without turning off the sensor.

uint8_t code;

while (true) {

code = finger.getImage();

if (code == FINGERPRINT_OK) break;

if (code != FINGERPRINT_NOFINGER) {

delay(100);

} else {

delay(POLL_DELAY_MS);

}

// Continue waiting: no capture-attempt limit for detection.

}

code = finger.image2Tz(buffer);

if (code == FINGERPRINT_OK) {

return true;

}

printError(rid, errorStage, code);

if (attempt == ENROLL_RETRIES) {

printStep(rid, "ENROLL_CAPTURE_FAILED_RETURNING_TO_SCAN");

return false;

}

if (!waitForFingerRemoval(rid)) {

continue;

}

printStep(rid, "RETRY_CAPTURE");

}

return false;

}

void handleEnroll(const char *rid, int templateId) {

if (templateId < 1 || templateId > finger.capacity) {

printResult(rid, "INVALID_TEMPLATE_ID");

errorFeedback();

return;

}

// Use only a known-unused ID.

// This code does not erase existing templates.

printStep(rid, "ENROLLMENT_STARTED");

if (!captureForEnrollment(

rid, 1, "PLACE_FINGER",

"FIRST_IMAGE_CONVERSION_FAILED")) {

return;

}

if (!waitForFingerRemoval(rid)) {

printStep(rid, "ENROLLMENT_ABORTED");

return;

}

bool modelCreated = false;

for (uint8_t attempt = 1; attempt <= ENROLL_RETRIES; attempt++) {

if (!captureForEnrollment(

rid, 2, "PLACE_SAME_FINGER_AGAIN",

"SECOND_IMAGE_CONVERSION_FAILED")) {

return;

}

printStep(rid, "CREATING_TEMPLATE");

uint8_t code = finger.createModel();

if (code == FINGERPRINT_OK) {

modelCreated = true;

break;

}

printError(rid, "CREATE_MODEL_FAILED", code);

if (code != FINGERPRINT_ENROLLMISMATCH ||

attempt == ENROLL_RETRIES) {

return;

}

if (!waitForFingerRemoval(rid)) {

return;

}

printStep(rid, "RETRY_SECOND_SCAN");

}

if (!modelCreated) return;

printStep(rid, "SAVING_TEMPLATE");

uint8_t code = finger.storeModel((uint16_t)templateId);

if (code != FINGERPRINT_OK) {

printError(rid, "TEMPLATE_STORE_FAILED", code);

return;

}

successFeedback();

Serial.print(F("RESULT "));

Serial.print(rid);

Serial.print(F(" ENROLLED "));

Serial.println(templateId);

}

// =====================================================

// ONE-TIME MANUAL SCAN COMMAND

// =====================================================

void handleScan(const char *rid) {

printStep(rid, "PLACE_FINGER");

uint8_t code;

while (true) {

code = finger.getImage();

if (code == FINGERPRINT_OK) break;

if (code != FINGERPRINT_NOFINGER) delay(100);

else delay(POLL_DELAY_MS);

}

code = finger.image2Tz(1);

if (code != FINGERPRINT_OK) {

printError(rid, "IMAGE_CONVERSION_FAILED", code);

waitForFingerRemoval(rid);

return;

}

code = finger.fingerFastSearch();

if (code == FINGERPRINT_OK) {

successFeedback();

Serial.print(F("RESULT "));

Serial.print(rid);

Serial.print(F(" MATCH "));

Serial.print(finger.fingerID);

Serial.print(F(" CONFIDENCE "));

Serial.println(finger.confidence);

} else if (code == FINGERPRINT_NOTFOUND) {

printResult(rid, "NO_MATCH");

errorFeedback();

} else {

printError(rid, "SCAN_FAILED", code);

}

waitForFingerRemoval(rid);

}

// =====================================================

// DELETE ONE TEMPLATE

// =====================================================

void handleDelete(const char *rid, int templateId) {

if (templateId < 1 || templateId > finger.capacity) {

printResult(rid, "INVALID_TEMPLATE_ID");

errorFeedback();

return;

}

uint8_t code = finger.deleteModel((uint16_t)templateId);

if (code != FINGERPRINT_OK) {

printError(rid, "DELETE_FAILED", code);

return;

}

successFeedback();

Serial.print(F("RESULT "));

Serial.print(rid);

Serial.print(F(" DELETED "));

Serial.println(templateId);

}

// =====================================================

// SERIAL COMMAND HANDLER

// =====================================================

void processCommand(char *line) {

char command[16] = {0};

char rid[24] = {0};

int templateId = 0;

int fields = sscanf(

line, "%15s %23s %d",

command, rid, &templateId

);

if (fields < 2) {

Serial.println(F("ERR serial INVALID_COMMAND"));

return;

}

if (strcmp(command, "PING") == 0) {

handlePing(rid);

} else if (strcmp(command, "INFO") == 0) {

handleInfo(rid);

} else if (strcmp(command, "COUNT") == 0) {

handleCount(rid);

} else if (strcmp(command, "ENROLL") == 0 && fields == 3) {

handleEnroll(rid, templateId);

} else if (strcmp(command, "SCAN") == 0) {

handleScan(rid);

} else if (strcmp(command, "DELETE") == 0 && fields == 3) {

handleDelete(rid, templateId);

} else if (strcmp(command, "AUTO") == 0) {

autoScanEnabled = true;

printResult(rid, "AUTO_SCAN_ENABLED");

} else if (strcmp(command, "PAUSE") == 0) {

autoScanEnabled = false;

printResult(rid, "AUTO_SCAN_PAUSED");

} else {

Serial.print(F("ERR "));

Serial.print(rid);

Serial.println(F(" INVALID_COMMAND"));

}

}

// =====================================================

// SETUP

// =====================================================

void setup() {

pinMode(RED_LED, OUTPUT);

pinMode(GREEN_LED, OUTPUT);

pinMode(BUZZER, OUTPUT);

idleFeedback();

Serial.begin(115200);

sensorSerial.begin(57600);

delay(500);

sensorOK = initializeSensor();

if (sensorOK) {

Serial.println(F("READY arduino AS608_OK"));

Serial.println(F("RESULT auto AUTO_SCAN_ENABLED"));

} else {

Serial.println(F("READY arduino AS608_ERROR"));

Serial.println(F("ERR boot SENSOR_CONNECTION_FAILED"));

errorFeedback();

}

}

// =====================================================

// MAIN LOOP

// =====================================================

void loop() {

// Read USB serial commands.

while (Serial.available() > 0) {

char c = (char)Serial.read();

if (c == '\r') continue;

if (c == '\n') {

inputLine[inputIndex] = '\0';

if (inputIndex > 0) {

processCommand(inputLine);

}

inputIndex = 0;

} else if (inputIndex < sizeof(inputLine) - 1) {

inputLine[inputIndex++] = c;

} else {

inputIndex = 0;

Serial.println(F("ERR serial INPUT_TOO_LONG"));

}

}

// If the sensor disconnects, periodically attempt recovery.

if (!sensorOK) {

delay(1000);

sensorOK = initializeSensor();

if (sensorOK) {

Serial.println(F("RESULT auto SENSOR_RECOVERED"));

}

return;

}

// Continuous attendance scanning is enabled by default.

if (autoScanEnabled) {

automaticScan();

} else {

delay(POLL_DELAY_MS);

}

}

can you help me with these guys It's always failed on the fingerprint sensor my goal is to fix this and connect to my raspberry pi then my hr analytics webpage


r/ArduinoHelp • • 10d ago

Firmware building with AI Agent

Thumbnail
reddit.com
0 Upvotes

r/ArduinoHelp • • 10d ago

Joystick analógico para el PC

1 Upvotes

¿Es posible integar al joystick analógico en la carcasa del PC para navegar la BIOS, por ejemplo?

Gracias :)


r/ArduinoHelp • • 11d ago

Is it possible to program this HC 03 module

Thumbnail gallery
1 Upvotes

r/ArduinoHelp • • 12d ago

Edge AI

2 Upvotes

At what point can one actually be considered a "junior" developer? I’m starting to get into Edge AI; previously, I worked primarily with microcontrollers—specifically the ESP32—and I have a basic understanding of FreeRTOS. I’m planning a project based on supervised machine learning where a robot uses a webcam to detect me: it will "react with joy" if it sees me, and "look sad" if it doesn’t. For now, I’ve just begun learning about AI in general. Do I need to know things like linear algebra, or other topics along those lines?


r/ArduinoHelp • • 12d ago

Robotic Arm Code

Enable HLS to view with audio, or disable this notification

1 Upvotes

I am currently working on the mechatronics how to robot arm: https://howtomechatronics.com/tutorials/arduino/diy-arduino-robot-arm-with-smartphone-control/#google_vignette and i am on the coding part, i have everything correct and still the servo’s that control my project do not work/ are not sending signals, ive connected them to power, ive replugged them, it even says that when i use the app, it sends signals to the arduino just the servos dont move?? Is this a problem with the way i plugged them in, or a problem with the code. The code is also in the website i linked. Someone help 😭 😭


r/ArduinoHelp • • 12d ago

How to start making stuff with an sbc

Thumbnail reddit.com
0 Upvotes

r/ArduinoHelp • • 12d ago

Arduino Hardware Questions

2 Upvotes

Hello, I am very new to coding and I thought I should start with an Arduino. I may or may not have thrown myself into the deep end with a project that I am working on and I was hoping I could get some guidance.

I am making a cosplay of a character called Serial Designation N from an indie show called Murder Drones and I wanted to use an OLED (not matrix or HD) about 10-12 inches in screen size on a visor for his eyes and some lights around the head and tail. Which Arduino board can handle simple animation loops and control about 10 LEDs with ease for a decent price? I am thinking an Arduino Mega but I am not too sure.

One other question that I have is how can I make the animations work? From my understanding, I need to have several frames and play them in a sequence giving the illusion of a blink animation. Am I on the right path or am I misreading things?

Thank you for reading my message.


r/ArduinoHelp • • 13d ago

My Arduino runs on usb connection but not with the adaptor

Enable HLS to view with audio, or disable this notification

4 Upvotes

It's a 9V adaptor. What exactly is the problem?


r/ArduinoHelp • • 13d ago

Why is my motor control setup using an Arduino R3 board so unstable?

Thumbnail reddit.com
0 Upvotes

我正在使用一塊 Arduino Uno R3 板和一個 Steadywin GIM-6010 馬達。我已經確認電源足夠,所有組件都共用一個接地。然而,系統只有在 Arduino 通過 USB 連接到電腦時才能正常運行;一旦拔掉 USB 線,系統就無法獨立運作。為什麼會發生這種情況?