Guides · 16 min read

Teach Arduino Online: Cameras, Simulator and App for Live Lessons

How to teach Arduino online: a two-camera setup, a kit list sent ahead, a 45-minute lesson plan, a remote debugging order and tips for groups of 4 to 8.

You can teach Arduino online over a video call very well, as long as four things are ready from the start. First, the kit has to be in the student's hands: they plug in the wires and they upload the code, not you. Second, you need two camera angles: one shows the student's face, the other looks straight down at the breadboard from a phone holder. Third, the student shares their computer screen, so you see the code in the Arduino IDE, the error message and the numbers in the Serial Monitor at the same moment they do. Fourth, the project for the lesson is sent a day in advance, so the student has already opened the parts list and the circuit diagram on their phone before the call. With these four in place you can find faults even though you never see the circuit as clearly as in a classroom, because the student does the looking and you tell them where to look. Most faults turn up within minutes if you follow a six-question order that runs from power to code.

This post covers the technical and teaching side of online lessons: camera and audio setup, what to send before the lesson, a minute-by-minute lesson, remote debugging and running group lessons. How to plan a course week by week is in the post on starting an Arduino course, and building circuits in the browser is in the Tinkercad Arduino simulator guide; we don't repeat them here. The examples all assume the same thing: the student has an Arduino Uno starter kit and a computer, and you teach from your own desk with the same kit.

Arduino Uno board: ON power LED, L, TX and RX LEDs, GND and digital pin headers
The first places to check in remote debugging: the ON LED on the right, the L LED tied to pin 13, the TX/RX LEDs that blink during upload and the labels above the pin headers.

Why one camera is not enough for an online Arduino lesson

A laptop camera shows the student's face, not the breadboard on the desk. Holding the board up to the camera doesn't solve it either: the wires swing, a jumper pops out, the angle changes every second and you can't tell pin 13 from pin 12. So the basic layout of an online Arduino lesson has three views: the face camera for communication, the overhead camera for the circuit and screen sharing for the code. The face camera matters more than it seems; the moment a student frowns is the moment you spot a problem they haven't said out loud. The overhead camera becomes the view you watch most, because only it shows which hole a wire goes into. Screen sharing replaces the classroom habit of looking over a shoulder: you look at the same thing as the student while they write code, compile it and read the Serial Monitor.

Technical setup: teacher side and student side

You don't need expensive gear; the second camera is a phone most homes already have. Which video call app you use doesn't matter much either: screen sharing, a chat window and joining the same call from a second device are available in almost every common app today. If you plan group lessons, check separately whether the app has breakout rooms. The table below puts both sides' needs next to each other.

ItemTeacher sideStudent side
ComputerArduino IDE installed, call app open; a second screen if possible (students on one, your own IDE on the other)Arduino IDE installed and one test upload done; a free USB port for the Uno
Face cameraThe laptop's built-in camera is enoughThe laptop's built-in camera is enough
Overhead cameraA phone above your own kit, so you can show the circuit from above while explainingA phone joins the call as a second participant, 30–40 cm above the breadboard, looking down with the rear camera
Phone holderA flexible-arm desk holder or an overhead arm holderThe same; if there is none, a ruler taped between two stacks of books works
LightA desk lamp from the sideA desk lamp from the side; a sheet of white A4 paper under the breadboard
AudioA headset with a microphone; it prevents echoHeadphones; the phone's microphone and speaker turned off
Screen sharingYou show your own IDE and the project pageOnly the Arduino IDE window is shared, with a larger font size
InternetWired connection or close to the routerIf the video freezes, turn off the face camera first and keep the overhead camera on

The trick that helps most: the student joins the same call a second time from their phone and renames that participant, for example "Emma - Circuit". On the phone they mute the microphone and turn the speaker down to zero; otherwise the two devices pick up each other's sound and the call turns into a howl. Using the rear camera instead of the front camera gives a sharper image and removes the mirror problem: with the front camera your own preview is mirrored in most apps, which makes pin labels hard to read. Hold the phone in landscape, keep the breadboard and the Arduino in the same frame and leave the phone on the charger; a 45-minute video call drains a phone battery fast. When the lesson starts, pin the overhead camera view (most apps have a "pin" or "spotlight" option) so the image doesn't jump away whenever someone else speaks.

Set up your own overhead camera as well. In an online lesson your breadboard replaces the classroom board: while you say "Look, the LDR leg goes into this row and the 10 kΩ resistor into that one", your hand is visible too. The student repeats the move on their own desk right away and you compare the two images side by side.

What to send before the lesson: the 24-hour rule

