---
title: "Shop Class CNC Router Project Codes: What Students Actually Need"
description: "A shop class CNC router project needs only a short list of G and M codes. Here are the codes students use, a simple project walkthrough, and how to learn them fast."
url: https://gcodepractice.com/journal/shop-class-cnc-router-project-codes/
canonical: https://gcodepractice.com/journal/shop-class-cnc-router-project-codes/
author: "Lawrence Arya"
authorUrl: https://www.linkedin.com/in/vibecoding/
published: 2026-06-08
updated: 2026-06-08
category: "Guides"
tags: ["shop class", "cnc router", "students", "g-code"]
lang: en
---

# Shop Class CNC Router Project Codes: What Students Actually Need

> **TL;DR** A shop class CNC router project needs only a short list of codes: G0 and G1 for moves, G2 and G3 for arcs, G20 or G21 for units, G54 for the work zero, and M3 and M5 for the router or spindle. Most school routers run software that generates the code, so students mainly read and verify it. Learning the dozen common codes by recognition is enough for a first project and builds real understanding.

A first CNC router project in shop class is exciting and a little intimidating, and students often ask how many codes they have to learn. The reassuring answer is: not many. A typical shop class project, a sign, a name plate, or a simple bracket, uses only a short list of G and M codes. The software the school uses generates the program, so the student's real job is to read it, understand it, and confirm the setup before cutting. Learning that short list by recognition is enough to run a first project confidently and start building genuine understanding.

This guide lists the codes a shop class router project actually needs, walks through a simple project, and shows how students can learn the codes quickly. It is written for the way school CNC actually works in practice, where the toolpath comes from software and the real learning is in reading and verifying the program.

## The short list a project needs

Most school router projects use the same compact set of codes. Here is what a student will see and should recognize.

| Code | Meaning | In a project |
| --- | --- | --- |
| G0 | Rapid move | Positioning between cuts |
| G1 | Feed move | The actual cutting |
| G2 / G3 | Clockwise / counterclockwise arc | Curves and rounded corners |
| G20 / G21 | Inch / millimeter | Set to match the project |
| G54 | Work coordinate system | The project zero on the stock |
| G90 | Absolute coordinates | The usual mode |
| M3 / M5 | Router or spindle on / off | Turns the cutter on and off |
| M30 | Program end | Ends the program |

