Extracting maximal value from a cheap compressor

I thought I'd post a little adaptation I've made to my cheap Amazon pump, that lets me use it to fill up relatively large air tanks. I have an affordable air-cooled pcp pump from Amazon, the GS compressor.

Screenshot from 2021-12-21 22-28-08.1640154535.png


It's great for filling up my rifle, but I've migrated to using a tank, and this pump would overheat and die before it could fill up anything but the smallest tank. That said, provided I turn the pump off to let it cool down, it can fill up a big tank. The problem is, for large tanks this could entail hundreds of on/off cycles over many hours.

So I thought I'd build a little Arduino circuit to do the job. I've tried a few different options, re-learning some basic things about electric circuits along the way. I've settled on a basic design that seems pretty robust. The core of the circuit is an Adafruit Feather 32u4 "Basic Proto" although I imagine you can find other similar circuits from other dealers. This is a very basic board that uses Arduino coding conventions. All we need from it is we can program it to turn on and off a 3V terminal.

Screenshot from 2021-12-21 22-32-44.1640155009.png


The 3v terminal will be connected to a solid-state relay. The key thing is to find a solid state relay than can turn on and off wall power (120V, moderate amperage), yet triggered by a 3v current. This one by Inkbird does the job.

Screenshot from 2021-12-21 22-37-26.1640155114.png


I've been doing some home rennovations recently -- tearing down some walls, and tearing out the electrical wiring so I have some electrical wiring sitting around that's perfect for the job. You can find this kind of wiring at shops like Home Depot. With these ingredients, I wired them all together, and put little male/female plugs on the wire ends. Getting a female plug with an LED to indicate power is a good idea, as it helps to test the circuit.

PXL_20211222_060609280.1640155249.jpg


Not certain if you can see it or not, but I soldered on "headers" to my Adafruit board, as it makes it easier to connect things to it. 

Screenshot from 2021-12-21 22-41-37.1640155347.png


Not necessary, but it makes life easier. 

So my little circuit plugs into the wall power supply, and then to my compressor. I leave the compressor's switch "on" so that the Adafruit can control it. I should add, if you aren't very comfortable doing electrical work, one of these socket testers will really help. 

PXL_20211222_060849441.1640155461.jpg


If you plug it into your female socket with the adafruit turning it on and off, it should alternate between displaying nothing (off) and "correct". If it gives you something else, you know you wired things up the wrong way. It's important to know the relay needs to have the hot wall line connected to it. It won't run properly if you've connected your wall neutral (or ground) to it. 

Here it is, off. 

PXL_20211222_060711080.1640155596.jpg


And on.

PXL_20211222_060714722.1640155609.jpg


My pump and air filter.

PXL_20211222_060629172.1640155634.jpg


The Arduino code. To change the code on your Arduino, you will need a computer with a USB port, i.e. you probably can't do this on most phones.

#define SECOND 1000UL
#define MINUTE (SECOND * 60UL)
#define HOUR (MINUTE * 60UL)


int TRIGGERPIN=10;
int LIGHTPIN=13;


unsigned long timeUp = 1UL * MINUTE + 40UL * SECOND;
unsigned long timeDown = 5UL * MINUTE + 0UL * SECOND;


int countVar = 0;
int numCycles = 40;


// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output, this is the RED LED.
pinMode(TRIGGERPIN, OUTPUT);
pinMode(LIGHTPIN, OUTPUT);
}


