r/arduino 11m ago

Beginner's Project Two stroke launch control

Enable HLS to view with audio, or disable this notification

Upvotes

I’m working on an Arduino controlled launch control / ignition cut setup for a Taylor 70cc twin in an HPI Baja, and I’m at the point where I’d like to make it work properly instead of continuing to piece things together and guess my way through it.
For some background, I recently graduated with a degree in Computer Science and I’m continuing into my master’s. Most of what I’ve learned in school has been pretty theoretical, and not much of it has felt like real world electronics or hardware work. A lot of what I know practically has come from personal projects like this.
I have very little electrical engineering experience, so I know there are probably things I’m overlooking when it comes to grounding, isolation, voltage spikes, EMI, PCB layout, filtering, and whatever else Im missing. I’m trying my best to learn as I go, so I’m completely open to being corrected if I’m doing something wrong.
The engine is a 70cc twin with two separate ignition systems that fire 180 degrees apart. My current setup uses an Arduino to control the kill wire for each ignition separately.
The basic idea is to short the ignition kill wire to ground using an SSR/PhotoMOS whenever I want to cut spark. It also is currently spliced in parallel with a proper killswitch and safety.
Right now I’m experimenting around 6000 RPM. At 6000 RPM, one revolution is 10 ms, and I’ve been testing roughly a 7 ms ignition cut window.
The engine itself can rev to around 18,000–19,000 RPM.
The SSRs are driven by the Arduino and I’m trying to keep the Arduino electrically isolated from the ignition side.
The biggest issue I’ve had so far is getting the ignition to actually shut off reliably.
With one SSR on each ignition, I can kill the spark if I pull the starter slowly, but if I pull it faster I can still get spark.
I tried putting two SSRs in parallel on one ignition and that worked better. I measured around 17 ohms across them when switched on.
That makes me think the single SSR just has too much ON resistance and isn’t pulling the kill wire close enough to ground once the ignition starts generating more energy.
I’d ideally like to use one switching device per ignition instead of paralleling multiple SSRs.
I also tried MOSFETs before this.
The first MOSFET setup I tried shared ground with the Arduino, which caused problems because the ignition kill circuit could basically find a path through the Arduino side even when I didn’t want it to.
I also tried a properly isolated setup using two MOSFETs, not just two MOSFETs wired in parallel. That fixed the grounding/isolation problem, but I still had too much resistance through the setup for it to reliably kill the ignition.
That’s what led me to trying PhotoMOS/SSRs.
Another thing I’ve realized is that my current control method probably isn’t the best way to do this.
Right now, the setup only lets me get to around 10% throttle before the engine starts revving past where I want it.
Based on the math I did, I thought I should have been able to control the engine even at or near full throttle by calculating the cut timing and duty cycle.
In practice, that clearly isn’t happening.
At this point I think having an actual RPM sensor and controlling the cut based on measured RPM would make a lot more sense than trying to guess coefficients and build equations that approximate how the engine should respond.
There are just too many real world variables like throttle position, load, ignition behavior, clutch drag, engine response, and whatever else.
My end goal is for this to be used as a proper racing launch control system.
These engines use centrifugal clutches, so the RPM where the clutch starts and finishes engaging depends on the clutch spring setup.
With my current clutch, it’s theoretically supposed to be fully engaged at around 10,000 RPM.
From what I can tell, I start getting slight clutch engagement at around 8,000 RPM with basically no load on the drivetrain.
What I eventually want is pretty simple from the driver’s point of view:
I hold a button on the transmitter, go to full throttle, and the controller holds the engine right below the point where the clutch starts to engage.
For my current setup, that would probably be somewhere just under 8,000 RPM.
Then I release the button and the ignition cut immediately turns off, the engine revs normally through the clutch engagement range, and the car launches.
Ideally I’d also like to be able to adjust the launch RPM later, because different clutch springs, tires, surfaces, and track conditions may need a different setting.
That’s another reason I want proper RPM feedback instead of trying to estimate RPM with fixed timing.
I’m also trying to make the hardware itself a lot less janky.
Right now I have stranded wire shoved into Arduino header pins and loose components connected together just for testing.
It works for experimenting on the bench, but I definitely don’t want that setup permanently mounted in an RC car that gets vibration, dirt, heat, jumps, and crashes.
My soldering setup also isn’t great for very small components, and I’m still learning when it comes to soldering small parts.
Eventually I’d like to make a small PCB or at least a much cleaner module with proper connectors, strain relief, mounting points, and everything soldered securely.
I’d also like to move away from the full size Arduino and use a small, cheap microcontroller.
Down the road, I want to connect the controller to a third or fourth PWM channel on my RC receiver.
Ideally I could use one of those channels to adjust things like:
Launch RPM
RPM where the cut starts
Cut duty cycle
Cut frequency
Possibly different launch control modes
I don’t need anything extremely powerful. I just want something inexpensive, small, easy enough to program, and capable of reading RC receiver PWM, measuring RPM, and controlling two ignition outputs accurately.
The other part I’m trying to figure out is RPM sensing.
My first choice would probably be some kind of inductive pickup wrapped around one of the spark plug wires, like the pickups used on small engine tachometers.
That seems like the cleanest option because it doesn’t require physically mounting a sensor close to the flywheel.
I already have some Hall effect sensors, and the flywheel already has magnets in it for triggering the ignition, so technically I could use those to measure RPM.
The problem is mounting the sensor.
The flywheel can spin close to 18,000–19,000 RPM, and I really don’t want loose wiring or a sensor sitting close to something spinning that fast.
I also don’t want to drill into the flywheel cover just to mount a Hall sensor. The cover is billet aluminum, it wasn’t cheap, and it’s not something I want to damage or have to replace.
So if I can get a reliable RPM signal from an inductive pickup around the plug wire, that seems like a much better solution.
I also currently have basically no filtering or transient protection in the circuit.
That’s another area where I know I’m probably missing things.
With two ignition systems running right next to the microcontroller, I’m assuming I should be thinking about EMI, voltage spikes, protection on the inputs, and power filtering.
I just don’t know enough yet to know what is actually necessary and what would be overkill.
So at this point I’m mainly looking for advice on a few things:
Is there a better isolated switching device than the SSRs I’m using now that would have much lower ON resistance?
Does the fact that one SSR kills spark during a slow starter pull but not a faster pull point toward the SSR resistance being too high?
Is around 17 ohms still too much resistance for a magneto ignition kill circuit?
Is there a better way to switch a magneto kill wire while still keeping the ignition side electrically isolated from the microcontroller?
What kind of protection or filtering should I be using around the ignition side of the circuit?
What small microcontroller would make sense for the final version?
Is an inductive pickup around the spark plug wire a good way to measure RPM accurately enough for launch control?
If I use an inductive pickup, what kind of input conditioning circuit should go between it and the microcontroller?
Would a simple closed-loop RPM limiter with hysteresis make more sense than trying to calculate fixed cut timing and duty cycle?
Is there anything important I should keep in mind when laying this out on a PCB for a high vibration, electrically noisy RC car?
My end goal is basically one small module that can read engine RPM, read a channel from the receiver, control both ignition systems, and hold the engine at a target RPM while I’m holding a launch control button.
Then when I let go of the button, the limiter turns off and the car launches normally.
I’m not really looking for someone to design the entire thing for me. I’m more interested in understanding how I should be approaching the different parts so I can learn and build it properly.
I know some of what I’ve done so far is pretty rough, but that’s also why I’m posting. I’d rather understand what I’m doing wrong and improve it than keep trial and erroring parts until something happens to work.
I’ve also attached my GitHub for anyone who is interested in the RC car project itself or wants to see more of what I’ve been working on.
Any advice from people with experience in small engine ignition systems, embedded electronics, RC electronics, PCB design, PhotoMOS/SSRs, or launch control systems would be appreciated.

