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.
Rex Allers
Posts: 570
Joined: Sun Dec 30, 2012 3:39 am
Real name:
Location: San Jose CA

Re: MKS 901p

Post by Rex Allers »

Pablo,

I was typing a message and just as I was ready to send I noticed you just replied with new status -- so here two parts.

--- My original message; may still something helpful here --
Does your 901P show a solid green light when you have it powered? If not It could have problems. Check the manual if you have different LED indications.

Looking at the alternative configurations (set to emulate a different sensor) some could have an output around 9.6 V at atmospheric pressure.

I think you should figure out how to talk to it with the serial port. In addition to reading the output in a text response you can request the status of the 901P and see if it is in some strange mode or has some kind of problem.

I think you said you had a Mac. I just looked on Sourceforge.net. You can search there just for Mac software. Here's a link that should take you there, set-up for Mac:
https://sourceforge.net/directory/os%3Amac/

On that page put 'Serial terminal' in the search term. That gave a number of results. Maybe one will work for you on the Mac. I don't have any experience to suggest one, but I'm thinking I may try one or two of the PC programs to see how they compare. I have used RealTerm on a PC but I don't think they have a Mac version. That one isn't the easiest to figure out either.

--- In response to your latest ---
If you can talk to it via serial now, check and make sure it is configured in normal mode, not some emulation.

To avoid as many plumbing issues as possible, connect the sensor to only the pump first with the most direct connection you can make. You first want to check only your pump and sensor, so exclude everything else for now.
Rex Allers
Bruce Meagher
Posts: 148
Joined: Thu May 12, 2011 11:25 pm
Real name: Bruce Meagher
Location: San Diego

Re: MKS 901p

Post by Bruce Meagher »

Pablo,

Good to see you were able to get your gauge working over the serial link. I just purchased one from eBay, and thought I’d share my results for comparison.

At atmosphere (in San Diego today) the analog out on the 901P measures 8.87V. Over the serial link the Pirani is reads 900 Torr, the Piezo reads 14.5 Torr (relative to ATM), and the combined reading (PR3) is 739 Torr.

The gauge was set to the default address (253), default baud rate (9600), and default emulation (AO1 = 30 - combine pressure value, MKS standard). Below are the command/response values from my gauge for comparison (I used the broadcast address in case the previous user had changed it from the default value).

@254PR1?;FF@253ACK9.00E+2;FF
@254PR2?;FF@253ACK1.45E+1;FF
@254PR3?;FF@253ACK7.39E+2;FF
@254PR4?;FF@253ACK7.385E+2;FF

@254BR?;FF@253ACK9600;FF
@254AD?;FF@253ACK253;FF
@254RSD?;FF@253ACKON;FF

@254MD?;FF@253ACK901P;FF
@254PN?;FF@253ACK901P-11040;FF
@254DT?;FF@253ACKLOADLOCK;FF
@254MF?;FF@253ACKMKS;FF
@254HV?;FF@253ACKB;FF
@254FV?;FF@253ACK1.33;FF
@254SN?;FF@253ACK1329664979;FF
@254SW?;FF@253ACKON;FF
@254TIM?;FF@253ACK5322;FF
@254TEM?;FF@253ACK2.20E+1;FF
@254UT?;FF@253ACKMKS;FF
@254T?;FF@253ACKO;FF
@254U?;FF@253ACKTORR;FF
@254GT?;FF@253ACKNITROGEN;FF
@254VAC?;FF@253ACK0.00E+0;FF
@254ATM?;FF@253ACK0.00E+0;FF
@254AO1?;FF@253ACK30;FF
@254AO2?;FF@253ACK215;FF

Seems like it'll be a nice little gauge. A small battery powered Arduino with display would make a nice combo.

Bruce
Attachments
IMG_8801.JPG
Last edited by Bruce Meagher on Wed May 20, 2020 6:58 pm, edited 1 time in total.
Pablo Llaguno
Posts: 104
Joined: Sun Feb 05, 2017 6:00 pm
Real name: Pablo Llaguno

Re: MKS 901p

Post by Pablo Llaguno »

Haven't measured analog with a repeatable volt meter, I think the one I used isn't working properly (because it measured 9.6volts). Today the serial (PR4) measured 711.9 Torr, but I live at about 500m altitude, that could be why. I will get that TTL serial adaptor and learn some code so I can communicate the transducer with the Arduino directly an have it displayed in a LCD. Also, I had some problems with the backlight pot of the LCD, because it interfered with the pressure when I tried to use the Arduino to read the transducer. I checked every connection and it doesn't make sense, how can the pot interfere with the analog output of the transducer.

I will upload some pics later in Images du Jour of the Star Mode I was able to get, the pressures I was receiving with the transducer seem to match the plasma I had, according to the Demo Furor Pictorial under the FAQs.

Rex my gauge is working fine, the led turns red for about 2 seconds then green and stays that way. I also sent @253T?;FF and received @253ACKO;FF which means both sensors are working properly.

Thanks for the tips on connecting the sensor directly to the pump, also I will look into vacuum conductance.

I am using the app serial at the moment to do communication, but it will expire soon, what kind of drivers will Zterm need?
John Myers
Posts: 68
Joined: Tue Mar 07, 2017 7:13 pm
Real name:
Location: SoCal

Re: MKS 901p

Post by John Myers »

How much current are you supplying to the LCD? strange things can happen when the current draw of the system is a little more then the power supply can handle. The LCD backlight can use up a good amount of current compared to the rest of the circuit.
Rex Allers
Posts: 570
Joined: Sun Dec 30, 2012 3:39 am
Real name:
Location: San Jose CA

Re: MKS 901p

Post by Rex Allers »

Pablo,

On serial terminal software. I mentioned earlier that you might try looking on SourceForge. While I was browsing there one of the programs I found was ScriptCommunicator. You might want to check it out. It looks amazingly powerful. The only tricky part might be learning to use it just as a simple terminal, it has so many features.

Here's a direct link:
https://sourceforge.net/projects/scriptcommunicator/

It has versions for Windows, Mac OS X, and Linux. Click on the files tab to see directories for downloading each version.

The description there:
------
ScriptCommunicator is a scriptable cross-platform data terminal which supports serial port (RS232, USB to serial), UDP, TCP client/server, SPI, I2C and CAN.

All sent and received data can be shown in a console and can be logged in an html, a text and a custom log.

In addition to the simple sending and receiving of data ScriptCommunicator has a QtScript (similar to JavaScript) interface.
------

It looks like it should be easy to make a list of strings to send so you can click from a list of commands you build.

Looks like it has a very powerful scripting capability and I think you can even build a GUI interface to use it from.

I haven't tried it yet but I downloaded it to use later.

There's a big PDF User Guide in the source zipfile. I think it may be in the installed versions too but I haven't installed the prog yet so I checked and found the PDF was available in the Source zip.
Rex Allers
Jerry Biehler
Posts: 975
Joined: Tue Nov 24, 2009 3:08 am
Real name:
Location: Beaverton, OR

Re: MKS 901p

Post by Jerry Biehler »

Zterm does not need drivers but your serial adapter might. But if it is already working with whatever you are using now that means the drivers are already installed. So just launch Zterm and select the right port and go.
Pablo Llaguno
Posts: 104
Joined: Sun Feb 05, 2017 6:00 pm
Real name: Pablo Llaguno

Re: MKS 901p

Post by Pablo Llaguno »

Bruce my gauge is set up exactly like yours, today I got a nicer volt meter and it reads 8.82 volts, while serial communication says I am at 705.5 Torr, which equals ~8.85 volts so I have a problem there, either my voltmeter is off by 0.03V, or maybe it could be my power supply but I don't think so since it supplies 12v and has a capacity of 3watts.
User avatar
Richard Hull
Moderator
Posts: 14992
Joined: Fri Jun 15, 2001 9:44 am
Real name: Richard Hull

Re: MKS 901p

Post by Richard Hull »

I would not fuss over 0.03 volts. It is truly a non-issue here. I would not immediately blame the voltmeter for such an error.

I have 3 "Weston standard cells" for those in the know, these are the ultimate voltage source to about .001 volt and last for many years...50++years. They must never-ever see a load of any significance and about 1 microamp is their design limit of current draw, thus, a 1 megohm load is approaching the limit.

