Combinator Display Build

This board is to show, discuss and archive useful combinator- and logic-creations.
Smart triggering, counters and sensors, useful circuitry, switching as an art :), computers.
Please provide if possible always a blueprint of your creation.
Post Reply
Xeteth
Fast Inserter
Fast Inserter
Posts: 158
Joined: Tue Feb 17, 2015 6:06 am
Contact:

Combinator Display Build

Post by Xeteth »

I am releasing the build I made for the sign that was seen in the megabase by Colonelwill on Twitch and in the Break the Game Episode 143 which is a Factorio Youtube series done by RootNegative.

I decided to build this for two reasons:
  • I wanted to learn combinators. When I started this I had never used a single combinator and had no idea how they worked or what they could be used for.
  • I wanted to build something that would allow a list of names (or something else) to be displayed and rather easily manipulated – especially for those who have no prior experience with combinators.
The result was a rather complex build which has taken quite a bit of time to put together (and had its fair share of bugs; I now have a huge appreciation for how hard bugfixing is!).

Here is a short YouTube video that will give you an idea of what the actual build is and its purpose.

Before I go any further I would like to take the time to thank two people in particular; HanziQ who built the binary decoder that is the heart of this build (more info on that later), gave me a crash course in binary and gave ideas for making the build possible; and Melerion who also helped teach me binary and assisted with some ideas and troubleshooting I had for the build. Massive thank you to the both of you!


I am going to go into further detail about how the actual build works and each small component to it. Part of this will assume that you have a basic knowledge of decimal binary, if you don’t I found this video after a quick search on YouTube – it’ll give you a basic understanding (note only the first 1:45 of the video is relevant to what we need). Note that I will not be going into extreme levels of detail on what the combinator settings are and the wiring; to do so would be simply too complex. Instead, I will give you an idea of what each component in the build does and how they work together as a whole.


Ok, so breaking the build down and looking into each component:


The Displays & Memory Cell
Image
Each display is made up of lights in a grid of size 7 long X 8 high. The lights on the outer layer have no condition set as they will never be turned on, however they are still wired together as to avoid them turning on at night. The lights in the centre comprises of a grid that is 5 long X 6 high and these lights are what we use to actually display letters. Each of these lights is set with a condition of “[Item] = 1” and each light has a different item signal assigned to it; this allows us to create an image (in this example we are creating letters, but you can make custom letters, symbols, etc). When we send a signal to the light grid the corresponding lights will turn on and that’s the visual output that we see.

These displays are put together 26 long in order to see a complete panel as shown:
Image

The memory cell allows us to retain and ‘save’ a bunch of signals that are sent from the binary decoder. This means that after we finish sending the correct signals to make a letter the cell will hold these signals and our visual output will remain in place. These cells have two important signals that can be sent to them in order to control what they are doing; a Red signal of value 1 is the write signal – meaning anything that any signal inserted to the memory cell (when accompanied by a Red = 1 signal) will get ‘saved’, a Red signal of -1 is the clear signal – it will release any signals currently being held in the cell and give us a clean cell to be used.
Just before the memory cell is what I call an identifier combinator – this combinator dictates what number along the line the grid is. (In this build each line is 26 grids long – ie. You can show 26 letters per line).
By combining the display grid and the memory cell we have all we need to save and display letters. Putting these side-by-side we can see the creation of a line on the display which we can add names or whatever it is that you wish to output.


The Alphabet
Image

So this is where we need an understanding of decimal binary to see what’s going on. I have created a small display to show each letter of the alphabet, numbers 0-9 and a few common symbols. Below each of these displays there is a corresponding constant combinator that will contain a signal of “0 = [number]”. This signal is what we will feed into the binary decoder in order to ‘create’ an image from this number. We use this alphabet as a means of creating new names which we can then put on a list which will be read by the binary decoder.


A Name
Image

This is what a built name will look like ready to input through the binary decoder. There is a blank template of this within the alphabet area that we can use to easily make a new name. These names are then placed on top of each other in order to create a list. Note that the very left decider combinator for each name will have properties of "Green Signal = <constant>"; this constant dictates the order in which the name will appear on the list (ie. if you want that name to show first make the condition "Green signal = 1", for two it would be "Green signal = 2" etc). The best way of thinking about this part of the build is that it is the ‘hard drive’ which stores all the data that we will run through the decoder.


The ‘Brain’
Image

This module is what I refer to as the ‘brain’ of the build. It is responsible for processing and controlling a number of things, including;

1. Referencing the names list (data)
2. Decoding the incoming binary signal
3. Sending signals to the corresponding grids
4. Automatically adjusting for total number of panels
5. Activating and clearing the sign

Since this bit is quite advanced I’ll break it down a bit. Refer to the above picture to see each part.

