Redstone circuits/Piston

Why Pistons?
Simply, pistons do not fizzle out like redstone torches. It is therefore possible to create circuits with only pistons, redstone wire, and repeaters, as these can run at a third of the speed as traditional circuits.

The Principle
Power is transmitted in several ways that are useful to pistons. The first thing to note is that there are two types of solid block; transparent and solid. Transparent blocks are things such as glass or air, and solid blocks (the most common) are things such as dirt and stone. If a solid block is on top of a redstone torch, any wire connected to the block will be powered. If, however, the block is transparent, the torch will not power the wires.

When a repeater is directed at a solid block, it will pass power into that block in the same way redstone torches do. Power will not be transmitted by transparent blocks.

There is another related detail:

These two above will work. However,

will not work

= Simple logic gates =

If you don't understand these, look at Redstone circuits.

NOT Gate
The torch on the left is the input. The piston is sticky and the output is on the right and could be reversed. However, if you want to invert things, the easiest way is to change them from being a repeater into a block and a torch/wire under a block.

OR Gate
The three wires at the top are the input - you can have any number of them. The wire at the bottom is the output and can come from any direction. Again, the piston is sticky.

AND Gate
Note that the piston is sticky. If you are attaching an input to a clock, the top one is recommended, as it is faster and less noisy.

Multiple input AND gate Note that all the blocks along the top are inputs.

IMPLIES Gate
This is equivalent to an AND gate with one of the inputs inverted and is faster with pistons.

XOR Gate
The Piston XOR gate is much more efficient compared to an XOR gate without pistons. = More Complex Machines = These are very useful and very compact. In some cases, far smaller than standard redstone circuits.

Clocks
Here is a very simple gate. Each line leading out of a repeater is an output. It can also be switched on and off.

RS NOR latch
R will reset the output, S will set it. The torch can be replaced with an input to be applied. Note that the pistons must be non-sticky. This design will only use one sticky piston. The top dirt block will toggle the output to the on state, whilst the bottom one will toggle the output to the off state. The output is on the lower right corner.

Rings
A band is a ring of blocks attached to pistons at the corners so it can rotate. The blocks are usually a combination of solid and non-solid blocks. The pistons are often connected to a clock so that they will rotate the band. By using a band, you can create things like item sorting machines and other complex mechanisms.

Bands
When you add several rings together in a row, you create a band. A band is useful for even more complex things, as it can be used in a similar manner to punched tape. Examples include music machines, combination locks, and memory.