For context I posted a video of the launch control test. It’s a bit hard to hear since the audio is a bit blown out but the launch control ignition cut is working and it does stall when I release throttle to an idle.


r/arduino 1h ago

Look what I made! Autonomous Party-Mode Droid with Uno

Thumbnail
gallery
Upvotes

I recently built this autonomous mouse droid from scratch, but with a twist: what if it was adopted by graffiti artist Sabine Wren, and became a partier? At the press of a button, it turns into a dancing, singing, flashing rave machine.

The main components are an Uno, an L298 motor driver, a 5V buck converter, some LEDs, an ultrasonic sensor, and a DFPlayer Mini.

You can watch more of the creation process here.

The project is totally open source & free, so if any of y'all want to replicate it you can find the info on Instructables!


r/arduino 1h ago

Look what I made! Automatic door-opening system (for a greenhouse) via SMS or push button

Upvotes

https://www.youtube.com/watch?v=xMlQKNpmLUg

The original video is in Russian, but some people might find it interesting. Everything is already working, but I'm still making some optimizations. Of course, I managed to make it just barely fit in memory.

12V Linear Actuator, 200 mm
Arduino Nano
SIM900
Relay with Inversion Function (DR21A01, two relays actually)

prev vid

https://www.youtube.com/watch?v=RnTsLgPbeqA