The normal voltage of a weston standard cell is 1.019 volt +/- a few ten thousandths of a volt based on ambient temperature. All of my three cells on any given single meter read within a thousanths of a volt on the 2 volt range.

I wondered how accurate are the free give-away chi-com digital meters found at Harbor Freight. If you don't have a free coupon and are forced to pay the list price of $5.99, did you get your money's worth??

I took 10 of the meters from harbor freight that I have picked up for free and put them on their 2 volt range and then hooked them to a weston cell. (tests performed in June 2016 from my lab book)

1. 1.016
2. 1.018
3. 1.021
4. 1.023
5. 1.015
6. 1.016
7. 1.017
8. 1.020
9. 1.018
10 1.020

The average was 1.018 about the ideal 1.019 or 0.001 volt! However the extreme errors on the worst meters were .004 volts high to .004 volts low.

Thus, all of the junk Harbor Freight Chi-com meters are incapable of a .01 volt total gross error.

By the way, my $200.00 Beckman read 1.016 and my $150 Fluke read 1.020. Now, we see, only 2 of the chi-coms were as bad as the Beckman and 2 of the chi-coms were as good as the fluke. I will never pay more than $10.00 for another digital meter.

Thus, it is doubtful that any current digital meter can be off by more than 0.01 volt. more likely it is off by no more than 0.005 volts.

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

Re: MKS 901p

Post by Pablo Llaguno »

If I go by what the meter says, then the analog output says the sensor's pressure is 600Torr, why could it be off? Is it fine that it misses by 100Torr at atmosphere? I checked every setting of the sensor and it seems to be in the factory default version.
Bruce Meagher
Posts: 148
Joined: Thu May 12, 2011 11:25 pm
Real name: Bruce Meagher
Location: San Diego

Re: MKS 901p

Post by Bruce Meagher »

How exactly are you measuring the analog voltage? Maybe upload a picture of your current setup. The manual specifically states the analog measurement must be floating (see page 7 of the manual).

Bruce
Rex Allers
Posts: 570
Joined: Sun Dec 30, 2012 3:39 am
Real name:
Location: San Jose CA

Re: MKS 901p

Post by Rex Allers »

Pablo,

What you are concerned about makes no difference to the low pressure readings that will matter for using it with a fusor.

Have you spent any time reading the 901P manual? Page 4 describes "Sensor technology".

There are two sensor elements in the device. A Piezo sensor measures (by mechanical deflection) the pressure relative to atmospheric. This is the one that will measure at atmospheric pressure. Initially it assumes at power on that zero deflection (ambient vs ambient) is 760 Torr. In operation it recalibrates this when the pressure gets below about 1.2 T and the other sensor rings in. Yours probably has a stored calibration from its previous use.

The other sensor is a MicroPirani and measures by heat conduction in the gas. This measures all the way down close to 10E-5 Torr. Below about 10 Torr this is the only sensor that is used but it is not used at atmospheric pressure.

Here is a chart from the manual that shows the ranges where the two sensors operate and the analog output.
901P sensor ranges.png
So even if your unit is very inaccurate at atmospheric pressure (it isn't) this has noting to do with how it will work at millitorr levels.

On the analog voltage vs. the digital output via serial -- what command did you send it to ask for the reading? Seems only the PR3 version may give you the value that should be coming out.

Here's the start of the manual section about this (p 15).

----------------------------
Pressure Output
The 901P transducer can provide pressure measurement output as an analog voltage or RS232/RS485 digital value. The digital value is 3 digits scientific notation for PR1, PR2 and PR3 reading and 4 digits for PR4 reading.

Pressure request:
Query: @253PR1?;FF
Query reply: @253ACK1.23E-4;FF

Pressure outputs:
PR1: MicroPirani sensor reading
PR2: Piezo differential reading (measures relative to ambient pressure)
PR3: MicroPirani and Piezo absolute combined reading
PR4: MicroPirani and Piezo absolute combined reading (4 digits)

The analog output is per default based on the combined PR3 reading and provides a 16 bit voltage output of 1 VDC/decade standard configuration. Refer to Analog output page 23 for details.
----------------------------

As Richard said 0.03 volts shouldn't matter, but use the PR3 or PR4 command unless there is a good reason to want the specific sensor output. If you were not using the PR3 or PR4 command, try that and see if it changes anything.

If you still plan to use an Arduino to read this thing, I would get one of those cheap serial interface boards and just talk to the 901P via serial. Although a nice analog meter (with a moving needle) might be nice when turning knobs to run a fusor.
Rex Allers
Pablo Llaguno
Posts: 104
Joined: Sun Feb 05, 2017 6:00 pm
Real name: Pablo Llaguno

Re: MKS 901p

Post by Pablo Llaguno »

I am sorry if it seems I want my problems solved by you guys, I only want help and you've been very helpful and kind so far. I have read the manual several times now, it is a bit difficult for me because 1) English isn't my first language and 2) I am new to electronics so I have to google a lot of stuff I don't understand and sometimes I can get stuck for half an hour trying to understand some things.

