Multiple signals on one wire (multiplexing)

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.
User avatar
theRustyKnife
Fast Inserter
Fast Inserter
Posts: 241
Joined: Thu Feb 26, 2015 9:26 pm
Contact:

Multiple signals on one wire (multiplexing)

Post by theRustyKnife » Fri Jan 29, 2016 9:17 am

Hey everyone,
In my modded factorio map I often found myself in a situation where I'd need to connect mutiple places with one wire but still have the signals in it be separated. For example: Multiple iron mining outposts transmitting the amount of ore left back to base - all of them send an iron ore signal with an amount. In this case they'd just all sum up and I wouldn't know which one's which.
That's why I came up with:

Logic Wire Network
disclaimer
Version 1.0
version 2.0
Version 2.1

The brand new almost perfect design featuring:
  • Channel selection as positive numbers (thanks to Dr. Walrus)
  • No 'channel overlap' as in 2.0
  • Just one signal used
  • 'Clean' output
The channels are now [0; (-n) - 3], where n is the number you set.
All other details remain unchanged...
Except it has one tick longer delay but who cares?
picture
Let me know what you think :D !
Attachments
Alphabet_1.0.0.zip
(54.31 KiB) Downloaded 377 times
Last edited by theRustyKnife on Sun Feb 21, 2016 6:52 pm, edited 9 times in total.
Check out my mods!

ske
Filter Inserter
Filter Inserter
Posts: 375
Joined: Sat Oct 17, 2015 8:00 am
Contact:

Re: Multiple signals on one wire - simple

Post by ske » Sat Jan 30, 2016 1:13 pm

It's not quite clear to me how it works and behaves. A few more paragraphs of text would be helpful.

When signalling "iron" does it use "iron"-signals or does it use one of the color signals for the count?

How are the channels selected? Via a count on one color or via separate colors cycling through?

What is the output signal when receiving for example "iron", is it "iron" or something else?

Linosaurus
Long Handed Inserter
Long Handed Inserter
Posts: 89
Joined: Thu Jun 11, 2015 5:50 pm
Contact:

Re: Multiple signals on one wire - simple

Post by Linosaurus » Sat Jan 30, 2016 9:18 pm

theRustyKnife wrote:Let me know what you think! Is it simple enough :D ?
Multiplexing. Very cool setup. Not exactly simple to get started, but once you have blueprints of the different stations it should be trivial. And you don't even have to change existing transmitters or receivers when you want to increase the number of channels. Tried it out just to see that it works. It does.
ske wrote:It's not quite clear to me how it works and behaves. A few more paragraphs of text would be helpful.

When signalling "iron" does it use "iron"-signals or does it use one of the color signals for the count?
I think I can explain how it works. As simplified example, lets set the constant combinator in the transmitter to 43 ore and 10 wood. The clock counts from 1 to 16. At 60 ups/fps, this happens 60/16= 3.75 times per second. In the screenshots above, channel 1 is used.

Whenever the clock is 1, the transmitter sends 43 ore and 10 wood to the main wire, but only for one frame. All other frames, those are 0.
Whenever the clock is 1, the receiver looks at the main wire, and the green output wire will now be 43 ore and 10 wood. The green output wire *stays* at this value even when the main wire changes to 0.
ske wrote:How are the channels selected? Via a count on one color or via separate colors cycling through?
White color is sending channel, grey/black color is the two step logic of receiving.

Huh... trying to understand this is pretty interesting.

Frame 1. White is 16, Grey is 15, Black is 14. Nothing happens.
Frame 2. White is 1, Grey is 16, Black is 15. First transmitter combinator activates. Still nothing on the wire.
Frame 3. White is 2, Grey is 16, Black is 1. Second of the transmission combinators activate. The input is on the wire. First of the receiver combinators activates and sets yellow to 1.
Frame 4. White is 3, Grey is 2, Black is 1. Second of the receiver combinators activates, reads the content of the wire and sends it to the output. Since yellow is 1, the third combinator (which also sends to the output) stops sending anything for one frame.
Frame 5,6,7... The third combinator reads what's on the output wire and repeats it next frame.
What is the output signal when receiving for example "iron", is it "iron" or something else?
Yeah it is "iron". You can transmit *all* the signals at once if you want, except the ones used in the logic. So you could transmit a whole logistics system inventory if you really wanted to.

