Multiple GSM boards

Hi guys,

I've a question about the hardware capability of the Arduino for controlling multiple boards (GSM shields in my case). On my project I need to call to 10 different numbers at the same time, so I might be using 10 GSM board in order to do that. So, do I need to use an Arduino/Genuino UNO board for every single GSM shield plus the master, or is the Arduino Mega capable to control those 10 GSM boards?

Note: My master controller also needs to do an interface with the PC in order to get the numbers that will be called.

Thank you in advance

Could you maybe explain why you need to call 10 different numbers at the exact same time. Perhaps theres a better way to do it....

Could you maybe explain why you need to call 10 different numbers at the exact same time. Perhaps theres a better way to do it....

Well I'm making an emergency system, I gave the suggestion that with sms will be cheaper, but by security protocol a call must be made to every responsable and technician at the same time.


That solution sounds fairly fraght with challenges... I'd do it, but with 30-odd years of micro experience.

Are you synthesising an audio message, or will each recipient simply hear a 'dead' line or a tone?
If you're generating a message - it also has to be running 10 separate times to accommodate the callees answering at different times - and retrying unanswered calls.

I agree there are benefits to a voice call, but perhaps as a combination - SMS with that voice message.

Sending SMS is also 'so-so', as there is no guarantee the network will send any communications 'instantly' - depending on congestion, signal strength etc.

If you write your SMS 'pipe' properly, with a queue - you can time stamp & generate the messages virtually instantly, and actually send them out around every couple of seconds in ideal conditions.

So - in summary - and to answer your question - Yes, you can connect multiple modems (* more in a moment), but it may not be the best solution based on other real-world limitations.

(*) A modem is simply a serial device - and as such, is relatively slow in comparison to the Arduino. If you can manipulate serial data streams (an array of modems), then you can talk with each modem independently - looking for the appropriate responses, then send the dial command when needed - in parallel if necessary.

You may save some overhead by dialling from the 'phonebook' held in the SIM cards or modems.

Depending on your experience with hardware and code, you may want to look for technical assistance, as this isn't a straightforward 'learning' project. The power supply alone will keep you busy if you're running 10 modems simultaneously!

Therevare usually two issues in an "emergency", dealing with the immediate notification and dealing with the finger pointing after the event.

To that end, it might be worth considering another approach;

  1. Generate an immediate sms to all parties, which has the benefits of a built retry mechanism in the network.
  2. Use a group call function from either a local service provider, or your pbx. You can generate the call from the arduino and let the platform handle the details. This way you also get a nice audit trail (call logging/billing).

If thats not viable, its worth considering sequential calling. Keep the message short and in reality the delay is likely to be minor.


Had my second cup of tea now... some things to ask;

Will all users be on mobiles, or will some be landline?
How will you handle calls routing to answer phone?
How will you handle un-answered calls (eg landline with no answerphone)
What if someone else answers their phone (family member etc)
Do you actually need to include any information, or is it enough that they know an "event" has occurred and that they should then check in (eg on a system, or call in)
How much delay is tolerable?

I've done something similar - realising that SMS can take time to send... still often faster than the recipient can get to the phone.
I use the cellular time from the modem to timestamp the messages when they are generated (not when they are 'sent').... so that queued messages are correctly 'logged' for the post-mortensen analysis.

Multiple adjacent modules are OK up to 8 - then you'll get slot blocking.




Slot blocking?
Please elaborate.
I'd never heard the term before!

Im guessing hes alluding to the gsm slot structure (8 channels/carrier), but in reality a single carrier site would have a maximum of 7 FR channels (assuming no gprs etc).

Its another reason to try and avoid simultaneous calling....