For schools

Teach circuits that actually run, free for 30 days.

One class of up to 20 students, every teacher tool, no card.

  • No card to start
  • Runs on a Chromebook
  • Logins with no email, for students under 13
mokxi.com/class/demo
A first circuit
MVMs. Vance · editorRKRavi · editorJPJo · viewer
Join linkmokxi.com/p/first-circuit?join=SAMPLEsample
++−−++−−jjiihhggffeeddccbbaa11551010151520202525303035354040454550505555606063635V220 ohms
Ms. Vance
Ravi
Two people, one circuit.

Students at 84 schools build with Mokxi

5 tracks

From the first wire to employable, each one ending in real jobs.

93 courses

664 lessons, each step checked by the simulator as students wire.

92 lesson plans

Objectives, timings, materials and checks, ready to print.

30 days free

One class of up to 20 students, every teacher tool, no card.

Who it’s for

Built for the classes that teach with circuits.

Grades 6 to 12 (about ages 11 to 18), and introductory college and university courses.

Computer science

Programming a microcontroller in C++, and digital logic from one NAND gate up to an adder.

Arduino programming pack

Engineering

Design, build and debug a circuit, from digital electronics in CTE to an IoT device on the ESP32.

Engineering and CTE

Physics and electronics

Current, voltage, Ohm’s law, RC timing and the 555, measured with a meter and a scope.

Physics circuits

Robotics

Motors, servos and sensors on a robot car chassis, with a line follower and an obstacle-avoiding robot.

Line follower robot
A lesson, start to finish

Monday, period three