User avatar
theRustyKnife
Fast Inserter
Fast Inserter
Posts: 241
Joined: Thu Feb 26, 2015 9:26 pm
Contact:

Re: Multiple signals on one wire - simple

Post by theRustyKnife » Sun Jan 31, 2016 7:37 am

Linosaurus wrote:
theRustyKnife wrote:Let me know what you think! Is it simple enough :D ?
Multiplexing. Very cool setup. Not exactly simple to get started, but once you have blueprints of the different stations it should be trivial. And you don't even have to change existing transmitters or receivers when you want to increase the number of channels. Tried it out just to see that it works. It does.
ske wrote:It's not quite clear to me how it works and behaves. A few more paragraphs of text would be helpful.

When signalling "iron" does it use "iron"-signals or does it use one of the color signals for the count?
I think I can explain how it works. As simplified example, lets set the constant combinator in the transmitter to 43 ore and 10 wood. The clock counts from 1 to 16. At 60 ups/fps, this happens 60/16= 3.75 times per second. In the screenshots above, channel 1 is used.

Whenever the clock is 1, the transmitter sends 43 ore and 10 wood to the main wire, but only for one frame. All other frames, those are 0.
Whenever the clock is 1, the receiver looks at the main wire, and the green output wire will now be 43 ore and 10 wood. The green output wire *stays* at this value even when the main wire changes to 0.
ske wrote:How are the channels selected? Via a count on one color or via separate colors cycling through?
White color is sending channel, grey/black color is the two step logic of receiving.

Huh... trying to understand this is pretty interesting.

Frame 1. White is 16, Grey is 15, Black is 14. Nothing happens.
Frame 2. White is 1, Grey is 16, Black is 15. First transmitter combinator activates. Still nothing on the wire.
Frame 3. White is 2, Grey is 16, Black is 1. Second of the transmission combinators activate. The input is on the wire. First of the receiver combinators activates and sets yellow to 1.
Frame 4. White is 3, Grey is 2, Black is 1. Second of the receiver combinators activates, reads the content of the wire and sends it to the output. Since yellow is 1, the third combinator (which also sends to the output) stops sending anything for one frame.
Frame 5,6,7... The third combinator reads what's on the output wire and repeats it next frame.
What is the output signal when receiving for example "iron", is it "iron" or something else?
Yeah it is "iron". You can transmit *all* the signals at once if you want, except the ones used in the logic. So you could transmit a whole logistics system inventory if you really wanted to.
Yeah that's pretty much exactly how it works. Guess I should have explained it a bit better. I might try doing it later when I have time.
Anyways, good job on 'reverse engineering' the thing, you got it pretty precisely :D .
Check out my mods!

User avatar
theRustyKnife
Fast Inserter
Fast Inserter
Posts: 241
Joined: Thu Feb 26, 2015 9:26 pm
Contact:

Re: Multiple signals on one wire - simple to use

Post by theRustyKnife » Sun Jan 31, 2016 1:12 pm

Just updated the post with more info on how it works :geek: . Also found a problem with this setup and added it to the list.
Now I noticed I didn't really react to ske, so sorry fo that :oops: , here you go:
The setup actually works like multiple wires next to each other - that means it can carry any signal (except the ones being used by the combinators). So I'm basically having each outpost on a different channel sending the amount of ore (usually as the iron ore signal but it doesn't really matter) often along with some other stuff (like is there a train in the station). Back in base I then just scroll through the signals to see how is each outpost doing (that's the control center I mentioned).
Hope that answered your question.
Cheers :D
Last edited by theRustyKnife on Sun Jan 31, 2016 6:17 pm, edited 1 time in total.
Check out my mods!

Kalanndok
Inserter
Inserter
Posts: 33
Joined: Sat Dec 12, 2015 9:07 am
Contact:

Re: Multiple signals on one wire (multiplexing) - simple to use

Post by Kalanndok » Sun Jan 31, 2016 5:37 pm

Actually what I'm also quite interested in is this:
(like is there a train in the station)
Been looking for something to detect that for a long time :)

