Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1

TOPIC: Electronic Carb Sync Tool

Electronic Carb Sync Tool 02 Mar 2018 18:59 #779673

  • Saablord
  • Saablord's Avatar Topic Author
  • Offline
  • Member
  • Member
  • Posts: 86
  • Thank you received: 2
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:
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:

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

Last edit: by Saablord.

Electronic Carb Sync Tool 02 Mar 2018 20:15 #779677

  • loudhvx
  • loudhvx's Avatar
  • Offline
  • Sustaining Member
  • Sustaining Member
  • Posts: 9358
  • Thank you received: 1000
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.

Electronic Carb Sync Tool 02 Mar 2018 20:53 #779679

  • Saablord
  • Saablord's Avatar Topic Author
  • Offline
  • Member
  • Member
  • Posts: 86
  • Thank you received: 2
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.

Electronic Carb Sync Tool 03 Mar 2018 04:36 #779681

  • TexasKZ
  • TexasKZ's Avatar
  • Offline
  • Platinum Boarder
  • Platinum Boarder
  • Posts: 3871
  • Thank you received: 746
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

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

Electronic Carb Sync Tool 03 Mar 2018 05:52 #779685

  • loudhvx
  • loudhvx's Avatar
  • Offline
  • Sustaining Member
  • Sustaining Member
  • Posts: 9358
  • Thank you received: 1000
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
The following user(s) said Thank You: TexasKZ, gordone, blackumi

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

Last edit: by loudhvx.

Electronic Carb Sync Tool 26 Mar 2018 09:17 #780823

  • Saablord
  • Saablord's Avatar Topic Author
  • Offline
  • Member
  • Member
  • Posts: 86
  • Thank you received: 2
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:
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.

Electronic Carb Sync Tool 26 Mar 2018 14:41 #780852

  • 650ed
  • 650ed's Avatar
  • Offline
  • Member
  • Member
  • Posts: 14197
  • Thank you received: 2365

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:

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

Last edit: by 650ed.

Electronic Carb Sync Tool 26 Mar 2018 17:32 #780865

  • Oldschoolkz1000
  • Oldschoolkz1000's Avatar
  • Offline
  • Member
  • Member
  • Posts: 98
  • Thank you received: 3
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.

Electronic Carb Sync Tool 26 Mar 2018 18:02 #780866

  • 650ed
  • 650ed's Avatar
  • Offline
  • Member
  • Member
  • Posts: 14197
  • Thank you received: 2365
My 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:
The following user(s) said Thank You: Oldschoolkz1000

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

Last edit: by 650ed.
  • Page:
  • 1
Powered by Kunena Forum