Digital vacuum meter used to synchronize up to 4 carburators/throttle bodies

Similar projects worth following
Trying to build a relative cheap digital instrument able to measure vacuum allowing to synchronize up to 4 throttle bodies (carburators).

At the heart there's a TTGO T-DISPLAY microcontroller flashed with the attached program.
A custom made PCB, an ADS1115 analog to digital converter (4 channels) and 4 vacuum sensors with a range of -100 - 0 kPa powered at 3.3V are all the components needed.

I wanted to build something useful and have the chance to improve my IT/HW/mech abilities.

The results are quite satisfying and could be improved playing with the SW.

Started coding in Python because has immediate feedback (no compilation needed), and once I solved some problems, I rewritten everything in C++ in order to speed up the program and to simplify the implementation for other people.

Important note: the sensors HAVE TO BE -100 kPA to 0 kPA at 3.3V, look in component sections for a link.


3D printed case STL

Standard Tesselated Geometry - 173.52 kB - 04/20/2023 at 11:43



Arduino C++ version

ino - 4.53 kB - 04/17/2023 at 14:24


Gerber archive for the PCB

Zip Archive - 59.80 kB - 03/06/2023 at 17:30



The vacuum meter at work

MPEG-4 Video - 3.88 MB - 03/04/2023 at 12:13


  • C++ vs Python

    Mikiquo04/05/2023 at 15:40 0 comments

    Rewritten the SW with Arduino C++

  • Stable readings

    Mikiquo03/04/2023 at 12:11 2 comments

    I almost solved the problem with "jumpy" values.
    A SW low pass filter is applied on the min readings of 100 samples (which should catch 2 full cycles i.e. 2 intakes).

    Now the values shown are a lot more stable and the throttle bodies can be synchronized by slowly turning the dedicated screws.

  • Looking at the sensors

    Mikiquo02/27/2023 at 19:34 0 comments

    The last picture represents the "analog" output of one sensor attached to a throttle body.

    I say "analog" because it's fairly clear the discrete output

  • First test

    Mikiquo02/26/2023 at 17:36 1 comment

    I finally managed to "open" my motorbike and test the device.

    I could only connect 2 out of 3 throttle bodies, because the 3rd is in a bad position.

    The main problem is that the values read are unstable, they change continuosly.

    I thought that reading a value in a random moment, could measure anywhere during the four-stroke cycle.

    In order to try to solve this, I read 250 vacuum values per sensor (which takes around 300ms each) and take the lowest vacuum value in order to catch the intake cycle.

    It's better this way, but still to jumpy to make a precise measure.

    At the moment I don't have any better idea in order to stabilize the readings.

View all 4 project logs

  • 1
    Mounting the components on the PCB

    Be aware that the TTGO and the ADC are mounted on sockets, therefore the 3D printed case is high enough to accomodate them.

    In the first picture, the sensors are also mounted on sockets, but not on the final design because they would be too tall (and could also jump out from the sockets)

  • 2
    Hardware customisation

    In order to compile and flash the software, a couple of things have to be done:

    In Arduino IDE

    • add the following URL to the supported hardware:
    • install the following libraries: TFT_eSPI ADS1115-Driver
    • in the library file ./libraries/TFT_eSPI/User_Setup_Select.h uncomment this only line #include <User_Setups/Setup25_TTGO_T_Display.h> 
    • in the library file ./libraries/TFT_eSPI/User_Setup.h uncomment this only line #define ST7789_DRIVER
    • choose the right hardware microcontroller (I used TTGO LoRa32-OLED V1 but I think a generic ESP32 would work)

    Compile and flash!, you're done!

  • 3
    Take measures

    Before turning the engine on, you have to connect the tubes to the throttle bodies and power the device.

    This way the device can calibrate to the atmosferic pression.

    There's some delay on the value displayed because of the low pass filter applied on the measures.

View all 3 instructions

Enjoy this project?



josh.hulbert wrote 02/26/2023 at 20:34 point

This is neat, but I can see where you'd have issues. All of the carb sync tools I've used have a sort of heavy damping factor built in; early on I used one with mercury tubes, later colored oil. I've never used the newer Motion Pro one with dial gauges but they probably flutter a bit unless they're damped internally. Run a strong low-pass filter on the results and try again. I believe this can be done though!

  Are you sure? yes | no

Mikiquo wrote 02/27/2023 at 14:27 point

Many thanks for your suggestion. I'll try to implement a filter either in SW or pneumatic.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates