Anything else whatsoever... Keep it clean though.
By MonkeyMike
#69330
To make a long story short, I'm looking for a easy to implement and reliable way to limit my moped's top speed. I know a thing or two about software development. But I struggle with the engine/ignition part. Hopefully you can help me out.
This post will be a bit of an info dump to get things started. Lets throw some stuff at the wall and see what sticks.

Motivation
The law is very strict about mopeds where I'm from. Mopeds are not allowed to go faster that 55 km/h. If they do they will be banned from public roads.

Project Goal
I would like to limit the moped's speed regardless of the engine's rpm. My moped has 4 gears, a fixed rpm limit doesn't work too well. (I currently have a CDI with an rpm limiter, I run into the limit in the lower gears.)

What I have so far
I have a basic c++ script running on an STM32. It can measure the mopeds speed using a Hall Effect sensor on the rear wheel. I could use it to disable the ignition at a certain speed. But a sudden loss of power seems dangerous while on the road.
I'll be more than happy to publish the project as open source if it ever gets there. :D

Engine
The moped has 4 stroke 50 cc engine and a CDI. The ignition is triggered by a nob on the flywheel, it fires each time the piston is going towards the top.
The engine is based on a Honda design from a long time ago. It basically is a Chinese clone made by Skyteam, Lifan, and many other brands.

Delay ignition
This seems like the most reasonable way to limit the moped's speed without losing power suddenly. Unfortunately I do not know enough about engines/ignitions to figure out how to do this safely. Hopefully you can help me out with this.

I can get a rough idea of how fast the flywheel is spinning based on the engine's rpm. So I could delay the ignition by a not so certain amount of degrees. Everything is a guess because the flywheel reports its position only once per turn. If roughly is good enough than I'll continue with this ideas as the software part isn't that difficult.
If roughly isn't good enough I'm thinking about adding an optical sensor to the flywheel. This way I could mark a safe zone in which the ignition is allowed to be delayed.

Other ideas?
They are more than welcome.
User avatar
By PSIG
#69334
Welcome! My comments are that retarding (delaying) ignition reduces power, but by making combustion inefficient. Lower efficiency creates heat. Adding heat is not good for small air-cooled engines. I would not suggest using ignition retard. Speeduino has option for rpm limit spark retard for shifting, but strongly suggested to not use except for special cases, due to that added heat load at the worst time.

Ignition cut is not unsafe, and rather mild at high-rpm, but can become irritating with a constant rata-tat-tat sound and feel. But it does work effectively, at some cost to fuel economy.

My factory Honda 50cc used an exhaust restrictor. While this limited power to the legal speed on level ground, it also meant a hill was a struggle. Better would be all engine power available, and only use what is necessary to hold maximum road speed. Perhaps a concept for automotive cruise control could be adapted, either operating your throttle, or using a small electronic throttle body as most modern systems do, or operating a variable exhaust restrictor. Exhaust power regulation has more benefits for regulating intake flows more efficiently.

I'm thinking for throttle or exhaust control, using a servo or stepper motor operating a slide valve to restrict air or exhaust. Speeduino operates idle air control valves, which probably have enough flow to allow full-flow use on your 50cc engine. This valve could be controlled by the cruise control PID algorithm, instead of the throttle body, or in the exhaust.

Good luck with your project!
By MonkeyMike
#69338
PSIG wrote: Fri Aug 30, 2024 2:48 am Ignition cut is not unsafe, and rather mild at high-rpm, but can become irritating with a constant rata-tat-tat sound and feel. But it does work effectively, at some cost to fuel economy.
Cutting the ignition at a certain speed is easy enough. The code I currently have can to this.
The speed limit on the road is either 30 or 50 km/h depending on the location. I should not trigger the speed limiter during normal riding. So I'm not worried about fuel economy or the rata-tat-tat sound (rev limiter-ish sound?).

Should I be worried about damaging the engine when enabling the ignition after cutting it? The ignition is also triggered on the exhaust stroke.

Here is a video of the police checking the speed of a moped. During this check the moped should not go fast than 55 km/h. As you can see the police goes full throttle.
https://www.youtube.com/shorts/mEJynZ_JWys
By JHolland
#69340
I don't know how you ride your bike but when I had a moped it was mostly at full throttle. You don't want to be continuously in an ignition based rev limiter so you need to implement a throttle or exhaust based restrictor, exhaust would be a great deal safer, I've seen some nasty accidents when a bike throttle stuck open, electronic throttle control requires proper functional safety measures.

If I am understanding correctly you want the out[…]

Indeed. So then I reverse-engineered the 3 origina[…]

... — is the ultimate goal to alter code t[…]

Project progressing. Have been addressing some wi[…]

Still can't find what you're looking for?