How do I make video calls with Arduino?

I'm working on a big project with an Arduino Mega. A part of it is making video calls. I want to use a GSM module to make a video call. The video is going to be shown on a color screen. Is this possible? If yes how, if no is there any other module that can communicate with another Arduino over long distances through buildings, like 2 km? If yes, the video and sound will be sent to the other Arduino, which will show the video and sound. Or is there a GSM module or shield that supports a camera?

Thank you

Edit:
Making video calls with Arduino is near to impossible, but you can make normal calls with the esp32.

No. you won't likely achieve video/sound over GSM (2G) network with an Arduino.

Streaming a video requires probably at minimum a 3G network

A Low-definition video requires 500kbps which should be doable if you have a good 3G reception but you need an arduino capable of acquiring a pre-compressed stream, building and sending frames at that speed.. better quality requires 4G or 5G and a fast hardware...

why don't you get a pre-built surveillance camera with a built in 4G or 5G capability?

I can't because it needs too much space and I want to communicate with 2 or more Arduinos, not with a phone.

I think doing video calls using GMS is hard.
Is there maybe a wireless communication module that can be used over long distances?

with GSM it's impossible if you want a minimum of quality. you just don't have the bandwidth

the farther you want to reach, the lower the speed of communication... so for real time audio+video it's hard...
if that were simple telephone operators would not need antennas and relays everywhere...

so you want to broadcast over a cellular network?... (some reading)

because its hard, ill probably use normal calls then.

are normal calls slower too?

I meant communication between 2 arduinos
and with more I meant communication between one arduino or another arduino not at the same time

there are tons of different wireless way to send data between arduino

the type of technology you choose depends on the throughput you want and the distance and the type of environment in between the sender and the receiver.

if it's audio only:

Look a bit around, you'll find some hacks like Walkie Talkie using nRF24L01 RF Module

you can find stuff with RF SA818 Modules (Experimenting with SA818 miniature RF modules)

etc...

the nrf24l01 doesnt have enough range, but the sa818 does. it has 5 km in open area, so it will probably do 2km in an area with buildings. let me do some research and see what I can do. maybe I can send video too. thanks for the idea

edit: I just realised that the sa818 costs 60 euros. i don't think I can use that. if I would, its going to cost twice the price it would actually cost if I used a gsm module or the hc-12.
speaking about the hc-12, it has 1 km range. so I don't think it would work. to make it work I would need to place multiple hc-12 as amplifiers on the way

good radios cost money... you can probably get second hand android phones for that price :slight_smile:

1 Like

The differance between RF reception in an 'open' area or good line of sight type locations and that in an urban area (with buildings) can be as much as 1000:1.

So if you a system that works at 5km line of sight you could get 100m or less in an area with buildings.

To run video calls over '2km' in an area 'with buildings' using typical Arduino RF modules I would say your chances are zero, maybe the military have some suitable equipment ?

1 Like

Using GSM wil need multiple SIM cards, which need subscriptions.
I'm probably going to use a Wi-Fi module to connect to the internet to make calls.
here's an example:

is this going to work?

Try it and send a report to the forum.

do you have a WiFi access point and internet available in all locations ?

yes, I have internet access in both locations

Si it’s only two now ? No more broadcast ?

Look for walkie talkie examples using esp32 - I’m sure there are some around

i never wanted to broadcast.
i just wanted to make calls.
i wanted to call 2 arduinos, but not at the same time

that was based on your comment

The ADC might only be 8 or 10 bits so the audio quality would be poor. You would need an external (Maybe I2S) 16bit+ at 96KHz sample rate ADC.

for hardware ideas (microphone, speaker) you can have a look at this

for the code, if you want this to work over the internet, it will require some modification. you could look also at things like I2S (https://dronebotworkshop.com/esp32-i2s/), DMA stuff etc

This thread is about making video calls, remember? That requires 2-way video, so twice the band width and twice the processing power, twice the data handling capability.

How do I make video calls with Arduino?

Not possible. Use Zoom on your laptop instead.

1 Like

It’s not just the communications bandwidth that makes this impossible.
Most Arduino boards are far too slow to do anything at all with “video.”

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.