The most expensive minutes in an online lesson are the ones spent installing drivers or hunting for a missing resistor during the call. To avoid them, send the student a short message at least one day before the lesson and ask them to complete the list below. For the project link, open the project in BlueGrays and tap Share; if the app is installed, the link you send opens that project directly on the student's phone. That way the student has seen the Required Components list and the Circuit Diagram before the lesson starts.

  1. Kit list: The names and quantities of the parts, including resistor values. The student lays the parts out on the desk and sends a photo from the overhead camera; if something is missing you find out a day early.
  2. Project link: The project you sent with Share in the app. The student enlarges the diagram and compares the quantities in the parts list with their own kit.
  3. Arduino IDE installation: The student installs the version for their operating system and opens it once, waiting for the board packages downloaded on first launch to finish.
  4. Test upload: They open File > Examples > 01.Basics > Blink, choose the board and port in the Tools menu and upload. If the L LED on the board blinks once a second, the computer, cable and driver are ready. They send you a screenshot or a short video of it.
  5. Call rehearsal: A 5-minute trial call before the lesson: joining a second time from the phone, muting the microphone, the overhead camera angle.
  6. Phone holder and light: The holder is set up on the desk, the lamp shines from the side and there is white paper under the breadboard.
  7. BlueGrays account: The student is signed in to the app. Free projects need nothing else; if you will work on a Premium project, they have already redeemed their code.
PartQtyUsed inNote
Arduino Uno + USB cable1BothThe cable that worked in the test upload
Breadboard1Both400 or 830 holes
LDR (light sensor)1BothLegs not cut short, so they show on camera
10 kΩ resistor1BothBrown-black-orange; forms a voltage divider with the LDR
330 Ω resistor1Night light onlyOrange-orange-brown; protects the LED
LED1Night light onlyLong leg is positive (anode)
Male-to-male jumper wire5BothRed for 5V and black for GND if possible
Don't leave the test upload for the lesson. If the port doesn't appear in the list, the cause is usually a charge-only USB cable or the driver for the CH340 chip on clone boards; fixing that over a video call can take 20 minutes. Send the student the Arduino upload error guide so the problem is solved before the lesson. If the setup still fails, plan a short, separate "setup call".

A 45-minute online Arduino lesson plan

The flow below is written for a one-to-one lesson and uses two free projects back to back: first Measuring Light Intensity with an LDR to read the LDR value in the Serial Monitor, then adding an LED to the same circuit and moving on to Night Light with Ldr. This pair suits online lessons well, because the numbers in the Serial Monitor are clearly visible in a screen share and you both see the value drop the moment the student covers the LDR with their hand. Both projects are completely free in BlueGrays, with circuit diagram, code and the Understand the code section.

TimeStageTeacherStudentView in focus
0–5 minConnection checkTests audio, both cameras and screen sharing one by oneJoins a second time from the phone, adjusts the overhead cameraOverhead camera
5–10 minGoal and parts checkSays "Today we'll build a lamp that turns on by itself in the dark" and counts the partsLays the parts out under the overhead camera, reads the resistor coloursOverhead camera
10–18 minCircuit 1: LDR + 10 kΩBuilds the same circuit step by step under their own overhead cameraEnlarges the Circuit Diagram on the phone and builds itBoth overhead cameras side by side
18–20 minShow meRuns the first four steps of the show-me orderPoints to each wire with a fingerOverhead camera
20–27 minCode and Serial MonitorReads the code together with the student; reminds them of 9600 baudOpens the code on the computer with Copy Link, uploads it, opens the Serial MonitorScreen share
27–30 minMeasuringAsks for the values out loud, picks the threshold togetherCovers the LDR with a hand, moves it towards the lamp, reads the valuesScreen share + overhead camera
30–38 minCircuit 2: LED + 330 ΩStresses pin 13 and the LED's directionAdds the LED, uploads the night light codeOverhead camera
38–42 minChange it yourselfAsks for the threshold to match the room's lightChanges the threshold of 50 in the code to fit their own measurementsScreen share
42–45 minWrap-up and homeworkGives the homework and the parts for next lessonSends a photo of the working circuitFace camera

The heart of this flow is minutes 27–30. The threshold in the night light code is 50: when the reading drops below 50, the LED turns on. But every room has different light; if the student's room reads 600 in daylight and 120 with a hand over the sensor, the LED never turns on with a threshold of 50 and the student thinks the circuit is broken. So you have them measure first: "How much in the light, how much with your hand over it?" The student says both numbers, picks a threshold close to the middle and changes the code. The Try it yourself task in the project's Understand the code section also asks you to raise the threshold to 300 and watch the difference; tying it to the student's own measurement in an online lesson prevents the "my circuit is broken" mistake and teaches why the Serial Monitor exists. For baud rate settings and the plotter, see the Arduino Serial Monitor guide.

