Redstone Repeater

The Redstone Repeater is a block added to the game in Beta 1.3. It was originally implemented by Jeb. It is designed to delay redstone signals, and right-clicking it will toggle the block through 4 possible settings; originally these settings were "1, 2, 5 and 7", but this was changed to "1, 2, 3, and 4" for simplicity's sake. Existing repeaters/delayers will still work. They were designed to save space in Redstone Circuits.

As shown in the preview video the block has three main functions: acting as a repeater, a diode, and a delayer. The block repeats signals it receives like a network bridge, so that using two not-gates every 15 blocks will no longer be necessary. Signals are also accepted only in some directions, allowing the block to function much like a diode in an electrical circuit. It also delays the signal so that long timing circuits of inverters will not be required for timed mechanisms any longer (though old timing grids will still work).

Uses
Repeaters have a few uses aside from extending the range of redstone wire:

As Wire/Diode






The repeater only accepts input from its "back" (the side closest to you when you place it) and only sends output to its "front" (the opposite side). It does not interact with any of its other neighboring spaces. This makes it quite useful in tightly packed circuits.

Any of the following can serve as the input to a repeater when placed directly behind it:
 * A cross-shaped piece of redstone wire
 * A straight piece of redstone wire running in the same direction as the repeater
 * A redstone torch
 * A block charged by wire or any other method
 * Any type of switch (lever, button, pressure plate, etc.)
 * Another repeater pointing in the same direction

Any of the following will receive output from a repeater when placed directly in front of it:
 * Any piece of redstone wire, regardless of orientation
 * Any type of block that can be charged (which will then propagate the charge in the same way as when placed over a torch)
 * Any device that can be controlled by redstone (door, minecart track, note block, etc.)
 * Another repeater pointing in the same direction

As of the Beta 1.3 release, a device placed directly in front of a repeater exhibits some strange behavior. If the input to the repeater is a redstone wire or torch then the effect on the device seems to be inverted, and if the input is anything else then the device isn't affected by the repeater at all. When the repeater and device are connected by wire, everything works as expected.

Another bug in the Beta 1.3 release is that repeaters fail to update their state when their input is a block being charged by a redstone wire and the piece of wire right next to the block is destroyed. If the wire is powering the repeater when it is destroyed then the repeater will stay on until some other event triggers an update for it, like placing a block next to it.

As Clock/Delay






Note: each delay is 0.1 seconds; ie., two repeaters set to '4' and one to '2' will give a 1 second delay.

Repeaters greatly simplify the construction of delay lines and provide for more granular timing than chains of redstone torches. For example, a repeater with a long line of redstone for delay would blink faster than the same design with repeaters set to four every other piece of redstone, allowing for more compact slowed down clocks.

Previously, the simplest possible clock was a "5-clock" made by chaining five redstone torches (which actually has a period of 10 ticks -- 5 on and 5 off). This same clock can now be implemented with only one torch and one repeater, connected in a loop, with the repeater delay set to 4 (the highest setting). Setting the delay to 3 yields a 4-clock, which requires some fancy wiring to build from torches alone.

With a delay lower than 3, the torch in this circuit burns out. However, repeaters don't burn out the way torches do. If two repeaters with the same delay are connected to each other in a loop and a short pulse is introduced externally, the pulse will bounce back and forth between the repeaters indefinitely. With the delay set to 1, this circuit has a period of 2 ticks, making it a 1-clock. Unfortunately, the bouncing pulse does not survive a reload of the world, so some circuit to automatically "kickstart" it is required. This circuit has yet to be invented.(You can actually simply use an actual 1-clock to reset it, which is simply 3 redstone in a circle connected to a block with a redstone torch (Inverter) See the picture directly to the right, except take out the repeater and move the 3 redstone to the left 1 block, placing one on top of the inverter)

With simple and accurate delay circuits comes the potential for delay line memory. Using repeaters, such memory can, in fact, be built on a two dimensional plane with a density of 1 bit per square, far denser than any memory cell that can be built with torches. There can even be multiple layers, similar to a parking deck, where the last repeater on the grid winds up a short spiral staircase to the next level, where the grid goes back. This can be repeated for as many levels as needed.

The only downside is that it is harder to see the data stream, and therefore it is harder to know when to safely inject data into the memory stream. If the input and output sources are given many repeaters to a remote, possible even underground location to get the grid out of the way, the memory size is limited only by the amount of free space. To reset the memory grid, simply remove one repeater, or preferably, one redstone anywhere on the line and wait for the data to get flushed out. If the grid is in a remote location, then at the loop around of the remote grid, it could form a detour, using repeaters as necessary, to have a piece of redstone accessible, then have it go back into the main grid. It should be noted that in larger grids, such as the 900 bit one mentioned, distant repeaters may not update their graphics, making them appear frozen, but the data stream will still get carried on anyways, regardless of the graphics.

Some possible uses of delay line memory include knowing how many times a person walked through a door, or which way (useful for counting players that raided your base in SMP) the intruder went, by having the inside inject a 0b101111101 and the outside pressure plate inject a 0b101000101 data stream into the memory (101 tags indicate that it is a door sequence, or even which door it it, and the 111 or 000 says which way they went). Using this method, if one sees a 0b101000101.......101000101.....101111101.................//................0b101000101.......101000101.....101111101........., he or she can know that one intruder is still in the base.

Another use of these circuits is for strobe light effects. One can imagine lining the edges of their roof and the perimiter of their house/castle and looping the output underground back to the beginning, and adding a temporary lever to use to input a random strobe sequance untill the strand of light is full of a pattern that the user likes, then (s)he removes the lever and watches the strobe light running around their house.

Trivia

 * The block looks like two shortened redstone torches attached to a stone plate, that has the texture of the top of the old stone slab but with an arrow on it that denotes the direction of the current, for simulating diodes.
 * The particles generated when the block is destroyed look like those of a Pumpkin.
 * If a Repeater is in a 2 block high space, like a tunnel, you will crouch automatically as you walk over it. However, you will not crouch if the repeater is blocking the entrance of a tunnel.
 * A Repeater placed directly next to a redstone capable block acts as a NOT NOT gate.
 * You can link many repeaters together by placing a line of redstone on top of any block and then activating the redstone. However it will not work if you do not place the redstone on a block. As seen/used in this video Redstone arrows floor
 * If you save your world then come back to it any chains of redstone repeaters stay in the state of which was logged off. They do not change until a neighbouring block is updated.