v50 Steam/Premium information for editors
  • 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.
This notice may be cached—the current version can be found here.

Editing v0.34:Repeater

Jump to navigation Jump to search

Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.

You are editing a page for an older version of Dwarf Fortress ("Main" is the current version, not "v0.34"). Please make sure you intend to do this. If you are here by mistake, see the current page instead.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
{{quality|Exceptional|11:18, 8 March 2011 (UTC)}}{{Computing}}
+
<!-- Comment -->{{quality|Exceptional|11:18, 8 March 2011 (UTC)}}{{Computing}}
 
{{av}}
 
{{av}}
  
In ''Dwarf Fortress''<sup>1</sup>, a '''repeater''' is a device which creates a cyclic pattern of on and off signals. The simplest repeater design is a [[dwarf]] pulling a [[lever]] on [[repeat]]. However, numerous fully-automated designs are possible which can be made to operate at varying rates and linked to other systems for precise timing. Most repeaters use [[minecart]]s, fluids, or creatures to trigger [[pressure plate]]s cyclically.
+
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]]-- [[vampire]]s 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 plate]]s 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.
 
As a general warning, always have a way to turn off the repeater, and/or allow your dwarves later access for repairs or modifications.
 
[1] Everywhere else, a "repeater" is a signal retransmitter, and an "oscillator" or "clock generator" is what this article describes.
 
 
===Lever repeater===
 
A lever with a pull job on repeat provides the simplest repeating cycle. After taking the first job, one dwarf will typically continue to pull the lever until becoming [[hungry]], thirsty, tired, or taking a [[on break|break]], at which point another dwarf will take over. A lever repeater is generally fast (less than 100 ticks per cycle), with varying lengths of inactivity as dwarves switch out. Unfortunately, the cycle length cannot be modified, nor can the repeater be synchronized with other systems. The occasional periods of inactivity can also prove problematic in critical applications, though a [[vampire]] can be significantly more reliable than a group of living dwarves.
 
 
===Traffic repeater===
 
For low-priority tasks, a civilian-triggered [[pressure plate]] built in a hallway of the fortress can provide a simple oscillating signal automatically. The signal from such a repeater varies widely, though it can be adjusted somewhat by choosing hallways with more or less traffic. The lack of precision means that traffic repeaters are best utilized where a task needs to occur occasionally, but the timing is unimportant (such as triggering an [[atom smasher]] at the bottom of a garbage chute).
 
  
 
===Wave repeater===
 