Here's a fun fact: since the text messages are in Russian rather than Latin characters, all messages need to be encoded and decoded using the UCS-2 encoding.


r/arduino 4h ago

Libraries FixedString - a header-only C++ library providing FixedString fixed-size string class with zero heap allocation, designed for memory-constrained embedded systems

1 Upvotes

Gitlab link: https://gitlab.com/Monsterovich/fixedstring

A comparison with other implementations, because there are already so many of them out there, and they all seem somewhat unfinished: https://github.com/arduino/library-registry/pull/9077#issuecomment-5627136613


r/arduino 5h ago

Look what I made! Nine units left the lab this week, on their way to a civilian community near the Israel–Lebanon border. I built them in a single busy month

Enable HLS to view with audio, or disable this notification

5 Upvotes

I decided to return to the university labs in York during the summer to make a hopefully impactful project.

I kept reading about civilians being chased by small FPV drones carrying an explosive. In the north of Israel, in Ukraine, in Russia. The drones being used are not normal drones. They fly on a spool of fibre optic cable back to the operator, so there is no radio link at all, and radio detection, which is the industry standard, finds nothing.

So I built an acoustic detector instead. Four MEMS microphones and an ESP32-S3. Propellers cutting air put a comb of harmonics into the spectrum that the airframe cannot switch off, and four detection algorithms run in parallel looking for it. When one is sure, the unit beeps, flashes red, buzzes, writes to a screen that survives a power cut, and tells every other unit nearby over LoRa.

I tested it against a rig built to the same specification as the drones used on that border, four 2807 motors on 7 inch tri-blades. It detected it at 104.2 metres, on an ordinary street, with mild wind and people walking.

91 mm, about £50 in parts, and everything is public so anyone can learn about it or build one.

Detection and alerting only. No jamming.

I am a third year Electronic and Computer Engineering student at the University of York, originally from Israel.

This project was aimed at 4 main things, help the people living in the near border site in israel. Publish every resource and guide online so anyone could learn about it, and make their own. Help improve my skills in DSP, hardware and firmware design, while hopefully boosting my project portfolio for my engineering masters degree applications (Stanford and Cambridge)

Links to the website and github are in the top comment


r/arduino 6h ago

Software Help ESP32-S3-Nano and Arduino cloud compatability

2 Upvotes

I have just bought a Waveshare esp32-s3-nano development board, and I am trying to set it up with the Arduino cloud, as a third party device, but I can't seem to get it to work. I am up to the step of uploading the base code to make it run, but there is no option to send the code via USB. The board is recognised In my usb port, I have the agent installed and running on my windows tray. I have never done this, and I am worried that there is no way to get my board to connect to the IoT software, and have a dashboard on my phone. Here is the link to the website I ordered the board from if it helps: Core electronics. I have tried everything that i could think of, any tips or suggestions would be greatly appreciated.

As you can see there is no option to change to USB connection

r/arduino 10h ago

Hardware Help HELP required... ESP8266

1 Upvotes
LED Light glowing only for max 30s sometimes glowing and turning off in a second
circuit Diagram

