Instructables
A common Motorcycle maintenance task is to synchronize the throttle bodies on the engine to smooth out any rough idle.  This is done by monitoring the vacuum on each throttle body and using the idle screw to make the adjustment.

While this sounds rather advanced, with a little knowledge, a few standard tools to access the engine, and a TBS tool (Throttle Body Synchronization); the maintenance item really isn’t that hard.

Now you can buy a tool or build a TBS tool using fluids and tubes (there are examples of this out there on the interwebs), but I wanted to use an Arduino and some electronics to build my own to do the job.  This instructable describes my journey in making my own Arduino Throttle  Body Synchronization shield.
 
Remove these adsRemove these ads by Signing Up

Step 1: Research

A TBS tool is rather simple in what it does; it will measure the vacuum that each cylinder is actively producing when the engine is running.  To measure vacuum with an Arduino I needed to build a shield that would contain a vacuum sensor for each cylinder on my engine (4 in my case). 

There are many vacuum sensors available from your favorite electronics parts stores.  The interesting range that I need to measure is around -33 kPa (-4.78 psi).  This is the value that should be measured on my motorcycle on a single cylinder when the engine is warm and at idle.  You should consult a service manual for the specifics for your engine.  So I picked one that measured a range between 0 kPa to -50 kPa.

Then I needed to understand how to connect this to my engine.  The service manual helps here also, but I also found many great write ups on the web.  I just needed some standard engine vacuum hose with an inner diameter of 1/8th inch which will push onto a service nipple already present on the throttle body.  This same hose will directly push onto the vacuum sensor.  I found this in bulk at my local automotive store.  I needed four hoses each with at least 3 feet length so I could put the Arduino and sensors in a safe place.
flaquito2 years ago
Very nice! What was the part number for the sensors that you used? Also, any chance of sharing your code for either the Arduino or the PC? (Preferably both... :))
Makuna (author)  flaquito2 years ago
Thanks,

Look for an update to the article in next day or so, I will include the part number for the sensor and few other requests.

I am planning on having a follow-up Instructable that will include more of the software side of this project with explanations; where more of the code will be shared.
xocoatl Makuna3 months ago

Hi, Makuna,

Could you please share the PCB designs?

DavidT516 days ago

Hi there, I like your approach to an alternative for mercury/cylinder/fluid vacuum gauges.

I admit I'm a bit lazy for writing the code ; any chance sharing the software. I already ordered the sensors and an arduino board (Have a raspberry PI + did some jobs with 8 bit PICS and atmel mcu's) and the PCB creation is no issue at all.

joegeek5 months ago

I would like to get a copy of the eagle cad files with the Vacuum sensor libraries if it possible. Does anyone have one they would like to share. I've been trying to find and import the vacuum components but cant find them anywhere. I'll admit defeat !

Please help! I bought the sensors from Digikey and would like to get my PC board fabricated soon but cant get the Eagle Cad figured out. That's an entire new project for me. Thank you, joe at Joegeek

vfr800nut5 months ago

a very elegant solution to reading each cylinder's vacuum. well done

maxpcuser6 months ago

That is very impressive. Awesome Job.

kingofsteel9 months ago
Any modifications was done after 1 year? is possible to see final product?
pipereed12 months ago
Hi there, have I missed the update? I'd be happy to buy the schematics or a complete SHEILD and code from you. This would be for my own personal use?
rch1 year ago
Most Excellent!!!
I want to build one of these for my 2 cylinder BMW to help balance the throttle bodies on it for smoother operation. I look forward to you sharing your source code for both the Arduino and the PC.
Very nice build.
looks perfect for a custom boost gauge
bernie3082 years ago
Wow, very nice!!

Just a suggestion for future, what about using 4 rows of ~20 Led's. It will take some multiplexing but judging by your workmanship, you should have no trouble making this into a very portable unit!

Thanks for sharing.
foker2 years ago
The schematics and parts list both show 0.01 uf ceramic capacitors(surface mount 0603), but the link next to it takes me to C1608X7R1E103K (CAP CER 10000PF 25V 10% X7R 0603). Are these two items one in the same?
Makuna (author)  foker2 years ago
They are are the same. 10000 PF is the same as 0.01 UF. 10000 picofarad is the same as 0.01 microfarad. Its always strange when the manufacturers list a value one time using one value and then others use another value.

foker Makuna2 years ago
Thanks! I just got my parts in from Digi-Key and was wondering if you would mind sharing your eagle files. Me and a buddy are getting this bad boy going, and all we lack are the PCBs. Thanks!
eswayne2 years ago
Any more updates to this article. Could it be made to link bluetooth/wifi to your phone......to display results.....

Makuna (author)  eswayne2 years ago
Anything can be done with passion, time, and money.

I looked into using a smart phone but the investment of time wasn't worth it yet. If I got some investment money that will change.

The biggest issue with using a smart phone is which one? Andriod? iPhone? WP7? There is no one dev enviroment that works for all of them. Then how easy is to use serial bluetooth protocols (sometimes it just not exposed for app developers). Only Android supports USB to an Arduino so even a direct connect to a phone has limits (I don't own an Android phone either, or the custom Andruino to make this work).

Too bad there isn't a cheap "audio plug communications" kit out there. (see credit card readers for iPhone as an example).

Bluetooth and WiFi will require more hardware on the Arduino raising the cost.

No easy answers.






chesterjohn2 years ago
I would like to buy one set with the software from you.
hi can you provide me detail for some discussion

email: subrotradeindia@gmail.com
bigpinecone2 years ago
now you should connect servos to the idle adjust screws and package it all in a waterproof box, never sync your carbs again! that would be sweet. Great write-up!
Makuna (author)  bigpinecone2 years ago
Great minds think alike.

I looked into this and concluded it wasn't a good idea to mount it permanently. It is a pretty tight space under the gas tank where this is at and it gets pretty hot. There is a form fitting heat shield just above this area to protect the fuel tank and reflect heat. The servos would need to be real tiny and heat resistant. But the real issue is that the adjustments just don't get out of calibration very quickly to need it.

But I was thinking that if I could temporarily mount the servos, I could just hit a button and the computer would adjust everything for me. But it is very hard to even get the servos in place due to all the tubes for the inner cylinder adjustments.
yeah. my '78 xs400 has a lot more space around the carbs and their adjustments so it's a much more real possibility than on newer bikes. but you are right, they don't need to be adjusted much and it would be pretty pointless... but cool!
DouglasG12 years ago
What things did you put into the WPF application? Also could I use a regular widow form application instead?
Makuna (author)  DouglasG12 years ago
You could accomplish the same thing with Windows Forms application.

It is basically some serial communications protocol on top of the .NET serial interfaces; some pretty standard WPF UI, and a little averaging of the values for the red line in the graph.