Remote debugging: the "show me" order

In an online lesson you can't reach into the circuit; that looks like a disadvantage, but used well it becomes a teaching advantage. When the student says "it doesn't work", instead of telling them what to do you ask questions in the same order every time, and that teaches them how to look. The rule is simple: start at power, move towards the code, look at one thing per step. The student can't say "I think it's fine"; they either show it on camera or read it on screen. The six steps below rule out the most common beginner mistakes one by one.

Step"Show me"What you checkCommon finding
1Power LED: "Bring the board closer to the camera. Is the LED marked ON lit?"Whether the board gets powerNot lit: cable or USB port; or 5V shorted to GND, so the computer shut the port down
2USB and port: "Share your screen and open Tools > Port."Whether the board and port are selectedNo port or the wrong port; board not set to Arduino Uno
3GND: "Follow the black wire with your finger from the Arduino to the breadboard."Whether all negatives meet at a common GNDGND not connected at all; on long breadboards half of the power rail, split in the middle, is left floating
4Pin: "Show me up close where the wire enters the board and read the label."Whether the wire sits in the pin named in the codeShifted one pin over (13 instead of 12); A1 instead of A0; LED in backwards
5Code line: "Show me the pinMode and analogRead lines."Whether the pin number in the code matches the circuit13 in the code, 12 on the board; threshold outside the measured values
6Serial Monitor: "Open the Serial Monitor. What is the baud rate set to?"Whether the board is sending dataGarbage characters: baud is not 9600; no data at all: wrong port or the upload didn't finish

When following a wire on camera, ask the student to point with a fingertip; a pen tip is even better, because it marks the exact breadboard hole more clearly than a finger. When counting pins, start from the edge of the board: "Count right from GND. Which hole is it?" Have them read the breadboard's row numbers and letters out loud; saying "in c12" leaves far fewer mistakes than "in that hole there". Also keep in mind that on the overhead camera you may see the board upside down, so the student's right is your left. When giving directions, use markings on the board instead of "right" and "left": "the USB side", "the side that says GND", "the groove in the middle of the breadboard".

A 10-step remote checklist

  1. The board is plugged into USB and the ON LED is lit.
  2. The cable can carry data; it's the same cable that worked in the test upload.
  3. Arduino Uno is selected as the board in the Arduino IDE.
  4. The right port is selected; the port that disappears from the list when the board is unplugged is the board's port.
  5. The code compiles without errors; if there is an error, the first red line is read out loud.
  6. The upload finished with the "Done uploading" message; the TX and RX LEDs blinked during the upload.
  7. Every negative in the circuit is connected to the Arduino's GND pin.
  8. Every wire sits in the pin shown in the diagram, and the pin number matches the code.
  9. The LED's long leg goes through the resistor to the pin and the short leg goes to GND; the resistor colours are right (check with the Color code tool if needed).
  10. The Serial Monitor is open, its speed matches the Serial.begin value in the code (9600 in this lesson) and numbers are scrolling.

Getting a clear circuit photo from the student

  • Shoot straight from above: Hold the phone parallel to the desk. In a photo taken from the side the breadboard rows slide into each other and you can't tell which hole a wire is in.
  • Flash off, lamp from the side: The flash leaves a white glare on the shiny plastic of the breadboard, exactly where you want to look.
  • Move closer instead of zooming: Digital zoom blurs the picture. Moving the phone closer and tapping the screen to focus is enough.
  • Labels in view: The Arduino's pin labels and the breadboard's row numbers must be in the frame. If wires cover a label, the student moves them gently aside.
  • Watch out for compression: If the messaging app shrinks the photo, the student sends it as a file or document.
  • Get the code as text, not a photo: Ask them to copy the code and paste it as a message instead of photographing the screen; you compile it in your own Arduino IDE and reply with the line number.
Teach the "three-photo rule" in the first lesson: one of the whole circuit, one close-up of the Arduino's pin headers, one close-up of the breadboard. Most "it doesn't work" messages between lessons are solved in one go with these three photos; a single photo from far away usually means three more messages.

Where the simulator and the app fit in an online lesson