ratchetfreak
Filter Inserter
Filter Inserter
Posts: 936
Joined: Sat May 23, 2015 12:10 pm
Contact:

Re: Multiple signals on one wire (multiplexing) - simple to use

Post by ratchetfreak » Sun Jan 31, 2016 6:08 pm

Kalanndok wrote:Actually what I'm also quite interested in is this:
(like is there a train in the station)
Been looking for something to detect that for a long time :)
not in the game yet, you'll have to wait until 0.13

User avatar
theRustyKnife
Fast Inserter
Fast Inserter
Posts: 241
Joined: Thu Feb 26, 2015 9:26 pm
Contact:

Re: Multiple signals on one wire (multiplexing) - simple to use

Post by theRustyKnife » Sun Jan 31, 2016 6:13 pm

Kalanndok wrote:Actually what I'm also quite interested in is this:
(like is there a train in the station)
Been looking for something to detect that for a long time :)
I'm using the Smart Trains mod for that. It also adds a ton of other cool things to trains. I couldn't live without it :D .
Check out my mods!

Vim Razz
Burner Inserter
Burner Inserter
Posts: 7
Joined: Tue Feb 02, 2016 4:59 pm
Contact:

Re: Multiple signals on one wire (multiplexing) - simple to use

Post by Vim Razz » Tue Feb 02, 2016 5:40 pm

Very cool. I've been working on a way to control the way outposts load trains so that they mine out sequentially in my current game (rather than all just mining together and finishing in random order) in order to reduce the amount of time spent running all over the place when doing outpost maintenance. I'm playing a low resource map so deposits mine out very quickly and having them do so in a predictable order would be nice.

This seems like a much more capable and flexible system for having them communicate with each other than my previous experiments. Thanks!

Kalanndok wrote:Actually what I'm also quite interested in is this:
(like is there a train in the station)
Been looking for something to detect that for a long time :)
Someone posted a rather clever way to determine this a while ago on Reddit, having an inserter pull coal off the engine into a smart chest and then some more inserters feed it back in again. If there's any coal in the chest then a train has arrived at the station.

User avatar
Dr. Walrus
Long Handed Inserter
Long Handed Inserter
Posts: 95
Joined: Fri Nov 20, 2015 6:30 am
Contact:

Re: Multiple signals on one wire (multiplexing) - simple to use

Post by Dr. Walrus » Tue Feb 16, 2016 6:46 am

I've was thinking about multiplexing signals in order to construct a smaller lamp display when I happened to see your multiplexer post. I skimmed through it and I figured I would take a crack at building one myself before looking into yours and seeing how different mine would end up.

Here's the three parts of my design and the blueprint string of my multiplexer and yours I built next to it to compare the two.
Picture and Blueprint String
Some differences I found:
Mine has smaller clocks and multiplexers, but larger deplexers.
Yours needs to use 6 signals to run, mine needs 2.
Mine ended up needing the both red and green wires to transmit the clock and the signal so I guess it's not a true multiplexer :?

One thing I'm fairly proud of is that the signals come out clean without any of the clock signals left. The secret is to use a arithmetic combinator to multiply the signal you want to get rid of by (-1) and add that back to a wire carrying the everything signal. The negative and positive signals cancel out and you get zero of that signal. Here's a picture of the clean signals and the way to get rid of an unwanted signal.
Pictures
Keep up the good work! It's always nice to see other people's designs and try to improve on them :D
Visit my profile on mods.factorio to see some unique, off the wall mods: Mod page for madmaster5000 (me)

Older mods:
Pressure Plates

User avatar
theRustyKnife
Fast Inserter
Fast Inserter
Posts: 241
Joined: Thu Feb 26, 2015 9:26 pm
Contact:

Re: Multiple signals on one wire (multiplexing) - simple to use

Post by theRustyKnife » Wed Feb 17, 2016 3:55 pm

