Running a Robot-01 workshop? This guide is for the teacher / facilitator. It covers what to prep before kids arrive, how to pace a 90-minute session, what students will ask, the panic-button cheat sheet, and the post-session reset checklist. 🎓 Teacher 🧑‍🏫 Workshop lead 📚 Curriculum dev

📋 1 — Prerequisites — what you need before students arrive

🤖 Per student

  • 1× pre-assembled Robot-01
  • 1× USB-C cable (charging + flashing)
  • Phone or tablet with RemoteXY installed
  • ~1.5 m² floor space to drive in

🛠️ Shared bench

  • 1× USB charger / power strip (4-port minimum for 8 students)
  • 2× spare robots (always one breaking mid-session)
  • 1× laptop (for re-flashing if needed)
  • Spare USB-C cables (kids will trash them)

📱 Phones & apps

  • RemoteXY app pre-installed on every device
  • Bluetooth turned on, paired with at least one robot beforehand
  • Wi-Fi optional — robots use BT, not Wi-Fi
  • Screen-time / parental-control allow-list if needed

📶 Network

  • For the workshop tools: any Wi-Fi works
  • Or local-only: ./launch.sh serve on instructor laptop, students hit http://<laptop-ip>:8000
  • Live site as backup: abourdim.github.io/robot_1

🔋 Batteries

  • Charge every robot the night before — robots ship at ~30%
  • Keep 2 spares fully charged for swaps
  • Mid-session battery dip is the #1 reason for "the robot stopped working"

📺 Display

  • Projector or large screen showing user-guide.html
  • Pre-load each section as a tab — students follow along
  • Theme: bot-pop for elementary, lab-light for older
// 30 MINUTES BEFORE Plug in all robots. Open user-guide.html on the projector. Pair your demo robot with your phone. Verify it drives. If anything fails, swap to a spare and debug after class.
🗓️ 2 — Lesson plan — 90-minute session

Designed for ages 9–14, groups of 4–8 students. Adapt timing for older or younger groups.

00:00
05:00
👋 Welcome & safety

Quick intro, rules, "don't drive off tables," show what we'll build by end of session.

Objective: set expectations, get hands settled.

Lect
05:00
15:00
🤖 Meet Robot-01 — show & tell

Demo your robot. Show all the parts: wheels, LEDs, OLED, sensor, buzzer. Ask: "What do you think this is for?" Open user-guide § 1 on the projector.

Objective: students recognize each subsystem before they touch one.

Demo
15:00
25:00
🔌 Power on & first boot

Each student gets a robot + USB cable. Walk them through the switch + boot animation. Project user-guide § 2.

Objective: every robot is on, every student saw the rainbow boot sweep.

Hands
25:00
40:00
📱 Pair phones

Open RemoteXY on each phone. Walk through pairing. Project user-guide § 3. Expect: 2-3 phones will fail first try — bluetooth toggle / restart fixes.

Objective: every student has paired and seen the connect-jingle.

Hands
40:00
50:00
☕ Break — let them play

Students drive freely. Walk around, encourage exploration. Don't structure — this is the wow moment.

Objective: free play. Bonding with the robot.

Free
50:00
65:00
💡🔊 Lights & sounds — what they mean

Decode LED colors and buzzer sounds. Project user-guide § 5 + § 6. Ask: "What does the robot say when it boots? When it sees a wall?"

Objective: students learn to "read" robot status without looking at OLED.

Lect
65:00
80:00
🏁 Mini-challenge

Pick one: obstacle course (drive around chairs without hitting them) · follow-the-leader (one robot leads, others mimic) · treasure hunt (use ultrasonic distance to find a hidden marker).

Objective: apply controls under pressure. Friendly competition.

Hands
80:00
90:00
🎓 Wrap-up & "what's next"

Recap. Show build-guide for kids who want to build their own. Show start-here for kids who want to write code. Q&A.

Objective: invite continued learning at home.

