455 kbits of noise transmission through single wire

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
mmmPI
Smart Inserter
Smart Inserter
Posts: 2749
Joined: Mon Jun 20, 2016 6:10 pm
Contact:

455 kbits of noise transmission through single wire

Post by mmmPI »

Make some noise !
Using combinators can seem difficult and not very rewarding sometimes, because it is difficult and most of the time easier solution exists to deal with problems in the factory. However it can also be a lot of fun, and i think it is not necessary to understand everything to have some of it. I wanted to show a build that is composed of several smaller parts that i had fun assembling to try and make the most data goes through a single wire, and make it look nice and easy to expand. I can't go into detailed explanations for all the parts when i don't understand them, and i don't want to take undeserved credits so there are also links to original sources.

some noise.jpg
some noise.jpg (700.58 KiB) Viewed 249 times
455 kbits of noise
In Factorio each wire can hold 1 copy of every signal that exist at the same time, those are like channels in which can transit numbers that won't interfere with other numbers on other channels. Each of these number has a range between -2^31 and (2^31)-1 in base 10 numbers, 2147483647 is the max number. This is represented by a number in binary that is composed of a string of 32 0's or 1's , a 32 bit number.

A number is displayed in a column, 32 lamps , if the lamp is lit, that's a 1, if not that's a 0.

There are many columns, 237, this is because 238 signals are used in total, i may have missed some, otherwise in the game without mods there are 238 different unique channels. 1 channel is "wasted" to make it easy to add extra columns without giving them a unique number manually. This leaves 237 channels to transmit a 32 bit number, or 237*32 bits of data that can be displayed at the same time, either 1 or 0. (that's the number of lamps).

In 1 second there are 60 update ticks for circuit networks, this means refreshing all the lamps every tick with brand new values represent 60*237*32 bits of information (60 times the number of lamps). Or rather noise, if the numbers are generated randomly, it is not information. This represent 455 040 bits , or 455kbit to make it simpler, or 456k if it was for a modem commercial.

Through 1 single wire
RNG filter.jpg
RNG filter.jpg (391.72 KiB) Viewed 249 times
Parts
  • 1) List of every channel available for the emiter, the button will prevent transmission to the next part
  • 2)Random Number Generator, if it receive from (1) it will genrate random value in all signals , the button will prevent transmission to the next part
  • 3)List of every channel for the receiver same as (1)
  • 4)Filter associated with the 1 column of lamp
  • 5) Upper part of filter, is to isolate which signal to display, (iron ore), (copper ore), (letter A) , (color green) ... for each column
  • 6) Lower part of filter prepare the isolated signal with its randomly generated value in a form that can be used to trigger 32 lamps depending on the binary representation of the number
  • 7) is the energy for the lamps, the button will change the color of the display and make some noise, literally, with the speaker , like techno music, because they say make some noise a lot, and it's fitting, but it is just a bonus sort of, not sure, at least it always provide energy and is not active by default because usually players prefer my music creations turned off
The arrow highlight where the information transit, all of the data to light all the lamps goes through that single red wire. 455 kbits ! one could open a cyber coffee with that kind of connexion, when i was too young to go there :lol:
Explanations
I haven't done much of the logic inside the blocks. I used the filters and the constant combinators with the signals ID to give each column a unique number using the (dot) signal. Based on that number a single channel is read. Example : the number 31 correspond to the signal W in the constant combinator for the receiver, the 31th column has a number of "31" attached to the dot signal because it just does +1 +1 +1 in between column, this way it filter the W signal that comes from the random number generator. The upper part of the filter as i took it from the forum thread allows to filter as output, the signals that are present in both green and red wire in input of 2 different points of the filter. One such point being the control signal. It would be emiting 1 on the "W" channel which is done. This in order to filter from the red wire with all the noise only the channel "W" and its 32 bit value.
The second part of the filter takes from here, and transform the value of the "W" signal randomly generated coming from the red wire just isolated by the upper part into 32 differents channels, 1 for each lamp.

The buttons are added to pause/resume the flow of data in case it's desired or to add music and because we're talking about noise here it's my own.

How function the RNG and the 2 parts of filter are best described in later links it's more complicated than what i did and it was not necessary to understand the detals to use them for such purpose after some rubberbanding modification.

To me the whole thing helps vizualising the amount of information available, each pixel, during 1 tick, represent 1 bit of information, over a second that is 60 bit per lamp. 1 bit is like a pulse. It can happen anytime during the second, any of the 60 ticks, and it can carried by any channel, (iron ore, letter B, number 4, fish, pistol ... ) and it can be present at any position 1 , 2, 4, 8, 16, 32, 64 , 128, 256 .... all those represent only 1 bit, located in the first , second, third, fourth, fifith sixth lamps.

The way it works allow for adding a 238th channel, 239 240 241 easily for even more noise, this by adding the signal with the proper number in both the receiver and emitter group of constant combinators. Those do not need to be duplicated, the receiver version can be removed and a red wire from the emiter can be used, but that would make it 2 red wire running between both as such i didn't do.

Blueprints and Map
The book contains 4 blueprints, The emiter, the receiver, and 2 versions for the array of lamps. The lamps only contain 3 columns because the blueprint would be too large. One has to expand by copying the last 2 columns over the last one, overlapping and then moving to the right side. The other parts contain at least 1 substation overlapping so that there is no manual connexion required, only turning off the 2 red buttons. The better array of lamps contain the music box and the editor mode energy source in addition.



The map :
Make some noise 455K.zip
(2.34 MiB) Downloaded 10 times
Credits
In order in wich they process the signals (and thank you for sharing creations initially it's always inspiring) !

The random generator is a modified version where i removed the part that produced random number on the green wire to keep only the red as it's quite some noise already :
almania wrote:
Fri Mar 08, 2024 10:42 pm
The upper part of the filter is a modified version of a filter from the same thread that contain other more useful contraptions :
Nidan wrote:
Fri Sep 30, 2022 7:20 pm
At some point I found a blueprint book which also contained setups for filtering.
The lower part of the filter was originally designed by Tertius, i kept only 1 row of lamps :
Tertius wrote:
Thu Dec 02, 2021 4:11 am

Post Reply

Return to “Combinator Creations”