Hey Dr. Walrus,
It's interesting to see how we both took a different approach to doing essentially the same thing. :D
Dr. Walrus wrote:Some differences I found:
Mine has smaller clocks and multiplexers, but larger deplexers.
Yours needs to use 6 signals to run, mine needs 2.
Mine ended up needing the both red and green wires to transmit the clock and the signal so I guess it's not a true multiplexer :?
I actually had the idea with using both wires too, but I really wanted to keep the green wire reserved for 'local networks'. Just so I don't really have to think which pole can I connect to and which not...
Dr. Walrus wrote: One thing I'm fairly proud of is that the signals come out clean without any of the clock signals left. The secret is to use a arithmetic combinator to multiply the signal you want to get rid of by (-1) and add that back to a wire carrying the everything signal. The negative and positive signals cancel out and you get zero of that signal. Here's a picture of the clean signals and the way to get rid of an unwanted signal.
This is a cool little setup and I really can't tell why did I not think about that earlier :idea:. I did make a version that emitted 'clean' signals but it was pretty large so I abandoned it later...
I really feel an urge to make a version 2.0 of this by kind of merging the two designs. I'll update the original post once I'm done...

PS: Those smilies ( :!: :?: :idea: :arrow: ) are really bad. No wonder no one uses them...
Check out my mods!

User avatar
Dr. Walrus
Long Handed Inserter
Long Handed Inserter
Posts: 95
Joined: Fri Nov 20, 2015 6:30 am
Contact:

Re: Multiple signals on one wire (multiplexing) - simple to use

Post by Dr. Walrus » Wed Feb 17, 2016 8:42 pm

I found a big problem with my design that I hadn't noticed earlier. Because the decider combinator that was used to keep the memory in the deplexer was reset based on getting a red signal, it would keep the last output it had if the deplexer was set to output from an unused channel. If anyone can understand that it means I changed my design and now that's not a problem lol. While i was working on it I made it run on only 1 wire at the expense of needing an extra signal.

This new design now needs 3 signals and doesn't have clean outputs.
BUT! Its still the same number of combinators per element give or take, now runs on only one wire, and doesn't have the deplexer-memory-keep-state-unused-channel problem!
Picture
Blueprint String
I've also got one in the works that has all those advantages and only needs ONE! signal. But I'll wait a bit before working on it to give theRustyKnife time to post his latest version.
Visit my profile on mods.factorio to see some unique, off the wall mods: Mod page for madmaster5000 (me)

Older mods:
Pressure Plates

User avatar
theRustyKnife
Fast Inserter
Fast Inserter
Posts: 241
Joined: Thu Feb 26, 2015 9:26 pm
Contact:

Re: Multiple signals on one wire (multiplexing) - simple to use

Post by theRustyKnife » Thu Feb 18, 2016 6:53 am

Wow, this just almost turned into a competition :D ! lol
Alright, I'll post my version when I get back from school today ;) .
Check out my mods!

User avatar
theRustyKnife
Fast Inserter
Fast Inserter
Posts: 241
Joined: Thu Feb 26, 2015 9:26 pm
Contact:

Re: Multiple signals on one wire (multiplexing)

Post by theRustyKnife » Thu Feb 18, 2016 3:37 pm

Dr. Walrus wrote:But I'll wait a bit before working on it to give theRustyKnife time to post his latest version.
Alright here I go - just updated the original post with versoin 2.0.
It's actually pretty neat in my opinion:
  • It only uses one signal (white in my case)
  • It emitts 'clean' signals, though it's done a little differently then the arithmetic combinator - I simply never let there be anything else then the desired signals
  • It's pretty compact
It has a drawback still, though it's a minor one: The channels have to be specified as negative numbers (inversed is the right term? sorry not a native speaker :( )
This doesn't matter too much when you're setting it up permannently and you can simply use an arithmetic combinator multiplying by -1 if you need more flexibility, so I think it's ok.

I'm interested to see if you can come up with anything better ;) . Let me know.
Cheers TRK
Check out my mods!

User avatar
Dr. Walrus
Long Handed Inserter
Long Handed Inserter
Posts: 95
Joined: Fri Nov 20, 2015 6:30 am
Contact:

Re: Multiple signals on one wire (multiplexing)

Post by Dr. Walrus » Sun Feb 21, 2016 3:57 am

