https://wiki.factorio.com/api.php?action=feedcontributions&user=BlackJack69&feedformat=atomOfficial Factorio Wiki - User contributions [en]2024-03-29T10:54:34ZUser contributionsMediaWiki 1.38.2https://wiki.factorio.com/index.php?title=Solar_panel&diff=168171Solar panel2019-02-15T21:34:39Z<p>BlackJack69: /* Notes */ Added information on ratio for accumulators, as a simple ratio and for the 1 MW example.</p>
<hr />
<div>{{languages}}<br />
{{:Infobox:Solar panel}}<br />
<br />
'''Solar panels''' are an unlimited source of free energy that produce no pollution. During daylight hours every panel provides the maximum power level, 60kW. Generated power will increase/decrease linearly during dusk and dawn, and no power is produced at night. This means one solar panel produces an average of 42 kW over one day and night cycle.<br />
<br />
== Energy management ==<br />
<br />
As already stated, solar panels produce energy only during the day, but you are likely to want your factory running at night as well. [[Accumulator]]s can be charged up with solar panels during the day to power the base at night.<br />
<br />
Accumulators are not the only way to work with solar energy. Sometimes it is more economical to just avoid consuming energy at night. For example, if you power a bunch of [[electric mining drill]]s and [[electric furnace]]s to produce [[Iron plate|iron]] and [[copper plate]]s, you could build more drills and furnaces than you actually need, and store the excess metal production during the day. At night you can shut down the drills and furnaces, and let your factory run with the stored plates. Instead of storing energy, you would be storing what the energy is used for. The easiest way to achieve this is by connecting all your extractors and furnaces to an electric network with exactly enough solar panels to make them work during the day, and keeping this network away from your factory's main electric network.<br />
<br />
== Notes ==<br />
* A single solar panel outputs an average of 42 kW over a day and requires 0.84 accumulators to sustain a constant power output through the night.<br />
* It takes 23.8 solar panels to operate 1 MW of factory '''and''' charge 20 accumulators to sustain that 1 MW through the night.<br />
<br />
== Achievements ==<br />
{{Achievement|solaris}}<br />
{{Achievement|steam-all-the-way}}<br />
<br />
== History ==<br />
{{history|0.13.2|<br />
* Changed tech requirement from Adv. Electronics to Electronics.}}<br />
<br />
{{history|0.12.11|<br />
* Energy of the solar panel is now fractioned between all the networks it's connected to.}}<br />
<br />
{{history|0.12.0|<br />
* Massive optimisations to solar panel logic.}}<br />
<br />
{{history|0.11.0|<br />
* Significantly slowed crafting speed to 10 secs from 0.5 sec.}}<br />
<br />
{{history|0.7.1|<br />
* Made solar panels pre-science pack 3.}}<br />
<br />
{{history|0.5.0|<br />
* Unplugged icon shown when not connected to any power transfer device.}}<br />
<br />
{{history|0.3.0|<br />
* New solar panel graphics.}}<br />
<br />
{{history|0.2.1|<br />
* Priority of power consumption changed to consume from solar panel first.}}<br />
<br />
{{history|0.1.0|<br />
* Introduced}}<br />
<br />
== See also ==<br />
* [[Electric system]]<br />
* [[Accumulator]]<br />
* [[Power_production#Optimal_ratio|Calculating the optimal ratio of accumulators to solar panels]]<br />
* A [https://forums.factorio.com/viewtopic.php?f=5&t=9314 Solar Power Excel sheet]<br />
* [https://forums.factorio.com/viewtopic.php?f=8&t=8949 (Forum topic) The way I solar]<br />
* [[Game-day]]<br />
<br />
{{ProductionNav}}<br />
{{C|Energy}}</div>BlackJack69https://wiki.factorio.com/index.php?title=Tutorial_talk:Combinator_tutorial&diff=168037Tutorial talk:Combinator tutorial2019-02-12T00:19:23Z<p>BlackJack69: /* Binary gates redundant? */</p>
<hr />
<div>== Memory cells ==<br />
<br />
I am aiming to update the "memory cells" section.<br />
* The "advanced cell" does not handle 1-tick bursts properly. (I updated the article and wrote about that)<br />
* There should be more versions of the memory cell, including versions that can handle negative input.<br />
<br />
I may post some of my designs here once I finish polishing them.<br />
-- [[User:SafwatHalaby|SafwatHalaby]] ([[User talk:SafwatHalaby|talk]]) 09:46, 13 May 2018 (UTC)<br />
<br />
:Thank you for this, designs are appreciated here. It's good that you remain objective about their advantages and disadvantages. -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - <span style="color:#FF0000">Admin</span> 11:57, 13 May 2018 (UTC)<br />
<br />
:: Thank you for your incredible work on the Wiki. I am always 100% objective. In this particular scenario, the initial design is objectively flawed. Try connecting a simple clock (self-connected arithmetic combinator with + 1) into it and then disconnecting it suddenly, its memory will flicker between the last two values. More generally, if the current input is only given for 1 tick, then it flickers between the current and the previous input. I do not want to remove it without the approval of the original poster. Here is a demo of the flicker. This device on the left sends a 1-tick pulse of 1. The lamp turns on if the output signal is 1. -- [[User:SafwatHalaby|SafwatHalaby]] ([[User talk:SafwatHalaby|talk]]) 13:46, 13 May 2018 (UTC)<br />
<br />
:: (edit: fixed link): https://streamable.com/5r7w8<br />
<br />
::: Because your memory cell has the same size, the other memory cell has no advantages over it. So, I am okay with a removal of the "positive cell". -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - <span style="color:#FF0000">Admin</span> 14:53, 13 May 2018 (UTC)<br />
<br />
:::: Ok. Let's wait for a while in case the original poster has comments that we've missed.<br />
<br />
:::: There's one advantage for the previous design: It's useful for someone that absolutely requires a reset-on-negative and not reset on a dedicated line, and does not care about the flicker issue. But that seems like a very rare edge case, and someone who needs it is most likely very experienced and doesn't need this guide. -- [[User:SafwatHalaby|SafwatHalaby]] ([[User talk:SafwatHalaby|talk]]) 15:54, 13 May 2018 (UTC)<br />
<br />
== Binary gates redundant? ==<br />
<br />
The binary gates do not seem to have much function, because As of 0.16, arithmetic combinators have built-in binary logic support. -- [[User:SafwatHalaby|SafwatHalaby]] ([[User talk:SafwatHalaby|talk]]) 09:56, 13 May 2018 (UTC)<br />
<br />
:I am not very experienced in combinators, but aren't the combinators OR, XOR and AND option bitwise instead of binary? [[User:My3DS]] changed the page to specify that just yesterday, so it seems important to me. -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - <span style="color:#FF0000">Admin</span> 11:57, 13 May 2018 (UTC)<br />
<br />
:: I am not sure I understand the difference between "bitwise" and "binary" in the context of 1-bit inputs.<br />
<br />
:: The built-in OR, XOR, and AND produce exactly the same truth tables as the ones currently in the article for inputs of 1's and zeros, and are additionally capable of performing more than that for inputs greater than 1.<br />
<br />
:: -- [[User:SafwatHalaby|SafwatHalaby]] ([[User talk:SafwatHalaby|talk]]) 13:25, 13 May 2018 (UTC)<br />
<br />
::: Like I said, combinators aren't my strong suit :) So yes, they are redundant, but I'd personally wait and see what My3DS wants to do with the gates before removing them. Perhaps give them a week, and if nothing is changed until then, remove them. -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - <span style="color:#FF0000">Admin</span> 14:53, 13 May 2018 (UTC)<br />
<br />
:::: Ok :), does the wiki have some sort of "pinging" system to let them see the conversation?. -- [[User:SafwatHalaby|SafwatHalaby]] ([[User talk:SafwatHalaby|talk]]) 15:54, 13 May 2018 (UTC)<br />
<br />
::::: You can't ping people directly, but if you leave a message on someones talk page, they will see a notification until they check it. -- [[User:Bilka|Bilka]] ([[User talk:Bilka|talk]]) - <span style="color:#FF0000">Admin</span> 18:12, 13 May 2018 (UTC)<br />
<br />
:::::: Thank you :) -- [[User:SafwatHalaby|SafwatHalaby]] ([[User talk:SafwatHalaby|talk]]) 14:06, 14 May 2018 (UTC)<br />
<br />
::: I can see the merit in these designs for 3 or more inputs. But I think it should be clear to the reader that the 2-input designs are alternatives to the built-in ones, and that the bitwise vs binary sentence should be clarified. -- [[User:SafwatHalaby|SafwatHalaby]] ([[User talk:SafwatHalaby|talk]]) 14:06, 14 May 2018 (UTC)<br />
<br />
I have updated the page to have some clarification of what is meant by bitwise and some additional notes on the gates, as some can function with boolean or non-boolean values (or binary vs non-binary values), and some can have more inputs. Let me know if something doesn't make sense or should be improved. I'm also not sure if the built in ones should be under the others or before it. [[User:BlackJack69|BlackJack69]] ([[User talk:BlackJack69|talk]]) 00:19, 12 February 2019 (UTC)</div>BlackJack69https://wiki.factorio.com/index.php?title=Tutorial:Combinator_tutorial&diff=168036Tutorial:Combinator tutorial2019-02-12T00:12:44Z<p>BlackJack69: /* Logic gates */ Added more info on built in conditions and clarified what bitwise means. Clarified which ones require boolean input values.</p>
<hr />
<div>{{Languages}}<br />
== Introduction ==<br />
Combinator logic is achieved by cross-connecting outputs to inputs in such a way to achieve the desired logic. While advanced logic requires a multitude of combinators, some very useful basic logic can be achieved using only a handful of combinators. '''Combinator logic works because Factorio only updates at 60 times per second, such that combinators analyze their logic in a step, and then sum and/or decide the resulting output values on the next step.'''<br />
<br />
When logic values are computed by combinators, the outputs are not recognized by the circuit network until the following step. So when a decider combinator is used to detect a certain input condition, it's output value will not take effect on the circuit network until the next step. '''This behavior is important to remember and can result in sequencing errors and significant delays when multiple combinators are connected in series.'''<br />
<br />
Circuit wires act like a wire bus in electronics, it carries information in the connected wires, meaning that '''if there are similar signals on a wire, it will add them automatically, unless if it is a different signal, that means it will be carried in that wire as well, but as a different signal.'''<br />
<br />
When cross-connecting combinators '''it's good practice to use the unused color to cross-connect, this will split the input and output networks and prevent unwanted inputs from accidentally connecting to a larger circuit network.''' Combinators will sum the red &/or green inputs prior to calculation, so either color can be used when wiring the output back to the input, but in most cases, it is more useful to use the opposing color of the wire so that it will not interfere with the resulting output and input.<br />
<br />
''There is also an example heavy [[Tutorial:circuit network cookbook|circuit network cookbook]] that you may find helpful to learn and refer to about circuit networks.''<br />
<br />
== Virtual signals ==<br />
<br />
=== Everything wildcard ===<br />
<br />
This red wildcard serves to check all the specified input signals.<br />
<br />
When used in the decider combinator<br />
* as input it checks if all inputs meet the specified condition.<br />
* as output it serves output to every signal.<br />
<br />
Side note: "Everything" outputs true by default even if there is no signal to guarantee that it is true. ''Everything is false when every input does not meet the condition, otherwise, output true.''<br />
<br />
=== Anything wildcard ===<br />
<br />
This green wildcard serves to check all the specified input signals.<br />
<br />
When used as input in the decider combinator it checks if any of the inputs meet the specified condition.<br />
<br />
Side note: "Anything" outputs false by default if there is no signal to guarantee that it is true. ''Anything is false when any of inputs do not meet the condition, otherwise, it is true.''<br />
<br />
=== Each wildcard ===<br />
<br />
This yellow wildcard serves to check for each the specified input signals.<br />
<br />
When used in the decider combinator<br />
* as input it checks on all inputs if it meets the specified condition.<br />
* as output it serves output to each signal.<br />
<br />
When used as input in the arithmetic combinator it serves each input, then the following summations are summed and outputted, with each signal as its own respective signals.<br />
<br />
== Input insulator & gate ==<br />
An arithmetic combinator set to (In: Each + 0, Out: Each) can be used to swap wire colors and as an insulator to prevent downstream logic from backfeeding into the circuit network's inputs.<br />
<br />
A decider combinator set to (Out: Everything, Input-> Output) will also function as an insulator as long as the set logic condition is true. This can also selectively pass or 'gate' inputs only when desired. This could be used to sequentially poll remote train stations for their chest contents, and include only desired stations.<br />
<br />
== Set/Reset latching switch ==<br />
You want something to SET a trigger at some quantity, but then STAY on until that quantity hits some other value, the RESET value. You'll need one decider combinator and one arithmetic combinator. Two decider combinators and a constant combinator can also be used for more complex multi-channel conditions.<br />
<br />
Setup the first decider combinator to the desired set conditional and to output a 1. Then connect the output to the input of an arithmetic combinator, and configure it to multiply by the bias value, the difference between the set and reset values, and wire the arithmetic output to the input of the decider. The arithmetic output channel MUST be set the same as the decider's input channel. That's it! Whenever your set conditional is reached, the decider will output a '1', and the bias of the arithmetic combinator will be applied. This will 'hold' the output true until the value goes back below the reset point.<br />
<br />
Here's a more specific example, I want the pump to run when petrol reach 2000, and turn off when reach 200: <br />
* Tank -> in decider<br />
* out decider -> in arithmetic<br />
* out arithmetic -> in decider<br />
* green wire from in decider, to pump<br />
<br />
Pump has the same condition as the decider (Petrol > 2000)<br />
<br />
* Decider: Petrol > 2000<br />
* out: A = 1<br />
* Arithmetic: A x 1800 (2000 - 200 )<br />
* out: petrol<br />
[[File:Factorio combinator switch.png|620px]]<br />
<br />
Backup steam power example with detailed configuration and explanation can be found here:<br />[[Tutorial:Circuit network cookbook#SR_latch_-_single_decider_version|Tutorial:Circuit-network_Cookbook#SR latch - single decider version]]<br />
<br />
== Smart train loading ==<br />
This solves the problem of loading logistics into chests, which tend to be unequal and is slower in the rate of loading logistics into the cargo of trains.<br />
<br />
To setup the design, you require an Arithmetic Combinator, as well as Red and Green wires. '''Wire all the chests used, to the input of the Arithmetic Combinator'''. '''Then write (Logistics Item / -Amount of chests) and as the output as the Logistics Item in the Arithmetic Combinator''', this will average the amount of items within the chests. Lastly, '''wire all the inserters used to the output of the Arithmetic Combinator and have the other color of the wire be wired to the adjacent chest'''. '''Have the inserters enabled when Logistics Item < 1'''.<br />
<br />
A more visual representation as well as questions about the design can be found in a reddit post: [https://www.reddit.com/r/factorio/comments/4e03g2/madzuris_smart_loading_train_station_guide/ MadZuri's smart loading train station].<br />
<br />
Explanation of why this works:<br />
It compares the average amount of total items within the chests and the chest adjacent to the inserter so that it activates when the average number of items is higher than the amount within the chest.<br />
The reason for why the division denominator is negative is because if the items in the chests are 0, it basically makes it so that it adds 1 to the equation.<br />
<br />
== Memory ==<br />
How to store a constant value for later use, either for a basic counter or for more advanced logic. A decider combinator wired output tied to input and configured greater than zero (for positive values), input -> output will 'hold' a value, as long as all other inputs on the network are zero.<br />
<br />
Any non-zero input condition will create a basic clock; incrementing the stored value by the sum of all connected input values every cycle. A single pulse of an input will cause a single increment by the pulsed value. Reset to zero occurs whenever the set condition is no longer met, or if a negative pulse equal to the input occurs.<br />
<br />
== Basic clocks ==<br />
[[File:Timer.png|thumb|right|377px|A basic clock. 30 ticks is the ceiling for Signal 1; which is continuously added.]]<br />
Clocks are constructed by having the output of a combinator tied back to its own input, such that every cycle advances its own count. Either the arithmetic combinator or the decider combinator can be used.<br />
<br />
An arithmetic combinator tied to itself is fun to watch and will happily run-away, but requires additional control logic to reset.<br />
<br />
A self-resetting clock requires just a single decider combinator with output wired to input and configured with Less Than (<) and Input -> Output. When a constant combinator is then connected to the input, every cycle it will count up by the value of the Constant Combinator until the set conditional value is reached, then output a zero which will be summed with the constant combinator, and reset the process.<br />
<br />
The clock sequence will not include zero, will begin at the value set by the constant combinator, and will include whatever value eventually causes the conditional to be false. An arithmetic combinator can modify the clock sequence but remember its outputs will occur one cycle later than the clock cycle values.<br />
<br />
A clock that only counts once can be built using the following setup:<br />
<br />
[[File:Onetime_Clock.png|thumb|none|360px|One-time clock. Runs until T=Z+1. Reset via R>0.]]<br />
<br />
== Pulse generators ==<br />
<br />
Connecting an additional (=) decider combinator to the output of a basic clock will create a pulse generator, and will pulse a single output every time the clock cycles through the set condition. Any output value can be used, either directly from the clock sequence (input->output), a 1, or some value on a separate logic channel on the circuit network, such as set by a constant combinator. or by the circuit network.<br /><br />
[[File:PulseGen.png|500px]]<br />
*''The value 1 can be written as any positive integer, so long as it is within the cap or ceiling of your timer.''<br />
*''As an example from the above timer, this light will pulse every 1st tick after the timer reaches 30 ticks, making it pulse 1/30th of a second, as Factorio updates at 60 times per second.''<br />
<br />
== Counter ==<br />
A counter is used to count the number of input events, and output the sum of that count. Any pulsing input into a decider combinator configured input -> output and wired between output and input will create a counter, but this input must be zero at all other times or else the combinator will run away like a clock. A pulse generator is normally used to accomplish this. Combining several gating decider isolators set with sequential conditionals, a clock, and a pulse generator to the input of a counter will allow remote polling and counting of each isolator's contents.<br />
<br />
== Logic gates ==<br />
<br />
Some logic gates will only function with boolean values, where the inputs are either 0 or 1.<br />
Other logic gates will work with other values as well, e.g. 2.<br />
<br />
==='''Built In'''===<br />
The arithmetic combinator has built in OR, XOR and AND operators.<br />
These operate bitwise, i.e. they perform the operation on each bit in the number in a binary format and return the result.<br />
<br />
An example for the bitwise AND operator:<br />
{| class="wikitable"<br />
|-<br />
!Input 1!!Input 2!!Output<br />
|-<br />
| 0 || 1 || 0<br />
|-<br />
| 1 || 1 || 1<br />
|-<br />
| 1 || 4 || 0<br />
|-<br />
| 1 || 3 || 1<br />
|-<br />
| 10 || 30 || 10<br />
|-<br />
| 10 || 40 || 8<br />
|-<br />
|} <br />
<br />
If your inputs only consist of boolean values (1 or 0) the arithmetic combinator's operators can be used as logic gates.<br />
<br />
==='''Unary NOT'''===<br />
----<br />
[[File:NOT.png|415px]]<br />
<br />
Truth Table:<br />
<br />
{| class="wikitable"<br />
|-<br />
!Input!!Output<br />
|-<br />
| 0 || 1<br />
|-<br />
| 1 || 0<br />
|-<br />
|} <br />
<br />
==='''Binary OR'''===<br />
----<br />
[[File:OR.png|300px]]<br />
<br />
Truth Table:<br />
<br />
{| class="wikitable"<br />
|-<br />
!Input 1!!Input 2!!Output<br />
|-<br />
| 0 || 0 || 0<br />
|-<br />
| 0 || 1 || 1<br />
|-<br />
| 1 || 0 || 1<br />
|-<br />
| 1 || 1 || 1<br />
|-<br />
|}<br />
<br />
''*Notes: This works for any number of inputs, all sent as the signal "A". This works for boolean inputs as well as other values.''<br />
<br />
==='''Binary NOR'''===<br />
----<br />
[[File:NOR.png|415px]]<br />
<br />
Truth Table:<br />
<br />
{| class="wikitable"<br />
|-<br />
!Input 1!!Input 2!!Output<br />
|-<br />
| 0 || 0 || 1<br />
|-<br />
| 0 || 1 || 0<br />
|-<br />
| 1 || 0 || 0<br />
|-<br />
| 1 || 1 || 0<br />
|-<br />
|} <br />
<br />
<br />
''*Notes: This works for any number of inputs, all sent as the signal "A". This works for boolean inputs as well as other values.''<br />
<br />
<br />
==='''Binary XOR'''===<br />
----<br />
[[File:XOR.png|300px]]<br />
<br />
Truth Table:<br />
<br />
{| class="wikitable"<br />
|-<br />
!Input 1!!Input 1!!Output<br />
|-<br />
| 0 || 0 || 0<br />
|-<br />
| 0 || 1 || 1<br />
|-<br />
| 1 || 0 || 1<br />
|-<br />
| 1 || 1 || 0<br />
|-<br />
|}<br />
<br />
''*Note: This only works for boolean inputs.''<br />
<br />
==='''Binary AND'''===<br />
----<br />
[[File:AND.png|530px]]<br />
<br />
Truth Table:<br />
<br />
{| class="wikitable"<br />
|-<br />
!Input 1!!Input 2!!Output<br />
|-<br />
| 0 || 0 || 0<br />
|-<br />
| 0 || 1 || 0<br />
|-<br />
| 1 || 0 || 0<br />
|-<br />
| 1 || 1 || 1<br />
|-<br />
|}<br />
<br />
''*Note:The arithmetic combinator example provided works for non-boolean values, and will return non-boolean values when given them as input, but only if both values are non 0.''<br />
<br />
''*Note:The decider combinator example provided only works for boolean values. It can be modified to have any number of inputs by changing the "1" shown to 1 less than the number of inputs, or the "2" shown to the number of inputs, as demonstrated below for a Ternary AND.''<br />
<br />
==='''Ternary AND'''===<br />
----<br />
[[File:TrinaryAND.png|415px]]<br />
<br />
Truth Table:<br />
<br />
{| class="wikitable"<br />
|-<br />
!Input 1!!Input 2!!Input 3!!Output<br />
|-<br />
| 0 || 0 || 0 || 0<br />
|-<br />
| 0 || 1 || 0 || 0<br />
|-<br />
| 0 || 0 || 1 || 0<br />
|-<br />
| 0 || 1 || 1 || 0<br />
|-<br />
| 1 || 0 || 0 || 0<br />
|-<br />
| 1 || 1 || 0 || 0<br />
|-<br />
| 1 || 0 || 1 || 0<br />
|-<br />
| 1 || 1 || 1 || 1<br />
|-<br />
|} <br />
<br />
==='''Binary NAND'''===<br />
----<br />
[[File:NAND.png|300px]]<br />
<br />
Truth Table:<br />
<br />
{| class="wikitable"<br />
|-<br />
!Input 1!!Input 2!!Output<br />
|-<br />
| 0 || 0 || 1<br />
|-<br />
| 0 || 1 || 1<br />
|-<br />
| 1 || 0 || 1<br />
|-<br />
| 1 || 1 || 0<br />
|-<br />
|} <br />
<br />
''*Note:This only works for boolean input values. It can be modified to have any number of inputs by changing the "2" shown to the number of inputs.''<br />
<br />
==='''Binary XNOR'''===<br />
----<br />
[[File:XAND.png|300px]]<br />
<br />
Truth Table:<br />
<br />
{| class="wikitable"<br />
|-<br />
!Input 1!!Input 2!!Output<br />
|-<br />
| 0 || 0 || 1<br />
|-<br />
| 0 || 1 || 0<br />
|-<br />
| 1 || 0 || 0<br />
|-<br />
| 1 || 1 || 1<br />
|-<br />
|}<br />
<br />
''*Note:This only works for boolean input values.''<br />
<br />
== Memory cells ==<br />
<br />
=== Simple latch ===<br />
<br />
When looping the combinator to itself, use a different color of wire from your main inputs or outputs. <br />
<br />
[[File:SimpleLatchv2.png|300px]]<br />
<br />
Truth Table:<br />
<br />
{| class="wikitable"<br />
|-<br />
!Output 1!!Input 1!!Input 2!! Output 1 (t+1)<br />
|-<br />
| 0 || 0 || 0 || 0<br />
|-<br />
| 0 || 1 || 0 || 1<br />
|-<br />
| 0 || 0 || 1 || 0<br />
|-<br />
| 0 || 1 || 1 || 0<br />
|-<br />
| 1 || 0 || 0 || 1<br />
|-<br />
| 1 || 1 || 0 || 1 ''(2)''<br />
|-<br />
| 1 || 0 || 1 || 0<br />
|-<br />
| 1 || 1 || 1 || 1 ''(2)''<br />
|-<br />
|} <br />
''Output 1 is the green wire loop seen in the picture, it carries the value to latch.''<br />
<br />
''Input 1 is Set, while Input 2 is Reset.''<br />
<br />
=== Positive cell ===<br />
<br />
Cell for storing a positive value, with reset support:<br />
<br />
[[File:AdvancedMemoryCell.png|500px]]<br />
<br />
Connect the desired value as signal 3 on the right side to set the memory cell and connect a negative value as signal 3 to reset the cell. *Please note the arithmetic combinator's output should be facing the opposite direction of the decider combinators.<br />
<br />
This particular cell design does not work properly on a one-tick burst of input. Input must be held for at least 2 ticks.<br />
<br />
'''Address Enable Switch'''<br />
<br />
=== Positives and negatives cell ===<br />
<br />
This cell can store negatives or positives. Reset is done on a dedicated line. Additionally, a 1-tick burst is handled properly. [https://forums.factorio.com/viewtopic.php?f=193&t=60330&p=362377#p362377 Forum post].<br />
<br />
* The output M (memory) is the last non-zero input I (Input).<br />
* A non zero R (reset) signal sets the output to zero.<br />
* 1-tick bursts of R or I are handled properly.<br />
* Negatives are handled properly.<br />
<br />
[[File:Memory_cell_with_negatives.png|500px]]<br />
<br />
== See Also ==<br />
* [http://www.factorioforums.com/forum/viewtopic.php?f=18&t=14556 Combinators 101 (Tutorial)]<br />
* [[Tutorial:Circuit network cookbook]]<br />
* [[Circuit network]]<br />
* [[Arithmetic combinator]]<br />
* [[Constant combinator]]<br />
* [[Decider combinator]]</div>BlackJack69