Notice: Undefined variable: todo_styles in /home/digitalcg/www/wp-content/plugins/bwp-minify/includes/class-bwp-minify.php on line 3120

Pinya2 : Air Extrusion

For Pinya2, I wanted to try a different extrusion approach: air extrusion. I have been playing with peristaltic extrusion, stepper driven syringe extrusion, …  so I ask myself why not to try air compressed extrusion. There is lots of comments regarding which one is better or worst. At the end I think is a matter of which method is more suitable for our application. Frostruder MK2, Baricuda, Unfold, Laser Lab Studio …  many people using it yet not much information available. But for sure an awesome starting point (at least for me). IMG_20140728_192929

How it works

Basically, we load a syringe with whatever we want to print and using air compressed we are able to extrude it. The high pressure build inside the syringe forces the material out (through the nozzle or leaks). The material flow is controlled with a combination of its viscosity and the air pressure. The ON/OFF flowrate is accomplished thanks to a “valve” that activates or reliefs the pressure inside the syringe. There is different approaches to this job: selenoid valves, glue dispensers or manual valves. We took the glue dispenser route, due to the hint by Laser Lab Studio (thanks a lot).


ATTENTION. This parts work for my set up. There is lots of possible variations so choose the one that fits better your needs:

  • Air compressor:

This is probably the one that took me more time to figure it out. It is not difficult to find an air compressor. BUT finding a quiet and cheap one it is. So what I did? go DIY (but cheating). I found I guy mounting fridge compressors with an air tank. In terms of noise it is a rented-flat-neighbours-friendly solution. In terms of specs goes up to 11 bars. Might be failing in design and wife-friendly rate. Judge by yourself~~~ IMG_20140814_174205

  • Pressure gauge, regulator valve and filters

Once we have a compressor, we need to control and know the maximum pressure we want to connect to the glue dispenser. This is done with a pressure gauge and a regulator valve, often found in the same pack. After that a filter stage is added to “clean” the compressed air. Currently I just have a 50um filter, mainly because filters are expensive and I am just playing at home :). IMG_20140814_174232

  • Glue dispenser:

This is the one in charge of providing a stable pressure at a desire value into the ingredient syringe. It is controlled externally through a pedal input. Offers different operation modes, auto or manual (we used just manual so far). And have a vacuum control that it is able to apply negative pressure inside the syringe when the extrusion is not ON. There is lots of different types of dispensers, also all sort of price ranges from 60€s to thousands. I just have been able to try a cheap version, but for me “does” a good job. IMG_20140814_174249

  • Ramps: printer electronics:

In the electronic side, I am just using a regular ramps+arduino to control the printer. I added a relay that emulates the pedal to trigger the glue dispenser. The relay is connected to the heated bed ramps output. IMG_20140814_174323


Jordan Miller did a great job adapting Marlin to work with his Baricuda extruder design. Since I was just going to use one valve I ended up using just two GCodes to turn ON(M126)/OFF(M127) valve. I had to do some minors changes to Pinya’s FW, but all the great work and recognition goes to Dr. Miller. Instead I had more issues with the python scripts to generate GCodes. I tried to use Frostruder MK2 Python scripts, but the ones that I found were based for DC extruder motor GCodes. So wrote my own tiny program, to parse GCode files, detect when there was an extrusion (E increment) and add my ON/OFF Gcodes (M126 or M127). Eventually I switch from QT to Javascript because it is WWWAAAYYY faster to develope. And I like the idea of having easy and friendly design tools,  rather than the CAD + Slicer current toolchain for basic shapes. Here some of my experiments.


So the way that Baricuda works is adding two variables to control the valves. These values can be updated through GCode commands.

#ifdef BARICUDA int ValvePressure=0; int EtoPPressure=0; #endif

Later when planner line blocks are calculated the current value of those variables are added to the new block.

void plan_buffer_line(…

#ifdef BARICUDA block->valve_pressure = ValvePressure; block->e_to_p_pressure = EtoPPressure; #endif


At the end the part that actually is controlling the outputs is: void check_axes_activity(){…

#ifdef BARICUDA #if defined(HEATER_1_PIN) && HEATER_1_PIN > -1 analogWrite(HEATER_1_PIN,tail_valve_pressure); #endif

#if defined(HEATER_2_PIN) && HEATER_2_PIN > -1 analogWrite(HEATER_2_PIN,tail_e_to_p_pressure); #endif #endif


This function is called within manage_inactivity() meaning that is refreshed “a lot” of times when the main loop is waiting for some action to finish.


I have not been printing as much as I would like, but I share my opinion so far with this extrusion tech.


  • My first impression was wow, that easy? AE has the strength to handle really thick and viscous materials without having to worry. This allows to push and print really fast (printing fast > quality).
  • Is fun and romantic. Meaning that there is lot of things that can go wrong, depending on how good you are at finetunning your prints: pressure, material, feedrate, gcode,…


  • Syringes, are limited in printing volume. Filling, refilling, rerefilling, rererefilling, is my normal routine during a print session. I still have to try bigger syringes hoping this would improve without “side effects”.
  • Loading the syringes its already an art. Any air trapped will ruin your prints (depending on printing material the drama would have different dimensions).
  • It is and easy method to set up, but a difficult one to master, many variables at the same time to be able to have decent repeatability.


7 thoughts on “Pinya2 : Air Extrusion


    Hi Sir, This is Venkatesh. You did excellent work. Which ramps1.4 pin you used to activate and deactivate solenoid valves!

  2. Sorry I dont really remember it was a long time ago. I think the firmware allows to change that and use different ones. Probably one of the heating elements output.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Notice: Undefined variable: todo_styles in /home/digitalcg/www/wp-content/plugins/bwp-minify/includes/class-bwp-minify.php on line 3120