theRustyKnife wrote:Alright here I go - just updated the original post with versoin 2.0.
Nice job mate! Version 2.0 one is really compact for using only 1 signal. I'd think this is probably what I'd use if I'm going to use a multiplexer throughout my factory because it's so small and simple. It can be made easier to use if you make the clock count down with negative numbers, that way you could use positive numbers for the channel selection.

I did notice 2 limitations with your new design.
1. If you set something to transmit on channel -5 and something else to transmit on -6 for instance, the deplexer/receiver for channel -6 will output the contents of both channel -5 and channel -6.
2. The receiver does not work for the highest numbered channel. If clock counts from [1-16], channel -16 doesn't work.

Both of these problems can be avoided by just using only odd numbered channels so it's no big deal.

So...
I figured out how to make a 1 signal multiplexer too, but It's way more complicated than yours so I won't post it.
I figure the only way I could one-up you is by posting a multiplexer that lets you send every signal in the game. So I guess I will lol

Image

The clock, transmitter, and receiver are all a gigantic, over-engineered mess of perpetually strobing combinators that are nearly impossible to be built, let alone understood, without a blueprint. If you want me to explain how it works, I will probably try and fail.
Blueprint String
Last edited by Dr. Walrus on Thu Feb 25, 2016 4:26 am, edited 1 time in total.
Visit my profile on mods.factorio to see some unique, off the wall mods: Mod page for madmaster5000 (me)

Older mods:
Pressure Plates

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

Re: Multiple signals on one wire (multiplexing)

Post by XKnight » Sun Feb 21, 2016 10:44 am

Very nice thread, finally someone started to use combinators for their direct purposes.

Nevertheless, I am using almost the same build in my own factory, but with 2 small differences:
- signal sender (i. e. outpost) can receive and store orders from base
- signal receiver (i. e. base) a little bit different:
1.png
1.png (918.52 KiB) Viewed 28659 times
Nice work and keep going!

User avatar
theRustyKnife
Fast Inserter
Fast Inserter
Posts: 241
Joined: Thu Feb 26, 2015 9:26 pm
Contact:

Re: Multiple signals on one wire (multiplexing)

Post by theRustyKnife » Sun Feb 21, 2016 5:45 pm

Dr. Walrus wrote: So...
I figured out how to make a 1 signal multiplexer too, but It's way more complicated than yours so I won't post it.
I figure the only way I could one-up you is by posting a multiplexer that lets you send every signal in the game. So I guess I will lol
picture
Wow! This is really a beast :o ... Let me guess how it works:
The clock sends out a signal only every second (or so) tick, then the empty spots between the ticks are used to send the 'data' signals. There will probably be a problem when sending the 'control signal' used by the clock - some reciever might think that it's its time and read the next 'control signal' instead of the intended ones. I suppose that's the reason why it's so big...
I didn't really try it out, so this is just judging from the picture (or more like thinking how I would tackle this sort of thing)... It is really cool tho.
1. If you set something to transmit on channel -5 and something else to transmit on -6 for instance, the deplexer/receiver for channel -6 will output the contents of both channel -5 and channel -6.
Oops! I didn't really test it too much so I didn't notice it. It can be fixed by tweaking the transmitter a bit - uses an arithmetic instead of constant... I made a new version with this fix and I'll put it as 2.1 in the original post soon.
Also when I was building this I noticed the amazing versatility of the reciever when it comes to delay issues. Changing it is just as simple as changing two values to the number you need (you'll see in 2.1). This means that the same reciever can be used for basically any transmitter with any delay (but it's not a good idea to have transmitters with different delays connected to the same network, obviously). EDIT: Just noticed that it's not as perfect as I thought - with every tick of extra delay you lose one channel (it is still on the wire from the clock but the reciever doesn't actually react to it)
2. The receiver does not work for the highest numbered channel. If clock counts from [1-16], channel -16 doesn't work.
Yeah, it's actually different in 2.0 compared to 1.0. The channels are now from 0 to 15 (with 16 channels), though I didn't notice this before :oops: ...
XKnight wrote: Very nice thread, finally someone started to use combinators for their direct purposes.
Nice work and keep going!
Yeah I'm enjoying it quite a bit too :D . I'm not sure if there's much to improve in 2.1 but I still didn't get to the 'grand control center' thing I mentioned originally ;) ... It needs some redesigning before I can post it, since in my 'main' map, which is the only place I practically use it in, I still have a 1.0 system (it would be a real pain to rebuild the whole thing spread across almost the entire discovered area...).
Nevertheless, I am using almost the same build in my own factory, but with 2 small differences:
- signal sender (i. e. outpost) can receive and store orders from base
- signal receiver (i. e. base) a little bit different:
picture
Does this mean the outpost is both a reciever and a transmitter? So it is basically both of them next to each other? That's at least how I understand it...
The reciever is pretty compact though it does have some problems:
  • You need to set the number of channels on each reciever for it to work. That makes increasing it quite painful...
  • It can't really handle 'dynamic' changing of channels. The 'internal clock' (which is btw really awesome though not very practical - I love how it syncs up with the main clock autonomously...) gets a little confused and you need to reset it.
  • It uses one extra channel and doesn't output 'clean' signals but to be honest I don't really care - I've been making the new versions more as a challenge (again - I'm still using 1.0).
