9 cylinder radial RPM - Page 1
Forum section: electronics / projects

author: Makila
author_rank: Newbie
timestamp: March 24, 2016, 05:08:10 pm
content: I am trying to construct a model engine RPM indicator for a 4 stroke 9 cylinder radial engine and having issues with a working design.I have bought a 4 segment LED indicator that measures RPM, that uses one pulse per numerical count on the meter, and will use this as the basis of my design. However, the design works from a square wave out put at about 1 volt positive peaks from a CDI ignition module. The ignition module is based on a single cylinder design where the HT goes to a 9 point distributor that provides the individual spark plugs with the timed spark. The distributor has 9 magnets under the rotor that are picked up by a hall effect transistor. The hall effect transistor provides the CDI with a signal to induce a HT voltage that returns to the distributor, via a rotor to the respective spark plug.The issue I am having that for every revolution of the engine, there are 4 1/2 ignition cycles (this being a 4 stroke thus the distributor rotates at 1/2 crank RPM) that indicates a RPM reading of 4 1/2 times actual RPM. I have tried using a divider but not having much success as a 4 1/2 cycle is not easy to produce so I looked at a divide by 9 then multiply by 2 to give RPM of the crankshaft.Does anyone have any ideas on a circuit that would provide the above RPM characteristics needed?

author: Andy Watson
author_rank: Super Contributor
timestamp: March 24, 2016, 05:32:31 pm
content: Quote from: Makila on March 24, 2016, 05:08:10 pmIs this actually an RPM meter, or just a counter? RPM should have an element of time.QuoteI would multiply by 2 - using a PLL, then divide by 9. But, this problem has microcontroller written all over it. And once you've gone down that route you may as well go the extra mile and use the micro to drive the display.

author: Makila
author_rank: Newbie
timestamp: March 24, 2016, 07:09:25 pm
content: Hi Andy,Its probably a counter that counts the pulses. With the Hall effect transistor sensing a magnet that is attached directly to the engine's output shaft, the counts would relate directly to the number of pulses.I was thinking that I could set this up using a Raspberry Pie type device as a processor but it would require power, housing and space. I just need the pulses to be divided by 4.5 to give a true representation of RPM, would this be possible.The RPM tachometer is a device specifically designed for model engines and has quite a small form factor that fits perfectly on a small control panel. Space is limited as the picture indicates.Steve

author: Andy Watson
author_rank: Super Contributor
timestamp: March 24, 2016, 07:21:52 pm
content: Nice model!Do you have a datasheet for the RPM meter? It clearly has an LED display - so it must have power. Is a micro-controller a possibility or would you prefer to use more discrete logic, or even analogue?

author: Makila
author_rank: Newbie
timestamp: March 24, 2016, 07:39:50 pm
content: Hi Andy,The details I have are from the seller;This handy tool will connect with your electronic ignition system to provide you with accurate RPM readings. Capable of measuring up to 30000RPM.Features:• PIC16F628a microcontroller• Compact size making it convienent to carry• Does not require batteries for power• Uses standard Futaba style plug• Capable of measuring up to 30000RPM engine speedHope that explains the internals a bit better, unfortunately the device does not open easily, but I might need to break it open to get a better idea of the circuit. I was hoping to just apply external circuitry to alter the pulse frequency by 4.5CheersSteve

author: Andy Watson
author_rank: Super Contributor
timestamp: March 24, 2016, 08:17:54 pm
content: Could it be based on this:http://pic16f628a.blogspot.co.uk/2010/10/contact-less-tachometer.htmlIf the clock frequency is 4MHz (as in the above project) one possibility would be to crack it open and replace the crystal with 18MHz. Not -guaranteed to work, but worth a punt.If it were my problem I would crack open the RPM meter and re-program the PIC (the source code is available on the link above). But, if you're not into PICs this would entail a very steep learning curve and some programming hardware.

