KZR's Bikes of the Month for 2024

Electronic Carb Sync Tool

More
02 Mar 2018 18:59 - 02 Mar 2018 19:20 #779673 by Saablord
Electronic Carb Sync Tool was created by Saablord
Hey guys, I posted about this in my Franken 550 project log, but I figured i'd post it over here in a little more depth.

Basically, I wasn't happy with the current methods of syncing carburetors, that is, using ATF in tubing or gauges because they're so hard to read. Well, I guess the ATF method might not be so bad, but it's messy.

So I went to the junkyard and got four identical MAP (manifold air pressure), or vacuum, sensors. These can be generally be found on import cars (honda, mitsu, toyota, some crystler) from the 90s to early 2000s. Point is to find four of the same down to every model number on the label as a different number most likely means a different output.

I found four MD305600 sensors from a wide range of Mitsubishis and some jeep like thing with a grand something badge (yeah sorry, cant remember).

Generally, all of these map sensors operate under the same basic principles with three connection pins: Power (typically 5volts), ground, and signal out. As the pressure changes, the sensor changes the sensor out voltage between 5v and ground, so an analog value. To get an actual pressure reading from the sensors instead of a voltage, you have to know the relationship between the two which is very hard to find....Fortunately, we dont care about the actual pressure and just want to compare the voltages between the four pressure sensors.

to make this method any better than gauges, I had to do analyze the data coming from the four sensors as just looking at the voltages and using needle valves to stabilize them would be no better than gauges. So, I hooked them up to a microcontroller which allowed me to rapidly collect data points on each sensor, find an average of the four, and then calculate a percent difference between each sensor and the average. This creates a graph something like this using a plotter tool:


The graph moves pretty slow as each point is a second apart. Better, quicker smoothing could be done with additional algorithms but I've got mine synced for now, so I haven't made any improvements yet. Maybe exponential smoothing?