Actually, the synced clock just gave me an idea for a 'backup clock'. Since I have multiple bases interconnected by this system, it would be nice to have a backup clock in each one. You know, when the biters feel like tasting those yummy power poles... :roll:
It would only fire up when the 'main clock' gets disconnected so that particullar disconnected part of the factory wouldn't have problems with it's internal signals not being transmitted...

I'll post the 2.1 in a while so stay tuned...
TRK

PS: Do you really write capital I as 'me' in English? It seems so awkward to me (although all the English teachers say yes)...
Last edited by theRustyKnife on Sun Feb 21, 2016 7:06 pm, edited 1 time in total.
Check out my mods!

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

Re: Multiple signals on one wire (multiplexing)

Post by XKnight » Sun Feb 21, 2016 6:32 pm

theRustyKnife wrote:Does this mean the outpost is both a reciever and a transmitter? So it is basically both of them next to each other? That's at least how I understand it...
Yes and no simultaneously :)

Only base has all information about all outposts, and only base has possibility to give orders.
Every order has its own expiration time which is equal to amount of outposts by default, but this time may be bigger or smaller.
This expiration time is defined only by base logic.
If for some reason outpost doesn't recieve order prolongation it means order is ended.

Orders examples:
- enable/disable production
- enable/disable beacons
- enable/disable steam engine
...
And yes, in my base everything is connected via main bus: CPU, outposts, storages, steams, detectors, and even item counters.

Here is a simplified form of this stuff:
1.png
1.png (723.1 KiB) Viewed 28616 times
Open me
P.S. At this moment you have only two different types of closed systems: outpost and base. Try to think about player as a third type of system ;) you will find lots of interesting stuff in this area.

User avatar
theRustyKnife
Fast Inserter
Fast Inserter
Posts: 241
Joined: Thu Feb 26, 2015 9:26 pm
Contact:

Re: Multiple signals on one wire (multiplexing)

Post by theRustyKnife » Sun Feb 21, 2016 8:21 pm

XKnight wrote: Only base has all information about all outposts, and only base has possibility to give orders.
Every order has its own expiration time which is equal to amount of outposts by default, but this time may be bigger or smaller.
This expiration time is defined only by base logic.
If for some reason outpost doesn't recieve order prolongation it means order is ended.

Orders examples:
- enable/disable production
- enable/disable beacons
- enable/disable steam engine
...
And yes, in my base everything is connected via main bus: CPU, outposts, storages, steams, detectors, and even item counters.

Here a simplified form of this stuff:
picture
Open me
Oh ok, so the outpost is kind of a mix of a transmitter and a reciever. In the base you then use different kind of recievers that collect the data from all outposts.
That's a little different then my idea... I'm just looking at the system as a link between multiple places. Thus I thought it's enough to have just one type of transmitter and reciever. All the other necessary logic can be done elsewhere. This gives the system more flexibility though if you wanted to use it just for the outposts, it would be pretty ugly since you'd need to build both a transmitter and a reciever on each outpost - in this case it's probably better to build something like you did.