author: Makila
author_rank: Newbie
timestamp: March 24, 2016, 08:56:14 pm
content: Hi Andy,Thanks for the input and link. In fact I was about to get a Pic Kit 3 and some PIC16F628A for another project, I think it would be a good project to get this displaying the correct RPM. Of course the changing of the crystal might work as you say.Based on the link you provided, I would not need the IR pulse generator as I already have the pulse. I would need to program the chip to divide the input pulses by 4.5 for one pulse out or if that does not work, then figure out another route.Thanks for your support on this, I will have a go and see if its possible to completely make a different circuit should the interfacing of the original not be a success.Off to order a Pic Kit 3 and have a go. I never considered the PIC route on this issue!Many thanks again Andy, for your inputs, I will post results if and when I get it working.Steve

author: Seekonk
author_rank: Super Contributor
timestamp: March 24, 2016, 10:03:47 pm
content: I bought a number similar to thishttp://www.ebay.com/itm/0-56-DIGITAL-Red-LED-Frequency-and-Tachometer-Rotate-Speed-Meter-DC-12-24V-/280903275997?hash=item416723d5ddIt allowed me to divide or multiply by any number. It seems like a once per rev would be easy for you and solve problems at that speed.

author: dannyf
author_rank: Super Contributor
timestamp: March 24, 2016, 10:09:39 pm
content: If it is a mcu bases unit, it shouldn't be that hard to reprogram it.

author: dannyf
author_rank: Super Contributor
timestamp: March 24, 2016, 11:07:21 pm
content: QuoteAssuming your meter takes 1 pulse per revolution signal, all you need to do is to divide your signal by 4.5 (or x2/9). I think that's not difficult to do at all with a mcu: on one side you read the signal, on the other side, you generate a square wave, based on the readings on the input signal.

author: alsetalokin4017
author_rank: Super Contributor
timestamp: March 25, 2016, 12:35:02 am
content: Quote from: Seekonk on March 24, 2016, 10:03:47 pmThis pretty much looks like a drop-in solution to the problem, if 12v is available to power it. Looks like programming it to divide by 4.5 is not difficult. It might be necessary to use a transistor between the ignition module's pulse output and the input to this tacho, but that's very simple to do, according to the info in the Ebay listing.

author: SaabFAN
author_rank: Frequent Contributor
timestamp: March 25, 2016, 01:39:03 am
content: Why don't you just take a 74HCT92 Decade-Counter and maybe a 4093 to do signal-conditioning (turn the signal from the CDI or any other sensor into clean TTL-Pulses)?Saves you the trouble of programming a MCU and is probably a lot more robust.When I improvised an RPM-Counter for my outboard-motor to adjust timing and find the right propeller-pitch, I discovered that the pulses from the ignition play havoc with electronics - The Velleman Handheld Scope repeatedly crashed then I tried to measure the waveform from the different sensors I tried (Hall-Sensor, a few turns of wire around the ignition-leads, the 2 output-leads of the trigger-coil under the flywheel).With a 4093 built up on a breadboard that was connected to the sensors, and the scope placed about 3 meters away from the engine, I had no more issues.PS: The outboard-motor is a Mariner 6hp built in 1987 with CDI-Ignition able to deliver about 80000V by dumping the charge of 400V caps into the ignition-coils. Receiving long, medium and short-wave radio with the engine running within 20 to 30 meters of a radio is almost impossible.

author: Seekonk
author_rank: Super Contributor
timestamp: March 25, 2016, 08:07:19 am
content: Quote from: alsetalokin4017 on March 25, 2016, 12:35:02 amI use these on SUN Distributor machines to replace the old analog tach. They have filtering/averaging option to give a rock solid reading. So nice not to have the last digit not bouncing around all the time.

