This is a guide on how to create fluidic logic gates which work on air (which is classed as a fluid) instead of electricity. This is my first working prototype, but if made smaller and more reliable they could be used to create autonomous soft robots, or reduce the number of electromechanical valves used for applications where a number of pneumatic outputs needs to be controlled. A multi-line braille reader using this technology is already being developed.
I took inspiration from Novelchip's instructable, where he shows how to make logic gates out of microfluidic transistors and resistors, and made my own version, adding my own ideas and using the tools I have on hand.
Step 1: How It Works
If you are just interested in making the logic gates, you can skip reading this part, but it helps
For this next part, I will assume you are familiar with how resistor-transistor (RTL) and CMOS logic work.
In this project, RTL, which is commonly used in microfluidic logic, is replaced with Complementary Pass Transistor Logic (CPL), which has the same advantages as CMOS logic, in that it is consuming much less power than RTL, and no power at all when maintaining state. It is also dosn't need resistors, making it easier for me to make.
How a microfluidic transistor (fluidic N-MOS transistor equivalent) works:
It is essentially a break in an air-carrying channel, which can be closed by applying negative pressure to the membrane above it, causing it to deflect and create a space for air to flow through (1st picture, source), and when the pressure is removed, the valve springs back in place.
Note: atmospheric pressure = logic level 0, below atmospheric pressure = logic level 1.
How Complementary Pass Transistor Logic (CPL) works:
Every signal in this logic family is represented by 2 lines - one carrying the original signal (A) and the other carrying the complement, or inverse, of the signal (A'). This is because its not possible to invert a single-line signal with only N-MOS transistors, so the inverted signal has to be supplied.
The transistor arengement of electronic CPL is mimicked in my design.
Each gate is a 2-1 multiplexer (2nd picture). When the non-inverted signal (S) is equal to 1 and the inverted signal (S') is 0, the 1st set of transistors open and the 2nd set remain closed, so the 1st input is connected to the output and the 2nd input is disconnected, the opposite is true when S=0 and S'=1.
Reasoning behind using CPL:
Since I couldn’t reliably make a fluidic resistor without a CNC machine, which are need for resistor-transistor logic - the most common type of logic implemented in microfluidic circuits. I couldn’t make the equivalent of CMOS logic either, since the fluidic equivalent of a P-channel MOSFET exists, but again need to be very precisely manufactured, So I came up with a solution which did not need resistors or P-channel MOSFETs, and only used the fluidic equivalent of a N-channel MOSFET. After some googling I found out that I independently invented CPL.
Step 2: Tools & Materials
- 2.8mm diam drill bit
- 90deg countersink tool
- ball needle (2mm diam)
- craft knife
- 3mm thick transparent acrylic
- 1mm thick transparent silicone sheet
- 3mm diameter rigid plastic tube
- 0.5mm thick transparent silicone membrane (this can be bought or made like in novelchip's instructable, I'll also be posting my own method soon)
- 2mm ID 4mm OD silicone tube
- vacuum pump to work as a power supply for the circuit. I used an Airpon D2028-12V
- 2 valves + 6 T connectors from Lego technic
pressure gauge or piston from Lego technic to be used as an output device
The materials don't have to be transparent, it just makes it to see if all the layers are aligned properly.
Step 3: Cutting Silicone
Sharpen the ball needle with a drill bit.
Cut 4 pieces of 1mm thick silicone sheet 28 by 24mm, and 1 peice of the membrane with the same size
Following the design on the square grid, push the sharpened ball needle into the silicone to cut holes and corners and then join the holes with a craft knife. The neater the cuts are, the easier it will be to align the layers.
Mark a corner of each layer with a pen. This will make it easier to arrange layers later
I also tried laser cutting the peices. The silicone cuts alright, but the peices wont stick together anymore, preventing an airtight seal.
In the future, I will use a 3d printable mold to cast the silicone peices, as this is the most tedious part of the project. I have included the STL files if anybody wants to try it.
Step 4: Case
Cut 2 pieces of acrylic 28mm by 24mm (can be made wider, e.g. 40 by 24, to allow the 2 pieces can be screwed together)
Cut 8x 8mm lengths of 3mm diamiter rigid tubing
Drill 8, 2.8mm diamiter holes in 1 peice of the acrylic. The centers of the holes should align with the end of the channels in the first silicone layer.
Use the 90deg countersink tool to deburr both sides of the hole to make sure they are completely flat and that the silicone sheet adheres around each hole without creating air bubbles.
Firmly push a peice of tubing into each hole, making sure that it dosnt come out easily. If it starts poking through to the other side, use a craft knife to bring it in line with the surface. Any bumps on the surface will cause the silicone to not adhere as well..
Step 5: Assembly
Clean every component with water and dry it to make sure there is no dust or hair stuck to the surfaces.
Now stack the layers one by one, starting with the outside and ending with membrane in the center:
Press layers 1 & 2 against the acrylic peice with tubes attached, making sure no air bubbles are left between the layers.
Flip layers 3 & 4 & the membrane and press them against the acrylic peice with no holes.
Press the 2 sides together now.
Looking down through the top of the chip, it should look like the mirror image of the original design (it dosnt matter if its not, just that all the marked corner of each layer are in the same place)
Step 6: Testing
Apply vacuum to each combination of output and control ports and you should hear the hissing of air coming from each input port in sequence. By putting a finger over the hole you can check that air dosnt leak in from anywhere else.
Combination of ports / Active input port
- S & Q = A
- S & Q' = A'
- S' & Q = B
- S' & Q' = B'
If air isnt flowing, you may need to realign your layers or enlarge one of the channels if it dosnt quite meet with another one.
If there is a leak, check the layers are clean and that there are no bubbles between them
Step 7: Modify the Pressure Gauge's Range
This is done simply by removing the gauge's pointer and putting it back on so it points to "1 bar" in its neutral position. The gauge now shows absolute pressure instead of a value relative to atmospheric pressure.
Step 8: Making Logic Gates
-This step is work in progress-
Each chip is a 2-1 multiplexer, which in turn is a universal logic element, and can be connected up in different ways to make any 2 input logic gate.
A lego pneumatic switch has a non-inverted and an inverted output, so it is perfect to use as an input for these gates.
A piston or gauge can be conected to observe the output.
Since each gate's inputs and outputs are made up of 2 complementary signals (Q & Q'), any signal can be inverted by simply switching Q & Q'.
Step 9: D Latch
-This step is work in progress-
By connecting a buffer and a multiplexer in such a way so that the the buffer's input is connected to its output while the clock line is low and another input while the clock line is high, we create a data latch - 1 bit of memory.
I estimate an 8 bit register would take up about 120cm^2 if made on a single chip, assuming I dont figure out a way to make the transistors smaller first (small transistors cut by hand are difficult to align).
Step 10: Next Steps
- A mould will be 3d printed to replace the manual cutting process
- The connecting tubes will fall out the logic "chip" from time to time when disconnecting silicone tubes. In the future I will 3d print the top part of the case as 1 peice
I will design a pneumatic punchcard reader to work with these chips
Multiple logic elements like this could be combined onto one logic chip to minimise the number interconnecting tubes. I already have a design for an ALU which could be made as one such chip