Actions

User

RA2lover/Sandbox/Grow light automation

From Unofficial Stationeers Wiki

< User:RA2lover/Sandbox

Disclaimer[edit]

Due to the frequency of game updates, all solutions are subject to change and may or may not be functional.


The designs on this page are valid as of v0.2.3771.18264 (2023-01-12)

Plant mechanics[edit]

Plant growth rate is multiplied by its growth efficiency. Thus, maximizing growth efficiency results in a more effective farm.
Factors which affect it are Breathing, Hydration, Temperature, Pressure, and Light efficiencies, the plant's Growth speed gene, and a small random variance assigned when planting each plant.
Proper grow light use can maximize light efficiency.

Light Efficiency[edit]

Factors which affect light efficiency include a multiplicative debuff of 1/1+Light Stress, and a multiplicative buff which is only applied if the plant has exceeded its light per day requirements and is not darkness deficient.

Light Stress[edit]

Light Stress increases by 1% every time a plant transitions from light to darkness or vice-versa. The amount of times this happens should be minimized if possible.

If a plant is deficient in light or darkness, Light stress increases at a rate of 200%/day. Otherwise, it decreases to 0% exponentially at a half-life of 1.38625 days for values of light stress below 50%.

Light/Darkness Deficiency[edit]

Light per day and Darkness per day requirements are tracked by TimeLitRatio and TimeDarknessRatio variables which are initialized at 50% for each plant. For non-deficient plants (ratios above 0%), these values decrease by 100%/day. Plants with a deficiency decrease the corresponding value at a slower date (S-curve from -100%/day at 0% to 0%/day at -500%). Plants exceeding their light/darkness per day requirements decrease their corresponding value at a faster rate (S-curve from -100%/day at 100% to -500%/day at 1000%).


TimeDarknessRatio is supplied when the plant is in darkness (not under sunlight or growlight illumination). Supplying darkness increases the value (on an S-curve) by 200%/darkness per day period at -1% to 500%/period at -500%, 100%/period on 0-100%, and 100%/period at 100% to 0%/period at 500% (on an S-curve).

TimeLitRatio supply is similar (though using light per day instead), but the increase in values is multiplied by how much light the plant is exposed to, which can be viewed as the Light Intensity parameter on the Plant Analyser Cartridge. A plant counts as being in light if it is exposed to at least 1% of earth's average solar irradiance (1367 W/m²). Grow lights within distance of a plant count as an additional 80% solar irradiance regardless of how close they are to it. Multiple grow lights illuminating the same plant don't stack, but sun exposure on top of a grow light does.

Maximizing Light Efficiency[edit]

Plants with TimeLitRatio above 100% and not under darkness deficiency receive a multiplicative buff for excess TimeLitRatio, multiplying light efficiency by up to 2x at 400% TimeLitRatio.

Light Efficiency also receives a multiplicative debuff based on how much light stress the plant is under. LightEfficiency = 1 / (1 + LightStress)
Because light stress has a very slow decay period, we want to avoid any circumstances placing the plant into a deficiency.

Maximizing TimeLitRatio while avoiding a darkness deficiency requires exposing plants to as much strong light for as long as possible while still meeting the plant's darkness per day requirements throughout its entire lifetime.
Because TimeDarknessRatio is only initialized at 50%, plants under this farming regime need to be exposed to its first darkness period within half a day of being planted, and it needs to be long enough to last until the next darkness period.


Farm designs[edit]

Farms benefitting from grow lights can be generally separated into two types: Indoor farms that can be placed in locations without regular sunlight exposure, and greenhouses where grow lights are used to augment the sun and provide faster growth rates.

Indoor farms[edit]

Farms using exclusively grow lights can use cheaper walls, are simpler to automate and can use horizontal space more efficiently. However, they need a reliable supply of power.

Their grow light timing can be completely decoupled from the day-night cycle, affording more choices in how they're used.

Outdoor greenhouses[edit]

Farms using the sun have higher build costs and can tolerate intermittent power, but have increased cooling demands and automation systems that need to take sunlight status into account as turning grow lights off isn't guaranteed to ensure darkness.

Clock sources[edit]

Turning the light on/off for a period of time needs a means of detecting time. Some of which include:

Stopwatch[edit]

Accessible from Kit (Music Machines). Provides a continuously increasing timer when activated which can be reset by turning it off and on again, looped with a modulo Math Unit or paused by disabling its Activate signal. Needs continuous power to avoid a timer reset.

Memory-based Timer[edit]

A Logic Memory unit which continuously updates a value through logic. Preserves its current value during a power loss, but requires additional power for logic elements needed to update its value.

IC10 Stack Timer[edit]

A timer preserving its time on power losses by storing its current time on an IC10 stack memory location. Comes virtually free when automating grow lights with a programmable chip, but requires using a programmable chip for automation.

Daylight Sensor[edit]

Provides celestial tracking information for the sun and the ability to check if sunlight is currently hitting its location (by reading the Activate logic parameter). While tracking maximums and minimums of its vertical angle can be used to identify noon and midnight, the angles cannot be directly relied on as a timing source because they change depending on seasons. Additionally, sunlight cannot distinguish between an eclipse and a sunset on its own.

