Page 1 of 1

Unusual circuit behavior for Kovarex Design

Posted: Tue Feb 12, 2019 11:35 pm
by Engineer1701D
While developing uranium processing setups I've stumbled across a curiosity as best or a bug at worst. I want to post it here for others to review instead of jumping to the bug conclusion.

While trying many different Kovarex techniques/designs that pulse an inserter once every processing cycle I would run into the issue that the inserter tasked with removing a single U-235 would sometimes not fire correctly. This would lead to U-235 being wasted because it was essentially stored in the Centrifuge(s) vs propagating towards other operations.

The general design elements are:
1. A single filter inserter set for U-238 only and stack size to 1 adds U-238 into a Centrifuge and is controlled/enabled (from a distance. IE outside of the Kovarex design itself). (This part works.)

2. A single filter inserter set for U-235 only, stack size to 1, enable when U-235 is less than 80, and pulse read hand adds U-235 into a Centrifuge and its pulsed output is fed into an arithmetic combinator memory cell (if I have my terms correct). This circuit's job automatically fills a Centrifuge with only 80 U-235 to allow continuous operation, but without storing (wasting) additional U-235. (This part works.)

3. From what I can tell, the fastest way to feed the output back into the input is a series of 3 stack inserters and 2 chests. These 3 inserters and 2 chests are wired together with the inserters set to hold read hand. The idea being that from start to finish a signal is on the circuit no matter where items reside in the loop. (This part works.)

It is this signal I have been trying to use to control the final filter inserter.