The whole hour, step by step. Every step but one is the product running here: press it.

  1. Assigned, and held

    Press a part.

    The real lock, running here: Lock all is `ui/locks.ts` itself, and the padlocks are the ones a student sees.

    Step 1

    Assign a locked starter

    Hand the same circuit to thirty students in one click, and nobody can take it apart.

    What you do: open the circuit, press Lock all, assign it from the class page.

    How it works

    Open the circuit the class is going to work on, hold the parts and the wiring, and hand it to the class from the class page. Every student gets their own copy with the same things held.

    A held part cannot be moved, rotated, deleted, rewired or retyped by anybody the work was set for. Adding parts, wiring into a held pin and running it are untouched, because that is what they are there to do. Forking the copy does not release it: the copy is theirs, the lock is yours.

  2. The wall itself, over a sample roster. Real circuits, made-up students.

    Step 2

    Watch the wall, not the room

    See every screen at once, without walking the room. Press a tile and that student’s work opens beside it.

    What you do: open the Wall tab and leave it up. Press a tile to see their circuit running, their sketch, and what they changed.

    How it works

    The class page has a Wall tab: one card a student, with the circuit they have open drawn on it. It is the diagram itself, at rest, redrawn as they save, so nothing on it can be out of date.

    It asks every fifteen seconds while you are looking at it, and a card whose circuit has not moved comes back without one. A student who has saved nothing for ten minutes gets the word "stuck?" beside the time. A question, because a student who is thinking looks exactly like a student who is stuck.

  3. You

    Following, running here: the same module the editor uses, on a circuit rather than a room. Press a face, then drag the board.

    Step 3

    Look through one pair of eyes

    Look through one student’s eyes without leaning over their shoulder, or put thirty screens on yours.

    What you do: in a room, press somebody’s face to follow them, or press Bring everyone here to put the class on your view.

    How it works

    In a room, press somebody’s face and your canvas eases on to their view: their corner of the board, at their zoom, with their pointer showing as a soft ring. A frame in their color and a pill say whose view you are on.

    Pan, zoom or touch the canvas and it is yours again, with the pill saying why. Going the other way, Bring everyone here puts thirty screens on your view in one press, and anybody can stop it the same way.

  4. Your Live bar
    2 hands up
    A student’s Live bar
    2 hands up

    Two Live bars over a room that lives in this page. Press a preset on yours; the student’s bar reads the same clock.

    Step 4

    Put a clock on the wall, and read the hands

    Give the room one clock everybody reads, and a queue of who asked first.

    What you do: press a preset to start the clock, and take hands down in the order they went up.

    How it works

    Pick 1, 2, 5, 10 or 15 minutes, or type a number, and everybody in the room reads the same clock. The room holds the moment it ends, not a count each machine keeps, so a laptop that slept and somebody who joined halfway through still reach zero together. At zero it flashes once and holds 0:00 until you clear it.

    Everybody but you has a Hand up button, and the hands are kept in the order they went up. Your bar reads how many are up and whose, you press a mark to take one down, and Lower all clears the queue between questions.

  5. Changes

    1 part and 2 wires added, 1 part moved, sketch changed

    Parts added (1)

    • btn1 · pushbutton

    Parts moved (1)

    • led1 · led, moved 60 units

    Wires added (2)

    • uno1:2 → btn1:1a
    • btn1:2a → uno1:GND

    Code

    uno1 / sketch.ino+10 −4
    @@ -2,14 +2,20 @@
    22 // The board and the wiring are set. The sketch is yours.
    33
    44 const int LED = 13;
    5+const int BUTTON = 2;
    56
    67 void setup() {
    78 pinMode(LED, OUTPUT);
    9+ pinMode(BUTTON, INPUT_PULLUP);
    810 }
    911
    1012 void loop() {
    11- digitalWrite(LED, HIGH);
    12- delay(500);
    13- digitalWrite(LED, LOW);
    14- delay(500);
    13+ if (digitalRead(BUTTON) == LOW) {
    14+ digitalWrite(LED, HIGH);
    15+ delay(120);
    16+ digitalWrite(LED, LOW);
    17+ delay(120);
    18+ } else {
    19+ digitalWrite(LED, LOW);
    20+ }
    1521 }
    Added in the accent, deleted ghosted where the starter had it, moved with an arrow.

    The panel itself, over a sample starter and a sample submission. The diff is worked out here, on this page.

    Step 5

    Read what changed, not what was submitted

    Grade a class of blink assignments in minutes: one line per student saying what they did to your circuit.

    What you do: scan the lines under the assignment, and press Changes on the one you want to see drawn.

    How it works

    Each student works on a copy of your circuit, so the useful question is what the student did to it. Under every project assignment the class page lists one line per student: parts and wires added, removed and moved, properties changed, notes written, and the sketch line by line. You can scan a whole class without opening each project.

    Changes opens the rest, with the differences drawn on their own board: added things glow, deleted things sit dashed where yours had them, and a part that was dragged has an arrow from where it started. What you held is left out of the count, because a lock is how the work was set, not work the student did.

  6. The Mokxi class page with the Checks editor open on an assignment: two checks listed, a form for adding another, Try it on the starter, and under it a submission graded one of two with what each check measured.

    The editor itself, shot from the sample class. A check measures the simulation: ideal timing, no analog noise.

    Step 6

    Grade it once, not thirty times

    Write the checks once, and every submission measures itself against them on the real engine.

    What you do: open Checks under the assignment, fill the gaps in a few sentences, press Try it on the starter, then Save.

    How it works

    Under an assignment, Checks: a short list of things you expect the circuit to do, each one a sentence you fill the gaps in. Pin 13 blinks every 1000 ms, within 50. The serial monitor prints a line matching this. Press this button, then that pin goes high. The sketch builds.

    Try it on the starter runs the list against your own answer before the class ever sees it, so a check that does not pass on the solution never gets assigned. Then every student gets Check my work, which runs the same list on the real engine in their own browser and tells them what it measured beside what you asked for: it toggled every 1462 ms, expected every 1000. The score comes back on the wall and on the submission, a failed check drops into your comment in one press, and Mark it re-runs them all on your machine when the marks have to be yours rather than theirs.

  7. Your side
    What Chidi opens
    No feedback yet.

    The box itself, working here. Nothing is sent: the note stays in this page and the student’s side of it is drawn beside it.

    Step 7

    Send feedback

    Leave a line on a student’s work, and it is on their own page the next time they open it.

    What you do: press Send feedback, write the line, press Save. Editing it replaces it.

    How it works

    Next to Changes on every submission, Send feedback opens a box: write a line, save it, and it is on the student’s own class page the moment they next open it. Use it for what to try next, what stood out, or a nudge toward the part they left off.

    Editing replaces what was there rather than piling comments up, so a submission carries one note, always the newest. It is signed as you, and the same class rules that hold a starter say who else may write it: nobody but the teacher.

Before any of that: filling the class

Fill a class of thirty without a form, a letter home or a single account made by you.

What you do: make the class, read the six-character code out, and send the link. They type it once and the class is on their page from then on.

Nobody has joined yet

The wall fills itself the moment somebody joins. Send the link below, or read the code out: a student types it once at /class and this class is on their page from then on.

http://127.0.0.1:5199/class?code=SAMPLE

