Simultaneous Multiplexing Of Serial Data

Hello, I have a GPS module and two Arduino UNO. I want to multiply the GPS output so that the two Arduino can receive GPS data simultaneously. According to my research, demultiplexers (demuxes) do this but not simultaneously. They pass the input signal to one of the outputs only at a time. I need it to pass the input data to two of the outputs at a time. How can I make it? What can I use? Thank you :slight_smile:

No need for anything. Connect the serial output to the serial input of both UNOs. You presumably do not need to send data back to the GPS.

Only concern is that on each UNO, the serial input is already connected to the USB interface - a 16U2 if they are actually UNOs and not Duemilanove β€œclones” which have a CH340 instead - by a 1k resistor so the GPS serial line needs to be able to pull down against an effective 500 Ohm resistance. It probably will. :grinning:

UNOs are a poor choice for actual projects - in your case, Pro Minis would be better.

Hi,
Why do you have two UNO's.
What is the application?

Thanks.. Tom.. :slight_smile:

Always a good question. Enter the "XY Problem"! :grinning:

Paul__B:
No need for anything. Connect the serial output to the serial input of both UNOs. You presumably do not need to send data back to the GPS.

Only concern is that on each UNO, the serial input is already connected to the USB interface - a 16U2 if they are actually UNOs and not Duemilanove "clones" which have a CH340 instead - by a 1k resistor so the GPS serial line needs to be able to pull down against an effective 500 Ohm resistance. It probably will. :grinning:

UNOs are a poor choice for actual projects - in your case, Pro Minis would be better.

TomGeorge:
Hi,
Why do you have two UNO's.
What is the application?

Thanks.. Tom.. :slight_smile:

Hi Paul__B and TomGeorge, thanks for your replies, I appreciate! I use SoftwareSerial (and not the pins 0 [Rx] and 1 [TX]) and CH340 :d, so, do I still need any resistor?

Pro Mini would be more expensive with its gadgets like FTDI programmer etc. I am a student, so, you know what it means :d I'm making a kind of flight computer and it should include a main and a back-up board for any emergency situation. That is why I use two boards :slight_smile:

Thank you!

yusufbudakli:
it should include a main and a back-up board for any emergency situation. That is why I use two boards :slight_smile:

By that argument, you should have 2x GPS receivers too.

finola_marsaili:
By that argument, you should have 2x GPS receivers too.

Exactly, not that expensive these days, and what cost is safety?
Tom.... :slight_smile:

finola_marsaili:
By that argument, you should have 2x GPS receivers too.

No, I do not have to :slight_smile:

yusufbudakli:
I use SoftwareSerial (and not the pins 0 [Rx] and 1 [TX]) and CH340 :d, so, do I still need any resistor?

You do not need a resistor either way; I was pointing out that there is the resistor in the UNO/ Nano which is loading the pin 0 on the Arduino and the GPS needs to be able to drive it. Using SoftwareSerial means using other pins which do not have this resistor, so no problem. :grinning:

yusufbudakli:
Pro Mini would be more expensive with its gadgets like FTDI programmer etc. I am a student, so, you know what it means

You are severely confused there! The Pro Mini is the cheapest of all, and it makes no sense to use an FTDI programmer, the CH340 is now the standard and they are cheap, so Pro Mini plus USB interface is always cheaper than a "UNO".

You mention a CH340. If your "UNO" has a CH340, then it is a Duemilanove derivative, not a UNO by definition. That is in itself not a problem, but if your "flight computer" does not actually use USB other than for programming, the Pro Mini is definitely the cheapest, as you only use the CH340 USB adapter to program it and since you only ever program one at a time, you only ever need one CH340 adapter for however many Pro Minis you use. :sunglasses:

And if you do not need USB, you connect the GPS to the hardware serial and save all the problems of SoftwareSerial.

The UNO is a very impractical form factor. If you need the USB connection, you would use a Nano, again, cheaper than a supposed "UNO".

yusufbudakli:
I'm making a kind of flight computer and it should include a main and a back-up board for any emergency situation. That is why I use two boards :slight_smile:

Sorry, that doesn't really make any sense. :roll_eyes:

TomGeorge:
Exactly, not that expensive these days, and what cost is safety?
Tom.... :slight_smile:

That is not the point recently :slight_smile:

Paul__B:
You do not need a resistor either way; I was pointing out that there is the resistor in the UNO/ Nano which is loading the pin 0 on the Arduino and the GPS needs to be able to drive it. Using SoftwareSerial means using other pins which do not have this resistor, so no problem. :grinning:

Great :smiley: Thanks!

Paul__B:
You are severely confused there! The Pro Mini is the cheapest of all, and it makes no sense to use an FTDI programmer, the CH340 is now the standard and they are cheap, so Pro Mini plus USB interface is always cheaper than a "UNO".

Maybe in your country Paul, not mine :slight_smile:

Paul__B:
Sorry, that doesn't really make any sense. :roll_eyes:

You gotta say that to my teacher :grinning:

yusufbudakli:
No, I do not have to :slight_smile:

Then your logic's inconsistent. What makes you think the Uno would fail so have two, but that the GPS is invincible so have only one?

finola_marsaili:
Then your logic's inconsistent. What makes you think the Uno would fail so have two, but that the GPS is invincible so have only one?

You too gotta say that to my teacher :grinning:

Paul__B:
Always a good question. Enter the "XY Problem"! :grinning:

You were right Paul :smiley:

yusufbudakli:
You too gotta say that to my teacher :grinning:

Dear yusufbudakli's teacher, your logic is inconsistent.

Hi,
If this is a project to be submitted for evaluation, can you post the task as it is proposed so we can understand exactly what you are trying to accomplish?

Thanks.. Tom... :slight_smile:

"Hello, I have a GPS module and two Arduino UNO. I want to multiply the GPS output so that the two Arduino can receive GPS data simultaneously. "

Well, have you actually tried connecting the the GPS tx to the two arduino rx pins to see if it will work?

yusufbudakli:
You too gotta say that to my teacher :grinning:

You're teacher has no idea what they're doing. Real airplanes are at least triple-redundant in every critical system (GPS, pitot tube, flight controller, etc). Dual redundancy of just the flight controller makes no sense. The only way it might make sense is if your backup wasn't another Uno, but a proven autopilot such as a Pixhawk.

Either way, having any sort of redundancy is an over-complication for a cheap, small RC airplane project. For example, even an RC plane that's as complicated as mine (I design Arduino RC planes), I don't have any redundancy:

I was waiting for this. :grinning:

Of course, the reason that single redundancy - having only two systems - makes no sense, is that if the two systems both give an answer but the answers do not match, you have no idea which one is correct, so you cannot use either. :roll_eyes: It is only useful if one fails and goes dead.

  1. There are good reasons consider the MCU the weakest part
  2. If the MCU is good it may be able to recover from sensor error (i.e. trying to reset the sensor)
  3. Single redundancy is not uncommon - often space devices have "main" and "backup" computer. However I don't know details how it is implemented that the backup takes control. Maybe in reality "backup" consists of two independent units?

"Re: Simultaneous Multiplexing Of Serial Data"

It is interesting how people stray from the subject and run down self made rabbit holes that really have nothing to do with the original OP question.

zoomkat:
"Re: Simultaneous Multiplexing Of Serial Data"

It is interesting how people stray from the subject and run down self made rabbit holes that really have nothing to do with the original OP question.

The answer to the question is that it's not actually a problem. Either use multiple ports or don't implement a design that makes 0 sense.