// the loop function runs over and over again forever
void loop() {
if (countVar < numCycles) // run for this many cycles.
{
countVar++;

digitalWrite(LIGHTPIN, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(TRIGGERPIN, HIGH); // turn relay ON 
delay(timeUp); // on delay

digitalWrite(LIGHTPIN, LOW); // turn the LED off by making the voltage LOW
digitalWrite(TRIGGERPIN, LOW); // turn relay OFF
delay(timeDown); // off delay
}
else
{ // have the light flash rapidly when pumping is done.
digitalWrite(LIGHTPIN, HIGH);
delay(1000);
digitalWrite(LIGHTPIN, LOW);
delay(500);
}
}




As you can see, it turns the circuit on and off, on for 1:40, off for 5:00. You'll have to manage the on-off cycle lengths yourself, depending on your pump and the ambient temperature -- whatever it takes to keep the pump cool. I plan on updating the circuit soon, so that it keeps track of the pump's temperature via a thermistor. Will also update the circuit to provide a little display, to help you keep track of how much running time the pump has had, etc. These Adafruit circuits are fairly noob-friendly. As you can see in the code, I'm using pin "10" as the trigger pin. So my relay connects to the Adafruit via pin "10" (clearly labelled) and the ground pin (labelled GND). 

The Feather is powered by a little Li-Ion battery. You'll need to purchase something like that to keep it running, or power it with a little wall adapter.

One other element of my code, I have it stop at 40 on/off cycles. This is a basic safety protocol, as it won't let the tank get to a dangerous pressure, unsupervised. For any tank you should compute how many cycles it will take to finish, and set your limit appropriately. Some companies have touchable displays that could allow this to be configurable without plugging it into a computer -- i.e. maybe in the future I'll add something like this to the circuit.

Did I miss anything? Will update this thread as I update the circuit. 
 
  • Like
Reactions: Navyblue
Wow thanks dude. Great report! I don't belong anywhere near electrical stuff but that's a great idea. Hope it works out for you and I hope you get good life out of that compressor. I have my doubts that it will last as long as a water cooled compressor but as long as the heat doesn't get too high who knows maybe it will. Keep up on this thread man. I'm really curious about how far you can push this idea.
 
It is really hard on these compressors to start against a pressurized system. The motor drive shaft is subject to incredible shear forces when there is pressure in the system. Been there (twice) and won't be doing that again. I was worried about losing the pressure inside the water filter and having to re-pressurize it every time i gave the pump a rest.

Not trying to run down your work, just sharing some real world experience to keep you from disapointment.
 
It is really hard on these compressors to start against a pressurized system. The motor drive shaft is subject to incredible shear forces when there is pressure in the system. Been there (twice) and won't be doing that again. I was worried about losing the pressure inside the water filter and having to re-pressurize it every time i gave the pump a rest.

Not trying to run down your work, just sharing some real world experience to keep you from disapointment.

How many hours of run time did you get before you experienced a failure? 

I'm at about 3 hrs pump run-time with this Arduino on/off cycle. Haven't noticed any change in the performance of the pump. 
 
I would say I was at 10-12 hours on my crosman traveller pumps. I was running to fill a scba bottle. I would run 20 mins and rest 10 mins then restart pump against the 3-4k psi pressure wall. Nowhere in the instructions did crosman warn against this practice. Now, I am 100% sure to never start with pressure in the system.

Crosman replaced the first one without a problem. So I killed 2 for the price of one. My bad.
 
A Yong Heng with ice in the water and an extra fan blowing through it will likely do what you need. The water-less/oil-less units won't last long that way.

The Omega or Air Venturi water cooled units would probly do it also. But they cost four and five times what the Yong Heng does.

Good job on the mod though shows you have some knowledge.


 
I have read about in line two way high pressure check valve quick connect in between compressor and tank to prevent catastrophic compressor failure such as described. 

Was it Jking who made a post?

That makes sence if it works as it should.

I was wondering a check valve in between the PcP gun regulator and action so no go boom in case regulator failure and over 4000 psi don't go into a Avenger or Huben or Ataman or any other regulated 4000 to 5000 psi rated fill gun and blow up If it's too much pressure and destroy the valve and seat gushing into the internals when you press trigger to shoot.

I am by no means a high pressure engineer but just think out loud about it.
 
I'll let this pump run until it develops a problem. 

If it does fail, I would likely go the route described by Batman2, i.e. install a check valve between the pump and the air filter. I could program a little servo to turn the pressure release on the pump after every fill cycle. That way the pump would always be starting without any pressure in it and the moisture filter would remain pressurized.

Anyone know an appropriate check valve for this application? And almost as important, where to acquire them? My initial McMaster-Carr search is finding "high pressure" check valves in the 3000psi max range.

All the 4500psi check valves I can find are for hydraulic applications. Not certain how they'd do with air: https://www.onehydraulics.com/products/cs-32-1-7

And they're expensive -- in the $200 range. So far this project has had a pretty tiny budget. Anything that costs real money would be an argument for acquiring a more serious pump. 
 
Great Job, Delooper!

Actually you are "adding" a loop to your system, instead of taking it away ;-)