Also I think about the factory parts more like this:
  • Outpost - The little walled-off place with mostly just miners in it. They're dependent on a particular sector (They don't have a powerplant).
  • Sector - A part of the actual factory. I tend to build these as standalone structures (with seperate power plants and such) but they still share certain resources and send stuff between them. Also each sector has it's own dedicated mining outposts (the ones that they're powering).
I have all the sectors connected with the red wire (in addition to all outposts) and they all transmit all kinds of stuff even inside the sector (e.g. commands to certain in-sector trains). Since there is no central place I'd have to have one of your setups in each sector in order for it to make sense. Eventhough it is not necessarilly important for the factory I still want to be able to view the info about all the outposts even from a different sector.

That brings me to the idea of player connecting to the network. I do actually control a lot of stuff via the network but it's all done pretty much the same as if you had just a wire straight to the desired object. The main difference is that I can control anything from one terminal wherever in the factory it may be by just switching different channels.

I hope this made sense because I almost fell asleep while writing it but still wanted to get it off my chest. I'll eventually try posting a better answer tomorrow when I'm awake.
TRK
Check out my mods!

User avatar
Dr. Walrus
Long Handed Inserter
Long Handed Inserter
Posts: 95
Joined: Fri Nov 20, 2015 6:30 am
Contact:

Re: Multiple signals on one wire (multiplexing)

Post by Dr. Walrus » Thu Feb 25, 2016 4:23 am

theRustyKnife wrote: Wow! This is really a beast :o ... Let me guess how it works:
The clock sends out a signal only every second (or so) tick, then the empty spots between the ticks are used to send the 'data' signals. There will probably be a problem when sending the 'control signal' used by the clock - some reciever might think that it's its time and read the next 'control signal' instead of the intended ones. I suppose that's the reason why it's so big...
I didn't really try it out, so this is just judging from the picture (or more like thinking how I would tackle this sort of thing)... It is really cool tho.
That guess is pretty close actually! I'll try to describe the basics as best I can.
When using 20 channels, the clock sends this sequence of signals:
  • Blue = 1
  • Green = 1
  • Blank - Reserved for channel 20 data
  • Blue = 2
  • Green = 2
  • Blank - Reserved for channel 1 data
  • Blue = 3
  • Green = 3
  • Blank - Reserved for channel 2 data
  • Blue = 4
  • ...
  • Blank - Reserved for channel 18 data
  • Blue = 20
  • Green = 30
  • Blank - Reserved for channel 19 data
  • Then back to the beginning with Blue = 1
I used the double clock signals so that a receiver or transmitter wont be fooled by a data signal of [Blue = 5], for example. The transmitter or receiver will only be activated if it receives the signal [Blue = Channel Number] and 1 game tick later receives [Green = Channel Number]. Because there is 3 game ticks between data signals, the transmitter and receiver can never be fooled by anything you can transmit.

Another problem is having a condition on the decider combinator for when to output the contents of your outpost chest into the multiplexer line. You can't put a condition on the decider combinator like "if input blue = 0, then output everything," because it wont work if you want send a blue signal. So I cheated a little bit and used this setup.
Image

The decider combinator is constantly receiving 1.4G (1,400,000,000) blue. It will only output if blue is less than 700M (700,000,000) blue. When it is time to output, the arithmatic combinator receives 0 blue and outputs 0 blue, and as long as the outpost signal that will be sent into the multiplexer has between -700M and 700M blue, it will be output with no problems. There is a different way to solve this problem without the 700M limitation that involves splitting the blue signal from the rest of the outpost signal, and evaluating both of those independently but it requires at least 5 extra combinators to work so I think the way I used was a fair compromise.

This how I planed out the transmitter first to make sure it was outputting at the right time, 5 ticks after the blue signal and 4 ticks after the green signal.
Image

Also I found a bug in the version I posted on here earlier which is caused when you input blue equal to the transmitter's channel. I fixed it and redesigned the transmitter and receiver both with 2 less combinators less.
*Edit* I changed around the receiver a bit and it now has 2 less decider combinators and 1 more constant combinator.
Picture and Blueprint String of New Design
Visit my profile on mods.factorio to see some unique, off the wall mods: Mod page for madmaster5000 (me)

Older mods:
Pressure Plates

Post Reply

Return to “Combinator Creations”

Who is online

Users browsing this forum: No registered users