Here is a picture of the analog setup (just voltmeter)

Image

The negative side of the analog output is not connected to the negative side of the power supply input or to any other ground, it is just connected to the negative pin of the multimeter.

I must have misread something when I first checked the device settings, because it is not default. I sent all the commands that Bruce sent to his gauge to my gauge here is what I did in order to have it in factory default:

@253PR3?;FF @253ACK7.05E+2;FF
@253PR4?;FF @253ACK7.054E+2;FF
@253GT?FF; @253ACKNITROGEN;FF
@253VAC?FF; @253ACK0.00E+0;FF
@253ATM?FF; @253ACK1.19E+2;FF So here the Micro Pirani Atmospheric adjustment was not default
@253FD!ATM;FF @253ACKFD;FF here it was reset to factory default
@253ATM?;FF @253ACK0.00E+0;FF now it was 0
@253ATZ?;FF @253ACK1.40E+0;FF The Piezo Atmospheric zero adjustment was also not default
@253FD!ATZ;FF @253ACKFD;FF Now it was reset to factory default
@253ATZ?;FF @253ACK-6.00E-1;FF That is a weird factory default... Let's ask for the PR3
@253PR3?;FF @253ACK7.07E+2;FF Seems about the same pressure than before
@253ATD?;FF @253ACK7.07E+2;FF So the Piezo absolute calibration was 707, let's reset it
@253FD!ATD;FF @253ACKFD;FF Now it is default
@253ATD?;FF @253ACK7.60E+2;FF New value is 760
@253ATS?;FF @253ACK9.41E-3;FF Doesn't seem default so let's reset it
@253FD!ATS;FF @253ACKFD;FF done
@253ATS?;FF @253ACK8.95E-2;FF Seems weird, let's ask again
@253ATS?;FF @253ACK8.5E-2;FF Around the same...
@253AO1?;FF@253ACK30;FF
@253AO2?;FF@253ACK215;FF That means the analog output is set to send me the PR3 MKS Standard (1 VDC/decade) output.
@253PR3?;FF @253ACK7.61E+2;FF
@253PR4?;FF @253ACK7.605E+2;FF

