<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.factorio.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Glek</id>
	<title>Official Factorio Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.factorio.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Glek"/>
	<link rel="alternate" type="text/html" href="https://wiki.factorio.com/Special:Contributions/Glek"/>
	<updated>2026-06-09T21:29:49Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Tutorial:Circuit_network_cookbook&amp;diff=217646</id>
		<title>Tutorial:Circuit network cookbook</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Tutorial:Circuit_network_cookbook&amp;diff=217646"/>
		<updated>2026-04-03T04:15:50Z</updated>

		<summary type="html">&lt;p&gt;Glek: Restore the belt latch chunk which I accidentally somehow deleted. Oops, sorry!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{cleanup|Combinator GUI and circuit network changed in 2.0}}&lt;br /&gt;
&#039;&#039;This is a &#039;&#039;&#039;beginners&#039;&#039;&#039; tutorial. See also the [[Circuit network]] page for an overview over the circuit network and the [[Tutorial:Combinator tutorial]] for an advanced tutorial.&#039;&#039;&lt;br /&gt;
{{Languages}}&lt;br /&gt;
&lt;br /&gt;
== Foreword == &lt;br /&gt;
This page provides examples of simple circuit network designs and some not so simple designs that others can use, combine and modify. They are designed to be as easy to understand as possible.  To see the settings of combinators without opening them, the option &amp;quot;Show combinator settings in &amp;quot;Alt-mode&amp;quot;&amp;quot; in the Interface/Alt-mode settings has to be checked and &amp;quot;Alt-mode&amp;quot; has to be turned on.&lt;br /&gt;
&lt;br /&gt;
== Lights ==&lt;br /&gt;
[[File:LightWiredToChest.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Lamp showing chest content condition ===&lt;br /&gt;
&lt;br /&gt;
This is one of the simplest possible use of circuit-network. A [[lamp]] is lit depending on the number of goods (in this example empty barrels) in a chest.&lt;br /&gt;
&lt;br /&gt;
==== Setting up circuit connection ====&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* The lamp is connected to the chest.&lt;br /&gt;
* The lamp is set to light if the chest contains less than 10 empty barrels.&lt;br /&gt;
&lt;br /&gt;
==== To set the light condition ====&lt;br /&gt;
* Open the lamp (left click on it).&lt;br /&gt;
* Set the input to barrels.&lt;br /&gt;
* Set the operator to &amp;lt; (less than).&lt;br /&gt;
* Set the constant number:&lt;br /&gt;
** Left click on the constant number&lt;br /&gt;
** Move the slider until 10 is shown, or edit the value box directly.&lt;br /&gt;
** Press set.&lt;br /&gt;
&lt;br /&gt;
Depending on the condition you set, the lamp may light if the chest is empty, or if it contains the required quantity of items.&lt;br /&gt;
&lt;br /&gt;
The drawback with this scenario is that the lamp has a white light , and is therefore difficult to differentiate from an ordinary lamp at night.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:ConditionalLights.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Conditional Lights ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* In this circuit we connect a series of [[lamp]]s to a [[storage tank]].&lt;br /&gt;
* By setting different conditions on each lamp we can build an indicator strip. &lt;br /&gt;
* The Enabled condition of the first lamp is &#039;&#039;&#039;Petroleum gas &amp;gt; 100&#039;&#039;&#039;.&lt;br /&gt;
* The others light up when gas is greater than 200, 300, 400 and 500 respectively.&lt;br /&gt;
&lt;br /&gt;
In this setup you can connect the storage tank to the lamps directly.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:ColoredLights.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Colored Lights ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
While after 2.0, a [[lamp]]&#039;s color can be changed in its gui, it can also be connected to a circuit network for various purposes. To allow the circuit network to modify its color, you need an intermediate device like an [[arithmetic combinator]] that can send a color signal.  &lt;br /&gt;
Instead of directly connecting the [[lamp]] and the [[Storage tank]] you need:&lt;br /&gt;
# Add the arithmetic combinator.&lt;br /&gt;
# Connect the [[storage tank]] with the input of the  arithmetic combinator.&lt;br /&gt;
# Connect the  output of the [[arithmetic combinator]] with the lamp.&lt;br /&gt;
# Set up the arithmetic combinator:&lt;br /&gt;
## Setting the input to petroleum Gas + 0 (the constant 0 not the signal 0)&lt;br /&gt;
## Set the output to the pink signal (on the bottom row of the last tab of signals.)&lt;br /&gt;
# Set up the [[lamp]]:&lt;br /&gt;
##  Select the &amp;quot;Use colors&amp;quot; check box on the lamp.&lt;br /&gt;
## Set the condition to the pink signal, and what value you want (i.e. &amp;gt; 100)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Oil Setups ==&lt;br /&gt;
Balancing the production of petroleum gas, light oil and heavy oil is one of the most important use cases of the circuit network.&lt;br /&gt;
&lt;br /&gt;
[[File:LgtOilCracking.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Light Oil Cracking ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* This circuit provides balanced light oil and petroleum gas production by cracking excess light oil into gas. &lt;br /&gt;
* The [[pump]] is connected to the [[storage tank]] by a [[red wire]]. &lt;br /&gt;
* The pump has an enabled condition set to &#039;&#039;&#039;Light Oil &amp;gt; 20000&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:HvyOilCracking.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Heavy Oil Cracking ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* This circuit extends on the previous circuit by adding optional heavy oil cracking to provide lubricant etc.&lt;br /&gt;
* The pump has an enabled condition set to &#039;&#039;&#039;Heavy oil &amp;gt; 20000&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=== Alternative Setup for Cracking and Lubricant Production ===&lt;br /&gt;
This setup compares different fluid levels to each other instead of checking fixed values. It offers some guarantees such as petroleum gas being produced when you have light oil to spare, and light oil not being cracked when you have plenty of petroleum gas, and similar rules for heavy oil cracking and lubricant production. &lt;br /&gt;
&lt;br /&gt;
[[File:oil-single-cct.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
It takes 4 steps:&lt;br /&gt;
&lt;br /&gt;
# Have a fluid tank for heavy oil, light oil, petroleum gas, and lubricant. For each fluid, make sure to connect the tank via pipes to every location where the fluid is being produced or consumed.&lt;br /&gt;
# For each chemical plant (or each row of them, if you use rows) add a pump to the non-water fluid input pipe to make it possible to block the flow. Note: Alternatively, the blocking pumps could be added to the chemical plant output pipes, but there is no need to add pumps to both inputs and outputs.&lt;br /&gt;
# Connect every pump and every fluid tank to a single circuit network of red (or green) wire. The resulting circuit network will know about the fluid level in every storage tank and pass this information to every pump.&lt;br /&gt;
# For each connected pump set the circuit “enable condition” to &amp;quot;[input fluid] &amp;gt; [output fluid]&amp;quot; , for its respective chemical plant recipe. E.g. set &amp;quot;heavy oil &amp;gt; light oil&amp;quot; for the heavy oil cracking input pump, set &amp;quot;heavy oil &amp;gt; lubricant&amp;quot; for the lubricant production input pump, and set &amp;quot;light oil &amp;gt; petroleum gas&amp;quot; for the light oil cracking input pump.&lt;br /&gt;
&lt;br /&gt;
Done! Now all the pumps will move to equalize the fluid levels to each other. This will prevent fluid system deadlocks where you have plenty of one fluid but you are unable to make any of the other.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
[[file:MulitipleChestsAndPoles.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Multiple Storages ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* If you connect multiple chests to a pole, the pole displays the sum of items in all the chests.&lt;br /&gt;
* This also works with [[storage tank]]s and [[roboport]]s.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:ConstantComb.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Constant Combinator ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* With a [[constant combinator]] you can generate any signals you may need. &lt;br /&gt;
* In this example we have generated a signal of 50 Laser turrets and 200 Piercing round magazine. &lt;br /&gt;
* Constant combinators are not of much use on their own but we shall use them later.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:ThisASign.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Constant Combinator Signs (Words) (Pointless as of 2.0) ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* You can use [[constant combinator]]s to make signs, just set the letter signals in the combinator, each combinator can display 2 characters side by side.&lt;br /&gt;
* Note that to see these letters, Alt-mode must be on and the Interface setting “Show combinator settings in “Alt-Mode”” must also be enabled.&lt;br /&gt;
* As of the 2.0 update, these signs have become obsolete due to the addition of [[Display_panel|Display panels]], as text on display panels is always visible.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:constant_combinator_signs2.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Constant Combinator Signs (Managing Belts) ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* Somewhat similar to the previous example, constant combinator signals can be used with belts to help indicate what items should be on which belts. This is extremely useful when sharing blueprints, as it&#039;s possible for blueprints to be shared albeit with no indication on which items are meant for which belts.&lt;br /&gt;
* Note again that [[Display_panel|Display panels]] are more useful here as of the 2.0 update.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:MemoryCell.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Memory Cell / Counter ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* Basic memory cell that counts all the items moved by the inserter&lt;br /&gt;
* The [[fast inserter]] is connected to &#039;&#039;&#039;BOTH&#039;&#039;&#039; ends of the arithmetic combinator.&lt;br /&gt;
* If the fast inserter hasn&#039;t picked anything up this tick the input to the Arithmetic combinator is the same as and output and hence the values are persisted. &lt;br /&gt;
* When the fast inserter does pick something up its value is added to the output from the previous tick thus incrementing that item.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Inserters ==&lt;br /&gt;
[[File:LimitItemsPlacedIntoAChest.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Limit items placed into a chest ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
*  The [[inserter]] is connected to the [[wooden chest]] using a [[red wire]]. &lt;br /&gt;
*  The inserter&#039;s enabled condition is &#039;&#039;&#039;Advanced Circuit &amp;lt; 10&#039;&#039;&#039;. &lt;br /&gt;
*  In reality this means the inserter may place more than 10 Advanced circuits in the chest because it could pick up to 3 at once due to stack size bonuses.&lt;br /&gt;
*  This effect can be even greater with Stack inserters because of their large carrying capacity. &lt;br /&gt;
*  This technique still gives far greater control than limiting the inventory on the chest.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:BalancedChestInsert.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Balanced chest insert ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
Goal: Load n chests with approximately the same number of items. This can be used for train stations: [https://www.reddit.com/r/factorio/comments/4e03g2/madzuris_smart_loading_train_station_guide/ MadZuri&#039;s smart loading train station]&lt;br /&gt;
*  Place n chests and n inserters. &lt;br /&gt;
*  Place 1 [[arithmetic combinator]]&lt;br /&gt;
*  Set the combinator to take Each (yellow star) and divide by the negative number of chests. ie &amp;amp;minus;n.&lt;br /&gt;
*  Connect all chests to each other and to the input of the combinator using red wire.&lt;br /&gt;
*  Connect all inserters to each other and to the output of the combinator using red wire.&lt;br /&gt;
*  Connect each inserter to the box it inserts into with green wire.&lt;br /&gt;
*  Set the enable condition on each inserter to be Everything (red star) &amp;lt; 0.&lt;br /&gt;
&lt;br /&gt;
The combinator calculates the average number of items in the chests, and makes it negative. Each inserter gets the amount in the chest it is inserting to and adds the negative average, i.e. it calculates how many more than the average it has in its chest. Thus if that number is negative, it has less than the average in the chest and it enables. &lt;br /&gt;
&lt;br /&gt;
Due to inserter stack bonus the count is not exact. If a precise count is needed, set the inserter stack size to 1.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:SmartOutpostUnloader.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Keeping outpost stocked with specified items ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
*  This circuit keeps a [[storage chest]] at an outpost stocked with customized levels of different items. &lt;br /&gt;
*  For example you could keep an outpost stocked with 50 laser turrets and 200 piercing magazine rounds but not have to worry about it being over filled. &lt;br /&gt;
*  The [[storage chest]] is attached to the input of the [[arithmetic combinator]] (left side in the picture) with a [[red wire]]. &lt;br /&gt;
*  Another couple of [[red wire]]s join the output of the [[arithmetic combinator]] (right side) to the [[constant combinator]] and to the [[stack filter inserter]]. &lt;br /&gt;
*  The [[arithmetic combinator]] &#039;&#039;&#039;multiplies&#039;&#039;&#039; each input value (from the storage chest) by &#039;&#039;&#039;-1&#039;&#039;&#039;. &lt;br /&gt;
*  Finally the filter stack inserter&#039;s mode of operation is set to &#039;&#039;&#039;Set filters&#039;&#039;&#039;.&lt;br /&gt;
*  So the input to the [[stack filter inserter]] is &#039;&#039;&#039;&amp;lt;constant combinator&amp;gt; - &amp;lt;storage chest contents&amp;gt;&#039;&#039;&#039; and the filter is set to filter for the first item by inventory order.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:SolarAccumalatorBalancer.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Balanced Solar panel / Accumulator Production ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* This circuit balances production of [[solar panel]]s and [[accumulator]]s to a desired ratio in my case 24:20.&lt;br /&gt;
* The first [[arithmetic combinator]] takes the number of accumulators in the chest and &#039;&#039;&#039;multiplies&#039;&#039;&#039; it by &#039;&#039;&#039;24&#039;&#039;&#039;. &lt;br /&gt;
* The second [[arithmetic combinator]] takes the output of the first combinator and &#039;&#039;&#039;divides&#039;&#039;&#039; it by &#039;&#039;&#039;20&#039;&#039;&#039;. &lt;br /&gt;
* This gives us the number of accumulators that we can directly compare to the number of Solar panels in both inserters. &lt;br /&gt;
* If the number of accumulators is greater we enable the Solar panels inserter, if the number of Solar panels is greater we enable the accumulators inserter. &lt;br /&gt;
* However, if they are equal, neither machine does anything. So we add a single accumulator to one of the inserters using a constant combinator and a wire of the other color, therefore breaking the deadlock.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Sushi Belts ==&lt;br /&gt;
[[File:SushiScience1.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Reading Belt Design ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* Six belts in a row are connected with Red wire and set to &#039;&#039;&#039;Read belts contents&#039;&#039;&#039; and &#039;&#039;&#039;Hold&#039;&#039;&#039; &lt;br /&gt;
* Note: Instead of using six belts all set to &#039;&#039;&#039;hold&#039;&#039;&#039;, only one can be used, and set to &#039;&#039;&#039;Hold (all belts)&#039;&#039;&#039; for simplicity&lt;br /&gt;
* This [[red wire]] is then connected to the inserters that insert onto the belt. &lt;br /&gt;
* Read hand contents is unselected for all inserters.&lt;br /&gt;
* Mode of operation is set to &#039;&#039;&#039;Enable/Disable&#039;&#039;&#039; on all inserters. &lt;br /&gt;
* The first inserter is enabled when &#039;&#039;&#039;Automation science pack = 0&#039;&#039;&#039;&lt;br /&gt;
* The other inserters are set similarly for the other science packs.&lt;br /&gt;
* When using &#039;&#039;&#039;Hold (all belts)&#039;&#039;&#039;, the amount required for enabling the inserters varies, but 30 is a good number.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:SushiScience2.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Memory Cell Design ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* This recipe produces a rolling sum of the number of items of each type, as they added or removed from a looping conveyor belt. Inserters placing items onto the belt can use this sum to turn on or off as needed. &lt;br /&gt;
* It achieves this through two networks, one red (subtraction) and one green (addition), connected to their own inserters, and two arithmetic combinators: one basic [[arithmetic combinator]] to do the subtraction, and one memory cell, to update and persist the values.&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
* Each inserter that takes items &#039;&#039;&#039;from&#039;&#039;&#039; the belt is connected with Red wire. Each of these inserters is set to &#039;&#039;&#039;Mode of operation: None&#039;&#039;&#039;, &#039;&#039;&#039;Read hand contents is checked&#039;&#039;&#039;, and Hand read mode is set to &#039;&#039;&#039;Pulse&#039;&#039;&#039; (sends 1 each time an item is picked up). &lt;br /&gt;
* These red wire inserters are connected to the input of the subtraction arithmetic combinator, in this example, it is the one on the left.&lt;br /&gt;
* The left [[arithmetic combinator]] multiples &#039;&#039;&#039;each&#039;&#039;&#039; input by &#039;&#039;&#039;-1&#039;&#039;&#039; and outputs it to &#039;&#039;&#039;each&#039;&#039;&#039;. This subtracts 1 each time an inserter removes an item from the belt, for the specific type of item taken.&lt;br /&gt;
* The right [[arithmetic combinator]] is the &#039;&#039;&#039;memory cell&#039;&#039;&#039;.&lt;br /&gt;
* The memory cell&#039;s input is connected to: 1. A green wire network of inserters placing items onto the belt (the addition), 2. The output of the left [[arithmetic combinator]] (the subtraction).&lt;br /&gt;
* The memory cell&#039;s output should be connected to its input, so that each time an update is sent from either the addition network (green wire) or subtraction network (red wire), the updated value is persisted.&lt;br /&gt;
* When a Green wire inserter adds an item to the belt, that item&#039;s count in the memory cell is increased by 1.&lt;br /&gt;
* The inserters that place items onto the belt (green wire) should be set to: &#039;&#039;&#039;Enable/disable&#039;&#039;&#039;, &#039;&#039;&#039;Read hand contents is checked&#039;&#039;&#039; and &#039;&#039;&#039;Hand read mode is set to Pulse&#039;&#039;&#039;.&lt;br /&gt;
* The &#039;&#039;&#039;Enable/disable&#039;&#039;&#039; condition is set based on the number of items you&#039;d like picked up by the red wire inserters, e.g. Automation science pack &amp;lt;= 16 (one pack for each lab in the example shown here).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Power ==&lt;br /&gt;
[[File:SteamBackup.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Backup steam power ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* The [[steam engine]]s are not directly connected to the power network. They are connected to the power network through a [[power switch]]. &lt;br /&gt;
* The [[power switch]] is connected to one of the [[accumulator]]s in the main network. &lt;br /&gt;
* The [[power switch]] turns on when A &amp;lt; 10. That is when the [[accumulator]]s are less than 10% full.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=== Optimal usage of fuel for nuclear power ===&lt;br /&gt;
Unlike the normal steam power that adjusts fuel usage based on power usage, the [[Power_production#Nuclear_power|nuclear reactors]] spend fuel in fixed units of time. To be exact, the consumption of 1 fuel cell takes exactly 200 seconds.&lt;br /&gt;
&lt;br /&gt;
Combined with the fact that creating the nuclear fuel cells are time consuming and expensive to create, it is therefore beneficial to optimize their use to match the actual consumed power.&lt;br /&gt;
&lt;br /&gt;
[[File:NuclearCircuits.png|border|left|430px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
This picture shows a setup with 4 reactors, that spend only 1 fuel cell each whenever steam runs low.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Note: The GUI in the image above has been altered to make sure all important info fits within the image size.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There are a few elements in this setup:&lt;br /&gt;
* Storage tank that provides the [[steam]] signal.  You should only read from one storage tank, and it should have pipe connections to all your other steam storage tanks.&lt;br /&gt;
* Chests containing [[uranium fuel cell]]s for the reactor.&lt;br /&gt;
* Output inserter that takes [[Used_up_uranium_fuel_cell|empty fuel cells]] from the reactor. This is connected to the storage tank to listen for the steam signal, and to the chests to listen for the uranium fuel cell signal. If the steam level is low and there are uranium fuel cells available, it removes the empty fuel cells from the reactor and sends an empty fuel cell signal (since &amp;quot;Read hand contents&amp;quot; is checked).&lt;br /&gt;
* Input inserter that put uranium fuel cells into the reactor. This is connected to the output inserter and listens for the empty fuel cell signal. The &amp;quot;Override stack size&amp;quot; is set to 1, so that it only inserts 1 fuel cell at a time.&lt;br /&gt;
* If you are using multiple reactors you should only wire one output inserter to one steam tank, and then connect all input inserters to the single output inserter. This will synchronize fuel insertion to maximize the reactor neighbour heat bonus. The other reactors can have &amp;quot;dumb&amp;quot; output inserters that remove [[Used_up_uranium_fuel_cell|empty fuel cells]] immediately.&lt;br /&gt;
&lt;br /&gt;
Since this design uses empty fuel cells as a signal to fill the reactor, you need to manually insert 1 uranium fuel cell into the reactor to get it started.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prioritize usage of uranium towards nuclear fuel production ===&lt;br /&gt;
Because a continuous supply of [[uranium fuel cell]]s is critical to maintaining a [[nuclear reactor]], the circuit network can be used to set up a system where [[uranium-235]] and [[uranium-238]] are conserved for the production of nuclear fuel before other uses.&lt;br /&gt;
&lt;br /&gt;
[[File:Nuclear Fuel Circuit Network.png|border|left|430px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using a [[splitter]], divert the two types of uranium onto two parallel conveyors, with an [[inserter]] positioned to gather uranium from each conveyor (a [[long-handed inserter]] will be needed for the far belt). Each of these inserters deposits their load into a container, from which two more inserters deliver the contents to an [[assembling machine]] making nuclear fuel. An inserter delivers the produced fuel to a third container, from which inserter(s) delivers the fuel to your nuclear reactor. Wire the two inserters gathering from the conveyors to the container each of them is delivering to, and to the tile of conveyor immediately after the tile the inserter is gathering from. Set each inserter&#039;s enable condition to &amp;quot;less than or equal to X amount of uranium&amp;quot;, using the appropriate type of uranium the inserter is gathering and X being the number of reserve uranium desired (optimally, one uranium-235 and nineteen uranium-238, the amount needed to produce nuclear fuel; the amount may be increased if a greater stockpile is desired). Set each conveyor&#039;s enable condition to &amp;quot;greater than or equal to X amount of uranium&amp;quot; in the same manner. Finally, connect the inserters delivering uranium to the assembly machine up to the container the assembly machine is delivering nuclear fuel to, and set each of their enable conditions to &amp;quot;nuclear fuel = 0 (the enable condition can be set to &amp;quot;less than or equal to X amount of nuclear fuel&amp;quot; if a larger stockpile is desired).&lt;br /&gt;
&lt;br /&gt;
This set-up accomplishes the following:&lt;br /&gt;
&lt;br /&gt;
* When there is sufficient nuclear fuel and uranium stockpiled, the inserters will deactivate and the conveyors activate, allowing the uranium to continue down the conveyors to other facilities.&lt;br /&gt;
* When the nuclear fuel stockpile hits zero (or decreases below the desired amount), the inserters delivering to the assembly machine will activate and deliver uranium to resume production of nuclear fuel until quota is reached again.&lt;br /&gt;
* When there is not enough uranium stockpiled to produce a batch of nuclear fuel, the inserters gathering uranium will activate and and resume gathering uranium until they reach their quota. The conveyors carrying uranium will stop past the inserters, cutting off other facilities from that type of uranium until its respective inserter reaches quota.&lt;br /&gt;
* The assembly machine will only be provided with uranium when the stockpile of nuclear fuel hits zero (or decreases below the desired amount), preventing over-production of nuclear fuel and thus over-consumption of uranium.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Railway network ==&lt;br /&gt;
=== Set train routing ===&lt;br /&gt;
The circuit network can be used to allow deeper micromanagement of [[train]]s. Circuits can be used to adjust train limits for [[Train stop|stops]], effectively disabling a stop when a resource is not available for loading, or if an unloading station already has more than enough of a resource. Note that adjusting train limits runs into fewer problems than fully enabling/disabling stops; see [https://factorio.com/blog/post/fff-361 Friday Facts #361 - Train stop limit, Tips and tricks] and the [[Train stop]] page for additional information about using train limits.&lt;br /&gt;
&lt;br /&gt;
=== Player safety ===&lt;br /&gt;
The circuit network can be used to ensure the player&#039;s safety when crossing train tracks so they do not get hit. Place [[gate]]s at designated crossing areas and connect an adjacent [[wall]] to [[rail signal]]s near the gate. Set the gate to &amp;quot;read sensor&amp;quot; and the signal to &amp;quot;close signal&amp;quot; with the condition being the signal the gate sends out being &amp;quot;1&amp;quot;. This means that when the gate is closed, the signal will be green and trains can pass freely, but when the player approaches the gate and it opens for them, the train signal will be turned red and trains will be stopped until the player clears the area.&lt;br /&gt;
&lt;br /&gt;
Alternatively, this system can be reversed - by setting the gate to &amp;quot;open gate&amp;quot; and the train signal set to &amp;quot;read signal&amp;quot;, the gate will remain open normally and will close when a train is approaching, preventing the player from crossing until it is safe.&lt;br /&gt;
&lt;br /&gt;
In lieu of gates, the player can connect a [[programmable speaker]] to the train signals to broadcast a warning siren when a train is approaching the area.&lt;br /&gt;
&lt;br /&gt;
== Latches ==&lt;br /&gt;
=== RS latch - single decider version ===&lt;br /&gt;
[https://forums.factorio.com/viewtopic.php?f=193&amp;amp;t=14556 This discussion] on the Factorio forums starts with the common 2 decider RS latch version, but later a [https://forums.factorio.com/viewtopic.php?p=111192#p111192 single decider version was proposed]. The thread [https://forums.factorio.com/viewtopic.php?p=160896#p160896 goes on to explain] why this is better. In the thread, the latch is described as an SR latch. However, when both inputs are true, the latch will reset, so it is an RS latch.&lt;br /&gt;
&lt;br /&gt;
=== SR latch ===&lt;br /&gt;
In 2.0, an SR latch can be accomplished in a single decider combinator with many combinations of set and reset conditions. This latch, for example will set if the steam levels or the accumulator levels fall too low, and will reset when both levels recover. This is an SR latch; if both inputs are true, the latch will set.&lt;br /&gt;
[[File:SR-Multi-condition.png|border|left|430px]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=== Backup steam example ===&lt;br /&gt;
This example will turn on the steam generator when the Accumulator charge drops to 20%, but will &amp;quot;latch&amp;quot; (remember) the On state until the accumulator is charged to 90%.&lt;br /&gt;
&lt;br /&gt;
Latching is used to introduce [[Wikipedia:hysteresis|hysteresis]] and avoid the power switch rapidly cycling on and off (as the accumulator falls to 19%, charges to 20%, falls to 19% and so on). &lt;br /&gt;
[[File:SR-01-Layout.png|border|left|430px]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
{{BlueprintString|bp-string=0eNqllMmO2zAMht+FZ2UQx0trHwr0GXoMAkO2mRkBWgwtyQSB330oJXGKxmg604tNUdQnkr+kM3Qy4GiF9tCcQfRGO2i2Z3DiVXMZfZorhAacR65WqF+FRpgYCD3gOzTZtGOA2gsv8LIyDU6tDqpDSwHsRlA4iEAIib23ol+NRiIwGI2jxUbHvQhY5C8lgxMZ9Us5TewBuPkksMyeAPMZ6BSX8inv+xNeMfN43wcVJPfGLhRaJ0qZUTOp7d4a2Xb4xg+CoinEBD8G396F8KcxQg/C+kCee9YpYvUTpqVsyjluwF4MaFe9UZ3Qy0mV+TUpKo3BICy1Is0Wy0lemS3NDYnjovf3EZ2IvbDuc4WkzZzn8VRu1rGq/2PUX2H8ujDUyG1qVgM/4ObA9rqY6wHiFbio9efd+bcdxhP1L2jf7q1RrdAEgmbPpcNpt6hpNYNGcyRF3VH4/m1BzervR6wXtg/Ct6h5J3GAxtuAbHbPMsbYrzXvJsD6oZNUF1zybinG463ix2q/scU36KHaan29mAunN0p0pHEUaJuxkm1YuWNb+rIqWXmyKrIKFuczslIUK5JV0OxmRxThUVEq92eTwQGtS9uU1aYu6pp+eZ1X+TR9AMRRzM0=}}&lt;br /&gt;
{{clear}}&lt;br /&gt;
[[File:SR-02-Accumulator.png|border|left|430px]]&lt;br /&gt;
Accumulator outputs the current charge level as % on signal [[File:Signal-A.png|21px]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
[[File:SR-04-SRLatch.png|border|left|430px]]&lt;br /&gt;
The decider sets and latches the Set signal [[File:Signal-S.png|21px]] when the accumulator falls below 20%, and unlatches when the accumulator reaches 90%.&amp;lt;br /&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
[[File:SR-05-PowerSwitch.png|border|left|430px]]&lt;br /&gt;
The Power switch isolates the generator from the rest of the factory until [[File:Signal-S.png|21px]] = 1&lt;br /&gt;
{{clear}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[File:BeltLatch.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Belt only latch ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* To make it work, &#039;&#039;&#039;3&#039;&#039;&#039; pieces of raw wood must be placed on the inside lane of the belt.&lt;br /&gt;
* It will have higher latency than the combinator version, but in most situations you will not notice the difference.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=== Toggle Latch ===&lt;br /&gt;
&lt;br /&gt;
[[File:ToggleLatch2.0.png|thumb|left|430px|The wiring setup for the toggle latch.]]&lt;br /&gt;
[[File:ToggleLatch2.0_Settings.png|thumb|left|430px|The decider combinator settings.]]&lt;br /&gt;
[[File:ToggleLatch2.0_InputSettings.png|thumb|left|430px|The required inputs.]]&lt;br /&gt;
&lt;br /&gt;
A variant of a SR latch that toggles between two states on receiving the leading edge of the given input signals.&lt;br /&gt;
&lt;br /&gt;
Both input signals are required to cause the latch to toggle.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Displays ==&lt;br /&gt;
[[File:5digitDisplay.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Numerical Display ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* Each digit is driven by its own [[green wire]], that wire holds 15 signals, one for each lamp used in the digit.&lt;br /&gt;
* [[constant combinator]]s are used to define which lamp should light up for each value.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:BWDisplay.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Black and White Grid Display ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* Each row has its own [[red wire]] connection and within that row each light has a numbered signal 0-9.&lt;br /&gt;
* We turn each light on by just setting or clearing the relevant signal.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:MultiColoredDisplay.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Multicolor Display by DaveMcW ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* To understand how this works, you first need to understand how color lights choose which color to light up when there are multiple colored signals. &lt;br /&gt;
* The [[lamp]] will light up with the colored signal that is greater than zero and earliest in this list: red, green, blue, yellow, pink, cyan, white.  &lt;br /&gt;
* We have a [[red wire]] per column, that wire has each of the colored signals on it at different values and a numbered signal for each row. &lt;br /&gt;
* There is a [[arithmetic combinator]] for each cell that subtracts the &amp;quot;row&amp;quot; value from each of the colored signals. &lt;br /&gt;
* And this enables us to choose the color for each cell. &lt;br /&gt;
* Simple!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Setting Recipes ==&lt;br /&gt;
[[File:MultipleItemAssembler.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Multiple Item Assembling Machine ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* This circuit design allows a user to have a single [[assembling machine]] produce several different items that all use mostly the same ingredients. This is a convenient way to avoid routing the same set of inputs to multiple assembly machines for items that need automated, but not constant production. For example, [[medium electric pole]]s and [[big electric pole]]s share the same ingredients, or the [[pumpjack]], [[oil refinery]], and [[chemical plant]] take mostly the same inputs.&lt;br /&gt;
* To use this, the player opens the [[constant combinator]] and selects which items and what quantities to make.&lt;br /&gt;
* This signal goes into the green wire input of the [[decider combinator]], where it is compared to the quantity of items in the logistics chest connected to the combinator input on the red wire.&lt;br /&gt;
* The decider combinator uses the &amp;quot;each&amp;quot; signal, so each signal on the green wire is compared to each signal on the red wire, and if there are fewer of any item in the chest than are set by the constant combinator, the decider combinator will output a signal on that item&#039;s channel.&lt;br /&gt;
* The assembling machine then is configured to set the recipe based on incoming signals and so will produce whatever items are needed to fulfill the settings on the constant combinator.&lt;br /&gt;
* The assembly machine outputs items to the steel chest, which then loads them into the requester chest, which feeds back into the assembly machine. This is because when a new recipe is loaded, any extra input items of the previous recipe must be unloaded from the machine, and this loop will supply those unloaded items back into the assembly machine, otherwise input materials will fill up the output storage, preventing new items from being produced.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Signal Switch ==&lt;br /&gt;
&lt;br /&gt;
=== Simple Signal Switch ===&lt;br /&gt;
[[File:Factorio signal switch edit.png|430px|border|left|alt=combinator settings for a simple signal switch]]&lt;br /&gt;
* With the advent of complex conditionals, it is possible to have a single [[constant combinator]] + [[decider combinator]] output any arbitrary signal from any conditional block&lt;br /&gt;
* This relies the behavior of the &#039;&#039;&#039;each&#039;&#039;&#039; signal.  If the &#039;&#039;&#039;each&#039;&#039;&#039; signal is used in an input condition, then it can be used as the output signal as well.&lt;br /&gt;
* To start, we&#039;ll define all of the signals we may want to output in the constant combinator, and give them each a unique value.  If circumstances dictate that you cannot dedicate one of the decider&#039;s input wires to just the constant combinator, you may want to make the values negative and/or very large to ensure they stay unique.&lt;br /&gt;
* We can exploit the behavior of &#039;&#039;&#039;each&#039;&#039;&#039; to propagate any of our constant combinator signals when any arbitrary condition is true.&lt;br /&gt;
* The format is simple: Define the condition in which you want your signal sent, and then add `AND` &#039;&#039;&#039;each&#039;&#039;&#039; = `the signal in the constant combinator you want to send when that condition is true`.&lt;br /&gt;
* The condition can be simple, using only a single condition, or can have as many AND statements as you need.&lt;br /&gt;
* Because the &#039;&#039;&#039;each&#039;&#039;&#039; statement is only true - due to our constant combinator signals all having unique values - when &#039;&#039;&#039;each&#039;&#039;&#039; compares a signal to itself, and because we are using &#039;&#039;&#039;each&#039;&#039;&#039; as our output value, whenever the other conditions in each block are all true, the signal that is compared to &#039;&#039;&#039;each&#039;&#039;&#039; is sent as the output signal, as it is the only signal that passes that particular condition.&lt;br /&gt;
* In the example shown, the decider will output the &amp;quot;pipe&amp;quot; signal when there are fewer than 100 pipes in the chest. It will output the &amp;quot;underground pipe&amp;quot; signal when there are 100 or more pipes AND less than 100 underground pipes in the chest.&lt;br /&gt;
* It is important to set the &#039;&#039;&#039;each&#039;&#039;&#039; comparisons to use only the wire connected to the constant combinator, otherwise any other signals that share the same values might get passed through.&lt;br /&gt;
&lt;br /&gt;
=== Latching Signal Switch ===&lt;br /&gt;
[[File:Factorio latching signal switch edit.png|430px|border|left|alt=Combinator settings for a latching signal switch that manages metallic asteroid processing]]&lt;br /&gt;
* This type of circuit expands on the simple signal switch by making the decider act as an SR (set/reset) latch as well as a signal switch.&lt;br /&gt;
* Adding latching helps prevent machines from flickering on and off, and recipes from switching wildly due to changing conditions.&lt;br /&gt;
* For this, the decider&#039;s output is connected to its input via the wire NOT connected to the constant combinator. This allows us to use the decider&#039;s current output as part of our logic.&lt;br /&gt;
* Each separate recipe needs two blocks: the &amp;quot;set&amp;quot; conditions, or &amp;quot;when do we turn the latch on,&amp;quot; and the &amp;quot;reset&amp;quot; conditions, or &amp;quot;when do we turn the latch off.&amp;quot;&lt;br /&gt;
* For the example shown here, the latch for advanced metallic asteroid processing is &#039;&#039;set&#039;&#039; when there is less than 80 copper ore on the output belts ({{Icon|Copper ore}} &amp;lt; 80).&lt;br /&gt;
* The second group of conditionals keeps the latch on until the reset condition - {{Icon|copper ore}} ≥ 300 - is reached. Because the &#039;&#039;set&#039;&#039; condition makes the decider start outputting the {{Icon|Advanced metallic asteroid crushing}} signal, then that makes the second block of conditionals true until {{Icon|copper ore}} reaches 300.  Once there are 300 copper ore on the belt, neither of the {{Icon|Advanced metallic asteroid crushing}} conditions will be true, and the latch will &#039;&#039;reset&#039;&#039;.&lt;br /&gt;
* The next two blocks are a latch for basic metallic asteroid processing. In this case, the &#039;&#039;set&#039;&#039; condition is {{Icon|Iron ore}} &amp;lt; 120 AND {{Icon|Advanced metallic asteroid crushing}} = 0. The check for {{Icon|Advanced metallic asteroid crushing}} ensures that we do not have both latches on at once. It&#039;s up to you to define the priority of possible output signals by adding similar checks. So for basic processing, the latch can be &#039;&#039;reset&#039;&#039; by two things: either {{Icon|Iron ore}} reaching 500+, or by the {{Icon|Advanced metallic asteroid crushing}} latch turning on.&lt;br /&gt;
* Pay close attention to which wires you&#039;re using for each condition. Always be as restrictive as possible.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Arithmetic combinator]]&lt;br /&gt;
* [[Constant combinator]]&lt;br /&gt;
* [[Decider combinator]]&lt;br /&gt;
* [[Circuit network]]&lt;/div&gt;</summary>
		<author><name>Glek</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Tutorial:Circuit_network_cookbook&amp;diff=217645</id>
		<title>Tutorial:Circuit network cookbook</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Tutorial:Circuit_network_cookbook&amp;diff=217645"/>
		<updated>2026-04-03T04:12:49Z</updated>

		<summary type="html">&lt;p&gt;Glek: Added a simple, 2.0-compatible toggle latch design.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{cleanup|Combinator GUI and circuit network changed in 2.0}}&lt;br /&gt;
&#039;&#039;This is a &#039;&#039;&#039;beginners&#039;&#039;&#039; tutorial. See also the [[Circuit network]] page for an overview over the circuit network and the [[Tutorial:Combinator tutorial]] for an advanced tutorial.&#039;&#039;&lt;br /&gt;
{{Languages}}&lt;br /&gt;
&lt;br /&gt;
== Foreword == &lt;br /&gt;
This page provides examples of simple circuit network designs and some not so simple designs that others can use, combine and modify. They are designed to be as easy to understand as possible.  To see the settings of combinators without opening them, the option &amp;quot;Show combinator settings in &amp;quot;Alt-mode&amp;quot;&amp;quot; in the Interface/Alt-mode settings has to be checked and &amp;quot;Alt-mode&amp;quot; has to be turned on.&lt;br /&gt;
&lt;br /&gt;
== Lights ==&lt;br /&gt;
[[File:LightWiredToChest.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Lamp showing chest content condition ===&lt;br /&gt;
&lt;br /&gt;
This is one of the simplest possible use of circuit-network. A [[lamp]] is lit depending on the number of goods (in this example empty barrels) in a chest.&lt;br /&gt;
&lt;br /&gt;
==== Setting up circuit connection ====&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* The lamp is connected to the chest.&lt;br /&gt;
* The lamp is set to light if the chest contains less than 10 empty barrels.&lt;br /&gt;
&lt;br /&gt;
==== To set the light condition ====&lt;br /&gt;
* Open the lamp (left click on it).&lt;br /&gt;
* Set the input to barrels.&lt;br /&gt;
* Set the operator to &amp;lt; (less than).&lt;br /&gt;
* Set the constant number:&lt;br /&gt;
** Left click on the constant number&lt;br /&gt;
** Move the slider until 10 is shown, or edit the value box directly.&lt;br /&gt;
** Press set.&lt;br /&gt;
&lt;br /&gt;
Depending on the condition you set, the lamp may light if the chest is empty, or if it contains the required quantity of items.&lt;br /&gt;
&lt;br /&gt;
The drawback with this scenario is that the lamp has a white light , and is therefore difficult to differentiate from an ordinary lamp at night.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:ConditionalLights.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Conditional Lights ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* In this circuit we connect a series of [[lamp]]s to a [[storage tank]].&lt;br /&gt;
* By setting different conditions on each lamp we can build an indicator strip. &lt;br /&gt;
* The Enabled condition of the first lamp is &#039;&#039;&#039;Petroleum gas &amp;gt; 100&#039;&#039;&#039;.&lt;br /&gt;
* The others light up when gas is greater than 200, 300, 400 and 500 respectively.&lt;br /&gt;
&lt;br /&gt;
In this setup you can connect the storage tank to the lamps directly.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:ColoredLights.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Colored Lights ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
While after 2.0, a [[lamp]]&#039;s color can be changed in its gui, it can also be connected to a circuit network for various purposes. To allow the circuit network to modify its color, you need an intermediate device like an [[arithmetic combinator]] that can send a color signal.  &lt;br /&gt;
Instead of directly connecting the [[lamp]] and the [[Storage tank]] you need:&lt;br /&gt;
# Add the arithmetic combinator.&lt;br /&gt;
# Connect the [[storage tank]] with the input of the  arithmetic combinator.&lt;br /&gt;
# Connect the  output of the [[arithmetic combinator]] with the lamp.&lt;br /&gt;
# Set up the arithmetic combinator:&lt;br /&gt;
## Setting the input to petroleum Gas + 0 (the constant 0 not the signal 0)&lt;br /&gt;
## Set the output to the pink signal (on the bottom row of the last tab of signals.)&lt;br /&gt;
# Set up the [[lamp]]:&lt;br /&gt;
##  Select the &amp;quot;Use colors&amp;quot; check box on the lamp.&lt;br /&gt;
## Set the condition to the pink signal, and what value you want (i.e. &amp;gt; 100)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Oil Setups ==&lt;br /&gt;
Balancing the production of petroleum gas, light oil and heavy oil is one of the most important use cases of the circuit network.&lt;br /&gt;
&lt;br /&gt;
[[File:LgtOilCracking.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Light Oil Cracking ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* This circuit provides balanced light oil and petroleum gas production by cracking excess light oil into gas. &lt;br /&gt;
* The [[pump]] is connected to the [[storage tank]] by a [[red wire]]. &lt;br /&gt;
* The pump has an enabled condition set to &#039;&#039;&#039;Light Oil &amp;gt; 20000&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:HvyOilCracking.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Heavy Oil Cracking ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* This circuit extends on the previous circuit by adding optional heavy oil cracking to provide lubricant etc.&lt;br /&gt;
* The pump has an enabled condition set to &#039;&#039;&#039;Heavy oil &amp;gt; 20000&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=== Alternative Setup for Cracking and Lubricant Production ===&lt;br /&gt;
This setup compares different fluid levels to each other instead of checking fixed values. It offers some guarantees such as petroleum gas being produced when you have light oil to spare, and light oil not being cracked when you have plenty of petroleum gas, and similar rules for heavy oil cracking and lubricant production. &lt;br /&gt;
&lt;br /&gt;
[[File:oil-single-cct.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
It takes 4 steps:&lt;br /&gt;
&lt;br /&gt;
# Have a fluid tank for heavy oil, light oil, petroleum gas, and lubricant. For each fluid, make sure to connect the tank via pipes to every location where the fluid is being produced or consumed.&lt;br /&gt;
# For each chemical plant (or each row of them, if you use rows) add a pump to the non-water fluid input pipe to make it possible to block the flow. Note: Alternatively, the blocking pumps could be added to the chemical plant output pipes, but there is no need to add pumps to both inputs and outputs.&lt;br /&gt;
# Connect every pump and every fluid tank to a single circuit network of red (or green) wire. The resulting circuit network will know about the fluid level in every storage tank and pass this information to every pump.&lt;br /&gt;
# For each connected pump set the circuit “enable condition” to &amp;quot;[input fluid] &amp;gt; [output fluid]&amp;quot; , for its respective chemical plant recipe. E.g. set &amp;quot;heavy oil &amp;gt; light oil&amp;quot; for the heavy oil cracking input pump, set &amp;quot;heavy oil &amp;gt; lubricant&amp;quot; for the lubricant production input pump, and set &amp;quot;light oil &amp;gt; petroleum gas&amp;quot; for the light oil cracking input pump.&lt;br /&gt;
&lt;br /&gt;
Done! Now all the pumps will move to equalize the fluid levels to each other. This will prevent fluid system deadlocks where you have plenty of one fluid but you are unable to make any of the other.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
[[file:MulitipleChestsAndPoles.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Multiple Storages ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* If you connect multiple chests to a pole, the pole displays the sum of items in all the chests.&lt;br /&gt;
* This also works with [[storage tank]]s and [[roboport]]s.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:ConstantComb.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Constant Combinator ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* With a [[constant combinator]] you can generate any signals you may need. &lt;br /&gt;
* In this example we have generated a signal of 50 Laser turrets and 200 Piercing round magazine. &lt;br /&gt;
* Constant combinators are not of much use on their own but we shall use them later.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:ThisASign.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Constant Combinator Signs (Words) (Pointless as of 2.0) ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* You can use [[constant combinator]]s to make signs, just set the letter signals in the combinator, each combinator can display 2 characters side by side.&lt;br /&gt;
* Note that to see these letters, Alt-mode must be on and the Interface setting “Show combinator settings in “Alt-Mode”” must also be enabled.&lt;br /&gt;
* As of the 2.0 update, these signs have become obsolete due to the addition of [[Display_panel|Display panels]], as text on display panels is always visible.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:constant_combinator_signs2.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Constant Combinator Signs (Managing Belts) ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* Somewhat similar to the previous example, constant combinator signals can be used with belts to help indicate what items should be on which belts. This is extremely useful when sharing blueprints, as it&#039;s possible for blueprints to be shared albeit with no indication on which items are meant for which belts.&lt;br /&gt;
* Note again that [[Display_panel|Display panels]] are more useful here as of the 2.0 update.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:MemoryCell.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Memory Cell / Counter ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* Basic memory cell that counts all the items moved by the inserter&lt;br /&gt;
* The [[fast inserter]] is connected to &#039;&#039;&#039;BOTH&#039;&#039;&#039; ends of the arithmetic combinator.&lt;br /&gt;
* If the fast inserter hasn&#039;t picked anything up this tick the input to the Arithmetic combinator is the same as and output and hence the values are persisted. &lt;br /&gt;
* When the fast inserter does pick something up its value is added to the output from the previous tick thus incrementing that item.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Inserters ==&lt;br /&gt;
[[File:LimitItemsPlacedIntoAChest.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Limit items placed into a chest ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
*  The [[inserter]] is connected to the [[wooden chest]] using a [[red wire]]. &lt;br /&gt;
*  The inserter&#039;s enabled condition is &#039;&#039;&#039;Advanced Circuit &amp;lt; 10&#039;&#039;&#039;. &lt;br /&gt;
*  In reality this means the inserter may place more than 10 Advanced circuits in the chest because it could pick up to 3 at once due to stack size bonuses.&lt;br /&gt;
*  This effect can be even greater with Stack inserters because of their large carrying capacity. &lt;br /&gt;
*  This technique still gives far greater control than limiting the inventory on the chest.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:BalancedChestInsert.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Balanced chest insert ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
Goal: Load n chests with approximately the same number of items. This can be used for train stations: [https://www.reddit.com/r/factorio/comments/4e03g2/madzuris_smart_loading_train_station_guide/ MadZuri&#039;s smart loading train station]&lt;br /&gt;
*  Place n chests and n inserters. &lt;br /&gt;
*  Place 1 [[arithmetic combinator]]&lt;br /&gt;
*  Set the combinator to take Each (yellow star) and divide by the negative number of chests. ie &amp;amp;minus;n.&lt;br /&gt;
*  Connect all chests to each other and to the input of the combinator using red wire.&lt;br /&gt;
*  Connect all inserters to each other and to the output of the combinator using red wire.&lt;br /&gt;
*  Connect each inserter to the box it inserts into with green wire.&lt;br /&gt;
*  Set the enable condition on each inserter to be Everything (red star) &amp;lt; 0.&lt;br /&gt;
&lt;br /&gt;
The combinator calculates the average number of items in the chests, and makes it negative. Each inserter gets the amount in the chest it is inserting to and adds the negative average, i.e. it calculates how many more than the average it has in its chest. Thus if that number is negative, it has less than the average in the chest and it enables. &lt;br /&gt;
&lt;br /&gt;
Due to inserter stack bonus the count is not exact. If a precise count is needed, set the inserter stack size to 1.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:SmartOutpostUnloader.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Keeping outpost stocked with specified items ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
*  This circuit keeps a [[storage chest]] at an outpost stocked with customized levels of different items. &lt;br /&gt;
*  For example you could keep an outpost stocked with 50 laser turrets and 200 piercing magazine rounds but not have to worry about it being over filled. &lt;br /&gt;
*  The [[storage chest]] is attached to the input of the [[arithmetic combinator]] (left side in the picture) with a [[red wire]]. &lt;br /&gt;
*  Another couple of [[red wire]]s join the output of the [[arithmetic combinator]] (right side) to the [[constant combinator]] and to the [[stack filter inserter]]. &lt;br /&gt;
*  The [[arithmetic combinator]] &#039;&#039;&#039;multiplies&#039;&#039;&#039; each input value (from the storage chest) by &#039;&#039;&#039;-1&#039;&#039;&#039;. &lt;br /&gt;
*  Finally the filter stack inserter&#039;s mode of operation is set to &#039;&#039;&#039;Set filters&#039;&#039;&#039;.&lt;br /&gt;
*  So the input to the [[stack filter inserter]] is &#039;&#039;&#039;&amp;lt;constant combinator&amp;gt; - &amp;lt;storage chest contents&amp;gt;&#039;&#039;&#039; and the filter is set to filter for the first item by inventory order.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:SolarAccumalatorBalancer.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Balanced Solar panel / Accumulator Production ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* This circuit balances production of [[solar panel]]s and [[accumulator]]s to a desired ratio in my case 24:20.&lt;br /&gt;
* The first [[arithmetic combinator]] takes the number of accumulators in the chest and &#039;&#039;&#039;multiplies&#039;&#039;&#039; it by &#039;&#039;&#039;24&#039;&#039;&#039;. &lt;br /&gt;
* The second [[arithmetic combinator]] takes the output of the first combinator and &#039;&#039;&#039;divides&#039;&#039;&#039; it by &#039;&#039;&#039;20&#039;&#039;&#039;. &lt;br /&gt;
* This gives us the number of accumulators that we can directly compare to the number of Solar panels in both inserters. &lt;br /&gt;
* If the number of accumulators is greater we enable the Solar panels inserter, if the number of Solar panels is greater we enable the accumulators inserter. &lt;br /&gt;
* However, if they are equal, neither machine does anything. So we add a single accumulator to one of the inserters using a constant combinator and a wire of the other color, therefore breaking the deadlock.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Sushi Belts ==&lt;br /&gt;
[[File:SushiScience1.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Reading Belt Design ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* Six belts in a row are connected with Red wire and set to &#039;&#039;&#039;Read belts contents&#039;&#039;&#039; and &#039;&#039;&#039;Hold&#039;&#039;&#039; &lt;br /&gt;
* Note: Instead of using six belts all set to &#039;&#039;&#039;hold&#039;&#039;&#039;, only one can be used, and set to &#039;&#039;&#039;Hold (all belts)&#039;&#039;&#039; for simplicity&lt;br /&gt;
* This [[red wire]] is then connected to the inserters that insert onto the belt. &lt;br /&gt;
* Read hand contents is unselected for all inserters.&lt;br /&gt;
* Mode of operation is set to &#039;&#039;&#039;Enable/Disable&#039;&#039;&#039; on all inserters. &lt;br /&gt;
* The first inserter is enabled when &#039;&#039;&#039;Automation science pack = 0&#039;&#039;&#039;&lt;br /&gt;
* The other inserters are set similarly for the other science packs.&lt;br /&gt;
* When using &#039;&#039;&#039;Hold (all belts)&#039;&#039;&#039;, the amount required for enabling the inserters varies, but 30 is a good number.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:SushiScience2.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Memory Cell Design ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* This recipe produces a rolling sum of the number of items of each type, as they added or removed from a looping conveyor belt. Inserters placing items onto the belt can use this sum to turn on or off as needed. &lt;br /&gt;
* It achieves this through two networks, one red (subtraction) and one green (addition), connected to their own inserters, and two arithmetic combinators: one basic [[arithmetic combinator]] to do the subtraction, and one memory cell, to update and persist the values.&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
* Each inserter that takes items &#039;&#039;&#039;from&#039;&#039;&#039; the belt is connected with Red wire. Each of these inserters is set to &#039;&#039;&#039;Mode of operation: None&#039;&#039;&#039;, &#039;&#039;&#039;Read hand contents is checked&#039;&#039;&#039;, and Hand read mode is set to &#039;&#039;&#039;Pulse&#039;&#039;&#039; (sends 1 each time an item is picked up). &lt;br /&gt;
* These red wire inserters are connected to the input of the subtraction arithmetic combinator, in this example, it is the one on the left.&lt;br /&gt;
* The left [[arithmetic combinator]] multiples &#039;&#039;&#039;each&#039;&#039;&#039; input by &#039;&#039;&#039;-1&#039;&#039;&#039; and outputs it to &#039;&#039;&#039;each&#039;&#039;&#039;. This subtracts 1 each time an inserter removes an item from the belt, for the specific type of item taken.&lt;br /&gt;
* The right [[arithmetic combinator]] is the &#039;&#039;&#039;memory cell&#039;&#039;&#039;.&lt;br /&gt;
* The memory cell&#039;s input is connected to: 1. A green wire network of inserters placing items onto the belt (the addition), 2. The output of the left [[arithmetic combinator]] (the subtraction).&lt;br /&gt;
* The memory cell&#039;s output should be connected to its input, so that each time an update is sent from either the addition network (green wire) or subtraction network (red wire), the updated value is persisted.&lt;br /&gt;
* When a Green wire inserter adds an item to the belt, that item&#039;s count in the memory cell is increased by 1.&lt;br /&gt;
* The inserters that place items onto the belt (green wire) should be set to: &#039;&#039;&#039;Enable/disable&#039;&#039;&#039;, &#039;&#039;&#039;Read hand contents is checked&#039;&#039;&#039; and &#039;&#039;&#039;Hand read mode is set to Pulse&#039;&#039;&#039;.&lt;br /&gt;
* The &#039;&#039;&#039;Enable/disable&#039;&#039;&#039; condition is set based on the number of items you&#039;d like picked up by the red wire inserters, e.g. Automation science pack &amp;lt;= 16 (one pack for each lab in the example shown here).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Power ==&lt;br /&gt;
[[File:SteamBackup.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Backup steam power ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* The [[steam engine]]s are not directly connected to the power network. They are connected to the power network through a [[power switch]]. &lt;br /&gt;
* The [[power switch]] is connected to one of the [[accumulator]]s in the main network. &lt;br /&gt;
* The [[power switch]] turns on when A &amp;lt; 10. That is when the [[accumulator]]s are less than 10% full.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=== Optimal usage of fuel for nuclear power ===&lt;br /&gt;
Unlike the normal steam power that adjusts fuel usage based on power usage, the [[Power_production#Nuclear_power|nuclear reactors]] spend fuel in fixed units of time. To be exact, the consumption of 1 fuel cell takes exactly 200 seconds.&lt;br /&gt;
&lt;br /&gt;
Combined with the fact that creating the nuclear fuel cells are time consuming and expensive to create, it is therefore beneficial to optimize their use to match the actual consumed power.&lt;br /&gt;
&lt;br /&gt;
[[File:NuclearCircuits.png|border|left|430px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
This picture shows a setup with 4 reactors, that spend only 1 fuel cell each whenever steam runs low.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Note: The GUI in the image above has been altered to make sure all important info fits within the image size.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There are a few elements in this setup:&lt;br /&gt;
* Storage tank that provides the [[steam]] signal.  You should only read from one storage tank, and it should have pipe connections to all your other steam storage tanks.&lt;br /&gt;
* Chests containing [[uranium fuel cell]]s for the reactor.&lt;br /&gt;
* Output inserter that takes [[Used_up_uranium_fuel_cell|empty fuel cells]] from the reactor. This is connected to the storage tank to listen for the steam signal, and to the chests to listen for the uranium fuel cell signal. If the steam level is low and there are uranium fuel cells available, it removes the empty fuel cells from the reactor and sends an empty fuel cell signal (since &amp;quot;Read hand contents&amp;quot; is checked).&lt;br /&gt;
* Input inserter that put uranium fuel cells into the reactor. This is connected to the output inserter and listens for the empty fuel cell signal. The &amp;quot;Override stack size&amp;quot; is set to 1, so that it only inserts 1 fuel cell at a time.&lt;br /&gt;
* If you are using multiple reactors you should only wire one output inserter to one steam tank, and then connect all input inserters to the single output inserter. This will synchronize fuel insertion to maximize the reactor neighbour heat bonus. The other reactors can have &amp;quot;dumb&amp;quot; output inserters that remove [[Used_up_uranium_fuel_cell|empty fuel cells]] immediately.&lt;br /&gt;
&lt;br /&gt;
Since this design uses empty fuel cells as a signal to fill the reactor, you need to manually insert 1 uranium fuel cell into the reactor to get it started.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prioritize usage of uranium towards nuclear fuel production ===&lt;br /&gt;
Because a continuous supply of [[uranium fuel cell]]s is critical to maintaining a [[nuclear reactor]], the circuit network can be used to set up a system where [[uranium-235]] and [[uranium-238]] are conserved for the production of nuclear fuel before other uses.&lt;br /&gt;
&lt;br /&gt;
[[File:Nuclear Fuel Circuit Network.png|border|left|430px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using a [[splitter]], divert the two types of uranium onto two parallel conveyors, with an [[inserter]] positioned to gather uranium from each conveyor (a [[long-handed inserter]] will be needed for the far belt). Each of these inserters deposits their load into a container, from which two more inserters deliver the contents to an [[assembling machine]] making nuclear fuel. An inserter delivers the produced fuel to a third container, from which inserter(s) delivers the fuel to your nuclear reactor. Wire the two inserters gathering from the conveyors to the container each of them is delivering to, and to the tile of conveyor immediately after the tile the inserter is gathering from. Set each inserter&#039;s enable condition to &amp;quot;less than or equal to X amount of uranium&amp;quot;, using the appropriate type of uranium the inserter is gathering and X being the number of reserve uranium desired (optimally, one uranium-235 and nineteen uranium-238, the amount needed to produce nuclear fuel; the amount may be increased if a greater stockpile is desired). Set each conveyor&#039;s enable condition to &amp;quot;greater than or equal to X amount of uranium&amp;quot; in the same manner. Finally, connect the inserters delivering uranium to the assembly machine up to the container the assembly machine is delivering nuclear fuel to, and set each of their enable conditions to &amp;quot;nuclear fuel = 0 (the enable condition can be set to &amp;quot;less than or equal to X amount of nuclear fuel&amp;quot; if a larger stockpile is desired).&lt;br /&gt;
&lt;br /&gt;
This set-up accomplishes the following:&lt;br /&gt;
&lt;br /&gt;
* When there is sufficient nuclear fuel and uranium stockpiled, the inserters will deactivate and the conveyors activate, allowing the uranium to continue down the conveyors to other facilities.&lt;br /&gt;
* When the nuclear fuel stockpile hits zero (or decreases below the desired amount), the inserters delivering to the assembly machine will activate and deliver uranium to resume production of nuclear fuel until quota is reached again.&lt;br /&gt;
* When there is not enough uranium stockpiled to produce a batch of nuclear fuel, the inserters gathering uranium will activate and and resume gathering uranium until they reach their quota. The conveyors carrying uranium will stop past the inserters, cutting off other facilities from that type of uranium until its respective inserter reaches quota.&lt;br /&gt;
* The assembly machine will only be provided with uranium when the stockpile of nuclear fuel hits zero (or decreases below the desired amount), preventing over-production of nuclear fuel and thus over-consumption of uranium.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Railway network ==&lt;br /&gt;
=== Set train routing ===&lt;br /&gt;
The circuit network can be used to allow deeper micromanagement of [[train]]s. Circuits can be used to adjust train limits for [[Train stop|stops]], effectively disabling a stop when a resource is not available for loading, or if an unloading station already has more than enough of a resource. Note that adjusting train limits runs into fewer problems than fully enabling/disabling stops; see [https://factorio.com/blog/post/fff-361 Friday Facts #361 - Train stop limit, Tips and tricks] and the [[Train stop]] page for additional information about using train limits.&lt;br /&gt;
&lt;br /&gt;
=== Player safety ===&lt;br /&gt;
The circuit network can be used to ensure the player&#039;s safety when crossing train tracks so they do not get hit. Place [[gate]]s at designated crossing areas and connect an adjacent [[wall]] to [[rail signal]]s near the gate. Set the gate to &amp;quot;read sensor&amp;quot; and the signal to &amp;quot;close signal&amp;quot; with the condition being the signal the gate sends out being &amp;quot;1&amp;quot;. This means that when the gate is closed, the signal will be green and trains can pass freely, but when the player approaches the gate and it opens for them, the train signal will be turned red and trains will be stopped until the player clears the area.&lt;br /&gt;
&lt;br /&gt;
Alternatively, this system can be reversed - by setting the gate to &amp;quot;open gate&amp;quot; and the train signal set to &amp;quot;read signal&amp;quot;, the gate will remain open normally and will close when a train is approaching, preventing the player from crossing until it is safe.&lt;br /&gt;
&lt;br /&gt;
In lieu of gates, the player can connect a [[programmable speaker]] to the train signals to broadcast a warning siren when a train is approaching the area.&lt;br /&gt;
&lt;br /&gt;
== Latches ==&lt;br /&gt;
=== RS latch - single decider version ===&lt;br /&gt;
[https://forums.factorio.com/viewtopic.php?f=193&amp;amp;t=14556 This discussion] on the Factorio forums starts with the common 2 decider RS latch version, but later a [https://forums.factorio.com/viewtopic.php?p=111192#p111192 single decider version was proposed]. The thread [https://forums.factorio.com/viewtopic.php?p=160896#p160896 goes on to explain] why this is better. In the thread, the latch is described as an SR latch. However, when both inputs are true, the latch will reset, so it is an RS latch.&lt;br /&gt;
&lt;br /&gt;
=== SR latch ===&lt;br /&gt;
In 2.0, an SR latch can be accomplished in a single decider combinator with many combinations of set and reset conditions. This latch, for example will set if the steam levels or the accumulator levels fall too low, and will reset when both levels recover. This is an SR latch; if both inputs are true, the latch will set.&lt;br /&gt;
[[File:SR-Multi-condition.png|border|left|430px]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=== Backup steam example ===&lt;br /&gt;
This example will turn on the steam generator when the Accumulator charge drops to 20%, but will &amp;quot;latch&amp;quot; (remember) the On state until the accumulator is charged to 90%.&lt;br /&gt;
&lt;br /&gt;
Latching is used to introduce [[Wikipedia:hysteresis|hysteresis]] and avoid the power switch rapidly cycling on and off (as the accumulator falls to 19%, charges to 20%, falls to 19% and so on). &lt;br /&gt;
[[File:SR-01-Layout.png|border|left|430px]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
{{BlueprintString|bp-string=0eNqllMmO2zAMht+FZ2UQx0trHwr0GXoMAkO2mRkBWgwtyQSB330oJXGKxmg604tNUdQnkr+kM3Qy4GiF9tCcQfRGO2i2Z3DiVXMZfZorhAacR65WqF+FRpgYCD3gOzTZtGOA2gsv8LIyDU6tDqpDSwHsRlA4iEAIib23ol+NRiIwGI2jxUbHvQhY5C8lgxMZ9Us5TewBuPkksMyeAPMZ6BSX8inv+xNeMfN43wcVJPfGLhRaJ0qZUTOp7d4a2Xb4xg+CoinEBD8G396F8KcxQg/C+kCee9YpYvUTpqVsyjluwF4MaFe9UZ3Qy0mV+TUpKo3BICy1Is0Wy0lemS3NDYnjovf3EZ2IvbDuc4WkzZzn8VRu1rGq/2PUX2H8ujDUyG1qVgM/4ObA9rqY6wHiFbio9efd+bcdxhP1L2jf7q1RrdAEgmbPpcNpt6hpNYNGcyRF3VH4/m1BzervR6wXtg/Ct6h5J3GAxtuAbHbPMsbYrzXvJsD6oZNUF1zybinG463ix2q/scU36KHaan29mAunN0p0pHEUaJuxkm1YuWNb+rIqWXmyKrIKFuczslIUK5JV0OxmRxThUVEq92eTwQGtS9uU1aYu6pp+eZ1X+TR9AMRRzM0=}}&lt;br /&gt;
{{clear}}&lt;br /&gt;
[[File:SR-02-Accumulator.png|border|left|430px]]&lt;br /&gt;
Accumulator outputs the current charge level as % on signal [[File:Signal-A.png|21px]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
[[File:SR-04-SRLatch.png|border|left|430px]]&lt;br /&gt;
The decider sets and latches the Set signal [[File:Signal-S.png|21px]] when the accumulator falls below 20%, and unlatches when the accumulator reaches 90%.&amp;lt;br /&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
[[File:SR-05-PowerSwitch.png|border|left|430px]]&lt;br /&gt;
The Power switch isolates the generator from the rest of the factory until [[File:Signal-S.png|21px]] = 1&lt;br /&gt;
{{clear}}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Toggle Latch ===&lt;br /&gt;
&lt;br /&gt;
[[File:ToggleLatch2.0.png|thumb|left|430px|The wiring setup for the toggle latch.]]&lt;br /&gt;
[[File:ToggleLatch2.0_Settings.png|thumb|left|430px|The decider combinator settings.]]&lt;br /&gt;
[[File:ToggleLatch2.0_InputSettings.png|thumb|left|430px|The required inputs.]]&lt;br /&gt;
&lt;br /&gt;
A variant of a SR latch that toggles between two states on receiving the leading edge of the given input signals.&lt;br /&gt;
&lt;br /&gt;
Both input signals are required to cause the latch to toggle.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Displays ==&lt;br /&gt;
[[File:5digitDisplay.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Numerical Display ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* Each digit is driven by its own [[green wire]], that wire holds 15 signals, one for each lamp used in the digit.&lt;br /&gt;
* [[constant combinator]]s are used to define which lamp should light up for each value.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:BWDisplay.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Black and White Grid Display ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* Each row has its own [[red wire]] connection and within that row each light has a numbered signal 0-9.&lt;br /&gt;
* We turn each light on by just setting or clearing the relevant signal.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:MultiColoredDisplay.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Multicolor Display by DaveMcW ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* To understand how this works, you first need to understand how color lights choose which color to light up when there are multiple colored signals. &lt;br /&gt;
* The [[lamp]] will light up with the colored signal that is greater than zero and earliest in this list: red, green, blue, yellow, pink, cyan, white.  &lt;br /&gt;
* We have a [[red wire]] per column, that wire has each of the colored signals on it at different values and a numbered signal for each row. &lt;br /&gt;
* There is a [[arithmetic combinator]] for each cell that subtracts the &amp;quot;row&amp;quot; value from each of the colored signals. &lt;br /&gt;
* And this enables us to choose the color for each cell. &lt;br /&gt;
* Simple!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Setting Recipes ==&lt;br /&gt;
[[File:MultipleItemAssembler.png|border|left|430px]]&lt;br /&gt;
&lt;br /&gt;
=== Multiple Item Assembling Machine ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:440px;&amp;quot;&amp;gt;&lt;br /&gt;
* This circuit design allows a user to have a single [[assembling machine]] produce several different items that all use mostly the same ingredients. This is a convenient way to avoid routing the same set of inputs to multiple assembly machines for items that need automated, but not constant production. For example, [[medium electric pole]]s and [[big electric pole]]s share the same ingredients, or the [[pumpjack]], [[oil refinery]], and [[chemical plant]] take mostly the same inputs.&lt;br /&gt;
* To use this, the player opens the [[constant combinator]] and selects which items and what quantities to make.&lt;br /&gt;
* This signal goes into the green wire input of the [[decider combinator]], where it is compared to the quantity of items in the logistics chest connected to the combinator input on the red wire.&lt;br /&gt;
* The decider combinator uses the &amp;quot;each&amp;quot; signal, so each signal on the green wire is compared to each signal on the red wire, and if there are fewer of any item in the chest than are set by the constant combinator, the decider combinator will output a signal on that item&#039;s channel.&lt;br /&gt;
* The assembling machine then is configured to set the recipe based on incoming signals and so will produce whatever items are needed to fulfill the settings on the constant combinator.&lt;br /&gt;
* The assembly machine outputs items to the steel chest, which then loads them into the requester chest, which feeds back into the assembly machine. This is because when a new recipe is loaded, any extra input items of the previous recipe must be unloaded from the machine, and this loop will supply those unloaded items back into the assembly machine, otherwise input materials will fill up the output storage, preventing new items from being produced.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== Signal Switch ==&lt;br /&gt;
&lt;br /&gt;
=== Simple Signal Switch ===&lt;br /&gt;
[[File:Factorio signal switch edit.png|430px|border|left|alt=combinator settings for a simple signal switch]]&lt;br /&gt;
* With the advent of complex conditionals, it is possible to have a single [[constant combinator]] + [[decider combinator]] output any arbitrary signal from any conditional block&lt;br /&gt;
* This relies the behavior of the &#039;&#039;&#039;each&#039;&#039;&#039; signal.  If the &#039;&#039;&#039;each&#039;&#039;&#039; signal is used in an input condition, then it can be used as the output signal as well.&lt;br /&gt;
* To start, we&#039;ll define all of the signals we may want to output in the constant combinator, and give them each a unique value.  If circumstances dictate that you cannot dedicate one of the decider&#039;s input wires to just the constant combinator, you may want to make the values negative and/or very large to ensure they stay unique.&lt;br /&gt;
* We can exploit the behavior of &#039;&#039;&#039;each&#039;&#039;&#039; to propagate any of our constant combinator signals when any arbitrary condition is true.&lt;br /&gt;
* The format is simple: Define the condition in which you want your signal sent, and then add `AND` &#039;&#039;&#039;each&#039;&#039;&#039; = `the signal in the constant combinator you want to send when that condition is true`.&lt;br /&gt;
* The condition can be simple, using only a single condition, or can have as many AND statements as you need.&lt;br /&gt;
* Because the &#039;&#039;&#039;each&#039;&#039;&#039; statement is only true - due to our constant combinator signals all having unique values - when &#039;&#039;&#039;each&#039;&#039;&#039; compares a signal to itself, and because we are using &#039;&#039;&#039;each&#039;&#039;&#039; as our output value, whenever the other conditions in each block are all true, the signal that is compared to &#039;&#039;&#039;each&#039;&#039;&#039; is sent as the output signal, as it is the only signal that passes that particular condition.&lt;br /&gt;
* In the example shown, the decider will output the &amp;quot;pipe&amp;quot; signal when there are fewer than 100 pipes in the chest. It will output the &amp;quot;underground pipe&amp;quot; signal when there are 100 or more pipes AND less than 100 underground pipes in the chest.&lt;br /&gt;
* It is important to set the &#039;&#039;&#039;each&#039;&#039;&#039; comparisons to use only the wire connected to the constant combinator, otherwise any other signals that share the same values might get passed through.&lt;br /&gt;
&lt;br /&gt;
=== Latching Signal Switch ===&lt;br /&gt;
[[File:Factorio latching signal switch edit.png|430px|border|left|alt=Combinator settings for a latching signal switch that manages metallic asteroid processing]]&lt;br /&gt;
* This type of circuit expands on the simple signal switch by making the decider act as an SR (set/reset) latch as well as a signal switch.&lt;br /&gt;
* Adding latching helps prevent machines from flickering on and off, and recipes from switching wildly due to changing conditions.&lt;br /&gt;
* For this, the decider&#039;s output is connected to its input via the wire NOT connected to the constant combinator. This allows us to use the decider&#039;s current output as part of our logic.&lt;br /&gt;
* Each separate recipe needs two blocks: the &amp;quot;set&amp;quot; conditions, or &amp;quot;when do we turn the latch on,&amp;quot; and the &amp;quot;reset&amp;quot; conditions, or &amp;quot;when do we turn the latch off.&amp;quot;&lt;br /&gt;
* For the example shown here, the latch for advanced metallic asteroid processing is &#039;&#039;set&#039;&#039; when there is less than 80 copper ore on the output belts ({{Icon|Copper ore}} &amp;lt; 80).&lt;br /&gt;
* The second group of conditionals keeps the latch on until the reset condition - {{Icon|copper ore}} ≥ 300 - is reached. Because the &#039;&#039;set&#039;&#039; condition makes the decider start outputting the {{Icon|Advanced metallic asteroid crushing}} signal, then that makes the second block of conditionals true until {{Icon|copper ore}} reaches 300.  Once there are 300 copper ore on the belt, neither of the {{Icon|Advanced metallic asteroid crushing}} conditions will be true, and the latch will &#039;&#039;reset&#039;&#039;.&lt;br /&gt;
* The next two blocks are a latch for basic metallic asteroid processing. In this case, the &#039;&#039;set&#039;&#039; condition is {{Icon|Iron ore}} &amp;lt; 120 AND {{Icon|Advanced metallic asteroid crushing}} = 0. The check for {{Icon|Advanced metallic asteroid crushing}} ensures that we do not have both latches on at once. It&#039;s up to you to define the priority of possible output signals by adding similar checks. So for basic processing, the latch can be &#039;&#039;reset&#039;&#039; by two things: either {{Icon|Iron ore}} reaching 500+, or by the {{Icon|Advanced metallic asteroid crushing}} latch turning on.&lt;br /&gt;
* Pay close attention to which wires you&#039;re using for each condition. Always be as restrictive as possible.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Arithmetic combinator]]&lt;br /&gt;
* [[Constant combinator]]&lt;br /&gt;
* [[Decider combinator]]&lt;br /&gt;
* [[Circuit network]]&lt;/div&gt;</summary>
		<author><name>Glek</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:ToggleLatch2.0.png&amp;diff=217644</id>
		<title>File:ToggleLatch2.0.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:ToggleLatch2.0.png&amp;diff=217644"/>
		<updated>2026-04-03T03:48:10Z</updated>

		<summary type="html">&lt;p&gt;Glek: Glek uploaded a new version of File:ToggleLatch2.0.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
A screenshot of the basic toggle latch design, taken in-game.&lt;/div&gt;</summary>
		<author><name>Glek</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:ToggleLatch2.0_InputSettings.png&amp;diff=217643</id>
		<title>File:ToggleLatch2.0 InputSettings.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:ToggleLatch2.0_InputSettings.png&amp;diff=217643"/>
		<updated>2026-04-03T03:46:23Z</updated>

		<summary type="html">&lt;p&gt;Glek: A screenshot of the input constant combinator settings for the basic toggle latch design, taken in-game.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
A screenshot of the input constant combinator settings for the basic toggle latch design, taken in-game.&lt;/div&gt;</summary>
		<author><name>Glek</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:ToggleLatch2.0_Settings.png&amp;diff=217642</id>
		<title>File:ToggleLatch2.0 Settings.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:ToggleLatch2.0_Settings.png&amp;diff=217642"/>
		<updated>2026-04-03T03:42:43Z</updated>

		<summary type="html">&lt;p&gt;Glek: A screenshot of the combinator settings for the basic toggle latch design, taken in-game.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
A screenshot of the combinator settings for the basic toggle latch design, taken in-game.&lt;/div&gt;</summary>
		<author><name>Glek</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:ToggleLatch2.0.png&amp;diff=217641</id>
		<title>File:ToggleLatch2.0.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:ToggleLatch2.0.png&amp;diff=217641"/>
		<updated>2026-04-03T03:41:27Z</updated>

		<summary type="html">&lt;p&gt;Glek: A screenshot of the basic toggle latch design, taken in-game.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
A screenshot of the basic toggle latch design, taken in-game.&lt;/div&gt;</summary>
		<author><name>Glek</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=File:Timer.png&amp;diff=216046</id>
		<title>File:Timer.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=File:Timer.png&amp;diff=216046"/>
		<updated>2025-10-05T21:19:50Z</updated>

		<summary type="html">&lt;p&gt;Glek: Glek uploaded a new version of File:Timer.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Screenshot}}&lt;/div&gt;</summary>
		<author><name>Glek</name></author>
	</entry>
	<entry>
		<id>https://wiki.factorio.com/index.php?title=Circuit_network&amp;diff=215748</id>
		<title>Circuit network</title>
		<link rel="alternate" type="text/html" href="https://wiki.factorio.com/index.php?title=Circuit_network&amp;diff=215748"/>
		<updated>2025-09-06T16:47:37Z</updated>

		<summary type="html">&lt;p&gt;Glek: Added a note that crafting machines, when given a &amp;quot;set recipe&amp;quot; signal, will use the main crafting recipe for an item/fluid unless given an specific recipe signal.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages}}&lt;br /&gt;
&#039;&#039;&#039;Circuit networks&#039;&#039;&#039; are built using [[Red wire|red]] or [[green wire]], and enable the control of receivers, based upon information broadcast onto the network by connected senders.  Most senders are storage devices, and broadcast their information onto a specific channel, based on the item or liquid the storage device contains.  Each circuit network contains a channel for every kind of item, as well as 48 extra [[#Virtual signals|virtual signals]] which act as user-definable channels. &#039;&amp;lt;span style=&amp;quot;color:#FF6666&amp;quot;&amp;gt;Everything&amp;lt;/span&amp;gt;&#039;, &#039;&amp;lt;span style=&amp;quot;color:#99FF99&amp;quot;&amp;gt;Anything&amp;lt;/span&amp;gt;&#039; and &#039;&amp;lt;span style=&amp;quot;color:#FFFF99&amp;quot;&amp;gt;Each&amp;lt;/span&amp;gt;&#039; are also available wildcards.&lt;br /&gt;
&lt;br /&gt;
[[File:shared_circuit_network.png|thumb|600px|right|Two circuit networks shared over one [[small electric pole]].]]&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== Send information ===&lt;br /&gt;
Senders broadcast the amount of items or fluids they contain or other data definable by the player. Each amount is broadcast as a numeric value on a &#039;channel&#039; corresponding to the item.  For example, a Storage Tank containing 1000 Crude Oil will broadcast 1000 on the Crude Oil channel.&lt;br /&gt;
&lt;br /&gt;
The channels are separated from each other, so each network can simultaneously carry a number for each item and fluid in the game, and for each of the extra user-defined channels (digits 0-9, letters A-Z, and 9 different colors). All unused channels have the value zero.&lt;br /&gt;
&lt;br /&gt;
Multiple broadcasts of the same item or fluid are additive: If there are two connected Storage Tanks with 1000 Crude Oil each, the value of the Crude Oil channel within the network will be 2000.&lt;br /&gt;
&lt;br /&gt;
All wires of the same color which are connected together by junctions form a network, i.e. they will pass their signals to each other.  For example, if two red wires are connected to the same combinator input, each wire receives the content from the other.  This can result in feedback if care is not taken; see Feedback (under [[#Combinators|arithmetic combinator]], below) for discussion.&lt;br /&gt;
&lt;br /&gt;
Numbers are in the signed 32 bit integer range, i.e. from -2147483648 to 2147483647 inclusive, and are encoded in [https://en.wikipedia.org/wiki/Two%27s_complement two&#039;s complement representation]. The numbers wrap around on overflow, so e.g. 2147483647 + 10 becomes -2147483639. When entering a number in a combinator it can appear to exceed the 32 bit limit until the GUI is closed, at which point the number will overflow/underflow. [https://forums.factorio.com/58419]&lt;br /&gt;
&lt;br /&gt;
=== Control devices ===&lt;br /&gt;
Receivers can use broadcast information, in most cases to enable/disable the device. They can either compare results between different channels, or compare a channel to a specific value.&lt;br /&gt;
&lt;br /&gt;
Receiving devices sum all signals from each wire connected to them, even red and green wires. For example, if an inserter is connected to a red wire carrying a signal for 20 copper plates and a green wire with 10 copper plates, the input signal set for that receiver will be 30 copper plates.&lt;br /&gt;
&lt;br /&gt;
Multiple wires of the same color will share &amp;amp; sum their signals. For example, 3 chests A, B and C connected in a row (A -&amp;gt; B -&amp;gt; C) with green wire will output the sum of their contents along any green wire connected to any of the chests. However, if a red wire connects chest A to an inserter, that inserter will only be given the contents of A as its input signal.&lt;br /&gt;
&lt;br /&gt;
== Devices ==&lt;br /&gt;
&amp;lt;!-- Todo: need signal icons D, P, V. Probably need to compile all crafting machines and turrets into one word, similar to belts &amp;amp; inserters  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each device that is able to be connected to a circuit network has a [[File:Circuit network panel.png]] icon located in the top right corner of its info pane. Clicking this icon will display the available circuit network options for that device (note: a red or green wire must be connected, otherwise the message &amp;quot;not connected&amp;quot; will display instead). Clicking the [[File:Logistic network panel.png]] icon next to it, the device can be connected to a logistic network if in range of one, which also allows conditions to be set.&lt;br /&gt;
&lt;br /&gt;
Conditions can be set for both circuit (signals of red and green wires are summed) and logistic network, which will together act as a logical AND.&lt;br /&gt;
&lt;br /&gt;
The following devices can be connected to a circuit network:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Icon !! Name !! Possible output signals !! Possible circuit control !! Possible logistic network control&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Transport belt||Transport belts}} || [[Transport belts]] || Transport belts can send their content to the circuit network.&lt;br /&gt;
*&#039;&#039;Pulse mode&#039;&#039;: The signal is sent for only 1 tick when the item enters the belt.&lt;br /&gt;
*&#039;&#039;Hold mode&#039;&#039;: The signal is sent continuously as long as the items are on the belt.&lt;br /&gt;
*&#039;&#039;Hold mode&#039;&#039; (All belts): The signal is sent continuously for all items on the entire transport belt line. The count continues through underground belts, but not splitters or side loading.&lt;br /&gt;
|| Transport belts can be enabled on a condition.&lt;br /&gt;
|| Transport belts can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Inserter||Inserters}} || [[Inserters]] || All inserters can send their held items to the circuit network.&lt;br /&gt;
*&#039;&#039;Pulse mode&#039;&#039;: The signal is sent for only 1 tick when the item is picked up.&lt;br /&gt;
*&#039;&#039;Hold mode&#039;&#039;: The signal is sent continuously as long as the inserter is holding the item.&lt;br /&gt;
|| All inserters can be enabled on a condition. The inserter stack size can also be overridden from a control signal (configurable; values less than 1 are treated as 1). Filters can be set on a signal.&lt;br /&gt;
|| All inserters can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Assembling machine}} {{Icon|Oil refinery}} {{Icon|Chemical plant}} {{Icon|Centrifuge}} {{Icon|Crusher|space-age=yes}} {{Icon|Foundry|space-age=yes}} {{Icon|Electromagnetic plant|space-age=yes}} {{Icon|Biochamber|space-age=yes}} {{Icon|Cryogenic plant|space-age=yes}} || [[Assembling machine]]s, [[Oil refinery]], [[Chemical plant]], [[Centrifuge]], [[Crusher]], [[Foundry]], [[Electromagnetic plant]], [[Biochamber]], [[Cryogenic plant]] || All crafting machines can output:&lt;br /&gt;
* Their contents, including fluids, in all slots&lt;br /&gt;
** Optionally, can include the items within the current crafting job&lt;br /&gt;
** If the machine has fuel, can optionally include the current fuel, including the unit of fuel currently being burned&lt;br /&gt;
* The ingredients of the set recipe &lt;br /&gt;
* A control signal, for 1 tick, when the recipe finishes crafting&lt;br /&gt;
** The signal value indicates the number of crafts finished last tick&lt;br /&gt;
** Includes productivity crafts&lt;br /&gt;
* A control signal, while the building is working&lt;br /&gt;
|| All crafting machines can enable on a condition and set their recipe based on a signal. The machine, if not given a recipe signal, will use the main crafting recipe for the item/fluid (as shown in the Factoriopedia) ||&lt;br /&gt;
|-  &lt;br /&gt;
| {{Icon|Stone furnace}} {{Icon|Steel furnace}} {{Icon|Electric furnace}} {{Icon|Recycler}} || [[Furnace]]s and the [[Recycler]]{{SA}} || Furnace-style crafting machines can output:&lt;br /&gt;
* Their contents, including fluids, but not fuel, in all slots&lt;br /&gt;
** Optionally, can include the items within the current crafting job&lt;br /&gt;
** If the machine requires fuel, can optionally include the current fuel, including the unit of fuel currently being burned&lt;br /&gt;
* The ingredients of automatically determined recipe&lt;br /&gt;
* A control signal, for 1 tick, when the recipe finishes crafting&lt;br /&gt;
** The signal value indicates the number of crafts finished last tick&lt;br /&gt;
** Includes productivity crafts&lt;br /&gt;
* A control signal, while the building is working&lt;br /&gt;
|| All furnace-style crafting machines can enable on a condition&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Wooden chest||Wooden chest}} {{Icon|Iron chest||Iron chest}} {{Icon|Steel chest||Steel chest}} || [[Chests]] || Can send its content to the circuit network. ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Cargo landing pad}} || [[Cargo landing pad]] || The landing pad can send its contents to the circuit network. || The landing pad can have its requests set by the circuit network.{{SA}} ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Rocket silo}} || [[Rocket silo]] || The rocket silo can output its contents or requests from space platforms.{{SA}} ||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Space platform hub|space-age=yes}} || [[Space platform hub]] || Can output its contents, destination and source planet, current speed, and damage taken&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Read Speed = Signal &#039;&#039;V&#039;&#039;&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Read Damage Taken = Signal &#039;&#039;D&#039;&#039;&lt;br /&gt;
| Platform hub can be sent the contents of the circuit network to use for wait conditions&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Asteroid collector|space-age=yes}} || [[Asteroid collector]] || Can output its contents to the circuit network || Can enable on a condition and set filters on a signal ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Requester chest}} {{Icon|Buffer chest}} {{Icon|Storage chest}} {{Icon|Passive provider chest}} {{Icon|Active provider chest}} || [[Requester chest]], [[Buffer chest]], [[Storage chest]], [[Passive provider chest]], [[Active provider chest]] || Can send its contents to the circuit network. || Buffer and requester chests can have their requested items set by the circuit network.&lt;br /&gt;
&lt;br /&gt;
Can be enabled/disabled via a circuit network condition. When disabled, chests that provide items to the logistics network no longer provide those items. When disabled, chests that request items from the logistics network no longer request those items.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Storage tank}} || [[Storage tank]] || The storage tank can send its fluid content to the circuit network. ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Gate}} || [[Gate]] || Gates can send a signal to the circuit network.&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Player detected = [[File:Signal-G.png|16px]]&lt;br /&gt;
|| Gates can be opened on a condition. ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Nuclear reactor}} {{Icon|Heating tower|space-age=yes}} || [[Nuclear reactor]], [[Heating tower]] || The reactor and heating tower can output any fuel, including the fuel currently being burned, to the circuit network, as well as its current temperature&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Read temperature = [[File:Signal-T.png|16px]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Agricultural tower|space-age=yes}} || [[Agricultural tower]] || Can output any seeds and harvested plants in its inventory || Agricultural tower can be enabled on a condition || Can be enabled on a logistic network condition&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Gun turret}} {{Icon|Laser turret}} {{Icon|Flamethrower turret}} {{Icon|Rocket turret|space-age=yes}} {{Icon|Tesla turret|space-age=yes}} {{Icon|Railgun turret|space-age=yes}} || [[Gun turret]], [[Laser turret]], [[Flamethrower turret]], [[Rocket turret]], [[Tesla turret]], [[Railgun turret]] || Can send their respective ammunition to the circuit network&lt;br /&gt;
* Laser and tesla turrets will not send any signal if this option is selected, due to not using ammo&lt;br /&gt;
|| Can enable, set priorities, and ignore priorities on a condition || Can be enabled on a logistic network condition&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Artillery turret}} || [[Artillery turret]] || Can send its ammunition to the circuit network || Can be enabled on a condition || Can be enabled on a logistic network condition&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Rail signal}} || [[Rail signal]] || Rail signals can send their state to the circuit network.&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: [[File:Signal-Red.png|16px]][[File:Signal-Yellow.png|16px]][[File:Signal-Green.png|16px]]&lt;br /&gt;
Note: If red due to circuit network, does NOT output red signal&lt;br /&gt;
|| Rail signals can be set to red on a condition. ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Rail chain signal}} || [[Rail chain signal]] || Rail chain signals can send their state to the circuit network.&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: [[File:Signal-Red.png|16px]][[File:Signal-Yellow.png|16px]][[File:Signal-Green.png|16px]][[File:Signal-Blue.png|16px]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Train stop}} || [[Train stop]] || &lt;br /&gt;
Train stops can output:&lt;br /&gt;
* The contents, except fuel, of a stopped train&lt;br /&gt;
** Any fluid amounts are rounded down to the nearest full number, except when the fluid is &amp;lt; 1, then it is rounded to 1.&lt;br /&gt;
* The unique Train ID of a stopped train, defaulting to [[File:Signal-T.png|16px]]&lt;br /&gt;
* The number of trains en-route to the current stop, including the currently stopped train, defaulting to [[File:Signal-C.png|16px]]&lt;br /&gt;
||&lt;br /&gt;
* Send the signal to the train, to use in wait conditions&lt;br /&gt;
* Enable the stop on a condition&lt;br /&gt;
** Disabled stops act as if their train limit = 0. Trains attempting to go here will enter the &amp;quot;Destination Full&amp;quot; state.&lt;br /&gt;
* Set the stop&#039;s train limit to the value of a control signal, defaulting to [[File:Signal-L.png|16px]]&lt;br /&gt;
* Set the stop&#039;s priority to the value of a control signal, defaulting to &amp;quot;P&amp;quot;&lt;br /&gt;
|| Train stops can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Accumulator}} || [[Accumulator]] || It can send its charge level in percent to the circuit network. &lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Charge % = [[File:Signal-A.png|16px]]&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Roboport}} || [[Roboport]] || It can send its logistic network contents and/or its robot statistics to the circuit network. The signals used for robot statistics are configurable. &lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Available Logistics Bots = [[File:Signal-X.png|16px]]&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Total Logistics Bots = [[File:Signal-Y.png|16px]]&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Available Construction Bots = [[File:Signal-Z.png|16px]]&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Total Construction Bots = [[File:Signal-T.png|16px]]&lt;br /&gt;
*&#039;&#039;Default&#039;&#039;: Roboports in Network = [[File:Signal-R.png|16px]]&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Radar}} || [[Radar]] || Radars will transmit any signals passed into it to all other radars on the same planet.&lt;br /&gt;
Unlike other machine outputs, signals from red and green wires are transmitted separately.&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Display panel}} || [[Display panel]] || || Can display a label and/or custom message on a condition ||&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Burner mining drill}} || [[Mining drill]]s || All mining drills can send the expected resources, either from the drill itself or from the whole ore patch the drill is on. || Mining drills can be enabled on a condition. || Mining drills can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Pumpjack}} || [[Pumpjack]] || It can output the current oil mining rate. || It can be enabled on a condition. || It can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Power switch}} || [[Power switch]] || || Power switches can connect power networks on a condition. || It can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Programmable speaker}} || [[Programmable speaker]] || || Shows alerts and plays sounds based on circuit network signals. It can be used to make simple tunes.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Lamp}} || [[Lamp]] || || The lamp can be enabled on a condition. &lt;br /&gt;
*&#039;&#039;Color mapping&#039;&#039;: The color is set based on the provided color signals&lt;br /&gt;
*&#039;&#039;Color components&#039;&#039;: The color is set based on the values of incoming red, green, and blue color signals, which should be between 0 and 255&lt;br /&gt;
*&#039;&#039;Packed RGB&#039;&#039;: The color is set based on a single hex encoded RGB color on the white color signal. It should be between 0 and 16777215&lt;br /&gt;
|| The lamp can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Offshore pump}} || [[Offshore pump]] || || The offshore pump can be enabled on a condition. || The offshore pump can be enabled on a logistic network condition.&lt;br /&gt;
|-&lt;br /&gt;
| {{Icon|Pump}} || [[Pump]] || || The pump can be enabled on a condition and set its filter on a signal || The pump can be enabled on a logistic network condition.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Physical network structure ==&lt;br /&gt;
A circuit network consists only of those devices connected together with the same color wire. Wire can be strung directly from device to device, or across any intervening power poles. Wire length is limited by its previous connection.&lt;br /&gt;
&lt;br /&gt;
Note that each connected set of wires forms a separate network.  For example, it&#039;s entirely possible to have four red-wire networks and three green-wire networks. If red and green wires happen to touch the same power pole or device, the red and green networks will remain separate and will not link up. However, two red cables or two green cables will link if they touch. Use different colored cables to separate networks in close proximity.&lt;br /&gt;
&lt;br /&gt;
* To connect wires or cables to a power pole, simply click on one entity, then on the base of the power pole.&lt;br /&gt;
* To erase a wire or cable connection, place the same color wire over an existing connection. You don&#039;t get the wire/cable back.&lt;br /&gt;
* To remove &#039;&#039;&#039;all&#039;&#039;&#039; connections from a power pole, shift-click on the pole.  The first shift-click will remove all electrical connections, and the second will remove all red and green wires.&lt;br /&gt;
* When connecting to a [[arithmetic combinator]] or [[decider combinator]], take care to connect the wire to the correct input or output side. Use &amp;quot;Show details&amp;quot; mode to see the orientation of the combinator.&lt;br /&gt;
* Hovering the mouse cursor over an item will highlight all wires which connect to the item.&lt;br /&gt;
* Hovering the mouse cursor over a power pole which is part of a network will display the signals on its network. Some items like combinators will also display their input and output signals when hovered over.&lt;br /&gt;
* Cut-pasting entities tries to preserve all wire connections to external entities and reconnect the new ghost to all its previous connection points, even when pasted multiple times, making it easy to rearrange entities without breaking connections.&lt;br /&gt;
* Deconstructing a power pole tries to keep all affected wire connections intact, forming new wires between previously-connected entities as needed. This can result in redundant wire connections forming when cut-pasting or undoing deconstruction. Note that this doesn&#039;t happen when the power pole is destroyed, though its ghost remains connected.&lt;br /&gt;
&lt;br /&gt;
== Combinators ==&lt;br /&gt;
Combinators can function as both receiving and sending devices and allow more advanced functions to be used on a circuit network.&lt;br /&gt;
&lt;br /&gt;
*The [[constant combinator]] broadcasts up to 20 values on any of the channels for whatever networks it is connected to.  (You cannot currently specify whether a value should be on the red or green channel; if you need different values, use two combinators, one for each color wire.)  You can use any item channel or any of the [[#Virtual signals|virtual signal]] channels.&lt;br /&gt;
**Note that using two of the 20 slots to broadcast values on the &#039;&#039;&#039;same&#039;&#039;&#039; channel is the same as broadcasting the sum of the two values from one slot.&lt;br /&gt;
*The [[arithmetic combinator]] performs arithmetic operations on input values and broadcasts the result to the specified output channel.  The input and output channels can be any item channel or any of the virtual signal channels.&lt;br /&gt;
** Connecting: The arithmetic combinator connects to a red or green network on its &#039;&#039;&#039;input&#039;&#039;&#039; side (the terminals are set into the main body and look like spark plugs) and performs an arithmetic calculation which is broadcast into the specified channel on its &#039;&#039;&#039;output&#039;&#039;&#039; side (the output wires appear to stretch out a bit from the body of the device).&lt;br /&gt;
** Feedback: Note that the input network and the output network &#039;&#039;&#039;are not the same network&#039;&#039;&#039;.  Connecting the output network back to the input network will result in a feedback loop.  For example, adding 1 to the value for copper plates and broadcasting it as copper plates is an action that results in an infinite loop if output is connected back to input.  The value for copper plates will rapidly (but not instantly) shoot upward. (The rate at which it climbs is determined by the current tick rate.) This technique can be combined with decider combinator logic to make electronic clocks, gates, and other systems; see [[Tutorial:Combinator tutorial|Combinator Tutorial]] for advanced techniques.&lt;br /&gt;
** Each:  This combinator can use the &#039;Each&#039; signal for both input and output, in which case &#039;&#039;&#039;all&#039;&#039;&#039; non-zero input channels will have the combinator&#039;s operation performed and broadcast on the output side.  Having Each signals for input and output and using a non-changing operation (like adding zero) is equivalent to having a &#039;one-way&#039; wire; all the information from the input network is copied to the output network, but the reverse is not true.&lt;br /&gt;
**Multi-network: The arithmetic combinator can be joined to both red and green networks on the input side and will sum their inputs.&lt;br /&gt;
*The [[decider combinator]] functions much like an arithmetic combinator, but is designed to compare values. Essentially, it is a conditional. In terms of connecting, feedback, and the Each signal it functions as specified above.  In addition, it can handle the Everything and Anything signals, and performs more complex functions than summing when attached to multiple networks.  See the [[decider combinator]] page for more details on how to use this.&lt;br /&gt;
* The [[selector combinator]] has various functions designed for filtering out and analyzing specific signals from its inputs. It is able to output the largest or smallest signal in a series of inputs, output the stack size of items, count the number of inputs, and output a random input every certain number of game ticks. If [[Space Age]]{{SA}} is enabled, it has three more functions for detecting an item&#039;s rocket capacity, and filtering/transferring [[quality]]{{SA}} grades.&lt;br /&gt;
&lt;br /&gt;
== Virtual signals ==&lt;br /&gt;
[[File:Virtual_Signals_dialog_box.png|thumb|Some of the Virtual Signals available for use in the circuit network in the base game]]&lt;br /&gt;
Virtual signals are special signals that do not correspond to game items or fluids. Other than the three logic signals, virtual signals do not behave differently from item signals.&lt;br /&gt;
&lt;br /&gt;
There are 177 virtual signals available (or 241 in [[Space Age]]{{SA}}) split between the Signals, Enemies, Environment, and Unsorted tabs. These include but are not limited to, numbers, letters, various lines &amp;amp; arrows, information icons, every [[enemies|enemy]] variant, environmental features, and the signal for the planet [[Nauvis]].&lt;br /&gt;
&lt;br /&gt;
Additionally, if the &amp;quot;Show parameters in selection lists&amp;quot; option is enabled under game Settings &amp;gt; Interface &amp;gt; Interaction, the Unsorted tab receives 10 special purple &amp;quot;parameter&amp;quot; icons which can be used for blueprint [[Blueprint#Parameterisation|parameterisation]].&lt;br /&gt;
&lt;br /&gt;
=== Logic signals ===&lt;br /&gt;
[[File:logic_signals.png|300px|thumb|The icons of the three logic signals]]&lt;br /&gt;
Three of the virtual signals cannot be sent over a network but apply special logic to multiple signals.&lt;br /&gt;
&lt;br /&gt;
==== Everything ====&lt;br /&gt;
&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF6666&amp;quot;&amp;gt;Everything&amp;lt;/span&amp;gt;&#039;&#039; can be used on the left side in conditionals. The condition will be true when the condition is true for each input signal. The condition is also true if there are no signals. This means that the &#039;&#039;everything&#039;&#039; signal behaves as [[:Wikipedia:universal quantification|universal quantification]]. A signal is present if it is nonzero, so &amp;quot;Everything ≠ 0&amp;quot; is always true.&lt;br /&gt;
&lt;br /&gt;
If a signal (rather than a constant number) is used on the right side of the comparison with &#039;&#039;everything&#039;&#039;, it is implicitly excluded from the set of signals that &#039;&#039;everything&#039;&#039; checks, so the signal is not matched against itself. That means it is meaningful to test e.g. &#039;&#039;everything&#039;&#039; &amp;gt; &#039;&#039;X&#039;&#039;, without getting a trivially false result on &#039;&#039;X&#039;&#039; &amp;gt; &#039;&#039;X&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The output of a [[decider combinator]] may also use &#039;&#039;everything&#039;&#039;, unless the input is set to &#039;&#039;each&#039;&#039;. When used, the combinator will output a signal on every channel with non-zero input as long as the condition is true; the value will either be the input value or 1, depending on the corresponding setting.&lt;br /&gt;
&lt;br /&gt;
==== Anything ====&lt;br /&gt;
&#039;&#039;&amp;lt;span style=&amp;quot;color:#99FF99&amp;quot;&amp;gt;Anything&amp;lt;/span&amp;gt;&#039;&#039; can be used on the left side of conditions. It will be false when there are no inputs. The condition will be true when the condition is true for at least one signal. This means the &#039;&#039;anything&#039;&#039; signal behaves as [[:Wikipedia:existential quantification|existential quantification]]. A signal is present if it is nonzero, so &amp;quot;Anything = 0&amp;quot; is always false.&lt;br /&gt;
&lt;br /&gt;
If a signal (rather than a constant number) is used on the right side of the comparison with &#039;&#039;anything&#039;&#039;, it is implicitly excluded from the set of signals that &#039;&#039;anything&#039;&#039; checks, so the signal is not matched against itself. That means it is meaningful to test e.g. &#039;&#039;anything&#039;&#039; &amp;gt;= &#039;&#039;X&#039;&#039;, without getting a trivially true result on &#039;&#039;X&#039;&#039; &amp;gt;= &#039;&#039;X&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
When used in both the input and output of a decider combinator, &#039;&#039;anything&#039;&#039; will return the first matching signal following the order of precendence as they appear in Factoriopedia, [[wooden chest]] being first in line.&lt;br /&gt;
&lt;br /&gt;
==== Each ====&lt;br /&gt;
&#039;&#039;&amp;lt;span style=&amp;quot;color:#FFFF99&amp;quot;&amp;gt;Each&amp;lt;/span&amp;gt;&#039;&#039; can only be used in left input side and output of [[decider combinator|decider]] and [[arithmetic combinator|arithmetic]] combinators. The signal can only be used as an output when also used as an input. When used in both the input and output, it makes a combinator perform its action on each input signal individually. The combinator will output the sum of each of the actions if only used in the input.&lt;br /&gt;
&lt;br /&gt;
A combinator using &#039;&#039;each&#039;&#039; is like a stack of combinators with all inputs connected and all outputs connected in parallel. For example, if there are signals &amp;quot;copper plate&amp;quot; and &amp;quot;iron plate&amp;quot; present, one combinator would be evaluating conditions for copper, and the other combinator would be evaluating conditions for iron. The different output signals would then be added together on the shared wire.&lt;br /&gt;
&lt;br /&gt;
Unlike &#039;&#039;everything&#039;&#039; and &#039;&#039;anything&#039;&#039; above, if a signal is used on the right hand side of an &#039;&#039;each&#039;&#039; operation, it is &#039;&#039;not&#039;&#039; implicitly excluded. So if you have e.g. &#039;&#039;each&#039;&#039; * &#039;&#039;X&#039;&#039; then you will also get &#039;&#039;X&#039;&#039; multiplied with itself in the output.&lt;br /&gt;
&lt;br /&gt;
Each as an input will only be processed on signals that have a non-zero value. If you have a [[decider combinator|decider]] condition that inputs and output each, but wants to output only one value for an input signal that passes the condition, it will never output 1 for a signal which has a zero value, even if the condition is one that would be passed for a zero value.&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
*&#039;&#039;&#039;[[Tutorial:Circuit network cookbook]]&#039;&#039;&#039; - &#039;&#039;Example-heavy tutorials; for beginners who want to get to know and use the benefits of the circuit network.&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;[[Tutorial:Combinator tutorial]]&#039;&#039;&#039; - &#039;&#039;Mainly textual and detailed tutorials.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Logistic network ==&lt;br /&gt;
The logistic network used by [[logistic robot]]s is essentially a third network (a wireless one), along with the green and red wired networks. The logistic network is based on coverage by [[roboport]]s.&lt;br /&gt;
&lt;br /&gt;
Some devices can also be connected to the logistic network and enabled based on a condition. If a device has conditions set for circuit and for logistic network, it will become activated if both conditions are true. Devices that can also be controlled with the logistic network:&lt;br /&gt;
* Agricultural tower{{SA}}&lt;br /&gt;
* Crafting machines&lt;br /&gt;
* Inserters&lt;br /&gt;
* Lamp&lt;br /&gt;
* Mining drills&lt;br /&gt;
* Offshore pump&lt;br /&gt;
* Power switch&lt;br /&gt;
* Pump&lt;br /&gt;
* Pumpjack&lt;br /&gt;
* Train stop&lt;br /&gt;
* Transport belts&lt;br /&gt;
* Turrets&lt;br /&gt;
&lt;br /&gt;
See the [[logistic network]] and [[roboport]] articles for more information.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
{{history|2.0.35|&lt;br /&gt;
* Furnaces can be connected to circuit network.}}&lt;br /&gt;
&lt;br /&gt;
{{history|2.0.34|&lt;br /&gt;
* Extended the virtual signals, and unified/changed graphics of some of the existing ones.}}&lt;br /&gt;
&lt;br /&gt;
{{history|2.0.7|&lt;br /&gt;
* Added selector combinator. It allows to select one of the signals, or the signal count from an input.&lt;br /&gt;
* Added display panel. 1X1 entity which can show specified icon and/or text, possibly also on the map. It can be also controlled by the circuit network.&lt;br /&gt;
* Added editable description to combinator entities.&lt;br /&gt;
* Decider Combinators are now allowed to check multiple conditions and send multiple outputs per combinator.&lt;br /&gt;
* Radar can now be connected to circuit network, allowing to wirelessly transmit a single channel of red and green signals on each planet/surface.&lt;br /&gt;
* All turrets (including artillery) can now be connected to the circuit network to read their current ammo count and/or deactivate them.&lt;br /&gt;
* Assembling machines, chemical plants, oil refineries and centrifuges can now send the ingredient list of their recipes to the circuit network.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.15.0|&lt;br /&gt;
* Significantly improved circuit network performance. Up to 25 times less CPU usage and 10% less memory usage.&lt;br /&gt;
* Added the Programmable Speaker: it shows alerts and plays sounds based on circuit network signals. It can be used to make simple songs.&lt;br /&gt;
* Train Stop can output the contents of the stopped train&#039;s cargo.&lt;br /&gt;
* Train Stop can be disabled using the circuit network. Trains will skip disabled Train Stops, allowing simple train control.&lt;br /&gt;
* Mining Drills can be turned on and off using the circuit network. They can also output the remaining expected resources.&lt;br /&gt;
* Pumpjacks can be turned on and off using the circuit network. They can also output the current oil mining rate.&lt;br /&gt;
* Added Modulo, Power, Left Bit Shift, Right Bit Shift, Bitwise AND, Bitwise OR and Bitwise XOR to the Arithmetic Combinator.&lt;br /&gt;
* Added additional operators to the Decider Combinator and Circuit Conditions.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.13.0|&lt;br /&gt;
* Many machines are now connectible to the circuit network.&lt;br /&gt;
* Wire disconnecting is incorporated into the latency hiding.&lt;br /&gt;
* Wires are now highlighted on entity mouseover.&lt;br /&gt;
* Reduced memory usage of circuit network.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.33|&lt;br /&gt;
* Fluid values are rounded to the closest value instead of rounding down when transmitted to circuit network.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.1|&lt;br /&gt;
* One can copy paste circuit network conditions between the [[inserter]], [[lamp]], [[pump]] and [[offshore pump]]. }}&lt;br /&gt;
&lt;br /&gt;
{{history|0.12.0|&lt;br /&gt;
* Improvements to circuit network connection, one can connect multiple wires of the same color to the same entity.&lt;br /&gt;
* The [[lamp]], [[storage tank]], [[pump]] and [[offshore pump]] can be connected to the circuit network.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.10.0|&lt;br /&gt;
* [[Blueprint]]s copy circuit network connections.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.8.3|&lt;br /&gt;
* Circuit network contents info has colored slots to specify the network it represents.}}&lt;br /&gt;
&lt;br /&gt;
{{history|0.1.0|&lt;br /&gt;
* Introduced}}&lt;br /&gt;
&lt;br /&gt;
{{C|Logistics{{!}}#Circuit network}} {{C|Circuit network{{!}}#Circuit network}}&lt;/div&gt;</summary>
		<author><name>Glek</name></author>
	</entry>
</feed>