Or read out the code: SAMPLE

A class with nobody in it yet, drawn by the page that draws yours. The code is a sample one; the link and the Copy button are the real ones.

And what they are actually building

Simon: four LEDs flash a growing sequence and four buttons play it back, on a real ESP32-C3 core running real firmware.

What you do: press Run it, watch the sequence, then press the buttons back in order. This is Eli’s circuit from the wall above.

ESP32-C3 Simonlive0.000 s 0.00x
Press a button to answer
The simulator itself, running here: the C3 core, the firmware and the four buttons. Press one to play the sequence back.
Tracks and careers

From the first wire to employable.

5 tracks, each a ladder from Beginner to Expert that ends in a capstone of the student's own and 7 career guides. Assign a whole course to a class in one press, or let each student climb their own.

Lesson plans

92 lesson plans, ready for Monday.

Every course is a unit with a printable plan: objectives, time for each lesson, the parts it uses and a check for understanding each chapter. About 492 hours of teaching, written from the lessons themselves, so a plan never drifts from what students open.

Lesson plan

Embedded on the Arduino Uno

9 chapters, 16 lessons, about 12 hours

One board, twenty pins and a C++ sketch. From a lamp you switch to a game you can play.

  • ObjectivesOne for each chapter, from the course itself.
  • Time for each lessonThe course hours shared out by steps.
  • MaterialsEvery part the circuits hold, counted.
  • Check for understandingThe last lesson of each chapter, done without hints.
The course

Twelve weeks, mapped to circuits that run

An introduction to electronics and embedded programming, week by week, starting from zero. Each week has objectives, a circuit to open, an exercise and an assessment idea, and every circuit in it exists today.

  1. Current, voltage and the breadboardHello, breadboard
  2. Blink: the first programArduino Uno blink
  3. Buttons, pull-ups and contact bounceESP32-C3 button
  4. Timing without a processor: the 555555 blinker
  5. Logic gates, as real chipsGate lab
  6. Arithmetic from gates: the full adderFull adder
  7. Memory: flip-flops and countersBinary counter
  8. More outputs than pins: the shift registerLED bar chaser
  9. Pulse width modulation and the eyeBreathing LED
  10. Serial: making the board talkESP32-C3 serial
  11. Interrupts: events instead of pollingReaction timer
  12. Project week: two boards, one wireTwo boards, one wire
Weekly challenge and XP

A new build every Monday, and a board for your class.

Every week one challenge teaches something new: a part, a library or a technique. It comes with three hints, a starting circuit and checks that run on the real engine. Passing it is worth 150 XP, and the 52 challenges before it stay open for practice.

This weekNov 9 to Nov 15

Sweep a servo

Connect a servo's signal wire to pin 9 and swing its arm from one end to the other and back. The Servo library's write() takes an angle from 0 to 180.

What you will learn: Libraries: the Servo library turns an angle into the pulses a servo understands.

Hint 1: A servo has three wires: brown or black to GND, red to 5V, and orange or yellow (the signal) to pin 9.

+150 XP3 hintsTry it
Class boardSample class
  1. 1FarahLevel 11 Solderer2,140 XP
  2. 2BenLevel 10 Solderer1,720 XP
  3. 3AmaraLevel 9 Solderer1,385 XP
  4. 4ChidiLevel 7 Tinkerer960 XP
  5. 5DitaLevel 6 Tinkerer610 XP
  • A class board is between the students in that class. Teachers are left off it.
  • A student in any class, and any account marked as under 13, is never on the public leaderboard.

19 titles on the way to level 200

  1. SparkLevel 1
  2. TinkererLevel 4
  3. SoldererLevel 8
  4. BuilderLevel 13
  5. MakerLevel 16
  6. EngineerLevel 20
  7. ArchitectLevel 30
  8. DesignerLevel 40
  9. InventorLevel 50
  10. PioneerLevel 60
  11. VisionaryLevel 70
  12. LuminaryLevel 85
  13. LegendLevel 100
  14. PolymathLevel 110
  15. LaureateLevel 125
  16. GrandmasterLevel 140
  17. TitanLevel 160
  18. ParagonLevel 180
  19. MythicLevel 200
Placement

Every student starts in the right place.

