MKS 901p

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.
Pablo Llaguno
Posts: 74
Joined: Sun Feb 05, 2017 11:00 pm
Real name: Pablo Llaguno

MKS 901p

Post by Pablo Llaguno » Sun Jul 23, 2017 3:12 am

Hey guys,

So I bought a high vacuum gauge (finally) and I have been working on getting it to work. I bought it from eBay http://www.ebay.com/itm/MKS-901P-11040- ... SwTA9X7FWb and I think the transducer they sold me does work, but I've had bad luck lately with getting correct readings, so I want to ask for help in case I got a malfunctioning gauge and have to return it.

Here is the setup

Image

As you can see I am not using the d-sub 15 connector I should be using, I stripped an old female VGA I had, only to find that pin 4 does not have a cable. Why does pin 4 matter, well here is the 4 pins I need from the gauge and what they do.

Pin 3: Power + (9-30 VDC)
Pin 4: Power return -
Pin 5: Analog Output +
Pin 6: Analog Output -

So I already have that problem, any idea on how could I get pin 4 in the VGA cable to work? As you can see at the moment I am using jumper wires, which isn't that much of a problem.

My main problem is with the readings, so a little info on the output setup.

I bought an Arduino UNO in hope to use it as an A/D converter so I can have the data displayed in a LCD, at the moment I just have it connected to my computer and use the serial monitor which works fine. As you know the A/D converter only works from 0 to 5 volts, and my gauge output anywhere from 0 to 9volts, so I am using a voltage divider that consists of a 3.9 and a 4.7 kilohm resistor, this way my voltage is scaled down to approximately 0 to 4.91 volts. I have it connected so the positive output goes to the 3.9 resistor and the negative to the 4.7, also in the breadboard I connected a ground to the Arduino from the 4.7 resistor rail. So anyway, here is the Arduino software code:

Code: Select all

/*
 MKS901p Vacuum Transducer 0-9VDC, 1VDC per Decade. Using a voltage divider of 4.7kΩ and 3.9kΩ to get the analog signal down to 0-5VDC.
*/

//the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage = sensorValue * (5.0 / 1023);
  //Convert to scale of 0-9 volts
  float realvoltage = ((voltage / 0.53472184347873) - 6);
  //Convert the voltage signal to presure
  float pressure = pow(10, realvoltage); 
  //We print accordingly to the range of the pressure
  //First we define Torr above 0.99
  if (pressure > 0.99) {
    Serial.print(pressure, 2);
    Serial.println(" Torr"); }
  //In the latter we print only milliTorr (also known as microns)
  else if (pressure > 0.00099) {
    Serial.print(pressure * (pow(10, 3)), 2);
    Serial.println(" milliTorr");
    }
  //For smaller than microns we preffer to use exponents in Torr (e.g 1.2EE-6 Torr)
  else if (pressure > 0.000099) {
    Serial.print(pressure * (pow(10, 4)), 2);
    Serial.println("e-04 Torr");
  }
  else if (pressure > 0.0000099) {
    Serial.print(pressure * (pow(10, 5)), 2);
    Serial.println("e-05 Torr");
  }
  else {
    Serial.print(pressure * (pow(10, 6)), 2);
    Serial.println("e-06 Torr");
  }
}
As you can see it works very similar to the AnalogVoltageRead example, it starts out by reading the voltage then converting it to the real voltage it was before the divider, this was done using the formula Vout = Vin (Bottom Resistance / Total Resistance). Then I subtract 6 volts from the real voltage because my formula for pressure is: P = 10^(Vout - 6), after that I proceed to calculate the pressure and then it is just some if/else commands so it either prints "Torr" "milliTorr" or "-e0X Torr".

So I said I used formulas to convert the "divided voltage" to the real voltage, and while I did, I also used some trial and error until I got the Serial Monitor to display around 760 Torr. What worries me is how accurate will this be? If it is missing by a few Torr, then it will not serve its purpose, which is being a precision high vacuum gauge.

Any tips or critics would be appreciated.

Thanks!

PS. What is your favorite photo uploader, I am using photo bucket and it is slow and laggy, so I want to change.

John Futter
Posts: 1435
Joined: Thu Apr 22, 2004 2:29 am
Real name: John Futter
Contact:

Re: MKS 901p

Post by John Futter » Sun Jul 23, 2017 3:29 am

No photo
use Irfanview to "resize/resample to 1024 by 768.
then upload the file directly to this site.

I have no idea why people use photobucket
and when it dissappears it leaves a post like yours dead in the water - a pointless post with no photo to view

Andrew Seltzman
Posts: 716
Joined: Mon Feb 02, 2004 1:02 am
Real name: Andrew Seltzman
Contact:

Re: MKS 901p

Post by Andrew Seltzman » Sun Jul 23, 2017 3:57 am