A simulator sits next to the online lesson, not in place of it. If the kits are still in the post, you can hold the first lesson in the browser, try a new circuit on your own screen before showing it to the student, or give homework to a student without a board. Tinkercad's setup, parts and limits are covered in detail in the Tinkercad Arduino simulator guide; here we'll only say this: a simulation has no loose wires, no LEDs in backwards and no wrong ports, yet those are exactly most of the faults in an online lesson. So while the student has a kit, the real work happens on a real breadboard. The places where the app helps during and between lessons are these:

  • Circuit Diagram: The student taps the diagram to enlarge it and zooms in wire by wire. With Save to Gallery they save it to their phone; looking at the diagram in the gallery while the video call is open is easier than switching between apps.
  • Copy Link: This button next to the source code copies a link for opening the code on a computer. The student pastes the link into the call's chat window or sends it to themselves, opens it on the computer and moves the code into the Arduino IDE. The link is not permanent and expires after a short time, so give homework by project name rather than by link.
  • Understand the code: The "What does this code do?" summary, the step-by-step explanation and the Try it yourself task are ready-made homework between lessons. Homework after the night light lesson, for example: finish Understand the code in Measuring Light Intensity with an LDR, do the Try it yourself task that asks for 10 readings a second, and show the result by screen share next lesson.
  • Let's build it together: If the student missed a lesson or wants to repeat the project alone, this guided mode takes them step by step from preparing the parts to testing.
  • Forum: A student who gets stuck between lessons opens a topic in the Question category, adds circuit photos and their code with Add code, and closes it with Mark as Solved once it's fixed. When you reply, you can ask for the same "three-photo rule". The rules for writing a good question are in asking Arduino questions on a forum.

Online group lessons: managing 4 to 8 students

In a one-to-one lesson everything happens between you and the student; in a group of 4 to 8, the real problem is three people saying "mine doesn't light up" at the same time. On a video call, overlapping voices mean nobody hears anybody. So set the rules in the first minute and keep them the same every lesson: everyone's overhead camera stays on, microphones are only on while speaking, and help requests arrive in writing, not by voice.

  • Queue system: A stuck student types only their name and the stage in the chat ("Max - no port"). You work down the list from the top, with at most 2 minutes per student in the main room. Anything that takes longer moves to a breakout room.
  • Breakout rooms: Split the group into breakout rooms of 2–3. In each room one student builds while the other watches their overhead camera and compares it with the diagram, then they swap roles. You visit the rooms in turn for 3–4 minutes each.
  • Screen sharing rotation: At each stage one student shares their screen and the others compare it with their own. Write the rotation before the lesson so every student becomes the "presenter" several times over the term and quiet students get seen too.
  • Shared progress signal: Anyone who finishes a stage types "done" in the chat. When half the group has said "done", you announce the next stage; those behind continue with you in a breakout room.
  • Fast finishers: Keep a small extra task ready, such as the Try it yourself task in Understand the code or changing the threshold; a waiting student doesn't get bored and doesn't block the queue.

A concrete example: say you are running the night light lesson with an online group of 6 students and the lesson lasts 60 minutes. The first 10 minutes everyone is in the main room: connection check and parts count. Then you open 3 breakout rooms; in each, two students spend 15 minutes building the LDR circuit while checking each other's circuit on the overhead camera. Back in the main room, one student shares their Serial Monitor and everyone types their own light and dark values in the chat; 6 different rooms give 6 different numbers, and why the threshold is chosen per person becomes obvious on its own. Adding the LED happens in the breakout rooms again, and in the last 10 minutes each room shows its working circuit once.

How educator packages work in an online course

Students living in different cities is no obstacle for Premium projects in an online course. BlueGrays Educator Packages (Profile > Educator Packages) give you Premium codes in packs of 5 or 10, monthly or yearly, and you share them one by one from the My Codes screen. The share message contains both the code and a link; when the student taps the link, the Redeem Code screen opens in the app with the code already filled in, and tapping the Redeem Code button is all it takes. The student doesn't add a card to their Apple or Google account; you pay once from your own account and nothing renews automatically. In My Codes you can see who used which code, so tell your students up front that redeeming a code shares their name, username, email and profile photo with you. The packages are explained in Premium codes for a class, and the student's steps in how to redeem an educator code.

8 common online lesson problems and fixes

ProblemWhy it happensFix
Howling and echo on the callPhone and computer are in the same room on the same call, both with microphones onMute the phone's microphone, turn its speaker to zero; use headphones on the computer
Text is reversed on the overhead cameraThe front camera's preview is mirroredUse the rear camera or turn off mirroring in the app's settings
Wires can't be told apart, image is blurryPhone too high, too little light or light from behindLower the phone to 30–40 cm, light from the side, white paper underneath; ask for three photos if needed
Code is unreadable in the screen shareThe whole desktop is shared, the font is smallShare only the IDE window; increase the font size in the Arduino IDE preferences
Video freezes, audio cuts outThe connection can't carry two video feeds and a screen shareTurn off the face camera first; overhead camera and audio come first
Port missing or upload failsCharge-only cable, driver, wrong port or wrong boardTest upload before the lesson; if it happens during the lesson, steps 1–6 of the checklist
Garbage characters in the Serial MonitorThe Serial Monitor speed doesn't match the codeSet the Serial Monitor to 9600 (if the code has Serial.begin(9600))
A part turns out to be missing mid-lessonThe kit list wasn't checked in advanceAsk for a parts photo 24 hours ahead; show the missing part in a simulator for that lesson

The core of an online Arduino lesson is that the student uses their hands and eyes in place of yours: you say where to look, they look and show. After a few lessons this gives the student an even better habit than the classroom does, because they learn to find faults themselves. If you want to start your next online lesson with the Measuring Light Intensity with an LDR and Night Light with Ldr projects, you'll find both free in the BlueGrays app with circuit diagram, code and the Understand the code section, and you can send your student the link today.

Frequently asked questions

Can Arduino be taught effectively online?

Yes, as long as the student has their own kit. Because the student plugs in the board and uploads the code themselves, they work with the circuit directly, and you see the circuit and the code through two cameras and screen sharing. Setting things up during the lesson is what wastes the most time, so have the test upload done beforehand.

What software do I need to teach Arduino online?

The Arduino IDE on the student's computer and any video call app with screen sharing are enough. A phone joins the same call as a second participant and becomes the overhead camera. The BlueGrays app can stay open on the phone for the project, circuit diagram and code.

How can I see a student's circuit remotely?

Ask the student to place their phone in a holder 30–40 cm above the breadboard and join the call a second time. The rear camera gives a sharper image and avoids the mirror problem. Light should come from the side, with a sheet of white paper under the breadboard.

How do you debug an Arduino remotely?

Follow the same order every time: power LED, USB and port, GND, pin, code line, Serial Monitor. At each step the student shows it on camera or reads it on screen. Most faults show up in the first four steps.

How long should an online Arduino lesson be?

45 minutes works well for a one-to-one lesson: a 5-minute connection check, two small circuits and a 3-minute wrap-up fit comfortably. For groups of 4 to 8, plan 60 minutes, because breakout rooms and the queue system take time.

Can you teach Arduino online without a kit?

Yes, you can build circuits and run code in a browser simulator such as Tinkercad. But real faults like loose wires, an LED in backwards or port problems don't appear in a simulation. Once the kit arrives, it's worth repeating the same project on a real breadboard.

See all projects
Measuring Light Intensity with an LDR
#11Beginner

Measuring Light Intensity with an LDR

Want to see how bright your room is as a number? The LDR, a small part that reacts to light, measures the light around it, and the Arduino writes the value to your computer screen every half second. C

4.6(81)
139
Night Light with Ldr
#12Beginner

Night Light with Ldr

A little night light that turns on by itself when it gets dark and goes off when morning comes. A light sensor measures how bright the room is, and the Arduino switches the LED on when it is dark enou

4.8(102)
205
LED Blink
#1Beginner

LED Blink

The very first hello of electronics: switching a single LED on and off. The Arduino turns the LED on and off at short intervals, so the light blinks quickly. You see in the simplest way how the board

4.6(188)
1127
Traffic Light
#3Beginner

Traffic Light

A tiny copy of the traffic light you see on the road every day. Red stays on for two seconds, yellow flashes for a moment, green stays on for two seconds, then it goes back to red through yellow again

4.8(131)
397
LED Control with a Push Button (Push)
#9Beginner

LED Control with a Push Button (Push)

Just like a doorbell: the light stays on as long as you press, and goes off when you let go. The Arduino keeps listening to the button; while it's pressed the LED is on, and the moment you lift your f

4.8(113)
229
Toggle an LED with a Button (On/Off)
#10Beginner

Toggle an LED with a Button (On/Off)

Press the button once and the light comes on, press it again and it goes off, just like the light switch in your room. The Arduino notices every press and flips the LED to the opposite state, waiting

4.8(100)
167
HC-SR04 Distance Measurement (Serial Display)
#27Beginner

HC-SR04 Distance Measurement (Serial Display)

The HC-SR04 sensor works just like a bat finding its way in the dark: it sends out a sound you cannot hear, listens for the echo and measures how far away the object in front of it is. The Arduino wri

4.6(46)
71
Using a Buzzer
#13Beginner

Using a Buzzer

Ever wondered how a doorbell or an alarm makes its sound? The Arduino makes a small buzzer beep at short intervals: beep, pause, beep, pause. You see how sound is made with electricity and take the fi

4.7(89)
161