Making a high precision vacuum meter

Every fusor and fusion system seems to need a vacuum. This area is for detailed discussion of vacuum systems, materials, gauging, etc. related to fusor or fusion research.
Post Reply
User avatar
Cassio_Alvarenga
Posts: 38
Joined: Mon Jan 29, 2024 9:38 am
Real name: Cassio V Alvarenga
Location: Brazil
Contact:

Making a high precision vacuum meter

Post by Cassio_Alvarenga »

After more than 10 years of using my good old Testo 552 vacuum meter it simply stopped working a few weeks ago, I have two more of the new version (with bluetooth) but they don't have the resolution and range as good as the model old, without it is not possible to calibrate them as it was done in the old one, each one shows a measurement and it is not known which one is right, or if both are wrong (which is more likely) it seems to me that they added bluetooth in the new version , but they downgraded the sensor part, which is what really matters in a vacuum meter. Even these new Testos 552 fulfill the role for which they were designed (HVAC), but for my applications the old one was wonderful, it fit like a glove.

In addition to the "good meter" being damaged and me no longer finding this specific model for sale, causing several gas laser repair jobs to pile up, I contracted the Zika virus disease (another advantage of living in a tropical paradise). I had a fever for a few days, spots on my body, a hellish itch and pain in my joints that I still feel today, I completed the sticker album on diseases transmitted by the Aedes mosquito, I already had Chikungunya and the four variants of Dengue, so I am immune to these misfortunes. My mother said that "an empty head is the devil's workshop" but that's not always true, time in bed gave me some ideas and I decided to make a "multi-purpose" liquid column vacuum gauge, which can measure both relative and absolute pressure. , does not require calibration, has excellent precision and accuracy and will serve as a reference for calibrating other equipment, in addition to being able to be used as a gas velocity meter when both columns are coupled to a venturi tube.

For those who don't know how this pressure gauge works, search the internet for "Torricelli experiment".

The disadvantage of these liquid column manometers is that you must calculate the difference in height of the columns or move the ruler every time you read the pressure. To avoid this task, I thought of using some type of feedback that would generate an electrical signal that would be read, processor and the pressure is shown on a display as is done in these digital manometers, like Testo.
First I thought of something with pistons and tensioned nylon threads, but the friction would affect the precision of the equipment, not to mention the headache it would be to make something like that vacuum-tight. Then I thought about using a fluid iron and having magnetic feedback with hall effect sensors, but in the end the best solution I found was to use electric field feedback, which does not influence the behavior of the column.
Colunas.png
The operation is simple, the Access Head is connected to the system that wants to measure the pressure, the pressure pushes the liquid that rises through the Main Tube, where there are two parallel electrodes forming a capacitor, as the liquid rises the value of the capacitance changes , this change is read, processed and displayed electronically in pressure values. The objective is to measure up to 100Torr

Mercury is the most used in column manometers, as its density is high enough to allow a wide measuring range with a relatively short tube, 1m is already more than enough to measure atmospheric pressure, if water were used, a tube would be needed. more than 10m, but because it conducts electricity I cannot use mercury, water cannot be used either, even if it is distilled and does not conduct electricity it evaporates at working pressures, I thought about using silicone oil, the same used in pumps of vacuum diffusers, it is a good insulator, it is not very viscous and after degassing it initially does not evaporate at room temperature, however it would change the capacitance value very little, as it has a very low dielectric constant value. I thought about Glycerol, which has a dielectric constant (relative permittivity) high enough for the function, does not evaporate in a vacuum at room temperature and is a good insulator.

I tested the degradation of glycerol heated in a vacuum over time and it proved to be quite stable, perfect for the project.
IMG155601_5.jpg
IMG_161935_3.jpg
During outgassing


IMG_184426_4.jpg
After outgassing


IMG_113044_2.jpg
The density of glycerol is 314.24g/250cm³ = 1.257g/cm³

