This is what I had sort of figured out on my own, then I engaged chatGBT for a sanity check, and things got really interesting pretty quick.
I asked how a CDI or TAI system calculates the timing, and here is the first part of the discussion that followed:
ChatGPT sagde:
A CDI (Capacitor Discharge Ignition) system calculates timing advance based on engine operating parameters, primarily engine speed (RPM) and sometimes load (e.g., throttle position or manifold pressure), depending on whether it's a simple or more advanced system.
Here’s how timing advance is calculated in a CDI system:
? 1. Trigger Source Detection
CDI systems use a sensor to detect the position of the crankshaft or camshaft:
Pickup coil (often near a magnet on the flywheel)
Hall effect sensor
Optical sensor
This sensor sends a signal each time the engine reaches a specific position, often before top dead center (BTDC).
⏱️ 2. Measure RPM (Timing Between Pulses)
The CDI unit calculates the engine RPM by measuring the time between trigger pulses:
Shorter time = higher RPM
Longer time = lower RPM
⚡ 3. Use a Timing Map or Logic
CDI systems use one of the following to determine how much to advance the spark:
Fixed advance curve (analog CDI): Uses resistors, capacitors, or basic circuitry to delay the discharge based on RPM.
Digital advance map (digital CDI): A microcontroller reads a preprogrammed timing map. Input: RPM (and maybe throttle/load). Output: spark advance angle.
The idea is:
At low RPM, spark is near TDC (Top Dead Center) to prevent knocking and ensure smooth combustion.
At high RPM, spark is advanced (occurs earlier BTDC) to allow more time for the air-fuel mixture to fully burn.
Example:
RPM
Spark Advance
1000
5° BTDC
3000
15° BTDC
6000
30° BTDC
? 4. Trigger Capacitor Discharge at the Right Moment
Once the correct timing is calculated, the CDI circuit:
Charges the capacitor
Waits for the right delay based on the timing advance
Fires the SCR (silicon-controlled rectifier) or transistor
Discharges the capacitor into the ignition coil → produces high-voltage spark
✅ Summary
A CDI system calculates timing advance by:
1. Detecting crankshaft position.
2. Measuring RPM (time between signals).
3. Applying a programmed or analog timing advance curve.
4. Firing the spark earlier at higher RPMs to optimize combustion.
Let me know if you want a visual diagram or how it differs from TCI or ECU-based systems.
Du sagde:
I want to know how the signal from the pickup coil relates to tdc.ChatGPT sagde:
Great question — understanding how the pickup coil signal relates to TDC (Top Dead Center) is key to grasping how timing works in a CDI ignition system.
? What Is the Pickup Coil?
The pickup coil (also called the pulse generator) is an inductive sensor that generates a voltage signal when a magnet or metallic protrusion (on the flywheel or crankshaft) passes by it. This signal tells the CDI when the engine is at a specific rotational position.
? Relationship Between Pickup Signal and TDC
The pickup coil doesn’t detect TDC directly. Instead, it detects a fixed point before TDC — typically 20–40 degrees BTDC (Before Top Dead Center), depending on how the flywheel or trigger rotor is designed.
Here's how it works:
1. Trigger Magnet Position:
A magnet or metal tab is mounted on the flywheel or a trigger rotor.
This magnet is placed at a known angle before TDC (e.g., 30° BTDC).
The exact angle is fixed mechanically.
2. Pickup Coil Sensing:
When the magnet passes the pickup coil, the coil outputs a voltage spike (AC signal).
This voltage rises and falls as the magnet approaches and leaves — usually the zero-crossing or peak of the signal is used as the trigger point.
3. CDI Receives the Pulse:
The CDI now knows the crankshaft is exactly at 30° BTDC (or whatever the magnet angle is).
From this point, the CDI calculates a delay (in microseconds) to fire the spark at the correct time — maybe immediately (if it wants to fire at 30° BTDC) or later (say, 10° BTDC).
? Example:
Let's say your pickup coil is triggered at 30° BTDC:
At idle (1000 RPM), the CDI might delay the spark to fire at 10° BTDC → waits ~3 milliseconds after the pickup signal.
At high RPM (6000 RPM), the CDI might fire at 25° BTDC → waits ~0.28 milliseconds after the pickup signal.
So the pickup coil provides a fixed reference point, and the CDI determines spark timing by delaying from that known point.
? Visualization
pgsql
KopiérRediger
Crank Angle (°) --->
TDC ←---10°---20°---30° ← Trigger magnet here
↑
Pickup coil signal sent to CDI
↓
CDI calculates delay → fires spark at desired BTDC
✅ Summary
The pickup coil signal marks a known crank angle (usually BTDC, not TDC).
The signal is generated when a magnet on the flywheel passes the coil.
The CDI uses this signal as a reference to compute when to fire the spark, based on engine RPM and timing advance logic.
TDC is calculated by knowing the fixed angle offset between the pickup trigger point and TDC.
Let me know if you want help calculating spark timing delay in microseconds for a given RPM and advance angle — it's a fun bit of math.
Here is a link to the chat for anyone interested, It is a good half hour read:
https://chatgpt.com/share/684b273e-5dc8-800e-99df-41a7802e9d39Cheers, Finn Hammer