XS650 TCI Test Jig

sleddog83

XS650 Addict
Messages
209
Reaction score
372
Points
63
Location
Vancouver Island, British Columbia
IMG_0299.jpg
Here is the TCI test jig I have been using. I have included the arduino code, in case any one wants to tinker. Also included is a schematic of the extra circuits I created to get it working. You would also need an oscilloscope to view the waveforms. The jig generates the two pickup pulses for the TCI board and a TDC pulse to help sync things on the oscilloscope. The pushbuttons allow you to increase or decrease the RPM. The jig is useful in repairing, testing and modifying TCI modules. It provides very stable pulses, that make it easy for scoping the ignitor boards. There is still a little problem with switch bounce but that may be just the cheap switches I used. The arduino board I used is a Arduino UNO but you could likely use just about any arduino. Part of the extra circuitry is on a proto shield underneath the pushbutton board. The LCD is extra. The program will also send out messages to any serial monitor. I might include a video someday if i can ever master my camera.
 

Attachments

  • Jig6.txt
    3.9 KB · Views: 146
  • testjig.jpeg
    testjig.jpeg
    60.9 KB · Views: 158
This is interesting, and the TTL, well I love TTL and did some stuff with it right on the cusp of the microprocessor era. Once well into it, when I used a cheap CMOS logic chip to replace an expensive special purpose keypad scanning chip.

The debouncing problem you have can't depend on characteristics of the switches since people will throw the cheapest random switches they can in it. I can't remember enough to help you with it, but I can steer you to this resource, which is pretty definitive: https://ia801004.us.archive.org/5/items/TTLCookBook/TTL Cook Book.pdf. There's a keyboard debouncer in it, but you can use just one of the latches from it for your button. Normally today you would read the switches with code and debounce with a couple of timing loops where you read and then time out and read again, two or three times.

I wrote some ignition in code in C for a different older board that you are welcome to. Actually, a description of the concept would probably be as good or better. The two pickup coils are fixed and represent a particular angle. You can convert the time between seeing the two coils to RPM for that revolution. Since you know the degrees between the coils you can also use that time to calculate the time required to move one single degree for that revolution. You can use the time required to move one degree to time the firing such that it happens always at a certain baseline place, regardless of RPM. Finally you can take the RPM you calculated and go to a table and subtract a value from the baseline time to give you the right advance for your RPM. It takes a fast board because the times you're required to measure are surprisingly short.

I will read the PDF from your other post on the TCI operation theory when I get some quiet time, This is good work and I didn't want you to think it's unappreciated.
 
Awesome that you appreciate it too. It represents a lot of skilled work. I wasn't going to let it go off the front page with no comments like its companion post did.
 
This is interesting, and the TTL, well I love TTL and did some stuff with it right on the cusp of the microprocessor era. Once well into it, when I used a cheap CMOS logic chip to replace an expensive special purpose keypad scanning chip.

The debouncing problem you have can't depend on characteristics of the switches since people will throw the cheapest random switches they can in it. I can't remember enough to help you with it, but I can steer you to this resource, which is pretty definitive: https://ia801004.us.archive.org/5/items/TTLCookBook/TTL Cook Book.pdf. There's a keyboard debouncer in it, but you can use just one of the latches from it for your button. Normally today you would read the switches with code and debounce with a couple of timing loops where you read and then time out and read again, two or three times.

I wrote some ignition in code in C for a different older board that you are welcome to. Actually, a description of the concept would probably be as good or better. The two pickup coils are fixed and represent a particular angle. You can convert the time between seeing the two coils to RPM for that revolution. Since you know the degrees between the coils you can also use that time to calculate the time required to move one single degree for that revolution. You can use the time required to move one degree to time the firing such that it happens always at a certain baseline place, regardless of RPM. Finally you can take the RPM you calculated and go to a table and subtract a value from the baseline time to give you the right advance for your RPM. It takes a fast board because the times you're required to measure are surprisingly short.

I will read the PDF from your other post on the TCI operation theory when I get some quiet time, This is good work and I didn't want you to think it's unappreciated.
I have already started a project with code much like you describe. Still in the early breadboard stage.
 
It shouldn't be too hard to get working. There's a way that can use a much slower processor where instead of time between coils it's time between seeing a single coil twice equals one revolution, and what happens the current revolution is based on what you saw the previous revolution. Ultimately you could do something like an interface to a phone app in Bluetooth where you monitor it or change values. Unfortunately I have zero enthusiasm myself though. I wouldn't enjoy it and I'd feel like I was throwing away time and money, when I'd rather just ride the motorcycle
 
frosty.jpg Some time after I figured out the functionality of the TCI boards, I was contemplating building a Limp-Home-Module, or my preferred name for it "Ice cream truck mode". Basically a small module that would replace TCI module in an emergency. It would not have any computer chips or elaborate advance curve electronics. It would just fire the ignition at precisely and only at 16 degrees. No advance at all. It would allow you to idle or limp your way home. I scribbled out the design on paper and actually began breadboarding it. At some point I realized that I could take some of same principles I used on the tester to construct something with a bit of advance curve. I stopped working on the ice cream truck module. I never did figure out how to create the music that would go along with it. If you are into coding I will send something to you when I think I have something viable. At some point I will need someone smarter than me to look it over.
 