As the objective is to measure up to 100Torr, we have to calculate the necessary length of the column (h), with Torr = mmHg and the mercury density Hg=13.579g/cm³ we have 100*13.579=h*1.257

h=1080mm it is necessary for the tube to be a little larger for safety, as I had a 1350mm tube here I used it, the reservoir tube is shorter, but the internal diameter is larger and can accommodate the volume of the main tube without problems.
User avatar
Cassio_Alvarenga
Posts: 38
Joined: Mon Jan 29, 2024 9:38 am
Real name: Cassio V Alvarenga
Location: Brazil
Contact:

Re: Making a high precision vacuum meter

Post by Cassio_Alvarenga »

MECHANIC
I tried to make it with material that I already have available here, I took from a pile of scrap a tube support that I used in a co2 laser prototype that worked perfectly to fit the manometer tubes and a 1/4" steel plate that already has the holes that I will use for put on some wheels.
chassi.jpg


The end pieces of the tubes were machined from copper
Lathe1.jpg
Lathe2.jpg
Access.jpg



The Electrodes Head:
EH1.jpg
EH2.jpg
EH3.jpg
EH4.jpg
Drawing.jpg
EH5_Glassing.jpg
Filling the head and electrode gaps with ceramic enamel


Fournance.jpg
Preparing for enamel firing


Fournance2.jpg
After firing the ceramic

To remove the oxidation left by the process of burning the electrode enamel, I used a 10% solution of orthophosphoric acid diluted in distilled water, the part to be cleaned is connected to the anode and the cathode is made of stainless steel, the current used was 10A .
Cleaning1.jpg
Cleaning2.jpg
Chemical cleaning.gif
Chemical cleaning.gif (5.14 MiB) Viewed 672 times
Disposal.jpg
Cleaned.jpg
CleaningResult.jpg
Copper oxide is dissolved in the solution, forming copper phosphate and turning the solution blue.
3CuO + 2H3PO4 → Cu3(PO4)2 + 3H2O
This copper phosphate is very good for plating metals, depositing a layer of copper:
https://photos.app.goo.gl/vWVvK6QM8bRdQ9gSA
The threaded ends of the electrodes were plated in this method to prevent corrosion
eletrodos.jpg

Electrode Head.jpg
Electrode Head after cleaning
Last edited by Cassio_Alvarenga on Fri Mar 29, 2024 3:48 pm, edited 1 time in total.
User avatar
Cassio_Alvarenga
Posts: 38
Joined: Mon Jan 29, 2024 9:38 am
Real name: Cassio V Alvarenga
Location: Brazil
Contact:

Re: Making a high precision vacuum meter

Post by Cassio_Alvarenga »

Heads.jpg
The heads finished, before nickel plating.

U1.jpg

"U" connection brazing

Nickel.jpg
Nickel plating

In addition to the glass tube supports that I already had ready, thrown among the scrap metal, I made two supports to hold the heads, printed in 3D.
3d_print.jpg
Image



Coluna.jpg
Mechanical part finished.
User avatar
Richard Hull
Moderator
Posts: 15034
Joined: Fri Jun 15, 2001 9:44 am
Real name: Richard Hull

Re: Making a high precision vacuum meter

Post by Richard Hull »

Very nice and very involved build with plenty of images. This is a most interesting project. I hope it works out well for you in a manner you wish.

Richard Hull
Progress may have been a good thing once, but it just went on too long. - Yogi Berra
Fusion is the energy of the future....and it always will be
The more complex the idea put forward by the poor amateur, the more likely it will never see embodiment
Alexander Ziemecki
Posts: 74
Joined: Mon Aug 21, 2023 6:25 pm
Real name: Alexander Ziemecki

Re: Making a high precision vacuum meter

Post by Alexander Ziemecki »

