Two-hopper piston clock
Create a repeating interval from alternating item transfer.
Layout
How it works
Two opposing hoppers exchange four items while a movable redstone block locks one hopper at a time. The pistons change ends when a hopper empties. Pause locks both hoppers; releasing it resumes the transfer. Reset restores four items. Changing the item count changes the timing and needs a new period measurement. With four items, the occupancy output repeats every 52 game ticks: strength 1 for 50 ticks and 0 for 2. It is a narrow empty-hopper marker, not a symmetric square wave.
- Two opposing hoppers exchange four items while a movable redstone block locks one hopper at a time.
- Comparator readings drive the pistons to exchange the locked side. The Pause lever locks both hoppers; releasing it resumes the process.
Timing
Measured at the output: a period of 52 game ticks (2.60 s), 50 ticks high and 2 low, repeating for the 600 ticks the test watches.
Inputs and outputs
- InputPause (x 4, y 0, z 3)
- Inputtimer items (4 initially) (x 4, y 0, z 0)
- Outputleft hopper occupancy signal (x 2, y 1, z 0)
Blocks you need
6 × redstone dust, 4 × stone, 2 × hopper, 2 × comparator, 2 × sticky piston, 2 × repeater, 1 × redstone block, 1 × lever.
Build it in the game: 21 commands
Relative to where you stand, with x running east and z running south. Paste one line at a time into chat, or into a chain of command blocks. The block art is the game's own; the layout is what the page above shows.
setblock ~4 ~0 ~0 minecraft:hopper[facing=east] setblock ~5 ~0 ~0 minecraft:hopper[facing=west] setblock ~3 ~0 ~0 minecraft:comparator[facing=east,mode=compare] setblock ~6 ~0 ~0 minecraft:comparator[facing=west,mode=compare] setblock ~2 ~0 ~0 minecraft:stone setblock ~7 ~0 ~0 minecraft:stone setblock ~2 ~1 ~0 minecraft:redstone_wire setblock ~1 ~0 ~0 minecraft:stone setblock ~1 ~1 ~0 minecraft:redstone_wire setblock ~7 ~1 ~0 minecraft:redstone_wire setblock ~8 ~0 ~0 minecraft:stone setblock ~8 ~1 ~0 minecraft:redstone_wire setblock ~3 ~1 ~0 minecraft:sticky_piston[facing=east] setblock ~6 ~1 ~0 minecraft:sticky_piston[facing=west] setblock ~4 ~1 ~0 minecraft:redstone_block setblock ~4 ~0 ~3 minecraft:lever[face=floor,facing=north,powered=false] setblock ~4 ~0 ~2 minecraft:redstone_wire setblock ~5 ~0 ~2 minecraft:redstone_wire setblock ~4 ~0 ~1 minecraft:repeater[facing=south,delay=1] setblock ~5 ~0 ~1 minecraft:repeater[facing=south,delay=1] item replace block ~4 ~0 ~0 container.0 with minecraft:stone 4