If you have matlab, here is code to interface directly with the mks901p over rs232. I set my gauges to run at 115200 baud, so you would need to reset that number to the 9600 baud default in the code or change it on the gauge. Note that this matlab code should work with most MSG gauges that use RS232 (only verified with the 901p and the quattro999).

Also try interfacing with the gauge over serial through teraterm.
Attachments
IEC_vacuum_rs232.zip
(1.38 KiB) Downloaded 233 times
Andrew Seltzman
www.rtftechnologies.org

User avatar
Richard Hull
Moderator
Posts: 11408
Joined: Fri Jun 15, 2001 1:44 pm
Real name: Richard Hull

Re: MKS 901p

Post by Richard Hull » Sun Jul 23, 2017 4:19 am

I use the Arduino in all my digital display GM counters that I make and sell. I scale my 10 bit results to display the 9 volt battery voltage displayed permenantly in one corner of the display so the user knows when he is getting low on voltage and to be prepared to put in a new battery.

We assume that your gauge is totally linear so you do not need an Arduino lookup table for non-linear interpolation and can go directly to pressure data. What is the low end of this gauge? (manufacturers spec sheet). I assume it will go into the low micron range, at least! If it does and is linear in its pressure vs. voltage span, it would be virtually impossible to be in error by a torr. Most gauges rated to the low microns are in error at the bottom end by a few microns plus or minus.

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
Retired now...Doing only what I want and not what I should...every day is a saturday.

Pablo Llaguno
Posts: 74
Joined: Sun Feb 05, 2017 11:00 pm
Real name: Pablo Llaguno

Re: MKS 901p

Post by Pablo Llaguno » Sun Jul 23, 2017 7:34 am

Image

John, unfortunately I am stuck with MAC OS X, and Irfanview isn't available to download.

Andrew, I don't have matlab, nor any experience with it. Is it similar to the Arduino software or Python? Also I looked on eBay for RS232 connectors and they appear to be 9 pin, where can I get 15 pin? Or should I stick to my jumper wires, or even better, is there something I can do to get that VGA working? I am thinking of opening it up and wiring another cable that isn't in use to pin 4.

Richard yes my gauge is totally linear, the low end of this gauge as the manual -> https://www.mksinst.com/docs/R/901-MAN-RJ.pdf and the setup pdf say -> https://www.mksinst.com/docs/R/901PStan ... up-MAN.pdf it goes from 1 x 10^-5 Torr to 1500 Torr. It has both a piezo differential sensor and a micro Pirani sensor, so the error varies but it should be about 5% per the manual.

The main problem as I said, could be with my voltage divider, and the code, of course.

Thanks,
Pablo

User avatar
Finn Hammer
Posts: 84
Joined: Sat Mar 05, 2016 12:21 pm
Real name: Finn Hammer
Contact:

Re: MKS 901p

Post by Finn Hammer » Sun Jul 23, 2017 8:47 am

Pablo,

Since you need less than 8 wires to get your reading in analogue, you can use a cat-5 network patch cable as basis for the interface cable. Then you need to get the right plug, which is a female Dsub-15. If you are unable to order it from Mouser, Digikey et al. you can unsolder one from an old video card, although it may not fit into a housing very nicely.
I bought a similar transducer lately, so I am interested in your results, PM me if you need help sourcing the right plugs/housings etc.
Cheers, Finn Hammer

User avatar
Richard Hull
Moderator
Posts: 11408
Joined: Fri Jun 15, 2001 1:44 pm
Real name: Richard Hull

Re: MKS 901p

Post by Richard Hull » Sun Jul 23, 2017 6:54 pm

Your text in the top of your program claims 0-9 volts full range with 1 volt per decade. I assume you picked this up from the manual. with 1500 torr as its stated top end, 9 volts would be coming out near two ATM. with 9 to 8 volts covering 1500 torr to 150 torr. If all of this is the case, with the device placed on a table, using a simple volt meter, you must read about 8.4 volts. Forget the arduino in this instance. Power up the transducer, use a voltmeter to test for atmosphere and ~8.4 volts out. If this is not the case then you have announced you range data incorrectly or the transducer is defective.

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
Retired now...Doing only what I want and not what I should...every day is a saturday.

Rex Allers
Posts: 334
Joined: Sun Dec 30, 2012 8:39 am
Real name:
Location: San Jose CA

Re: MKS 901p

Post by Rex Allers » Mon Jul 24, 2017 3:28 am

These MKS 901P sensors seem great for a fusor, though the logarithmic output might give a bit less resolution in the 1 to 100 millitorr range that we care most about. Should be way better than an old sensor like a thermocouple gauge.

Someone (maybe Andrew) mentioned using them. I bought one on eBay around the beginning of June but haven't had time to try it at all, yet. Hope it works because by the time I try it, it will be too late to go back to the seller. I paid $45 and there seemed to be many listed, so others may want to look at eBay.