Lect
// PACING TIPS For 6-8 year olds: stretch sections 3–4 (power + pair) by 10 min, drop the mini-challenge.
For 12+ year olds: shrink section 4 (pair) by 5 min, double the mini-challenge time, finish on the build-guide tour.
❓ 3 — Things students always ask
"Why did mine stop working?!"
90% of the time: low battery (check the LEDs — see user-guide § 5). Swap to a charged spare; charge the dead one for the next session. 10%: phone walked out of range.
"Can I make it talk?"
It already beeps! For real speech, the C3 doesn't have an audio DAC — that's a future upgrade. For now, point them at the buzzer-tones glossary in user-guide § 6.
"Why does it stop when I drive at the wall?"
Built-in obstacle avoidance — the ultrasonic sensor refuses to drive forward when something's within 10 cm. Backing up and turning still work. Show them the sensor on the front.
"Can two robots talk to each other?"
Not yet — current firmware only talks to phones over BT. Possible upgrade: ESP-NOW (peer-to-peer ESP32 protocol). Mention it as a "what could be next" hook.
"Why is the screen so small?"
It's a 128×32 OLED — chosen because it's tiny, low-power, and crisp. Bigger displays exist; this one fits the chassis without a battery hit.
"Can I make the lights different colors?"
Yes! That's coding territory — point them to start-here § 4 and 06_neopixels.cpp. For workshop session: hold the action button → "purple party" demo.
"Why doesn't my phone find it?"
Three usual culprits: (1) Bluetooth off in phone settings, (2) robot not powered or showing READY, (3) RemoteXY needs reopening. Power-cycle the robot, restart the app.
"Can I take it home?"
Depends on workshop policy. If yes: hand them a charged battery + USB cable + sticker with user-guide URL. Tell them to come back with broken stuff for the next session.
🆘 4 — Panic-button cheat sheet — fix in 30 seconds

When something goes wrong mid-session, fix it fast and move on. Don't troubleshoot in front of 8 impatient kids.

🤖 Robot side

Won't power on
Plug USB. If LEDs come on, battery's dead — swap robot.
All red blink
Hardware fault. Swap robot. Diagnose later.
Drives in circles
Hold action btn 5 s = recalibrate joystick center.
Whining beep
Low battery. Plug USB or swap.
3-beep alert
Obstacle detected. Tell student to back up.
Stops randomly
Out of BT range — get closer to phone.

📱 Phone side

RemoteXY won't open
Force-close + reopen. Check BT toggle.
Robot not in list
Power-cycle the robot. Re-scan.
"PRO license required"
Known issue (audit BUG-004). Use spare robot.
Connects then drops
Phone too far OR low robot battery.
No joystick on screen
App not paired with right device. Re-pair.
Pairing pin asked
Default 1234 or 0000.

💻 Instructor laptop

Can't reflash a robot
BOOT+RESET trick (Mission 09).
flash.html doesn't see port
Use Chrome/Edge only. Not Firefox.
Wi-Fi died
Live site cached locally — pull files from 02_web/ on USB stick.
Projector won't connect
Hand out tablets with the URL pre-loaded.

🚸 Behavioral

Robot crashed into wall
"It's fine — they're built for it." Recover, drive on.
Two kids fighting over robot
Pull out a spare. Pair it with one of their phones.
Kid overwhelmed
Have them pair-program (driver + co-pilot reads guide).
Kid bored / done early
Show start-here: "want to write the code?"
// HARD STOP Two robots smoking, sparks visible, or any electrical-safety concern → unplug everything from USB, end session, debug after. Smoke is rare but if it happens, it's the LiPo: get the robot outside immediately.
🔁 5 — Post-session reset — between groups / end of day

Tick these off after each group leaves. Boxes save in your browser — they reset on the next page load.

🔌 Power & battery

🔧 Hardware

📱 Phones / app state

📋 Logging / handover

🧹 Space

// END-OF-DAY Once a week, fully cycle every battery (drain to 15% LED, then full charge). LiPos last longer with regular use than they do sitting at 100% for months.
📚 6 — Curriculum extensions & resources

📖 Sister guides

🌐 External

🎯 Follow-up sessions

  • Session 2: "Make my robot blink the way I want" — first .cpp edit + reflash
  • Session 3: "Build my own robot" — soldering with build-guide
  • Session 4: "Talk to two robots" — ESP-NOW peer protocol intro

🏆 Stretch goals for advanced kids

  • Add a custom LED pattern in 06_neopixels.cpp
  • Write a new RemoteXY screen (if PRO available)
  • Use ultrasonic data to draw a "map" on OLED
  • Add an external IR sensor for line-following

Bug or curriculum suggestion? Open an issue: github.com/abourdim/robot_1/issues  ·  Reach the team: workshop-diy.org