After all of this I got a 761 Torr reading in the serial command (probably from restoring the Pirani Atmospheric commands) and the voltmeter now reads 8.84volts, which doesn't match up that of the serial command. The owner did calibrate the sensor in his way, and even though I have it now back to default, I wrote everything down, in case I need to go back.
So even if your unit is very inaccurate at atmospheric pressure (it isn't) this has noting to do with how it will work at millitorr levels.
Thanks, that was what I was thinking, then it means my unit is perfect for fusor work. And I do plan to use the Arduino but not with the ADC but instead with the serial interface, I just need a TTL adapter (cheap, but it would take +3 weeks to get it here, so I am searching local, I live in Mexico).

Here is a picture of a plasma I was able to achieve, while the gauge said 150milliTorr

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

Re: MKS 901p

Post by Richard Hull »

That image looks about right for 150 mTorr.

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
Rex Allers
Posts: 570
Joined: Sun Dec 30, 2012 3:39 am
Real name:
Location: San Jose CA

Re: MKS 901p

Post by Rex Allers »

Pablo,

Good that you are getting comfortable with the sensor. I did think maybe the language could have been some difficulty for you with the manual. No problem, I understand.

Everyting I have said is just from reading the manual. I haven't tried mine yet. I may not be exactly right.

I'm not sure I would have reset those calibration values, but it probably doesn't make any important difference for fusor measurements. As I tried to say in my last post, I think a new piezo calibration value will get automatically stored when the pressure gets down to 1.2 T -- at that point it can then learn from the pirani sensor. So now that you have been down around 150 mT you may find that there is a new calibration for piezo that was stored.

To calibrate the pirani you must get down into the E-6 Torr range and set the zero point. To do that, you would need a good diffusion or turbo pump to reach that pressure or below. That's why I would not have reset the pirani calibration. But even if the pirani zero needed some calibration, I would expect that for any readings from the sensor in the E-3 Torr range you won't notice any difference.

Readings from the pirani depend on the heat conduction of the gas, which depends on the kind of gas. At the same actual pressure, nitrogen and hydrogen will indicate different pressures from the sensor. That's why you can set some different gasses in the sensor. But for fusor work exact pressures probably don't matter too much as long as you are not way off. More important is that the number you see is consistant and repeatable.

Best wishes, keep going. You are doing more than I am now on actual fusor work.

By the way, your english in your posts is excellent. I only know a few words in Spanish.
Rex Allers
Pablo Llaguno
Posts: 104
Joined: Sun Feb 05, 2017 6:00 pm
Real name: Pablo Llaguno

Re: MKS 901p

Post by Pablo Llaguno »

Hi again,
I am now in the process of reconditioning a used vacuum pump, it is a robin air 15600, though I would upgrade it for a Welch or a Precision Scientific for the moment is more than usable. I want to use this transducer to check the ultimate pressure that it can pull down, but I don't want to risk the electronics to oil contamination. Since the pump has an inlet with 2 flares I want to use the one with the 1/2" flare (and cap the other one) and figure out how to attach it to the 1/4npt to KF16 adapter I have for the transducer. My plan is that between the adapter and transducer I could place a needle valve, this way I can close it once I am finished measuring ultimate vacuum and then vent it through the other 1/4" flare. Do you think that it is safe to do it this way?
User avatar
Finn Hammer
Posts: 298
Joined: Sat Mar 05, 2016 7:21 am
Real name: Finn Hammer
Contact:

Re: MKS 901p

Post by Finn Hammer »

All,
The 901P transducers are plentiful and cheap on Ebay right now, and I have been working with them the last month or so.
Bruce Meager's post on interfacing with RS232 was most helpful to me, since this is the first time I have used that interface.

I am using an Arduino to query the 901P about the present pressure, a small Oled to display the answer, and the code is very simple.
I am a hardware guy, not a programmer, so it can probably be made a lot fancier, but it seems to work so far, so what.....
Code at the end of this post.
Arduino breadboard with MAX3232 and MKS901P. Also the small A Nano which will be the final target for the code.
Arduino breadboard with MAX3232 and MKS901P. Also the small A Nano which will be the final target for the code.
A couble of warnings:
The TTL signal from the Arduino needs to be translated to RS232, and this is done by a MAX3232 chip. I did not know this at first and it cost me the RS232 functionality of a 901P, which stopped responding after it was connected to TTL RX/TX.
(Why a +-10V interface caves in @0-5V is beyond me)
Another thing, the Arduino becomes unresponsive to program upload when the MAX3232 is connected to the RX/TX ports, so you should disconnect it when you upload the code to the Arduino.

I intend to wrap the Oled, the Arduino into a small enclosure with the connector at the bottom, and a Lipo battery with associated charger/booster to form a compact transportable unit.
This is the pressure gauge to bring with you, when you go out to buy a new foreline pump.
Mounted in a fusor, the 3 built in relays with programmeable trip points could come in handy, for example, disable/enable power to diff/turbo pump at say 35 Microns. Operate the foreline vent to atmosphere valve and foreline valve, in the case of a power failure.
I have tested the code with a 999 Quattro and it works there as well.

The code:
-------------------------------------------------
//This program queries MKS 901P and 999 series pressure transducers about pressure, and displays the result on small Oled display.
// 09-09-2017 Finn Hammer


#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

String sensorValue;

void setup()
{
Wire.begin();

display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3C (for the 128x32)(initializing the display)
Serial.begin(9600);

}
void displayPressure() {

Serial.print ("@254PR3?;FF");
sensorValue = Serial.readString();
sensorValue.remove(0, 7); //Remove the forst 7 caracters from @253ACK7.39E+2;FF to get 7.39E+2;FF
sensorValue.remove(7); //Remove caracters from the 7th, to get 7.39E+2

display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(1);
display.setCursor(0, 0);
display.print("Foreline Pressure");
display.setTextSize(2);
display.setCursor(0, 12);
display.print(sensorValue);
display.setTextSize(1);
display.setCursor(98, 25);
display.print("Torr");

}
void loop()
{
displayPressure();
display.display();
}
User avatar
Richard Hull
Moderator
Posts: 14992
Joined: Fri Jun 15, 2001 9:44 am
Real name: Richard Hull

Re: MKS 901p

Post by Richard Hull »

Great work Finn! This will help a number of folks here provided they have soldering skills and are willing to work with the Arduino.

I have been doing this for a few years now. (Arduino inclusion in projects)

I develop with the UNO as you did here, using a breadboard and wires all over the bench to finalize and de-bug a proposed design. In the final iteration I tend to use the Arduino Pro-Mini as it is half the price of the Nano which has the USB port on it. To program and re-program the Mini you need an FDTI dongle. The Pro-Mini is better if you are making a distributed product as folks are not tempted to plug a USB cable into your distributed device. However, I agree that for a personal, portable item, the Nano is a better choice since you, as the originator, can re-program with no hassles.

I have been building a number of Geiger counters since 2014 with the Arduino pro-mini as the core item. The kits I made just did not sell well, even among the the ham radio enthusiasts! A lot of these folks don't do any electronic work, (soldering, construction, etc.) A constant complaint is "I don't have time to build a kit"....."If you had one assembled, I might be interested." I now only offer assembled items at 3X the price and they sell OK now.

There are still electronic builders and enthusiasts out there, but the old original, "hands-on" cadre of ham radio folks are no longer major electronics "doers" due to modern ready to run ham gear.

Richard Hul
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
Silviu Tamasdan
Posts: 147
Joined: Wed Jun 28, 2006 7:17 pm
Real name: Silviu Tamasdan
Location: Connecticut

Re: MKS 901p

Post by Silviu Tamasdan »

Actually I am still building my radio gear - I have to admit it, sometimes from kits. :)