author: deephaven
author_rank: Frequent Contributor
timestamp: March 25, 2016, 02:38:10 pm
content: The most compact solution is to use a small PIC and feed the pulses into an interrupt on change input. This effectively gives you a X2, then it is a simple job of counting modulo 9 in the interrupt routine and output that as a pulse for your tachometer.If you want a solution which doesn't need programming but requires more chips, you could feed the pulses into a pulse doubler circuit which consists of an exclusive OR gate, one input being fed directly, the other from a differentiator made from a series capacitor and a resistor down to ground. The output of the exclusive OR feeds a divide by 9 which you can make with a counter with a decoded output and feedback to it's reset. Do it all in CMOS using a CD4070 for the exclusive OR and a CD4017 for the counter. The advantage of using CMOS is that you can run it off a wide range of voltages, e.g. 12V.

author: dannyf
author_rank: Super Contributor
timestamp: March 25, 2016, 03:36:01 pm
content: Here is the basic idea, utilizing interrupt on a 12f675:Code:tacho_cnt+=TACHO_MLT<<1;//increment tacho_cnt count by _MLTx2 (x2/9)if (tacho_cnt>=TACHO_DIV) {tacho_cnt-=TACHO_DIV;//reset tacho counter (doing a division essentially). errors / residuals carried over for long-term accuracyIO_FLP(TACHO_PORT, TACHO_OUT);//flip the output}Total code compiled to ~40 bytes. And would work with input signal well in excess of 10Khz (running on 4Mhz internal oscillator).It can be easily ported to other mcus or other times of interrupts (pin change or even timer/counter).

author: dannyf
author_rank: Super Contributor
timestamp: March 25, 2016, 03:47:39 pm
content: Here is the chip converting an input signal of 30Khz into 6.6Khz (=30 * 2 / 9).30Khz input signal is equivalent to 30K*60 / 4.5 = 400Krpm. Good enough for a jet engine,

author: dannyf
author_rank: Super Contributor
timestamp: March 25, 2016, 04:03:16 pm
content: Isr overhead is about 20 ticks and the isr adds 10 ticks. 30 ticks per isr.A pic can run at 4Mips. So the max input frequency is 4Mips / 30 ticks, or 100khz. Or lots of rpm.

author: Makila
author_rank: Newbie
timestamp: March 25, 2016, 11:11:12 pm
content: Danny F many thanks for the advice, sketch and simulator screen shot. That looks like just the way I will approach it. Although I will not pull the pic off the board to re-programme it, the plan is to re-condition the square wave by dividing the input by 2/9 and providing the 1 pulse per revolution to the display driver. My original plan was to go the divider routs as per the 74HCT92 decade counter as mentioned by Deephaven and SaabFan, and this may be the way I end up doing it. But I am new to Pics and look forward to developing code to get it to work as desired as a training exercise.Danny, can I ask what programming software you are using, I like the simulator screen shot and info it it displays.As far as being anywhere near EMC compatible, the distributor will act like a spark transmitter and AM radio will be lost for at least 30 meters, but then, the sound of a radial engine sounds better so that will make up for itI really appreciate the help, it's real first class advice. Here are a couple of pictures or the ignition CDI unit. The CDI make is a Rexel, Model A-02 and requires 4.8 - 8.4 VDC. I have two Lipo batteries in series (2C) arrangement at 2000 MAH as the power source (hidden in the black box). The engine was scratch built from bar stock on my lathe and mill and took about a year to produce from plans.Steve

author: tautech
author_rank: Super Contributor
timestamp: March 25, 2016, 11:56:37 pm
content: Quote from: Makila on March 25, 2016, 11:11:12 pmWowGreat work.HP?Max RPM?Fuel?

author: dannyf
author_rank: Super Contributor
timestamp: March 26, 2016, 01:02:13 am
content: I used mplab plus xc8. The simulator is Proteus.The code is really a programmable fractional divider. Simple to code.

author: max_torque
author_rank: Super Contributor
timestamp: March 26, 2016, 01:23:51 pm
content: Don't forget that it's unlikely you need to know the speed of the engine EVERY HALF SINGLE CYCLE! ie updating once per rev! For a human readable rev counter, 5 a second are more than enough, and in fact, with digital readouts, you may want to smooth the output even more to prevent LSB flickering etc!This means you can count many more than 4.5 or 9 or even 18 edges before working out the average speed!