thanks for posting, looking forward to seeing how you finish this. I'm interested in replicating it. Good Luck
User avatar
Cassio_Alvarenga
Posts: 38
Joined: Mon Jan 29, 2024 9:38 am
Real name: Cassio V Alvarenga
Location: Brazil
Contact:

Re: Making a high precision vacuum meter

Post by Cassio_Alvarenga »

Thank you Richard and Alexander.
Alexander, I feel honored to have this project replicated, I am attaching the CAD drawings, if you have any questions feel free to ask me.
Attachments
Manometro_Glicerol.zip
(2.11 MiB) Downloaded 12 times
User avatar
Cassio_Alvarenga
Posts: 38
Joined: Mon Jan 29, 2024 9:38 am
Real name: Cassio V Alvarenga
Location: Brazil
Contact:

Re: Making a high precision vacuum meter

Post by Cassio_Alvarenga »

Outgassing.gif
Outgassing.gif (10.06 MiB) Viewed 554 times
During outgassing

Eletronics:

Image

The display was built with six digits of 7 segments model LD5101AS with common cathode (the negative pole of the LEDs are connected together internally) they are controlled by a PCF8574AP port expander IC (attached datasheet), the LEDs are powered with 5v by a 2200ohm resistor to limit the current, the IC anchors the current between the led and the resistor, diverting it and making the led go out.
Display.gif
Display.gif (9.46 MiB) Viewed 554 times
Everything is controlled by an Arduino Pro Mini through the I2C communication protocol, which uses just two wires to control all the pressure gauge devices, one is the SCL (Clock) and the other is the SDA (Data).
schematic.png
For each device to receive your information they must contain an address and it works as if it were the post office delivering letters to your home at micro-seconds speed, each device must have its address, to configure this address the IC contains 3 pins that they must be connected according to the table below (it is important to note that this ci has several suffixes, the table below is only for the AP suffix):
PCF_addr.png
The Arduino Pro Mini has analogue reading ports, but they only have 10-bits of resolution, that is, 2^10=1024 values, for a 0-5v signal we obtain 5/1024=0.004883V of resolution, that is, the circuit only "sees" changes in the voltage of 4,883mV, if the signal varies less than that, the circuit will not show this change.
To increase the resolution, a 16-bit ADC module (Analog to Digital converter) model ADS1115 (attached datasheet) was used, this gives 2^16=65536.00 values, for a 0-5v signal we would get an incredible 5/65536.00=0.0000763V of resolution, capable of perceiving changes of just 0.0763mV.
The ADS1115 is also controlled by the I2C protocol using the same wires as the display. To configure its address, the ADDR pin must be connected to another reference pin, as can be seen in the datasheet.