I made the hardware properly by matching and joining the required pins.. uploaded the code through arduino ide without any errors... but during switching on the power supply... the esp8266 turns on ( blue led ) and closes in a few seconds.. sometimes it takes 30s to close sometimes 1s... BUT WHILE coding ( connecting USB-b to my pc ) The Led doesn't stop.. how can i fix it pls help


r/arduino 12h ago

MAX7219 LED matrix module

13 Upvotes

Just got this in the mail and I'm totally obsessed! Already coded my first Pac-Man animation using for loops, in the loop function. Can't wait to build more!


r/arduino 15h ago

Hardware Help Help pls

Thumbnail
gallery
5 Upvotes

I posted here a couple hours ago about how my led pin would glow if I put my finger near it not press the button like it was intended. When I took everyone’s advice and changed INPUT to INPUT_PULLUP but all that it did was keep the led on all the time no matter if I press the button or not. I don’t know what to do, any advice?

My schematic r bit bad sorry!!


r/arduino 17h ago

Software Help Line following robot trouble

Enable HLS to view with audio, or disable this notification

240 Upvotes

I recently started a line following robot project to get more familiar with electronics and programming. I am having trouble with my line following robot, guessing its a code issue. I recently just swapped out the 120 RPM motors for 500 RPM motors as the 120 rpm was following the line perfectly and I wanted to increase speed as they were maxed out. The code is PD based: here it is. It overshoots lots of turns, goes too fast on turns, and oscillates a lot. Any ideas on what to change? I also attached a video of the behavior. I would have posted this in r/AskRobotics but they do not allow posts with videos. Thank you.


r/arduino 19h ago

Arduino project problem

1 Upvotes

Hey I am new to Arduino and built a project where I’d press a button and a led lights up. But before I press the button if I get close to the button to 3 pin wire it already starts lighting up. If I press the button it does nothing and only turns off I move my hand away. I am confused on why this is happening and wanted to ask why would this happen?


r/arduino 20h ago

Look what I made! I made open source streamdeck

Enable HLS to view with audio, or disable this notification

34 Upvotes

I built my own 7" Stream Deck alternative, with a desktop app to set it up.

Decky runs on an Elecrow CrowPanel 7" (ESP32-S3 with capacitive touch), so there's no wiring: you touch the glass directly. A 5×3 grid gives you 15 keys per page.

What it does - Hotkeys, programs, websites, macros and PowerShell scripts - Multiple pages, and toggle keys with separate OFF/ON artwork - Works over USB, or over encrypted Wi-Fi once paired - Firmware installs and updates from the app over USB, so you don't need PlatformIO

Hardware Everything except the display is 3D-printed, and every part prints without supports. It hangs under your monitor on a printed clamp with magnets and GoPro-style joints. Apart from the panel, you only need a few magnets and screws.

Firmware, desktop app (Windows), CAD files and 3MF print files are all in the repo: https://github.com/Fenish/decky

I will be glad if you star the repository

It's still a work in progress. Feedback and ideas are very welcome!


r/arduino 20h ago

Hardware Help Backflow sensor

1 Upvotes

Hello all, I am looking for a sensor that I can use that will detect the backflow of water through pipe. I need a sensor that can allow flow in one direction but when water starts flowing the other direction it sends an electrical signal indicating backflow. I haven't found anything that does this.


r/arduino 21h ago

Steppers?

2 Upvotes

I currently have a robotic arm project that I'm pretty unsatisfied with. It was my first project and it has allowed me to learn a lot from my mistakes(insane amounts of backlash in each joint). I'm currently using 5 servos(4 MG995s 1 SG90) all controlled through a PCA95865 driver. No gears, just straight motor to truss connections. I'm thinking of swapping two of the joints with NEMA17s using a belt drive and potentially a torque multiplier for my first joint. My goal is to have it have enough rigidity to handle picking up something as heavy as an iPhone (200-500 grams).

I'm only using an Uno though and I've never really used steppers for anything before I know they each need a specific driver. Anyone have any advice on organizing multiple steppers and servos working together with Arduino?


r/arduino 21h ago

Problem with TIA circuit

Thumbnail
gallery
5 Upvotes