I am an embedded systems designer by trade for 25 years, so it is fun to see my two of my passions intersecting.

My first thought was that you could simply use a "window comparator" triggered off of your thermistor, but you wouldn't be able to put that safety on there like you did...which justifies the embedded circuit all by itself.

How about you put a tee in your line going to the bottle and stick a normally closed solenoid actuated valve on the tee and run it off of an available I/O signal from your Arduino? Turn the compressor off, open the solenoid for a few seconds, and then complete your wait cycle. This would eliminate the head pressure automatically. I just looked on ebay really quick and saw a couple that would handle the pressure for about $100 and you could just run it off of the 12V power supply that is running the compressor. Just a thought.

This all said, just the solenoid would be 1/3 the price of the Yong Heng compressor that Biohazardman suggested, not to mention your time and trouble to put a band-aid on a product that is getting run out of spec in the first place. You pick your battles.

Regardless, thanks for sharing! I enjoyed your article.

Jonathan

Owner - Honortronics Inc.


 
Have a check valve on order. Attached a little thermistor to the circuit, and stuck it to the compressor with thermal paste and a little glue. Also attached a little e-paper display. So now I get updates on how far into the cycle it is, as well as surface temperature readings.

Once the check valve arrives I'll put it between the pump and the air moisture filter. Will also have a little motor release the trapped pressure between cycles. But that's for another day.

P1040002.1641286853.JPG


Thermistor attached.

P1040003.1641286870.JPG


E-paper display.

P1040004.1641286883.JPG


Circuit is a little more complicated now.

P1040005.1641286901.JPG


The whole setup.

Usually I would have a fan blowing over the entire unit, but my garage is pretty cold right now. Pump is only getting up to around 28c.


 
I have read about in line two way high pressure check valve quick connect in between compressor and tank to prevent catastrophic compressor failure such as described. 

Was it Jking who made a post?

That makes sence if it works as it should.

I was wondering a check valve in between the PcP gun regulator and action so no go boom in case regulator failure and over 4000 psi don't go into a Avenger or Huben or Ataman or any other regulated 4000 to 5000 psi rated fill gun and blow up If it's too much pressure and destroy the valve and seat gushing into the internals when you press trigger to shoot.

I am by no means a high pressure engineer but just think out loud about it.

A one way valve in line you can just bleed pressure for a break without closing valve. Thanks Jking.
Screenshot_20210228-082917.1641308688.png

 

How about you put a tee in your line going to the bottle and stick a normally closed solenoid actuated valve on the tee and run it off of an available I/O signal from your Arduino? Turn the compressor off, open the solenoid for a few seconds, and then complete your wait cycle. This would eliminate the head pressure automatically.

Jonathan

Owner - Honortronics Inc.

If he dumps the alpha filter pressure the little pump will be hot again just filling it. The pump is way under size for the job. Combine that with the extremely short duty cycle and you have a Rube Goldberg machine. The yong heng type compressor is rated to fill a12 liter tank and costs about the same as his present pump while the off brands are cheaper.
 
Isn't this pre-made timer functionally similar to your home built timer?

61orjNF16OL._AC_SL1500_.jpg




