Minecraft wiki entry for Hopper_clocks, associated text: When the items finish moving in one direction, the empty hopper's comparator turns off, allowing the associated sticky piston to pull the block of redstone to the other hopper, reversing the direction of item movement. The movement of the block of redstone also updates the other sticky piston (which has been powered for a while) causing it to extend and prevent the first sticky piston from extending again when its comparator turns back on.