===Wave repeater===
A wave repeater is simply a wave traveling through a channel containing a pressure plate, as described in this [http://www.bay12forums.com/smf/index.php?topic=68659.0 forum post].
+
The simplest (non-borg) repeater is simply a wave traveling through a channel, as described in this [http://www.bay12forums.com/smf/index.php?topic=68659.0 forum] post.
 
{{diagram|spaces=yes|\
 
{{diagram|spaces=yes|\
 
╔══════╗  ╔══════╗
 
╔══════╗  ╔══════╗
Line 24: Line 16:
 
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 [[Activity_zone#Water_source|water source]] (and perhaps another location as a [[Activity_zone#Pit/pond|pond]]) until a dwarf takes away a single [[bucket]] full of water.
 
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 [[Activity_zone#Water_source|water source]] (and perhaps another location as a [[Activity_zone#Pit/pond|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 because the pressure plate never gets a chance to recover from triggering, which takes 100 ticks. Unfortunately, liquids behave semi-randomly, which means the period of this repeater can vary, making it unsuitable for fine timing applications.
+
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.
 
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.
Line 31: Line 23:
 
The traditional repeater design is probably this [[fluid logic|fluid]]-based one, described on the [http://www.bay12games.com/forum/index.php?topic=33563.msg495183#msg495183 forum] by [http://www.bay12games.com/forum/index.php?action=profile;u=16168 AncientEnemy]):
 
The traditional repeater design is probably this [[fluid logic|fluid]]-based one, described on the [http://www.bay12games.com/forum/index.php?topic=33563.msg495183#msg495183 forum] by [http://www.bay12games.com/forum/index.php?action=profile;u=16168 AncientEnemy]):
  
<diagram> [#1:1]≈≈≈≈≈[#]  - infinite source of water
+
≈≈≈≈≈ - infinite source of water
  ═╗[#1:1]≈[#]╔═  - wall to channel out after construction
+
  ═╗≈╔═ - wall to channel out after construction
   ╠[#7:0][@7:1]X[@#]╣  - shutoff floodgate (linked to exterior lever)
+
   ╠F╣  - shutoff floodgate ''(linked to exterior lever)''
   ║#║   - 1-tile drawbridge (linked to pressure plate)
+
   ║#║ - 1-tile drawbridge (linked to pressure plate)
   ║[#5:1]^[#]┼  - pressure plate (set to 7-7 water), and access door  
+
   ║p┼  - pressure plate (set to 7-7 water), and access door
   ╠[#7:0][@7:1]X[@#]╣  - floodgate (linked to pressure plate)
+
   ╠F╣  - floodgate (linked to pressure plate)
 
   ╚═╝
 
   ╚═╝
</diagram>
 
  
 
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.
 
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.
Line 49: Line 40:
 
Designs based on [[creature logic]] are also possible.  The following example is compact, reliable, and fairly predictable.
 
Designs based on [[creature logic]] are also possible.  The following example is compact, reliable, and fairly predictable.
  
<diagram>
+
{{diagram|spaces=yes|\
 
   ╔═╗   
 
   ╔═╗   
═══╝[#FF0]¢[#]╚══
+
═══╝[#FF0]¢╚══
[#F00]p[#FF0]¢^¢[#00F]¢[#F0F][@00F]^[#00F][@]¢[#F00]p[#]
+
[#F00]p[#FF0]¢[#FF0]^[#FF0]¢[#00F]¢[#F0F][#00F]^[#00F]¢[#F00]p
══╗[#00F]¢[#]╔═══
+
══╗[#00F]¢╔═══
   ╚═╝
+
   ╚═╝   }}
</diagram>
 
  
 
A captured goblin placed between the two pressure plates drives this system in his attempts to reach map edge through paths {{Raw Tile|¢p|#F00|#000}}.  {{Raw Tile|^|#FF0|#000}} is linked to all {{Raw Tile|¢|#FF0|#000}}, and {{Raw Tile|^|#F0F|#00F}} is linked to all {{Raw Tile|¢|#00F|#000}}, 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 {{Raw Tile|^|#FFF|#000}} to output, although this leads to close placement of on and off signals.
 
A captured goblin placed between the two pressure plates drives this system in his attempts to reach map edge through paths {{Raw Tile|¢p|#F00|#000}}.  {{Raw Tile|^|#FF0|#000}} is linked to all {{Raw Tile|¢|#FF0|#000}}, and {{Raw Tile|^|#F0F|#00F}} is linked to all {{Raw Tile|¢|#00F|#000}}, 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 {{Raw Tile|^|#FFF|#000}} to output, although this leads to close placement of on and off signals.
Line 61: Line 51:
 
===Minecart repeater===
 
===Minecart repeater===
  
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, a minecart repeater provides 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.  
+
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
 +
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.
  
See [http://www.bay12forums.com/smf/index.php?topic=114695.0 this forum thread] for designs tuned for bridge and upright spike traps, though the images no longer exist.
+
See [http://www.bay12forums.com/smf/index.php?topic=114695.0 this forum thread] for designs tuned for bridge and upright spike traps.
  
 
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.
 
 
Minecart repeaters can also be synchronized with other systems. Adding additional pressure plates to the tracks can allow a single repeater to provide multiple offset signals. Alternatively, a pressure plate can trigger another independently-timed system.
 
  
 
==Clock Generation==
 
==Clock Generation==
Although the law of big numbers means that, over large enough intervals, the abovementioned irregular repeaters (the fluid and goblin logic ones) can be used to run a clock, designs that generate perfect clock signals have been known for a while.
+
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 logic|mechanical]]-fluid hybrid repeater was the first proposed device to produce completely regular signals, at a frequency determined by the speed of pressure plate recovery. The basic design consists of 4 [[screw pump]]s and 4 pressure plates but other versions are possible, depending on the number of separate steps you need.
+
This [[mechanical logic|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 pump]]s and 4 pressure plates but other versions are possible, depending on the number of separate steps you need.
  
  
Line 121: Line 109:
  
 
===Delay===
 
===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 remarkable for introducing a consistent delay.  Any consistent delay can be used for clock generation.  Before the introduction of minecarts, there were 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 [[gravity|falls]]; and the amount of time that a screw pump will continue to pump after losing power.   
+
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 [[gravity|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.
  
  
 
{{Category|Constructions}}
 
{{Category|Constructions}}
 
{{Category|Computing}}
 
{{Category|Computing}}

Please note that all contributions to Dwarf Fortress Wiki are considered to be released under the GFDL & MIT (see Dwarf Fortress Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel Editing help (opens in new window)

Templates used on this page: