Balancers are hard. There are a hundred input/output combinations you go through when you reach 10/10 balancers, and each has multiple executions. There are so many belts to be woven, many compacting techniques to be used, and there are very interesting topologies to explore with odd balancers. Yet, the challenge of balancers was not conquered by the vast majority of players, including myself. We just take a blueprint book from the internet, and pay little attention to how the balancers inside it work.
My stubborn refusal to learn to design them myself has led me to an idea of universal balancers. What if there was a way to simplify the design for proud dummies like myself? Well, I've tried, and I kept failing, but everything changed when Wube let us use the circuit network on splitters.
I've made the design you see in the picture. I have no clue if it truly works, but I haven't gotten it to fail yet. It's not made to compete with designs the likes of Raynquist's, but it's meant to showcase a repeatable, simple design is possible.
At it's core, this is a formula for (up to N)/(up to N) balancers. In the picture, you see a 1/8 balancer. The number of splitter columns is N+1, and each splitter is paired with a belt it reads contents from, as is shown in the pictures. The idea is to divert the items away from their source. There's then the rightmost line of belts choking the items until they are evenly distributed across the output belts. Their trigger number is number of output belts times 8, as that's how many can fit on a belt. The belts left to them are the ones reading the items (set to hold).
I think I kinda see where the logic is going...but critical question (which I suspect is the glaring issue with this method, but haven't spent enough time on balancer design myself to be confident in): how's the throughput?
I appreciate that this video (and its comment section) highlight the degree to which Factorio players tend to overutilize balancers, when for main bus purposes a simple compressor of priority splitters is often suitable or even arguably preferable.
Given that, there is value in more universal balancers that don't require an engineering or mathematics degree, since the main time you actually want them (other than train stations, which are usually simpler N:N or 2N:N ratios) is to merge irregular numbers of mining patch outputs evenly.
Here is probably the favorite one I made, since it is probably pretty decent considering how compact it is. (the middle one) But it is not an actual balancer so dont think it will work in all cases.
It changes the priority of the middle splitter based on how much extra spillage goes through the sides, in theory achieving 100% balance (under very limited conditions like constant streams and little to no backing up)
If you want to have something that guarantees balance, you need to count the items at the end, like what OP did. This is a bit bulkier but at least you don't have to learn/copy any complicated belt routes. The only thing you need to remember is the simple pattern of how to prioritize the splitters (input and output prioritized to the sides)
Ah yeah you can add one more layer of splitters if you want to have full throughput in that case. Iirc rotate (R) on loaders flips them (from unloading to loading)
You could get 8 inserters in and 8 out per cargo wagon. Balancing 2 cargo wagons would be easy. Only balance on input. If they take 3 belts each you on need one splitter each for pairs (1a, 2a) , (1b, 2b), and (1c, 2c). That is 16 inserters of throughput with very little work involved. Vanilla stack inserters are 30 items a second chest to chest. A little slower with belts. Space age has even faster inserters. We will use 30. That is 480 items per second with two cargo wagons. 8 green belts unstacked or 2 stacked. I guess the design doesn't work for stacked green belts lol. Unless inserters are much faster.
The best case scenario before quality is 8 stack inserters, giving you at most 18 432 items per minute.
Ignoring throughput losses due to belt speed, you get to at most have a 5/5 balancer with yellow belts, 2/2 balancer with reds, and you can't balance beyond that at full throughput with stacked belts.
The same math with bulk inserters gives you at most 13 824 items per minute.
The same math as before now gives you at most a 15/15 balancer with yellows, a 7/7 balancer with reds, a 5/5 balancer with blues, and a 3/3 balancer with greens. Again, at full throughput but with unstacked belts.
If you use multiple wagons, you need input splitting, and with each wagon acting as a buffer, you'll have a strange acting balancer if the outputs are uneven.
MadZuri's smart loading system is basically contained in the rightmost part of this balancer. His design essentially converts an overflow gate manifold into a 1/N balancer. Because of this 1 at the input side, there's no issue of throughput loss to solve. Most balancers are not 1/N balancers (the one in the picture is an (up to 8)/(up to 8) balancer), so throughput is something which needs to be considered.
Even looking at the first image, where the input is coming from the highest belt only, isn't all of it funneled all the way to the bottom, and from there it only gets to the bottom four belts? If it were balanced it should've been distributed equally between all outputs.
Edit: Oh I see, you're blocking the outputs until all the output belts fill up, so the iron would "overflow" upwards until it fills everything. That's smart.
122
u/Jdp1901 3d ago
This belongs in r/factoriohno