The parallel electrodes inside the column were made using an M6 threaded bar (1/4" also works) made of stainless steel, and are connected to the "U9" terminal on the schematic, which in turn is connected to an IC555, this IC provides signals pulses that are generated by the charging and discharging time of a capacitor through certain resistances (I won't go into details so the post doesn't get too long, but it's an old IC, from the 70s and just search on Google and it's easily found lots of reference material).
In short, the reference capacitor used by the 555 is precisely the capacitor formed by the threaded bars. When the liquid level in the column is low, the capacitance is small, so less charge is stored and the charge and discharge time is shorter, generating a signal higher frequency, when the level is high the opposite happens, generating a lower frequency signal.
The signal can be seen in this video: https://photos.app.goo.gl/qHvbzm7eUGbn4yrcA

Capacitance.jpg
Capacitance between electrodes with the column completely filled.




The pulsed signal is converted into linear analog DC voltage by the circuit connected to the 555 output (pin 3) the operation is simple:
When the signal is high, capacitor C8 is charged through diode D2, when the signal is low, the capacitor cannot be discharged towards ground because diode D2 blocks the current in that direction, therefore it is discharged in capacitors C9 and C14 through the diode D3, which prevents the charge from returning to C8. Potentiometer PR2 serves as a "drain" of this load and is calibrated so that the ADS1115 receives exactly 5V when the frequency generated by the 555 is maximum. The ADS1115 reads the continuous voltage value on the line that is connected to its A1 pin, the zener diode D6 serves as protection to divert the current if the signal exceeds 5V, avoiding damage to the chip.

NOTE: Disregard the circuit connected to A2 and A3 in the electrical diagram, as well as the SW1 and SW2 buttons, they are not used to read pressure and are there to be used in other applications in the future.
Attachments
pcf8574a.pdf
(2.73 MiB) Downloaded 33 times
ads1115.pdf
(1.13 MiB) Downloaded 16 times
Last edited by Cassio_Alvarenga on Sat Mar 30, 2024 2:38 pm, edited 1 time in total.
User avatar
Cassio_Alvarenga
Posts: 38
Joined: Mon Jan 29, 2024 9:38 am
Real name: Cassio V Alvarenga
Location: Brazil
Contact:

Re: Making a high precision vacuum meter

Post by Cassio_Alvarenga »

Software
To write the software, the first thing to know is the relationships of the variables, you can calculate everything theoretically without collecting any experimental data, from the capacitance to the geometry of the tube and the electrical characteristics of the glycerol, through the calculation of the 555 frequency and the levels analogues after conversion, etc.. etc.. In the end you will have a result that is at least approximate, because in the real world a 100ohm resistance does not have exactly 100ohms, it has some variation in its decimal places, varies with heat, etc.. The threaded bar used in the electrodes is not perfectly parallel, the glycerol has some impurities, no matter how small, even two identical ICs can behave slightly differently. It seems silly, but in the end these small variations add up and the result can be very different from what you were theoretically expecting, as a German saying goes "The devil hides in the little things". Therefore, software is used only to collect reference data and then use it in the control software.

To understand the code it is necessary to know some considerations, the first is that the ADS1115 has a PGA (Programable Gain Amplifier) inside the IC, with this amplification it is possible to reduce the scale and read variations of up to 3.9uV, this amplification will not be used in this project.
Even without using the PGA, the ADS1115 is still VERY SENSITIVE and some readings may suffer external interference, especially if it is used close to a fuser that is powered by high voltages, when the fuser is turned on, for example, or when a relay or contactor is closed and opened electromagnetic pulses propagate through the electrical network and through the air, the electrode that is in the glycerin column acts as an antenna for these pulses and the reading can suffer interference, to overcome this problem the controller calculates the value measuring 100 readings with an interval of 10 milliseconds between them before showing on the display, if one or two of these readings suffer interference it will not influence much on the average value of the 100 readings.


The code below simply sends the average value of the readings to the PC.

Code: Select all

#include <Wire.h>
#include <Adafruit_ADS1X15.h>
Adafruit_ADS1115 ads;



byte i;
float press;


void setup() 
{
  Serial.begin(9600); //Start serial communication with the PC
Wire.begin();            //Start the I2C comunication

ads.setGain(GAIN_ONE); //Set the gain of PGA 1x

 if (!ads.begin()) 
{
    Serial.println("Failed to initialize ADS.");
    while (1);
  }

}

void loop() 
{
  press=0.000; 
 
 for (i=0 ; i<=100 ; i++)
 {
 press=press+ads.readADC_SingleEnded(1);
 delay(10);
 }                         
 press=press/100; //Sun 100 readings and calculate the average

 
 Serial.print("AIN1: ");   Serial.println(press);
}

This value is a simple digital number that the ADS1115 sends to the Arduino, it must be converted to pressure units that we are used to. To do this, it is necessary to collect the data and set up an equation, simply apply a vacuum until both columns are at the same level, then slowly open the valve so that a little air enters the reservoir column, closing it immediately, measuring the distance from the column levels and write down this distance and its respective digital value, do this a few times and create a table with the values.
Plot.png
After collecting some data, I plotted the column level graph in relation to the digital readings in Exel (already converting the values from the glycerol column to the mercury column - Torr - which is a unit of measurement that we are more familiar with) using the trend Exel provides the equation that governs the system (if you obtained an equation through theory, compare the two equations and you will see the influence of the small variables added together in the real world). The "R²" factor shows how "accurate" the equation obtained is, with 1 being the perfect value, but any value above 0.99 is excellent, if you obtained low R² values it is necessary to check for any large error in data collection, such as the distance between the column levels not being measured correctly.

This equation will be used in the control software to convert the digital values provided by the ADS1115 into Torr and show them on the display.

Code: Select all

#include <Wire.h>
#include <Adafruit_ADS1X15.h>
Adafruit_ADS1115 ads;



byte i,j; 
float press;
float flag;

void setup() 
{
Wire.begin(); //Start the I2C comunication
ads.setGain(GAIN_ONE); //Set the gain of PGA 1x
}

void loop() 
{
  press=0.000; // Indicates to the system that the "press" variable has 3 decimal places
 
 for (i=0 ; i<=10 ; i++)
 {
 press=press+ads.readADC_SingleEnded(1);
 delay(10);
 }
 press=press/10; //Sun 100 readings and calculate the average

 press=((2.7707*pow(10,-7))*(press*press))-(0.0203*press)+369.3433; //Converts digital reading value into Torr

// The code below is responsible for controlling the display

 flag=100.000; //Variable "flag" used to indicate in which position of the display it is being shown (hundred, ten, unit, tenth, hundredth and thousandth) starting with the hundred (flag=100)
for (i=56 ; i<=61 ; i++) // It goes through the addresses of the digits on the display.
 {
  if (press < flag)
  {
   Wire.beginTransmission(i);
   Wire.write(B01111110);
   Wire.endTransmission();
  } //If the "press" value is less than the "flag" it prints "zero" in that position on the display
  else //If "press" is greater than "flag" it indicates that a digit must be printed in that position on the display
  {
    for (j=9 ; j>=1 ; j--) // regresses from "9" to "1" looking for the value of that position leaving the function when it is found
    if(press >= j*flag) 
    break;        
    Wire.beginTransmission(i); // start transmission to address "i"
    
    if (j==1) 
    Wire.write(B00010010);
    else if(j==2)    
    Wire.write(B10111100);
    else if(j==3)
    Wire.write(B10110110);
   else if(j==4)
    Wire.write(B11010010);
   else if(j==5)
    Wire.write(B11100110);
   else if(j==6)
    Wire.write(B11101110);
   else if(j==7)
    Wire.write(B00110010);
   else if(j==8)
    Wire.write(B11111110);
   else if(j==9)
    Wire.write(B11110110);
                           // print the value on the display

    Wire.endTransmission(); // end transmission
    press=press-(flag*j);  // removes the value of this position that has already been printed from the "press" variable
   

  }
  flag=flag*0.100; // set "flag" with the next display position that will be printed
 }
}




User avatar
Richard Hull
Moderator
Posts: 15034
Joined: Fri Jun 15, 2001 9:44 am
Real name: Richard Hull

Re: Making a high precision vacuum meter

Post by Richard Hull »

Really good work and explanations on the electronics and especially the scaling.

When programming any controller, like the Arduino, as an instrument with useful readout, the programmer must have a total grasp of the units and any conversion factors, etc.. Scaling can be as simple as a linear equation being calculated and scaled appropriately to the readout device. However nature is rarely linear and one must create a lookup table of values through experiment for interpolation to the span of readout values.

Programming can be very straightforward for simple input-output processes, but when working in the analog mode, it can be maddening in debugging such intricacies as noted above. Most here are probably already familiar with this, but for the newbies breaking into programming a controller, be ready at the analog end to know the units and work the math needed in the programming.

Cassio has done a great job here in his quest. We look forward to his further report on this very involved form of vacuum gauge.

Richard Hull
Progress may have been a good thing once, but it just went on too long. - Yogi Berra
Fusion is the energy of the future....and it always will be
The more complex the idea put forward by the poor amateur, the more likely it will never see embodiment
User avatar
Cassio_Alvarenga
Posts: 38
Joined: Mon Jan 29, 2024 9:38 am
Real name: Cassio V Alvarenga
Location: Brazil
Contact:

Re: Making a high precision vacuum meter

Post by Cassio_Alvarenga »

What complicated the mathematics is the fact that the system is based on a variation in capacitance, the 555 generates a signal by charging and discharging a variable capacitor, and the capacitor charge equations are not linear.

It would make the mathematical part much easier if the system was based on a resistance variation, for example, I believe it would be possible to make a column with a resistive electrode and a conductive liquid, so it would be a linear variation.
I think that if you take a sliding potentiometer, disassemble it and use its resistive strip immersed in a column of mercury, it makes things much easier. (Remember that the potentiometer must be linear, the vast majority of these sliding potentiometers are used in soundboards and are logarithmic) Or a graphite bar that is used as a cutting electrode, or even a nickel-chromium wire can serve as resistive element for a system that generates linear signal.

But the system worked very well, the final result can be seen in this video: https://photos.app.goo.gl/YESuPd2S8BuShVsc7
User avatar
Joe Gayo
Posts: 405
Joined: Sun Jan 06, 2019 9:34 pm
Real name: Joe Gayo
Location: USA

Re: Making a high precision vacuum meter

Post by Joe Gayo »

Have you considered charging and discharging with a current source, then it would be linear.

-Joe
User avatar
Cassio_Alvarenga
Posts: 38
Joined: Mon Jan 29, 2024 9:38 am
Real name: Cassio V Alvarenga
Location: Brazil
Contact:

Re: Making a high precision vacuum meter

Post by Cassio_Alvarenga »

Joe, This possibility didn't cross my mind, it might work well, but there would have to be a current source to charge the capacitor and another to discharge it, so that the signal has the positive duty circle equal to the negative one, right? I'm not sure, but both charging and discharging should be governed by a current source so that everything is linear.

I believe it is faster and cheaper to focus on resistive electrodes than current sources, but that's just my opinion. I particularly have an easier time with the mechanical part than with current sources, which I don't have much knowledge of.
User avatar
Cassio_Alvarenga
Posts: 38
Joined: Mon Jan 29, 2024 9:38 am
Real name: Cassio V Alvarenga
Location: Brazil
Contact:

Re: Making a high precision vacuum meter

Post by Cassio_Alvarenga »

Final considerations:
Although this pressure gauge fulfills its role masterfully, there are some disadvantages that should be taken into consideration by anyone who is going to build one like it.
Firstly, it is easy to notice that it is a large device and takes up a certain amount of space.

Second, and probably the biggest disadvantage, is that glycerin is very viscous and you need to wait a certain amount of time for the column to settle into place, it's about 20 seconds at most, but if you need to read quick variations definitely this project it's not good for you (at least not using glycerin).
I recommend that you use a larger tube in the "U" connection at the base of the tubes, I used a 1/4" tube (internal diameter of about 4mm) with a wider tube this time reduces a lot.

And lastly, glycerin has a strong affinity with humidity, I didn't notice any problems of this nature during the tests, but it is good that the column is left in a vacuum from time to time so that the water evaporates, and whenever it is stored for For long periods without using it, leave it in a vacuum, otherwise if it is left open to the atmosphere for a long time, it will be necessary to redo the outgassing process to have confidence in the measurements.

I used these 7-segment displays because they are larger and I can read them from a certain distance, however it is much simpler, both electrically and software, if you use dysplais LCDs of the type I used in this controller: https://www.youtube.com/watch?v=NUfmwr80t7M
Post Reply

Return to “Vacuum Technology (& FAQs)”