https://www.amazon.com/dp/B0184CG9K0/ref=sspa_dk_detail_0?psc=1&pd_rd_i=B0184CG9K0&pd_rd_w=83wDy&pf_rd_p=887084a2-5c34-4113-a4f8-b7947847c308&pd_rd_wg=IXcyx&pf_rd_r=VQW67ZSJG05RE59SF91X&pd_rd_r=fd270735-4f9b-49b5-a5ef-5203ba70db96&smid=AARY1ZSUT9VPR&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUExV0FDTE1TU1lLUElSJmVuY3J5cHRlZElkPUEwNjU0OTk2MkFUVVpIUjhWWU41MyZlbmNyeXB0ZWRBZElkPUEwNjI1OTQyMVc2UTlLMjlJM1dENyZ3aWRnZXROYW1lPXNwX2RldGFpbCZhY3Rpb249Y2xpY2tSZWRpcmVjdCZkb05vdExvZ0NsaWNrPXRydWU=

~$30 for well packaged, safety approved package seems like a good deal. I considered using this with my Yong Heng but discovered I could top off my SCBA tank in about 15 minutes and temperature stays below 55C. I sit with it and bleed off moisture a couple times during the fill.
 
Isn't this pre-made timer functionally similar to your home built timer?

61orjNF16OL._AC_SL1500_.jpg
//www.w3.org/2000/svg%22%20viewBox=%220%200%20210%20140%22%3E%3C/svg%3E



https://www.amazon.com/dp/B0184CG9K0/ref=sspa_dk_detail_0?psc=1&pd_rd_i=B0184CG9K0&pd_rd_w=83wDy&pf_rd_p=887084a2-5c34-4113-a4f8-b7947847c308&pd_rd_wg=IXcyx&pf_rd_r=VQW67ZSJG05RE59SF91X&pd_rd_r=fd270735-4f9b-49b5-a5ef-5203ba70db96&smid=AARY1ZSUT9VPR&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUExV0FDTE1TU1lLUElSJmVuY3J5cHRlZElkPUEwNjU0OTk2MkFUVVpIUjhWWU41MyZlbmNyeXB0ZWRBZElkPUEwNjI1OTQyMVc2UTlLMjlJM1dENyZ3aWRnZXROYW1lPXNwX2RldGFpbCZhY3Rpb249Y2xpY2tSZWRpcmVjdCZkb05vdExvZ0NsaWNrPXRydWU=

~$30 for well packaged, safety approved package seems like a good deal. I considered using this with my Yong Heng but discovered I could top off my SCBA tank in about 15 minutes and temperature stays below 55C. I sit with it and bleed off moisture a couple times during the fill.

That looks nice. That might be the way to go -- did not notice it when I was looking. 

I have a similar switch at home, but the relay isn't spec-d for this kind of application. This one appears to handle 15A, which should suffice.

I'll stick with my home-made gadget, but if I decide my gadget is getting too complicated maybe this is the way to go. 


 
Rating: 125VAC, 60 Hz, 1875W, 15A Tungsten & Resistive, 1 HP

Not being critical of your diy unit. I intended to offer an alternative to those not so wire & solder handy...

No problem. If I can hook up a motor & check valve successfully, to relieve pressure on the pump between cycles, this will be a really useful unit.

I certainly understand people like their Yong Hengs, but those units are enormous. Once this is done and packaged-up appropriately, this unit should be tiny. 
 
Hey Delooper,

Coming from one who does projects like this for a living, I consider it a "professional courtesy" to help try to "talk you off the ledge". With the time (which I don't know how much you have invested there), but the money for just this part alone puts you in the budget for a pump designed for what you are trying to do. I don't have a Yong Heng, so I don't have a dog in the fight, but I do use oil-less compressors, like yours. These things are not designed to last forever, and I am personally on my third one. I take it super easy on mine and only fill a 450cl tank by 40bar at a time...manually. Again, and I am burning through them. When the seals on your cylinder die, which they will, you will be left with a bunch of support components for a cheap compressor. So do you buy another cheap compressor to justify the expense and time you put into this project, or do you just listen to the wisdom on this site (which I haven't yet) and get the Yong Heng?

This is probably my last time to chime in on this thread. I hope that you are able to get the performance you are going after. Best of luck!!!

Jonathan