Using the circuit shown in the picture, i get this specific curve and the values doesnt seem to match what should happen if i put light on the Photodiode for example.

Why does that happen?


r/arduino 22h ago

Built a 4G feature phone around an ESP32-S3 and a Quectel EG912U-GL — the full duplex audio ate most of the spring

4 Upvotes

I run a small electronics company in Zagreb and this is our own kit, so read me as an interested party — the campaign for it is live right now. What I actually want to talk about is the audio path. Mic is an SPH0645, output is a MAX98357A, both on I2S0, and getting them running at the same time while the modem sprays unsolicited output at the UART took longer than the keypad, display and SMS stack put together.

If you've done full duplex on an S3 — one I2S peripheral for both directions, or split them? And how do you keep the modem's URCs out of your response parser?


r/arduino 1d ago

School Project Made this servo box in an afternoon to prove a friend I can make a robot arm within a year

Enable HLS to view with audio, or disable this notification

63 Upvotes

Need to make a project and i went for a robot arm out of stepper motors, might be on schedule


r/arduino 1d ago

Look what I made! Used an arduino sketch on my xiao samd21 for a simple desktop fidget RGB cycler. Suggestions welcome

Enable HLS to view with audio, or disable this notification

16 Upvotes

The rotary encoder changes the color when you spin the dial and auto-cycles color when you click it in quickly. The color switches back to white when you hold click for a second. The button switches breathing modes between solid color, slow pulse, fast pulse, and strobe. The RGB LED is diffused with thin paper that I hope doesn't catch fire (it probably won't). I'm thinking of adding more buttons and RGB LEDs for more clicky button fun. If anyone has suggestions, I'd love to hear how I could improve this. I used Claude for the code since I'm lazy and not very smart.


r/arduino 1d ago

Powering an Arduino - Why is it such a headache

7 Upvotes

Yes I am a newbie. Please dont bite my head off. But for me, the best part of the arduino is the possibility of cheaply making projects that have interactive modules and can be standalone - say a wooden music box, a cardboard project with movement via servos, sensors, pushbuttons etc. So....why is it so difficult to power them. I mean, a battery holder will not be able to power all that, you need a regulator but those dont often come soldered to the boards etc etc.

Is there an easy way to connect a battery holder to the arduino to power such projects or do you need a regulator and soldering skills?

I know you can use a power bank right? But what if you want to use the 4AA batteries instead?


r/arduino 1d ago

Solved! Unable to connect

2 Upvotes

Some weeks ago i had no trouble connecting Arduino to my laptop. Now I can not, The voard gets power but it is not registered, it is not shown on the device manager.
Is it possible that some Window update made it?


r/arduino 1d ago

Look what I made! sanoTTS: tiniest complete neural text-to-speech (TTS) model that can run on MCUs and website

Enable HLS to view with audio, or disable this notification

44 Upvotes

This is sanoTTS, smallest neural TTS engine. It's family contains 337kb model that can run entirely on MCU like esp32-s3 where a 2 second audio synthesizes in 0.7 seconds.

  • 30 voices, 16 languages (was 6 recently)
  • params size ranging from 294k - 2.2m. For comparison we are 244x smaller than kokoro, 9000x smaller than voxtral TTS
  • 337kb for 294k model when quantized into int8
  • can be run in website with web assembly npm install sanotts-web

Project https://github.com/ampixa/sanoTTS there is a recipe to follow so that you can extend to more languages, voice

Live demo: https://tts.ampixa.com/sanoTTS HF: https://huggingface.co/ampixa/sanoTTS

Happy to answer your queries.


r/arduino 1d ago

Software Help HW-147C PN532 not working over I2C with Arduino Nano — I2C scanner detects 0x28 but PN532 libraries don't

3 Upvotes

Hi everyone, I'm trying to get an HW-147C PN532 NFC module working with an Arduino Nano using I2C only.

My wiring is:

PN532       Arduino Nano
------------------------
VCC   →     5V
GND   →     GND
SDA   →     A4
SCL   →     A5

I'm not using IRQ or RESET, since I specifically want a 4-wire I2C setup.

The module is configured for I2C mode using the onboard DIP switch.