4. The final filter inserter is set for U-235, stack size to 1, and activate when Green signal is greater then 0 (In the blueprint, I also have pulse read hand set to monitor it's moved U-235 count. Changing this has had no effect on the issue.). I have also tried an Everything is less than 1 and Everything is equal to 0 setting on this inserter. I have used up to 3 combinators to transform the read signals from design element 3 to pulse the inserter. They are chained together in various ways to pulse only once with the first one reading the Anything or Everything signal from design element 3. (Some work most of the time, but none of them continued to work consistently.)

Here's where things seem buggy. By changing the first combinator input from Everything/Anything to U-235 suddenly design element 4 works consistently. It's as if Anything and Everything signals are processed at different times than the item signals(?). Another peculiarity is that using both the Anything signal with two combinators (I assume this means at least a 1 tick delay if not 2 from processing cycle to hand being (dis)enabled.) and the Everything signal with a single combinator (I assume this also results in at least a 1 tick delay.) results in excess U-235 (because of the above mentioned problem with the pulsed inserter not firing). Furthermore, exactly the same Centrifuge positions in each column acquire the same quantity of excess U-235; however, the amount and which position varies between blueprint pastes.

The questions are:
1. Why does the Anything signal design fail, but simply changing Anything to U-235 succeeds (They are the exact same circuit design the only difference is the Anything signal accounts for the transfer of the 2 x U-238.)?
2. Why doesn't the Everything signal work, and why does it result in the same pattern of excess U-235 as a two combinator Anything circuit?

As verbose as I've been I know I haven't explained everything. I'm hoping the below blueprint will fill in the gaps. It uses the Creative mod, but it isn't required. You'll have to supply the U-238 and seed U-235 yourself if you use vanilla Factorio. Creative also allows you to 100x the speed which might make waiting more tolerable. (Of course, I imagine most of you reading this already know all of that.)

Re: Unusual circuit behavior for Kovarex Design

Posted: Wed Feb 13, 2019 7:45 am
by GrumpyJoe
as for the signals not working, i´d need to start the game. Not a good idea at work :D but if it isnt solved by the time i come home, i will.

Why 80? Its working with 40 and anything beyond that is delaying the startup of the next one (if you just started sorting raw ore)
Is it because of the downtime while the 3 stack inseters do their loading circle? Never realy bothred, since as soon as you run Kovarex, its usually too much anyway and needs to be stopped at some point or it eats all 238

If that first stack inserter is a filter one, you can make sure only 235 end up in that chests, you need another (normal) filter inserter to get rid of 238 (maybe on a belt)
Set stack inserters to size 10, have the looping one that feeds it back set to >1 and the inserter that grabs the excess one set to =1 U235, this will happen last.

Since its the easiert to find i´ll link my own post about this, but there are people pointing to other solutions, im not pretending to know it all.
Looks like in the combinator section of the forum, you´ll see more activity, just sell your creation as almost done there, and maybe request some help, as im almost certain its not a bug.

Re: Unusual circuit behavior for Kovarex Design

Posted: Wed Feb 13, 2019 9:23 am
by BlueTemplar
I never got as far as Kovarex, but I'm pretty sure that combinators indeed need 1 tick to work, and that it can cause issues.

Someone was using a mod I can't seem to find right now to get around this limitation (for his custom AAI setup),
but there seem to be several mods available that could be good enough for you :
And to understand exactly what is happening with combinators :
Bonus :

Re: Unusual circuit behavior for Kovarex Design

Posted: Wed Feb 13, 2019 11:02 am
by DaveMcW
If you watch patiently on speed 1, you will see some uranium-238 gets stuck in the chest-chest loop on the cycle before the failure. Changing the combinator to uranium-235 ignores that stuck uranium-238 so it works.

Why did the uranium-238 get stuck? Because on the 2nd cycle before the failure, there was 12 uranium-238 in the centrifuge.

Why was there 12 uranium-238 in the centrifuge? Because on the 3rd and 4th cycles before the failure, there was a shortage of uranium-235, so the chest-chest loop prioritised uranium-235 over uranium-238. This allowed the uranium-238 refill to put 4 items in instead of 3.

Re: Unusual circuit behavior for Kovarex Design

Posted: Wed Feb 13, 2019 11:40 am
by Engineer1701D
Yes 80 so the processing can continue uninterrupted. I agree completely that for almost all average bases/reactors/trains having this down time minimized and even having more than one Kovarex Centrifuge is completely unnecessary. From my experience, only pumping out nuclear missiles has required any real push for U-235. My main base can process 4 full express belts of uranium ore and produces around 6.x U-235 per second. It powers over 100 trains and a 10GW reactor (that runs around @ 4-6GW constantly). I uses about 600 T3 speed or T3 production moduled Centrifuges between the processing and Kovarex. It generally sits idle and is largely pointless in hindsight... even for missile production. It would take several players expanding fast to consume the missile production capabilities.

I have tried designs were the stack inserters are for the U-235 only. They worked largely the same as the ones in the BP. It occurred to me that I could cut out a large design logistic but not having to also manage a U-238 output. For me, It was almost a "Duh, why wouldn't you simply push it right back in?"

I have also tried exactly that method where we get down to 1 and grab that last one. Small delay in dropping the U-235 but nothing that matters. It would require me to go back to handling U-238 output among other alterations.

@Blue Templer
From the best of my experience, the 1-2 tick delay doesn't affect the setup here. In fact, it's necessary in some designs for pulsing the extraction inserter.

Thanks for the heads up. Those links have interesting info.

You may be on to something. With other designs, I have added a circuit link from the loop (stack inserters and chests) to the U-238 inserter to stop it from refilling while the loop processes. Since there is a tick delay that inserter gets a single swing before being stopped. It isn't completely broken, but it does allow a single U-238 to enter while the loop processes. I will pay more attention on my next watch to confirm. I do not recall seeing any U-238 sitting in the loops before though.

My original design used about 2-3 more combinators per Centrifuge. It stopped insertion of any kind during the loop process. That design worked well. These designs were to reduce the footprint/cost. SHM* who worries about costs when you making nuclear anything??

Re: Unusual circuit behavior for Kovarex Design

Posted: Wed Feb 13, 2019 4:12 pm
by Engineer1701D
Confirmed. It is at 80+ U-235 that allows the process to begin before all of the U-238 is cycled back around. By accident, I created a model like in the BP, but forgot to paste the settings to the lower Centrifuges' U-238 inserters. Most of them suffered from the latent U-238 in the loop and accrued additional U-235 as a result.

My initial designs allowed only 40 U-235 inserted and then one Centrifuge would feed a second and vice versa until 80 U-235 were on both. With your input in mind I have gone beyond that, and now the design inserts 40 U-235 in each Centrifuge until the last Centrifuges have their initial 40. THEN we increase to 80 in each.

I have been able to reduce my combinator count from 5 to 2, the foot print from 5x5 to 4x5, and reduce the time until all Kovarex Centrifuges are producing from approx 3.5 Hours to 2.25 Hours.

Thank you all for your effort. It's nice when things make sense again. ;)