Silviu
-KC1BJW
There _is_ madness to my method.
John Futter
Posts: 1848
Joined: Wed Apr 21, 2004 10:29 pm
Real name: John Futter
Contact:

Re: MKS 901p

Post by John Futter »

Silviu
Yes some of us still put stuff together
see my QRZ.com page (ZL2TUD).
And yes it is in operation for the last three weeks.
Jerry Biehler
Posts: 975
Joined: Tue Nov 24, 2009 3:08 am
Real name:
Location: Beaverton, OR

Re: MKS 901p

Post by Jerry Biehler »

I think the basic arduino uses a usb-serial chip on the same serial port as what you are tying to use. I dont know if there are any other serial ports on that arduino but the higher end ones have multiple serial ports and real usb so you dont have to worry about this problem.
Silviu Tamasdan
Posts: 147
Joined: Wed Jun 28, 2006 7:17 pm
Real name: Silviu Tamasdan
Location: Connecticut

Re: MKS 901p

Post by Silviu Tamasdan »

John Futter wrote:Silviu
Yes some of us still put stuff together
see my QRZ.com page (ZL2TUD).
And yes it is in operation for the last three weeks.
(nice - I'm at the opposite end of the power spectrum; mostly QRSS, my most powerful transmitter is 200mW)

I also like the Arduino Pro Minis - especially the 3V versions. You can embed them in very small projects and power from a tiny LiPO battery - for instance in the payload of a model rocket.
There _is_ madness to my method.
User avatar
Finn Hammer
Posts: 298
Joined: Sat Mar 05, 2016 7:21 am
Real name: Finn Hammer
Contact:

Re: MKS 901p

Post by Finn Hammer »

All,

The first version of my code had a couple of shortcomings, which has now been ironed out.
Firstly, it did not comply with the fu-speak pressure unit system. fu-speak?? Confused?, well so was I.
Pressure units were never easy, and the world has odd preferences when it comes to expressing the value of a pressure. In Asia they favour the Pascal (or so I read), and so does the scientific community. Europeans are fond of the Millibar. Yankees swear by the torr.
And then there is that weird little group of fanatics "The Fusioneers" (and the associated group of wannabees), they have their own silly system. A system based on torr, which is the unit down to 1.0E-00, where it changes to the micron, which must be religiously adhered to all the way to 1.0 E-03 torr (0 Microns) where the unit changes again, this time to millitorr.
In appreciation of the immense work given here by mr. Hull, (who is a stern advocate of the micron), and with a nod to a certain mr. Orwell, I call this system for fu-speak, short for fusor-speak.
It only took 25 extra lines of code to comply with fu-speak, it was a fun coding exercise, and besides, I have pledged to use the micron around fusion pressures and generally gotten used to it, so here you have it.
However, it would also be nice to be able to display the pressure in Pascal, since it is so highly touted in the scientific community, and in all the books. And as an educational feature, switch back and forth, to perhaps gain a working ability to switch between units without having to grab a calculator, and/or swear in dispair.
Of course, you could go with HectoPascal and learn to multiply with 1.33 but.....
Anyway, I needed an excuse to learn how to implement the Interrupt routine in programs, so I took this opportunity do use the response to the activation of two switches, to toggle betweeen two branches of the program.
One where the transducer is first prompted to answer in Pascal, the other to report back with the pressure in torr.
This works nicely, and I am satisfied, (as in proud), of my acheivement.
The outputs looke like this now, just a push of a button apart:
Pressure displayed in fu-speak
Pressure displayed in fu-speak
Pressure in proper Pascal
Pressure in proper Pascal
The can of worms approach has to stop, and I have already ordered d-sub receptacles to solder to a motherboard which will form a mechanical backbone for, and harness the arduino nano, the battery charger/boost converter and the MAX232 RS232 to TTL converter, the two switches, a power switch, the battery and the display.
I will also try to find a suitable (as in available) box to wrap up the whole caboodle.
The code needs small adjustments to the placing of the units, for example, millitorr should start further to the left, when this is done and has been tested with a diff-pump, the code will get it's V.1.00 stamp, and I will write a nice little post, with all details needed to replicate the work, in the case that you should want to.

Meanwhile, you can grab the code here:


//VacuuMeter V.0.9
//This program queries MKS 901P and 999 series pressure transducers about pressure,
//either in torr or pascal, and displays the result on small Oled display.
// 27-09-2017 Finn Hammer


#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
String sensorValue;
String pressureUnit;
String unitBuffer;
String unit;
const byte ledPin = 13;
const byte interruptPin3 = 3;
const byte interruptPin2 = 2;


void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3C (initializing the display)
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(interruptPin3, INPUT_PULLUP);
pinMode(interruptPin2, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(interruptPin3), pascalISP, FALLING);
attachInterrupt(digitalPinToInterrupt(interruptPin2), fuspeakISP, FALLING);
}