Anyways, here's the Arduno (the microcontroller) code:
Code:
long val1, val2, val3, val4 = 0; int count = 0; void setup() { Serial.begin(115200); } void loop() { //increment the averaging counter count += 1; //collect sensor values and sum with previous value val1 += analogRead(A0); val2 += analogRead(A1); val3 += analogRead(A2); val4 += analogRead(A3 ); if (count > 100) //If we've collected data for 1 second, { //average the summed values and apply calibration values //calibration values are found by running the code with the sensor exposed to atmosphere and making them all match. val1 = val1 / count + 10; val2 = val2 / count - 2; val3 = val3 / count; val4 = val4 / count - 3; //calculate average of the four sensors float avg = (val1 + val2 + val3 + val4) / 4; //send the percent difference of each sensor from the average. Serial.print(((val1 - avg) / avg) * 100); Serial.print(" "); Serial.print(((val2 - avg) / avg) * 100); Serial.print(" "); Serial.print(((val3 - avg) / avg) * 100); Serial.print(" "); Serial.print(((val4 - avg) / avg) * 100); Serial.println(" "); //reset the counters and values count = 0; val1 = 0; val2 = 0; val3 = 0; val4 = 0; } }

Connecting the sensor is pretty easy once you figure out the pinout. I found a diagram online for mine :


Simply tie all the 5v pins together and connect to a 5v source (my microcontroller provided this) and then tie all the grounds together and ground those. Finally, wire each signal pin to an analog pin on the microcontroller.

Here's how mine turned out:
Attachments:
Last edit: 02 Mar 2018 19:20 by Saablord.

Please Log in or Create an account to join the conversation.

More
02 Mar 2018 20:15 #779677 by loudhvx
Replied by loudhvx on topic Electronic Carb Sync Tool
The key is the initial restrictor. It has to be as close to the motor end as possible. This will lead to proper averaging. The volume of the tubing acts as the averaging buffer, so longer tubing is good. The restrictor acts as both a damper and isolator. As long as the restrictors are rigid and dont vary with pressure, and they are really small compared to the air in the tubing, the exact size of the restrictor is not critical. This eliminates the need for calibrated restrictors.

I like to average the pulses with an analog averager, then smooth it out with digital processing (also using arduino).

Please Log in or Create an account to join the conversation.

More
02 Mar 2018 20:53 #779679 by Saablord
Replied by Saablord on topic Electronic Carb Sync Tool
That initial restrictor was probably my issue as I just had some aquarium valves right before the gauges. I tried to keep the needle twitch about the same on all of them but I still didn't really trust the gauges. They were china after all!

Please Log in or Create an account to join the conversation.

More
03 Mar 2018 04:36 #779681 by TexasKZ
Replied by TexasKZ on topic Electronic Carb Sync Tool
I think the restrictors (aquarium valves) need to be as far away from the guages as possible to be most effective.

I assume from the description that you are using some specialized software. Is it readily available? Cheap and easy to use for novices?

1982 KZ1000 LTD parts donor
1981 KZ1000 LTD awaiting resurrection
2000 ZRX1100 not ridden enough

www.kzrider.com/11-projects/620336-anoth...uild-thread?start=24

Please Log in or Create an account to join the conversation.

More
03 Mar 2018 05:52 - 03 Mar 2018 06:26 #779685 by loudhvx
Replied by loudhvx on topic Electronic Carb Sync Tool
kzrider.com/kunena/21-tools/569922-lates...carb-synch-manometer

Oops, I dont think I saw that post from two years ago.

That was my version, above. It also uses arduino.

The hardest part was actually the self-monitoring part. It monitors the battery in order to see if readings are erroneous or not. When the 9v battery drops below about 7v the readings will no longer be accurate to the nearest mm of mercury. The battery lasts about 5 to 10 hours depending on the backlight of the screen.

Arduino is a hardware/firmware/software development environment for programming microcontrollers, which are tiny computers with a bunch of input and output connections, and it all fits on one microchip. It's old technology, but extremely useful. The hardware can be purchased in many forms. The chips that are prepared for arduino can be had for $5, and you can reuse it many times for many projects, by there is other hardware you need for programming etc. The most basic, complete board is about $25, last I checked. Then, after that you just need new chips if you want to start a new project but don't want to disassemble the old one. Your PC can save the program of the old project.

The software environment is free to down load online. It was developed specifically for non-technical people (artists) to control lights and motors. The great thing is there is a lot of online support with a forum of probably millions worldwide.

Here are some notes on nanometers which apply to digital or mercury.
s3.amazonaws.com/gpzweb/ManometerNotes/ManometerNotes.html
Last edit: 03 Mar 2018 06:26 by loudhvx.
The following user(s) said Thank You: TexasKZ, gordone, blackumi

Please Log in or Create an account to join the conversation.

More
26 Mar 2018 09:17 #780823 by Saablord
Replied by Saablord on topic Electronic Carb Sync Tool
That is quite nice how you made it portable! It's definitely more finished than mine. Ive run into that 9v battery issue as well...A rechargeable 9v or a pack of AAs with a NIMH charging circuit would be pretty neat, but probably not worth it.


I had to sync my new carbs so i implemented the exponential filtering which seemed to help a bit. I didn't spend too much time tinkering with finding the right averaging and weight values. Here's the code:
Code:
int count = 0; long sVal[2][4]; bool firstRun = true; long avg = 0; //smoothing weight, higher is less smoothing #define weight 0.75 //define this for no smoothing, average only //#define PAVG //calibration vlaues #define cal1 1 #define cal2 3 #define cal3 0 #define cal4 15 //calibration values are found by making all the output values match while running //the code with PAVG defined and the sensors exposed to atmosphere. void setup() { Serial.begin(115200); } void loop() { //increment the averaging counter count += 1; //collect sensor values and sum with previous value, add in calibration value sVal[1][0] += analogRead(A0); sVal[1][1] += analogRead(A1); sVal[1][2] += analogRead(A2); sVal[1][3] += analogRead(A3); if (count > 150) { //average + apply calibration sVal[1][0] = sVal[1][0] / count + cal1; sVal[1][1] = sVal[1][1] / count + cal2; sVal[1][2] = sVal[1][2] / count + cal3; sVal[1][3] = sVal[1][3] / count + cal4; #ifdef PAVG //print basic averaged values Serial.print(sVal[1][0]); Serial.print(" "); Serial.print(sVal[1][1]); Serial.print(" "); Serial.print(sVal[1][2]); Serial.print(" "); Serial.print(sVal[1][3]); Serial.println(" "); #endif //set old val to current val if its the first run. if (firstRun) { sVal[0][0] = sVal[1][0]; sVal[0][1] = sVal[1][1]; sVal[0][2] = sVal[1][2]; sVal[0][3] = sVal[1][3]; firstRun = false; } //calc new smoothed value. sVal[1][0] = weight * sVal[1][0] + (1 - weight) * sVal[0][0]; sVal[1][1] = weight * sVal[1][1] + (1 - weight) * sVal[0][1]; sVal[1][2] = weight * sVal[1][2] + (1 - weight) * sVal[0][2]; sVal[1][3] = weight * sVal[1][3] + (1 - weight) * sVal[0][3]; //calculate average of the four sensors avg = (sVal[1][0] + sVal[1][1] + sVal[1][2] + sVal[1][3] ) / 4; #ifndef PAVG //send the percent difference of each sensor from the average. Serial.print(((float)(sVal[1][0] - avg) / avg) * 100.0); Serial.print(" "); Serial.print(((float)(sVal[1][1] - avg) / avg) * 100.0); Serial.print(" "); Serial.print(((float)(sVal[1][2] - avg) / avg) * 100.0); Serial.print(" "); Serial.print(((float)(sVal[1][3] - avg) / avg) * 100.0); Serial.println(" "); #endif //old = current new value sVal[0][0] = sVal[1][0]; sVal[0][1] = sVal[1][1]; sVal[0][2] = sVal[1][2]; sVal[0][3] = sVal[1][3]; //reset the counters and values count = 0; sVal[1][0] = 0; sVal[1][1] = 0; sVal[1][2] = 0; sVal[1][3] = 0; } }

Please Log in or Create an account to join the conversation.

More
26 Mar 2018 14:41 - 26 Mar 2018 14:44 #780852 by 650ed
Replied by 650ed on topic Electronic Carb Sync Tool

Saablord wrote: .....................

Basically, I wasn't happy with the current methods of syncing carburetors, that is, using ATF in tubing or gauges because they're so hard to read. Well, I guess the ATF method might not be so bad, but it's messy.


Hard to read?




1977 KZ650-C1 Original Owner - Stock (with additional invisible FIAMM horn)
Attachments:
Last edit: 26 Mar 2018 14:44 by 650ed.

Please Log in or Create an account to join the conversation.

More
26 Mar 2018 17:32 #780865 by Oldschoolkz1000
Replied by Oldschoolkz1000 on topic Electronic Carb Sync Tool
I'm asking 650ed where did you get that vacuum set up, I am very interested.

Please Log in or Create an account to join the conversation.

More
26 Mar 2018 18:02 - 26 Mar 2018 18:04 #780866 by 650ed
Replied by 650ed on topic Electronic Carb Sync Tool
No eBay APP ID and/or Cert ID defined in Kunena configurationMy friend gave it to me when he sold his carbed bike and bought one that is fuel injected. Before that I had a cheap set of gauges that were wonky. I don’t know where he bought it, but there appears to be some similar sets on eBay (see link below) and maybe at some bike shops. The picture at the bottom shows my gauge set with its various adapters. Ed




1977 KZ650-C1 Original Owner - Stock (with additional invisible FIAMM horn)
Attachments:
Last edit: 26 Mar 2018 18:04 by 650ed.
The following user(s) said Thank You: Oldschoolkz1000

Please Log in or Create an account to join the conversation.

Powered by Kunena Forum

If you like KZR Please consider making a donation. Thank you.

KZRider is free, but not without cost.

Please consider chipping in a few bucks to help cover the cost of running the KZR servers.