Second firmware live stream happening this weekend: viewtopic.php?f=13&t=3992
For anything you'd like to see added to Speeduino
User avatar
By choperhead
hello. I'm looking for proper decoder for use in a motorcycle. i'm working in a 85' honda VF400f
Many 80's bikes like hondas uses a single 25 degree thoot, and 1 or 2 VR sensor if it's a 2 chanel ignition. and NO cam sensor.

the protocol it's too simple and efective for ignition. falling edge it's minimun spark advance & rising edge it' the maximun.
in line 4 even V2 and V4 motorcycles uses this kind of decoding.

i think is a good idea to suport this feature.
Any body can help with this??
By LAV1000
This might work for injection only.
But it is no good idea on ignition.
Most EFI produkts have an ignition table which are based on 2 axes like rpm and load (MAP )or TPS.
The older systems are only rpm based and they don't take load or TPS in account.
And there is also the effect of the onregular speed of a crank.
Crank slows down on the compression stroke and accelerates on the combustion stroke.
So if you want a precise timing you need more then one tooth and his upper and lower flanks.

Ignition timing is very important to gain tork and power.
Even if you don't want big horsepower figures.
User avatar
By choperhead
I'm sorry but I don't agree.
Japanese manufacturers have used this system for many years on time for ignition. In fact it is very accurate
since the shot is ALWAYS inside the tooth which determines by hardware the minimum and maximum advance. Miss fires it's not posible.
There are many cases of motorcycles with these features OEM equipped with TPS and MAP sensor and use it to
ignition correction even with carcurators.
As an electronic engineer I have lived 10 years of my life I have developed ignition products for ricks motorsport and electrex
They still sell today and many of them work with these features.

I am reviewing the arduino source code to develop this feature. If any body interesting to help it's welcome
By theonewithin

Without more teeth the ECU will never know the position of the crank.

If all it gets is 1 tooth per rotation it won't be able to accurately calculate ignition timing.

Notice I say accurately.

You claim that somehow the OEM is able to make it accurate but that is not possible.

Literally not possible.

If it was so accurate as you claim them why have all manufacturers moved away from it?

Hell. Even my 1989 bike has a 12-1 wheel on it.
User avatar
By choperhead
I'm going to try anyway. If I succeed I will publish it in case someone finds it useful.
impossible .... pss. :o :o

I insist If someone with experience in the decoder code wants to collaborate, it is welcome.
By Sepehr20mg10
It just doesn't make sense for me at all
Is crankshaft rotate at a same speed? it will accelerate right after the spark then starts to slow down. SO
With just one tooth and without any reference, how do you can calculate the exact angle of crankshaft?
IMHO its not even close to accurate !
By Kommando
To get round the inaccuracy these EI's are statically timed at the fully advanced spark point and then the electronics retard the timing at lower revs, they ignore the change in engine speed over the 360 degrees. The downside is the fully advanced point is set conservatively so there is some power gain to be had at Full throttle, economy at partial throttle opening where a much more advanced timing could be used if the throttle position was taken into account and extra timing teeth were added.
User avatar
Speeduino does not function like the OEM ignition system, which has only one job. I see the biggest problems being three issues, one is processor response, where it sees the trigger signal on an interrupt, but must then calculate timing from that point to the calculated firing point. This means a delay where it cannot fire any quicker than x-microseconds after the trigger, and so the inability to use the full range of timing to full advance (trigger point).

The second issue being the current rpm, which is calculated off the last known time-for-rev. Due to the speed of accelerations, rpm will be different on the very next crankshaft revolution, but the timing is based on the last revolution time, as it only has one tooth/signal. Finally the last issue (that I can think of offhand) is transitional error, due to a combination of issues 1 and 2. Speeduino already has transitional timing errors, even when it has lots of teeth for predicting crank angle. The situation would typically be worse with only the last full revolution available for timing calculations.

If a co-processor were used, it could certainly perform as well as the factory system, but then it should share data between Speeduino ECM (for timing calculations) and the ignition controller/ECU (for firing solutions). We have been discussing how to structure the addition of added "smart" feature controllers on Slack recently, and this ignition controller could be an example of that.

User avatar
By choperhead
I tell you something.
More than 10 years ago I worked at an electronic manufacturing company
which produces cdi ignition boxes for quad motorcycles nautical and gardening engines.
I worked as a development engineer. I had the opportunity to develop more than 50 products like this.

This was done with PIC microchip type 12F and 16F (8bits 4Mhz clock ... and in assembler) ...
It worked and was accurate enough.
The AVRs even more ARM have much more power and resources to do this.
That is why I can say that it is possible to do so. Not because someone told me. But because myself
I did it more than 50 times, 10 years ago, in aseembler, with 8bit and 4Mhz.

I wil go to find documentation of this years, and i wil share with yours if you want.
I started to read the arduino code, and i started to undertand...I never program an arduino before.
User avatar
By Bleeker
Nice to see that somebody else is interested in CDI systems.
Heres a good source of information:

You can even find a source code in C on this page for PIC16F

There is also a interesting DIY project which I assume is based on above informations:

I have actually built such a transmic CDI, but I´m struggling with the programming of the PIC.
A Arduino based MCU would make things much easier.

So if you have a Arduino code I could plug a Arduino into the transmic board and test it on a bike. But unfortunatelly I can not contribute much on the programming.

Ultimately, all Speeduino-compatible boards run th[…]

I was playing around with the latest 202005 releas[…]

Thank you that helps a lot. Now I need to make adj[…]

Hi Rob! I'm afraid that speedy doesn't yet support[…]

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