void loop() {
if (unit == "Pascal") {
pascal();
}

else if (unit == "Fuspeak") {
fuspeak();
}

display.display();
}


void pascalISP() {
unit = "Pascal";
Serial.print ("@253U!PASCAL;FF");
}


void fuspeakISP() {
unit = "Fuspeak";
Serial.print ("@253U!TORR;FF");
}


void pascal () {
Serial.print ("@254PR3?;FF");
sensorValue = Serial.readString();
sensorValue.remove(0, 7); //Remove the first 7 caracters from @253ACK7.61E+2;FF to get 7.39E+2;FF
sensorValue.remove(7); //Remove caracters from the 7th, to get 7.61E+2}
pressureUnit = "Pascal";
display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(1);
display.setCursor(0, 0);
display.print("Foreline Pressure");
display.setTextSize(2);
display.setCursor(0, 9);
display.print(sensorValue);
display.setTextSize(1);
display.setCursor(85, 25);
display.print(pressureUnit);
}


void fuspeak () {
Serial.print ("@254PR3?;FF");
sensorValue = Serial.readString();
sensorValue.remove(0, 7); //Remove the first 7 caracters from @253ACK7.61E+2;FF to get 7.39E+2;FF
sensorValue.remove(7); //Remove caracters from the 7th, to get 7.61E+2

unitBuffer = sensorValue;
unitBuffer.remove (0, 5);
if (unitBuffer == "+2") {
pressureUnit = "torr";
}
else if (unitBuffer == "+1") {
pressureUnit = "torr";
}
else if (unitBuffer == "+0") {
pressureUnit = "torr";
}
else if (unitBuffer == "-1") {
pressureUnit = "micron";
sensorValue.remove (1, 1);
sensorValue.remove (3);
}
else if (unitBuffer == "-2") {
pressureUnit = "micron";
sensorValue.remove (1, 1);
sensorValue.remove (2);
}

else if (unitBuffer == "-3") {
pressureUnit = "micron";
sensorValue.remove (1, 1);
sensorValue.remove (1);
}
else if (unitBuffer == "-4") {
pressureUnit = "millitorr";
}
else if (unitBuffer == "-5") {
pressureUnit = "millitorr";
}
else if (unitBuffer == "-6") {
pressureUnit = "millitorr";

}
else pressureUnit = "endelse";


display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(1);
display.setCursor(0, 0);
display.print("Foreline Pressure");
display.setTextSize(2);
display.setCursor(0, 9);
display.print(sensorValue);
display.setTextSize(1);
display.setCursor(85, 25);
display.print(pressureUnit);
}