Last edited:
I'd enjoy looking it over. I had a good career of writing embedded code for gizmos. There shouldn't really need to be much extra hardware besides the controller. Mainly the firing transistor and its biasing and some buffering and voltage changing circuits, to go from 12 V to whatever the processor wants to see. That could probably just be zener diodes to limit the voltage, followed by some buffer to square the signal. The limp home mode is interesting, but like you discovered, it isn't necessarily a lot simpler than doing the whole thing. You might be able to use a 555 timer to give you a spark some set time after the coils. It would definitely be limping! I think the TCI is as reliable as any ignition though, and I'd gather a lot more reliable than some that people are trying to get fixed on this board constantly! I had one TCI go bad and it was only vibration had killed some solder joints, and after lots of blind alleys, fifteen minutes of resoldering fixed it. The components are old, but they're still doing fine. I'd guess they have have a long life ahead. My approach would be using the pickups a lot differently than how the were originally. It would be interesting to see the innards of the 250 ignition they're using to see if it is fundamentally the TCI shrunk down using surface mount, or a modern approach that is mainly a micro
 
LOL It occurs to me there are two other ways of doing this, at least. First way, once someone thoroughly understands what's going on in the TCI, the code could simply be a TCI emulator. The second is more of a TTL way, no code. Let the two coil signals gate on and off the charging of a capacitor. The voltage on the capacitor tells you how long it charged and relates to RPM which is the only variable you need! Some 555 timer chips and time constants and some TTL and there you go.
 
Way ahead of you. The input and output portions of the 12-03 TCI is basically a sound design which I will reuse, but with dropping the voltage regulator down to 5 vdc. I contemplated a number of different ways of doing it including using a PLA but opted for experimenting with arduino which was what I was using to drive the tester. I think the Arduino is versatile enough and should have a sufficient clock speed and is relatively easy to experiment with. My first attempt at a code temporarily bricked the device. Had to reload the bootloader and start over again. Unfortunately life and other stuff gets in the way. I will send you something after I do a few more tests.
 
This is something i was into a couple of years ago .
Reading about it from a perspective of building an own Ignition system
CAR tuners these days in ex Drag racing must be able to Chiptune and getting into the newer electronics.
Information that is a business secret for the most part
Here in Europe it is Bosch who knows this.
Using a solution of many micro controllers and CAN buses that I believe no one except themselves know how to decode.
It was a couple of years ago and I am no electronic or Computer competent person.

My approach was to find a Car ignition for a small ( Older ) car and modify
Some small vehicles has 4 cylinders with displacement twice that of a XS 650

Some MC Dragracers had their solution on line Code and Processor.
As I understood it the coding + electronics and so would be possible to figure out
But what scared the daylight out of me was that for a high revving Racing bike
A ignition Pulse at the wrong time ..could mean major repair and costs.
The dragracers might not care since they perhaps tear the engine down after a weekend
nothing a XS 650 cruiser is prepared to do

We had a Dutch gentleman here on line with ignition problems .Perhaps due to a wiring and Earth problem
Dirty Signal was mentioned.
A Problem that realistically is very common given how old the bikes are ..

The signal processing and protection against Disturbances " the Dirty Signal "
were things i did not and do not have the Faintest Clue on . How to do.
The rest of it the electronics and timing signal ..The Gonzo team here have solutions in that respect.
I do believe to program code in a modern controller that can adapt the advance via the same in signal.
Is not impossible.

That was were I gave up
To much work coding or reverse engineer someone else's code and some parts.
Not being able to assert that a Spike on the wiring did not fire the ignition at 4 -5000 rpm at exactly the wrong time
Becoming a Bus passenger instead of a Motorcyclist ..

Please share thoughts if it is Known how to do it Fail Safe.
 
not fire the ignition at 4 -5000 rpm at exactly the wrong time
Becoming a Bus passenger instead of a Motorcyclist ..

Please share thoughts if it is Known how to do it Fail Safe.
One thing you can do is before an important event, in this case firing the coil, is to check a stored pattern as close to firing as possible and then clear the pattern as soon as possible after firing. Then if the code went haywire and jumped to a random place and ran the firing code it wouldn't fire because the pattern wasn't there. I used that to fix some electronic lock code that you could open by shocking it with a stun gun :)
 
People wrongly assume that if a device is new and has a computer chip in it, then it is better. This is not always true. We should know this. We are riding 40 year old motorbikes. The TCI electronics are simple and rugged. Yes, they are going on 40 years and are old and tired, but I don’t throw out the car when the tires wear out. I like to follow the KISS concept of design when I can... that is short for Keep It Simple Stupid. I will work on this programming project in my spare time and maybe something useful will result, but I still prefer my old TCI for it’s simplicity and ease of repair.
 
^I definitely agree with that. And I consider the TCI totally reliable, maybe the most reliable ignition available. My favorite car was an '86 two door Mazda 626. It was shaped like a little Maserati of the time and you could fix anything on it with your eyes closed. You didn't have to consult its computer to see what the problem is.

Designing without a computer chip is becoming a lost art if it isn't already. I think you'd have a very hard time finding anyone today who could design the TCI using only the parts it has. Largely because there's no reason to do that though.
 
you'd have a very hard time finding anyone today who could design the TCI using only the parts it has.
That means the TCI is irreproducible alien technology :D What cooler ignition could there possibly be?
 
one that can be fixed on the side of the road in a break down................Points...........
And dual points have a built in "limp home" function. Limped home more than once on a dead cylinder.
 
For some reason people aren't going back to points on their XS650s
 
Back
Top