The manual is not difficult to find. I think you can get it from the MKS site, but they want me to register (I may have already done that) and login to get the manual. It is out there elsewhere without a login. Here's a link at Idealvac:
http://idealvac.com/files/manuals/901manual.pdf

The 901P has two internal sensors: a micro pirani that goes down to 1E-5 torr, and a piezo at the high end. Switchover is in the 50 - 100 torr area. Yes, the analog voltage output is 1V at 1E-5 torr, with max at 9V = 1000 torr. Richard is right about the output at atmosphere; table says 760 torr = 8.881 V. That formula of pressure = 10^(V-6) seems right.

Some models have RS232 serial and some have RS485; some have relays that can be configured.

Using the serial interface, one can set the device to emulate many different other models of vacuum sensors, so if the analog output looks strange, it may be necessary to talk to the serial port and see if it is configured for default output or some other curve.

There's lots of detailed stuff in the manual including serial commands. You can read pressure via serial as another option.

The connectors are easy to find. Digikey and mouser should have them but I bought 10 from eBay for about $6. Search for: 'D-SUB HD15 15-Pin'. The HD makes it the 3-rows of pins vs non-HD which can be D-sub 15-pin but 2 rows. A lot of the connectors mention the term VGA too.
Rex Allers

Jerry Biehler
Posts: 868
Joined: Tue Nov 24, 2009 8:08 am
Real name:
Location: Beaverton, OR

Re: MKS 901p

Post by Jerry Biehler » Mon Jul 24, 2017 3:47 am

Oh geeze, you soldered right to the pins. Make sure you clean off the solder with wick before you try to mate with a connector.

http://www.mouser.com/ProductDetail/Kyc ... %2f%2fs%3d

The output is not linear, it is log-lin like most analog output gauges. I have a arduino sketch that will read the pfeiffer full range output and display it to a lcd panel if you want it. You would just need to modify the math function in it to what is in the manual. It also display in scientific notation which is more annoying to display than one would think.

For mac you can use the preview app or the built in photos app to resize a photo. In preview just go to the Tools menu and Adjust Size...

Pablo Llaguno
Posts: 74
Joined: Sun Feb 05, 2017 11:00 pm
Real name: Pablo Llaguno

Re: MKS 901p

Post by Pablo Llaguno » Mon Jul 24, 2017 5:09 am

Thanks for the tip Finn, I actually managed to take the had of the connector, and think it will be possible to solder cables to the D-Sub 15 pin head, so in theory I am making my own cable, but it should work just fine. Also Jerry, I didn't solder anything, I just used jumper wires, which conveniently fit just right in the connector. Richard, I have read most of the manual (except the interface part, because I won't be doing any) and it does say the formula to convert voltage to pressure is that: 1VDC per decade, or P = 10^ (Vout - 6), so atmosphere should be 8.881 Volts, it is actually mentioned in the manual. And thanks for the tip, I will try to get a nice volt meter (my multimeter doesn't have the accuracy for this).

Rex thanks for the heads up on the manual, I already read the electrical installation and of course the analog output part. I also got it for $45, which is a great price, though the adapter to fit it to my vacuum chamber where another $45, but I will a good vacuum gauge for less than $100 is well worth it, plus I am learning a lot.

Hey Jerry, thanks for the offer, I think it would be nice to read that arduino sketch of your vacuum pressure, PM me or post it here, thanks!

Also guys, I think my main "inaccuracy problem" lays in the voltage divider I use so the arduino can read the analog voltage, in my code I have the arduino read the voltage and then "convert it" to the actual voltage of the output pins. The code is

Code: Select all

  float realvoltage = ((voltage / 0.53472184347873) - 6);
and I just solved for Vin in the formula that is used for voltage dividers: Vout = Vin (Rb/ Rb + Rt). The main problem is that my resistors are claimed to be 3.9 kilohm and 4.7 kilohm, though they have the gold ring so it means they have a 5% error, ideally my code should say

Code: Select all

voltage / 0.54651163
but that is if my resistors are exactly 3.9 and 4.7, I tried the arduino with those values and the pressure it displayed was about 480 Torr, at atmospheric pressure; so I solved for the (Rb / Rb + Rt) part and got 0.53472184347873 as my value, and now my gauge does read 760 Torr. My best bet, as Richard said, is to get a voltmeter and measure my real voltage from both the transducer and the voltage divider. If I get that right, the whole thing will be right. On a side note, does anyone think it is a good idea to use that voltage divider? If not, what should I do?

Also I have another problem, and that is that the pressure that is displayed, isn't exactly consistent, it is always either display 750 or 760 Torr, with 760 being more common. Can this be a problem with the 9600 bits per second?

Post Reply