- v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
- Use this page to report any issues related to the migration.
Difference between revisions of "v0.34:Repeater"
(→Minecart repeater: A very simple alternative to the multi-part pump repeater for a clock.) |
|||
Line 53: | Line 53: | ||
In the simplest application, a [[Minecart#Roller|roller]] can move a minecart around a circular track. Due | In the simplest application, a [[Minecart#Roller|roller]] can move a minecart around a circular track. Due | ||
to the fixed speed provided by rollers and the deterministic behaviour of minecarts, this | to the fixed speed provided by rollers and the deterministic behaviour of minecarts, this | ||
− | results in a cycle with an absolutely constant repeat time. The exact period of such a powered repeater is relatively easy to regulate by choosing the operation speed of the roller, by adjusting the length of the track and by adding medium- and low-friction [[Minecart#Track stop|track stops]] to reduce movement speed. | + | results in a cycle with an absolutely constant repeat time. The exact period of such a powered repeater is relatively easy to regulate by choosing the operation speed of the roller, by adjusting the length of the track and by adding medium- and low-friction [[Minecart#Track stop|track stops]] to reduce movement speed. |
The [[Minecart#Impulse ramps|impulse ramp]] <s>bug</s> feature allows the design of completely autonomous minecart-based repeaters. Changing the length and friction of the route provides the ability to fine-tune the period of the repeater. | The [[Minecart#Impulse ramps|impulse ramp]] <s>bug</s> feature allows the design of completely autonomous minecart-based repeaters. Changing the length and friction of the route provides the ability to fine-tune the period of the repeater. | ||
Line 60: | Line 60: | ||
See [http://www.bay12forums.com/smf/index.php?topic=126154.0 this forum thread] for a super-compact design. | See [http://www.bay12forums.com/smf/index.php?topic=126154.0 this forum thread] for a super-compact design. | ||
+ | |||
+ | Minecart repeaters can be calibrated to periods usable in the construction of clocks, like 200, 300 or 400 steps. Powered repeaters of this type will require nothing but a single roller and the power to run it, one pressure plate and a bit of space for the track. Repeaters using ramps to create perpetual motion don't need the roller or power but tend to be a bit more difficult to calibrate to useful periods and need additional infrastructure to stop their operation. | ||
==Clock Generation== | ==Clock Generation== |
Revision as of 14:07, 9 September 2013
Part of a series on |
Computing |
---|
Logic: Animal • Creature • Fluid • Mechanical • Minecart |
Components: Adder • Memory • Repeater |
This article is about an older version of DF. |
A repeater is a device which creates a never-ending cyclic on/off signal-- more technically known as an oscillator. The simplest repeater design is simply a dwarf pulling a lever on repeat-- vampires don't even need to take breaks from such a task. However, several automated designs are possible, and they can be made to operate at varying rates. They (usually) use fluid or creatures to trigger pressure plates cyclically.
As a general warning, always have a way to turn off the repeater, and/or allow your dwarves later access for repairs or modifications.
Wave repeater
The simplest (non-borg) repeater is simply a wave traveling through a channel, as described in this forum post.
╔ | ═ | ═ | ═ | ═ | ═ | ═ | ╗ | ╔ | ═ | ═ | ═ | ═ | ═ | ═ | ╗ | |||
║ | ^ | . | . | . | . | . | ║ | - | - | > | ║ | 7 | 7 | 7 | 7 | 7 | 6 | ║ |
╚ | ═ | ═ | ═ | ═ | ═ | ═ | ╝ | ╚ | ═ | ═ | ═ | ═ | ═ | ═ | ╝ |
A single 6/7 water tile flows through the channel, occasionally triggering a pressure plate set to trigger on 0-6/7 water. To get the right amount of water in it, it's simplest to fill it all the way, then designate it as a water source (and perhaps another location as a pond) until a dwarf takes away a single bucket full of water.
As designed (5 tiles of non-triggering water, 1 tile of triggering water), this setup triggers rapidly, on par with the repeaters described below. Counter-intuitively, making it smaller, or removing more water, slows the action of the repeater. This is because the pressure plate never gets a chance to recover from its triggering, for which it needs 100 ticks.
It's possible to make a design that can be easily started and stopped, even one that conserves water, but such systems are complex, when the beauty of this design is its simplicity. If it needs to be stopped for maintenance, one is probably best off simply dropping another bucket of water in it.
Fluid logic repeater
The traditional repeater design is probably this fluid-based one, described on the forum by AncientEnemy):
≈≈≈≈≈ - infinite source of water ═╗≈╔═ - wall to channel out after construction ╠F╣ - shutoff floodgate (linked to exterior lever) ║#║ - 1-tile drawbridge (linked to pressure plate) ║p┼ - pressure plate (set to 7-7 water), and access door ╠F╣ - floodgate (linked to pressure plate) ╚═╝
So long as the shutoff floodgate isn't closed, water from an infinite source flows on to the pressure plate, causing the raising bridge to block access to the water source and destroy water in the circuit, while the opening of the southern floodgate compensates for the space taken up by this bridge. This water destruction mechanic means that, unlike many fluid logic circuits, this repeater needs no drainage. The single pressure plate works both to regulate the repeater, and as output.
This repeater toggles fairly slowly, about once every 300 steps, making it suitable for operating repeating bridges, floodgates, and upright spikes. Off signals tend to follow on signals about 200 ticks later. As an added bonus, the southern wall can be removed and connected to a cistern whose water level will be automatically maintained at a level between 3 and 4 deep-- perfect for swimming!
For an alternate water-based repeater, consider the design at User:SL/Logic_Gates#Repeater which demonstrates a two level, hybrid repeater.
Goblin repeater
Designs based on creature logic are also possible. The following example is compact, reliable, and fairly predictable.
╔ | ═ | ╗ | |||||
═ | ═ | ═ | ╝ | ¢ | ╚ | ═ | ═ |
p | ¢ | ^ | ¢ | ¢ | ^ | ¢ | p |
═ | ═ | ╗ | ¢ | ╔ | ═ | ═ | ═ |
╚ | ═ | ╝ |
A captured goblin placed between the two pressure plates drives this system in his attempts to reach map edge through paths ¢p. ^ is linked to all ¢, and ^ is linked to all ¢, as well as to output. This gives the goblin a path away from his constrained tile every 100 ticks. Delays in picking up path tend to make it run a cycle every 250 ticks. with on and off signals separated by about 120 ticks. Its rate of repetition can be doubled by hooking both ^ to output, although this leads to close placement of on and off signals.
Minecart repeater
In the simplest application, a roller can move a minecart around a circular track. Due to the fixed speed provided by rollers and the deterministic behaviour of minecarts, this results in a cycle with an absolutely constant repeat time. The exact period of such a powered repeater is relatively easy to regulate by choosing the operation speed of the roller, by adjusting the length of the track and by adding medium- and low-friction track stops to reduce movement speed.
The impulse ramp bug feature allows the design of completely autonomous minecart-based repeaters. Changing the length and friction of the route provides the ability to fine-tune the period of the repeater.
See this forum thread for designs tuned for bridge and upright spike traps.
See this forum thread for a super-compact design.
Minecart repeaters can be calibrated to periods usable in the construction of clocks, like 200, 300 or 400 steps. Powered repeaters of this type will require nothing but a single roller and the power to run it, one pressure plate and a bit of space for the track. Repeaters using ramps to create perpetual motion don't need the roller or power but tend to be a bit more difficult to calibrate to useful periods and need additional infrastructure to stop their operation.
Clock Generation
Although the law of big numbers means that, over large enough intervals, the preceding irregular repeaters can be used to run a clock, designs that generate perfect clock signals are also possible.
This mechanical-fluid hybrid repeater will send regular signals at a frequency determined by the speed of pressure plate recovery. The basic design consists of 4 screw pumps and 4 pressure plates but other versions are possible, depending on the number of separate steps you need.
Level 0 | Level -1 | Level -2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
÷÷ is a screw pump which pumps from the light side to the dark side. ^ is a pressure plate which disengages gear ☼ when water of depth 1-7 lands on it. The red, green, blue, and yellow pressure plates and gears are color coded only to show which is linked to which. In the game they'll all look like ^ and ☼. Building a pump after the gear which powers it or a gear after the pressure plate which disengages it will introduce a 1-step delay; so, depending on build order, the repeater might have a period between 400 and 408 steps. If the pumps, gears, and pressure plates are built in that order, then this system will repeat every 400 steps, exactly. Start the repeater by using a pond zone to dump 2 buckets of water onto any one of the plates.
The device as depicted uses 47-62 power during operation, and requires 62 power for startup. Drive train to power may, of course, lead to higher requirements. Once the two units of water are introduced to the system, water is conserved perfectly.
See User:MrFake/NStepCyclicRepeater for generalizable n-step clock generator instructions.
User:Hash/SelfPoweredHaltableRepeater demonstrates clock generation with integrated water reactor.
Forum thread has more description and explanations.
DFMA movie shows the action of pump-based clock generation.
Delay
Clock generation is closely related to the concept of delay: making a signal reach a target a certain amount of time after it is created. Any non-mechanical circuit introduces delay in a signal-- the simplest form of delay is an identity gate. The clock signal generator described above is unique in that it introduces a consistent delay. Any consistent delay can be used for clock generation. There are three known consistent intervals in Dwarf Fortress with which to fashion a clock signal generator: the reset delay associated with a pressure plate sending a close signal; the rate with which a creature falls; and the amount of time that a screw pump will continue to pump after losing power. Any (or all) of these delays can be involved in a clock signal generator.