Cheers, Finn Hammer
User avatar
Richard Hull
Moderator
Posts: 14992
Joined: Fri Jun 15, 2001 9:44 am
Real name: Richard Hull

Re: MKS 901p

Post by Richard Hull »

Finn,

You have every right to be very proud of your work. What ever unit works for any particular person is fine, of course. The units I use are still used by amateur and many professional vacuum heads here in the U.S. As noted before, why I use the micron at all is that virtually 100% of all surplus TC gauges are in microns. All working fusor pressures are in microns, as you note. However for the "deep pumpers", (folks who go sub-micron), they have gauges pretty much set up in Scientific notation Torr units. (again surplus gauges). Naturally if you purchase a current $1500.00 sub-micron baratron and its extra $500.00 controller you can digitally select your favorite unit as all are included, much as you have done in your arduino software.

100% of all scientifc literature is in S.I. by codified law within the properly annointed in academia.

Great work with the arduino. I have yet to apply it to the fusor as I, currently, have all older stock electronic instrumentation that already reads out digitally using old school electronics. I assembled my system before there was a workable arduino and from older gear I have hand on hand since the 70's. (nim counters, digital counters, digital pressure gauges, etc. Virtually all use TTL or older MSI logic chips and nothing uses a microprocessor or micro-controller in the fusor IV system.

If some key chunk of fusor IV digital apparatus dies, I'll probably do up an Arduino kluge as a new replacement.

Again, great effort and work.

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

Re: MKS 901p

Post by Pablo Llaguno »

Finn,

Great and impressive work! What you are doing was the exact same plan I had from the beggining, minus the Pascal conversion which is a nice feature. However school hasn’t given me the time to work with the arduino serial communication, I actually bought a rs232-TTL converter that already has the dsub-9 head, but I couldn’t get the arduino to transmit/receive anything from it. When I get it working I’ll post my results, and maybe I will borrow some of your code :)

Thanks for the post,
Pablo
User avatar
Finn Hammer
Posts: 298
Joined: Sat Mar 05, 2016 7:21 am
Real name: Finn Hammer
Contact:

Re: MKS 901p

Post by Finn Hammer »

Pablo, Richard

Thank you for your kind words.
I am using this little rs232/ttl converter board:

https://m.ebay.com/itm/5PCS-Mini-RS232- ... Ciid%253A1

It is a bit finnicky to work with, due to the size, but otherwise it is fine. It has to be unplugged from the Arduino while you upload code.
Also notice that the code does not do a Pascal _conversion_, rather it instructs the 901p to respond in Pascal, as you can see in the Pascal ISP:

void pascalISP() {
unit = "Pascal";
Serial.print ("@253U!PASCAL;FF");
}

Cheers, Finn Hammer
Post Reply

Return to “Vacuum Technology (& FAQs)”