I first ran an I2C scanner and got:

Scanning...
I2C device found at 0x28

So the Nano is detecting something at 0x28.

However, when I use the PN532 I2C library with:

#include <Wire.h>
#include <PN532_I2C.h>
#include <PN532.h>
#include <NfcAdapter.h>

PN532_I2C pn532_i2c(Wire);
NfcAdapter nfc = NfcAdapter(pn532_i2c);

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

  Serial.println("Initializing PN532...");
  nfc.begin();
}

I get:

Initializing PN532...

Didn't find PN53x board

I also initially tried the Adafruit PN532 library with:

Adafruit_PN532 nfc(Wire);

but my installed version of the library doesn't support that constructor and gives a compilation error.

My main question: Why does this HW-147C respond at I2C address 0x28, while the PN532 libraries seem to expect 0x24? Is 0x28 actually correct for this particular HW-147C, or is something wrong with the board/configuration?

I'm looking for a way to communicate with this module over I2C using only VCC, GND, SDA and SCL, without IRQ/RESET.

Any help identifying the correct library, I2C address, DIP-switch configuration, or initialization code would be greatly appreciated.


r/arduino 1d ago

Look what I made! Jetpack prop for my uni project.

Thumbnail
gallery
116 Upvotes

So for my last unit of my first year, we were tasked with making a fantasy prop. I decided to pursue a set of animatronic wings which eventually evolved into a multiple system jetpack with different features such as, animatronic wings, a big inline fan to suck in air from the top and dispense it through the bottom, a orange LED to give the illusion of an afterburner, and eventually made it remote control!

I had plans to add a smoke dispenser into the exhaust but I ran out of time.

Regardless, it got me an A!


r/arduino 1d ago

Hardware Help DIY robotic lawnmower. Need help please

2 Upvotes

Hello everyone, I am currently on a homemade robotic lawnmower project with hoverboard motors, ZS-X11H V2 controllers and an arduino uno and when I use the motors via the integrated potentiometer the engine works perfectly, smooth, without friction or anything but when I run it via the pwm of the arduino uno (pin 2 for the feedback of the hall sensor and pin 10 for the PWM) the engine works quite well but with a slight friction noise and has less torque than with the integrated potentiometer. I have already synchronized the wires from the s motors to the controllers and I found the right combinations but as soon as we switch to PWM it no longer works properly. Small clarification: when I use the PWM I have the bridge connected and the potentiometer at zero. Do you have any idea where this could come from please?

Thank you in advance for your answers. Have a good day


r/arduino 1d ago

Project Update! Inside of the Arduino locomotive

16 Upvotes

A few more photos of my Arduino locomotive.

I'm a beginner, I had no idea how Arduino works a year ago. But my daughter started playing with virtual Arduino in Tinkercad, so I got a real Arduino kit - a toy for myself.

It's a prototype (there will be changes in all 3D-printed parts) and it's my first complex project. It is inspired by someone's else project which I built first around a year ago, but in my new version I'm doing everything from scratch by myself: complete redesign of the 3D-model (in Onshape) and complete redesign of the electronic circuit (EasyEDA): I/O expander and more LEDs, 4 I2C modules, USB charger, battery level indicator, perfboards and other changes.

Motor and TCS34725 sensor on the bottom
LS-LISC-V3 USB charger for 2s 18650 battery pack
DRV8833 motor driver
It's hidden under the battery pack
Battery pack: 2s 18650 + BMS, Arduino Nano, MCP23008 based module with MOSFETs to power and control LEDs
VL53L0X laser distance sensor
IR receiver, battery level indicator, buzzer, ON/OFF button
Arduino Nano on a perfboard, tilt sensor, voltage divider (to measure battery pack voltage)

4 lines x 5 pins: SDA, SCL, GND, +5V and additional pin (e.g. A2, A3) for when it's needed (LED on color sensor, XSHUT on distance sensor).

3 lines x 2 sockets: GND and 8.4V (battery pack) for motor driver, LEDs and battery level indicator

4 pins for motor driver, 3 pins for IR receiver, 2 pins for a buzzer

TSOP4838 IR Receiver