That is most of what a project file contains. A general reference such as the [CNCCookbook code list](https://www.cnccookbook.com/g-code-m-code-reference-list-cnc-mills/) explains any extra code a student meets, but the table above covers the typical [CNC router](https://en.wikipedia.org/wiki/CNC_router) project.

## How shop class CNC actually works

In most classrooms, students design a part in CAD software, generate a toolpath in CAM software, and the software writes the [G-code](https://en.wikipedia.org/wiki/G-code) program. The machine, often a desktop router like a Shapeoko or a similar model, runs that file. So students rarely write code from scratch; they read it. This is the same situation as on any modern CNC, and it is why the [G-code a Shapeoko and Carbide Create produce](/journal/shapeoko-carbide-create-g-code-list) is a good model for what a school file looks like. The skill being taught, whether the teacher frames it that way or not, is reading and verifying a generated program.

That framing matters because it tells students where to focus. They do not need to memorize how to write a contour by hand; they need to recognize the codes well enough to confirm the program will do what they intend.

## A simple project, read in plain language

Take a common first project, engraving a name into a wooden plaque. The program sets millimeter units and absolute mode, selects the work zero with G54, and moves to a safe height. The router turns on with M3. Then it rapids with G0 to the start of a letter, feeds down with G1 to a shallow depth, and traces the letter with G1 moves and G2 or G3 arcs for the curves. It lifts with G0, moves to the next letter, and repeats. At the end the router stops with M5 and the program ends with M30. Reading that sequence, a student can see exactly what the machine will do, which is the whole point: the file is not a mystery, it is a readable set of instructions.

## The mistakes students make most

Two problems account for most failed school projects, and both are setup issues that reading the program helps catch. The first is the router cutting air, moving above the wood without touching it, which almost always means the Z zero was set too high. The dedicated explanation of [why a CNC router cuts air](/journal/why-does-my-cnc-router-cut-air) walks through this, and it is the single most common first-project frustration. The second is a units or zero mismatch, where the part cuts in the wrong place or at the wrong size. Teaching students to read the units line and confirm the work zero before every cut prevents both.

| Mistake | What students see | The fix |
| --- | --- | --- |
| Z zero too high | Router cuts air above the wood | Re-zero Z on the stock surface |
| Wrong work zero | Cut lands off the material | Set and confirm the G54 zero |
| Units mismatch | Part is the wrong size | Confirm G20 or G21 first |
| Forgetting to secure stock | Workpiece shifts mid-cut | Clamp or tape the stock firmly |

## Good first project ideas

The best shop class projects are simple enough to finish and varied enough to teach the codes. A name sign or plaque teaches engraving with G1 and arcs. A simple bracket or shape with rounded corners teaches profile cutting and G2 and G3. A coaster or keychain with a pocket teaches depth control. Each uses the same short code list, so by the second or third project students are reading the programs fluently. Keeping projects small also keeps the cutting time short, which matters when a class shares one machine, a constraint that shapes a lot of how [G-code is taught in schools](/journal/how-to-teach-g-code-to-high-school-shop-students).

## What the codes teach beyond the project

A shop class router project is a vehicle for ideas that go well beyond the plaque or coaster, and the short code list is where those ideas live. G0 versus G1 teaches the difference between positioning and cutting, a distinction that matters on every machine a student will ever touch. G54 teaches the concept of a work coordinate system, the idea that the machine has to be told where the material is. G2 and G3 introduce how curves are defined, and the units codes drive home why a single setting can scale an entire job. So a student who learns to read these codes is not just finishing one project; they are quietly picking up the core concepts of CNC that transfer to any future machine they will run. That is why reading the program, rather than treating it as a black box, is the part of the lesson worth protecting.

## Reading the program as the lesson

The most valuable habit a shop class can build is having students read their program before they run it. A short routine works well: open the file, find the units line, find the work zero, look at the first Z move, and scan for the M3 and M5 that turn the router on and off. This takes a couple of minutes and turns an abstract file into something the student understands. It also catches the common setup errors before they waste material or time on a shared machine. Teachers who build this read-before-you-run habit early tend to see fewer crashed bits and more first-try successes, because the students are verifying rather than hoping.

## Tips when the class shares one machine

Most shop classes have one router and many students, which shapes how projects should be run. Keep individual projects small so cutting time stays short and everyone gets a turn. Have students fully prepare and read their program while waiting, so machine time is spent cutting rather than troubleshooting. Use the waiting time for code practice, since recognizing the codes is something every student can work on away from the machine. This mirrors the constraint that shapes most school CNC, where machine access is the bottleneck and the learning that can happen off the machine, reading and recall, is what keeps the whole class moving. Structuring the class so the off-machine learning is productive makes the limited machine time far more effective.

Safety also belongs in this picture, because reading the program supports it. A student who has read the file knows roughly what the machine is about to do, which means they are watching for the right things during the cut and are ready at the stop button if something looks wrong. Understanding the program is not a replacement for the shop's safety rules, the eye protection, the secured stock, and the supervision, but it is a real layer on top of them, because an operator who understands the code is less likely to be surprised by the machine. Pairing solid shop safety habits with the habit of reading the program gives students both the discipline and the understanding a first CNC project deserves, and it sets a standard they carry into every project that follows rather than just this one.

## How students learn the codes fast

The fastest way for a student to get comfortable is to learn the dozen codes by recognition, not by memorizing definitions to recite. When G1, G54, M3, and M30 register instantly, reading a project file becomes quick, and the student can focus on the design and the setup rather than decoding. That recognition is recall, and recall is built by short, active self-testing rather than by passively reading a code chart on the wall.

The free G-Code Sprint app at GCodePractice.com runs 60-second rounds on the common G and M codes and repeats whatever a student misses, which fits naturally into a class period or a few minutes of homework. It is an educational practice tool for building that fluency, not a machine controller, so it complements the shop machine rather than replacing it. With the short list in memory, a student reads their project file with confidence, catches setup problems before cutting, and gets a clean result on the first try more often.

## Frequently asked questions

### What G-codes do you need for a shop class CNC router project?

A short list: G0 for rapids, G1 for cutting, G2 and G3 for arcs, G20 or G21 for units, G54 for the work zero, G90 for absolute mode, M3 and M5 for the router, and M30 to end. The software generates the program, so students mainly read and verify these. To learn them by recognition, the free G-Code Sprint app at GCodePractice.com drills the common G and M codes in 60-second rounds.

### Do students write G-code by hand in shop class?

Usually not. Students design in CAD, generate a toolpath in CAM, and the software writes the G-code. The skill being taught is reading and verifying the generated program, confirming the units, the work zero, and the depths before cutting, rather than writing code from scratch.

### Why does the router cut air on a student project?

Almost always because the Z zero is set too high, so the machine thinks the wood surface is higher than it is and the cut never reaches it. Re-zeroing Z on the actual stock surface fixes it. It is the most common first-project problem.

### What is a good first CNC router project for shop class?

A name sign or plaque is ideal, because engraving teaches G1 cutting and G2 or G3 arcs with a simple, satisfying result. Simple shapes with rounded corners, coasters, or keychains also work well and use the same short code list.

### How many G-codes do beginners really need to learn?

For a first router project, about a dozen common codes cover everything. The rare codes can be looked up when they appear. Learning that short set by recognition is enough to read and verify a project file and build real understanding.

### How can students learn G-code quickly?

By learning the common codes through active recall rather than reading a chart. Short, frequent self-testing on the dozen codes a project uses builds fast recognition, so students read their program files confidently and spend their attention on design and setup instead of decoding.

---

Source: https://gcodepractice.com/journal/shop-class-cnc-router-project-codes/
Author: Lawrence Arya — https://www.linkedin.com/in/vibecoding/