Timing Circuits[edit]

Circuits which provide adjustable duty cycle grow light operation. No effort is provided for synchronization with daylight, so greenhouses operating off them should use Composite window shutters to prevent sunlight from denying darkness periods if the timers happen to get out of sync.

Stopwatch timer[edit]

A stopwatch is used as a clock source, with day duration being provided by the memory unit and darkness duration being provided by the dial (accessible through Kit (Logic Switch)). Using separate devices for these roles removes ambiguity without the need for a Labeller, even in arrangements where the memory unit and dial are on the same logic network.

An example indoor grow light pulse width modulation circuit.

With the provided settings, the timer will start with the light turned off for the darkness duration, then turn the light on for the rest of the day length (stored in the memory unit as 1200 seconds or 20 minutes).
Starting with the grow light off is safer for occasional blackouts as the circuit has no awareness of how long it's been turned off for during a blackout and short blackouts risk stressing plants with excess light.

IC10 Equivalent[edit]



Memory Unit Timer[edit]

The stopwatch clock source from the previous timer is replaced with an incrementing memory. This preserves light status during power losses at an additional 10W of power consumed, and potentially adds confusion requiring a labeller as multiple components of the same type are now present in the same logic network.

Adaptation of the previous circuit replacing the stopwatch timer with a persistent memory unit timer.

In order to reduce component count, this timer uses ticks instead of seconds as a unit of time measurement.

IC10 Equivalent[edit]

Includes generic stack clearing code that takes up more space than the changes required to implement timer persistence do.



Synchronized Timing Circuits[edit]

Sunset-triggered timer[edit]

This shows a pitfall of logic circuits in that circuits relying on recursive logic are senstive to not just they order in which logic components were placed, but also the order in which they were loaded into the world. A design may function when first built, but stop working when the world is reloaded because logic components are run on a different execution order.

This design is not recommended for use because it is sensitive to logic component execution order, which may not persist across world loads. Sunset Triggered Timer.png
The circuit uses a Logic Pulse Former assembly to create a single-tick pulse when a sunset is detected, which is then used to reset a counter to the darkness timer memory setting.
The darkness timer memory setting is a negative value, exploiting the fact writing any value equal or greater than 1 to a device's "On" setting turns it on. This removes the need for an additional logic compare component.

IC10 equivalent[edit]

Because instructions within a single IC10 run at a well-defined execution order, this design isn't sensitive to component placement order. A Daylight Sensor with cells exposed towards zenith needs to be present in d0.




Geometry of Daylight Sensors[edit]

The Solar Angle variable from Daylight Sensors go from 0 degrees at mid-day, to 180 degrees at midnight, and then back to 0 degrees. The value is never negative.

Daylight sensor vertical.png

How much light/dark do plants need?[edit]

Plant 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Corn L L L L L L L L L D D D D
Potato L L L L L L L L L L D D D D
Pumpkin L L L L L L L L L D D
Rice L L L L L L L L L L D D D D D
Soybean L L L L L L L L L L D D D D D
Tomato L L L L L L L L D D D D D
Wheat L L L L L L L L L L D D D D D
Darga Fern L L L L L L L L L L D D D D D
Fern L L L L L L L L D D D D D
Hades Alpha L L L L L L L L L L D D D D D
Hades Beta L L L L L L L L L L D D D D D
Peace Lily L L L L L L L L L L D D D D D
Switch Grass L L L L L L L L L L D D D D D
Tropical Lily L L L L L L L L L L D D D D D
Winterspawn Alpha L L L L L L L L L L D D D D D
Winterspawn Beta L L L L L L L L L L D D D D D

As you can see from the table above, most plants need a minimum of 10 minutes of light, and 5 minutes of darkness. We can split the remaining 5 minutes equally, giving us 12.5 minutes of light and 7.5 minutes of darkness.

Let's do some math...[edit]

  • The planet rotates 360 degrees per day.
  • A day is 20 minutes.

360 degrees / 20 minutes = 18 degrees per minute

  • We need light for 12.5 minutes per day.

18 degrees per minute * 12.5 minutes = 225 degrees

  • We want half the light-budget on either side of mid-day

225 degrees / 2 = 112.5 degrees on either side

Bringing it all together[edit]

What you need:

  • Logic I/O (x2) > Reader and Batch Writer
  • Logic Processor > Compare
  • Logic Memory
  • Kit (Sensor) > Daylight Sensor
  • Place the Daylight Sensor. Direction of data-port doesn't matter.
  • Logic Reader > IN: Daylight Sensor VAR: Solar Angle
  • Logic Memory > Value: 112.5
  • Logic Compare > 1: Logic Reader 2: Logic Memory OUT: Less
  • Logic Batch Writer > IN: Logic Compare OUT TYPE: Grow Light OUT VAR: On

Saving Power[edit]

You can save a bit of power by delaying turning on the light. If you reduce the time with lights to 10.5 minutes, then you can set the Logic Memory to 94.5.