Red - This is the binary decoder; it takes the input signals coming from the names list (in the form of decimal binary) and decodes these into signals that we use to light up each display.
Brown - This light display is simply here so the output of the binary decoder can be seen as it runs through reading the names list.
Green - These combinators are used as part of the reset mechanism. They are pulse generators that read whatever the values of the counters are and when activated send a signal for a negative value of whatever is in the counters for one tick, thus clearing the signal.
Pink - This mechanism tells the system when a panel has been completed and adds a green signal +1 value meaning that the system will start on the next panel.
Yellow - The counter to cycle through and reference the names list.
Blue - The counter to cycle through and write the output of the decoder to the corresponding grid.
* Note that these two counters (the yellow and blue sections) are setup to work 7 ticks apart - meaning that each letter takes 7 ticks to be referenced, put through the decoder and then written to it's grid.
White - This counts and tells the system which panel it is currently reading/writing to. It also contains a mechanism to stop and 'jam' the counters when the whole process has completed to avoid the system running continuously even when finished.
Purple - This is the activation system. In order to give the system time to reset properly the read and write system is delayed by two pulse generators. The reset system is on the left and write system on the right.


The whole system is activated and reset simply by changing the value of the green signal in the constant combinator just below the brain (value of 0 to reset, value of 1 to activate).

For a tutorial on adding new names to the display please follow this guide.

The save file provided will have the whole build wired together correctly, however if you wish to put this build into your own world you can follow the wiring guide here.

If you have any questions regarding this build feel free to leave a comment and I'll do my best to answer.

Enjoy!
Attachments
CombinatorSign.zip
(1.2 MiB) Downloaded 838 times

XKnight
Filter Inserter
Filter Inserter
Posts: 329
Joined: Thu May 28, 2015 10:40 pm
Contact:

Re: Combinator Display Build

Post by XKnight »

Great job, but I am sure you could make your display more compact, and as result more comfortable in using.
According to my calculations it is possible to reduce amount of combinators, at least to
(comb + const comb) x 39 + 5 comb + 2 comb per each display cell, or 44 + 2n (without const comb).
But now I see about 170 combinators only in "brain part" and 4 combinators per display.

kaleb_boren
Inserter
Inserter
Posts: 38
Joined: Sat Dec 12, 2015 9:52 pm
Contact:

Re: Combinator Display Build

Post by kaleb_boren »

Hello, I love what you've done, and i would like to know if it is possible to setup a system to read the contents of the logistic network to display the current amount of resources in the system i.e. show a couple of digits using the rest of the displays (have it update once a minute to save ups)



Thanks for the read and id love a respond

Xeteth
Fast Inserter
Fast Inserter
Posts: 158
Joined: Tue Feb 17, 2015 6:06 am
Contact:

Re: Combinator Display Build

Post by Xeteth »

kaleb_boren wrote:Hello, I love what you've done, and i would like to know if it is possible to setup a system to read the contents of the logistic network to display the current amount of resources in the system i.e. show a couple of digits using the rest of the displays (have it update once a minute to save ups)



Thanks for the read and id love a respond
It would be possible to do with this setup - however this setup is quite old now and would be rather hard to work with (I was a noob with combinators back then). Instead you might find my Scrolling Display build a lot easier to use and implement such a system: https://www.reddit.com/r/factorio/comme ... string_in/

kaleb_boren
Inserter
Inserter
Posts: 38
Joined: Sat Dec 12, 2015 9:52 pm
Contact:

Re: Combinator Display Build

Post by kaleb_boren »

Xeteth wrote:
kaleb_boren wrote:Hello, I love what you've done, and i would like to know if it is possible to setup a system to read the contents of the logistic network to display the current amount of resources in the system i.e. show a couple of digits using the rest of the displays (have it update once a minute to save ups)



Thanks for the read and id love a respond
It would be possible to do with this setup - however this setup is quite old now and would be rather hard to work with (I was a noob with combinators back then). Instead you might find my Scrolling Display build a lot easier to use and implement such a system: https://www.reddit.com/r/factorio/comme ... string_in/
Alright thanx

CivilizedMuffin
Manual Inserter
Manual Inserter
Posts: 1
Joined: Wed Jul 06, 2016 12:52 pm
Contact:

Re: Combinator Display Build

Post by CivilizedMuffin »

Me, about 200 hours in, "I bet I could make an 8bit display"... *quick google* ... "Bloody Xeteth"

But seriously tho, this is cool :)
Might give it a shot anyhow

Xeteth
Fast Inserter
Fast Inserter
Posts: 158
Joined: Tue Feb 17, 2015 6:06 am
Contact:

Re: Combinator Display Build

Post by Xeteth »

CivilizedMuffin wrote:Me, about 200 hours in, "I bet I could make an 8bit display"... *quick google* ... "Bloody Xeteth"

But seriously tho, this is cool :)
Might give it a shot anyhow
I'm not entirely sure this original build even works anymore since there was a change to how decider combinators work (I think that happened when 0.13 released), but my scrolling display should still work fine :) viewtopic.php?f=193&t=32489

Post Reply

Return to “Combinator Creations”