5 quick questions place each student on a track and a first course, whether they have never touched a breadboard or already write firmware. The Journey then lays every course out in 5 stages, so you and they can see how far they have come.

  1. 1
    Spark6 courses

    Current, voltage and logic with your hands on the parts. No code yet.

  2. 2
    Builder8 courses

    An Arduino Uno, C++ on a real board, and the starter kits people own.

  3. 3
    Maker27 courses

    Interactive devices: sensors, motors, displays and whole project builds.

  4. 4
    Engineer31 courses

    New chips and real registers, gates up to a computer, and bugs to hunt.

  5. 5
    Inventor21 courses

    The big builds: arcade machines, robots, flight computers and capstones.

Getting started

Set up in 60 seconds, from sign-up to the first week.

4 steps, about 60 secondsNo card, no install, nothing for IT to approve.
  1. 1 about 10 s

    Make your free account

    Sign up with Google, Microsoft or your school email. No card.

  2. 2 about 15 s

    Start the trial and name your class

    One class of up to 20 students, every teacher tool, for 30 days.

  3. 3 about 20 s

    Add your students

    Read out the class code, post it to Google Classroom, or paste your roster and print login cards. Login cards need no email, so they work for students under 13.

  4. 4 about 15 s

    Assign the first week

    Start from the 12-week course or a curriculum pack, or assign any project or kit in one click. It lands on every student’s screen.

Classroom

What a class costs

$9.99 a student a year, from 5 students. Your own seat is free.

Classroom
$199.80
a year for 20 students
Per student, per year
$9.99
one student, one school year
Free 30-day trial

Paying by purchase order?

Schools & universities

What a school gets with its seats.

  • ✓The whole room on one project
  • ✓A quote for each teacher
  • ✓Purchase orders, net-30 invoices
  • ✓Data privacy agreement signed
  • ✓Help setting up your rosters
  • ✓Volume pricing
Talk to us

A real person replies within one working day. Or get a written quote in minutes.

Before your school says yes

What happens to student work, from the code.

  • A circuit is never uploaded to run

    The simulation and the compiler run in the browser tab. Work leaves the machine only when it is saved, shared or submitted.

  • A student can work with no account

    The editor, the lessons and a shared link all open signed out. An account is only for saving, joining a class and submitting.

  • What an account holds

    The sign-in identity, the projects saved and lesson progress. The student data privacy page lists it row by row.

  • What a class holds

    The class name and code, who joined, what was assigned and the feedback returned.

  • Projects are private by default

    A teacher may open, never edit, a project owned by a student in a class they teach.

  • We sign your data privacy agreement

    The SDPC National Data Privacy Agreement or your state’s version. Student data is never sold or used for ads.

Student privacy. What we collect from students and teachers, and what we never do with it, is in our Student and School Privacy Policy.

Accessibility. We aim for WCAG 2.1 Level AA; known gaps are listed. See the accessibility statement and our VPAT.

FAQ

Questions teachers ask.

Does it work on a Chromebook?

Yes. Everything runs on the machine in front of the student, so a Chromebook works as well as a lab PC.

Do students need accounts?

No. The simulator works signed out, so your class starts from one link with nothing to sign up for. An account only adds cloud saving and sharing, and a student can make one later, or never.

What does it cost for a class?

Nothing, if your students only need to open and run circuits: the whole simulator is on the free plan. The class tools (a roster, starter projects, auto-graded checks, the gradebook) come with Pro and Classroom. Classroom is $9.99 a student a year, from 5 students, so at least $49.95 for the year. Your own seat is free, and from 50 students each one costs less. Your students get Pro’s room while they are in your classes. Pay by card, invoice or purchase order. Pro on its own runs classes for up to 10 students in all. To try the class tools with real students first, start the free 30-day trial from your class page: one class of up to 20 students, no card.

Is student work private?

Yes. A student’s projects in a class are always private: they cannot be opened by link or put in the gallery. One exception, and only for reading: a teacher may open, and never write, a project owned by somebody in a class they teach, which is what a card on the class wall does. What we store about a student, who processes it, how a school has it deleted, and how we handle COPPA consent for students under 13 and FERPA as a school official are all on the student data privacy page at /privacy/students.

Can I pay with a purchase order?

Yes. Type your number of students into the calculator on this page and fill in the quote form under it: give the school, the billing contact and address and your PO number, and the quote comes back at once as a PDF, payable by invoice on net 30 terms. Our W-9, tax id and address are on the vendor information page. Any class of 5 students or more can pay this way, or by card right away.

Talk to a person

Ask for a walkthrough, with a person.

Tell us where to reach you. We’ll show you how Mokxi fits your class and answer your school’s questions.