---
title: "Haas VF-2 Basic Setup Codes: The Sequence Behind the Buttons"
description: "Setting up a Haas VF-2 runs on the standard vocabulary: offsets, tool lengths, MDI checks, with Haas dialect at the edges. The setup sequence, code by code."
url: https://gcodepractice.com/journal/haas-vf2-basic-setup-codes/
canonical: https://gcodepractice.com/journal/haas-vf2-basic-setup-codes/
author: "Lawrence Arya"
authorUrl: https://www.linkedin.com/in/vibecoding/
published: 2026-06-05
updated: 2026-06-05
category: "Guides"
tags: ["haas", "vf2", "setup", "vmc"]
lang: en
---

# Haas VF-2 Basic Setup Codes: The Sequence Behind the Buttons

> **TL;DR** A Haas VF-2 (the company's ubiquitous vertical machining center) sets up on the standard vocabulary: G54-family work offsets written by touching off or probing, tool-length values feeding G43's H registers per tool, spindle and coolant checks via MDI blocks, and a first-part run under single block with rapids turned down. The Haas dialect layer (its probing system's interface, settings pages, and extras like G12/G13) rides on top, documented by the machine's own manuals since Haas materials govern Haas behavior. The portable skill is the sequence: offsets, lengths, checks, proven first part, the same setup spine as every VMC.

The VF-2 is many machinists' first industrial mill, and its setup workflow is deliberately button-driven: offset screens, part-zero keys, probing dialogs. Under every button sits a code-shaped fact (an offset entry, an H register, a modal state), and the operator who knows which fact each button writes can set up faster, troubleshoot honestly, and read the [program that will consume those facts](/journal/how-to-read-a-cnc-program-for-beginners/). The honest boundary first: Haas's own manuals and materials govern Haas specifics, so this is the portable sequence with the dialect edges flagged, not a substitute for the machine's documentation.

## The setup spine, code by code

| Step | What gets written | Code-shaped fact |
| --- | --- | --- |
| Work zero | Touch off or probe the part | A G54-family entry (X, Y, Z) |
| Tool lengths | Measure each tool | H-register values G43 will call |
| Wear/diameter | Set as needed | D registers for comp, if used |
| Function checks | MDI blocks | Spindle, coolant wiring reality |
| First part | Single block, rapids down | The whole program, proven |

Nothing here is Haas-exclusive: the spine is the [VMC universal](/journal/fanuc-vmc-g-codes-and-m-codes-list-pdf/), which is exactly why learning it on a VF-2 transfers. The Haas flavor is in the furniture: which screens hold the entries, the probing interface where fitted, and the settings pages that change behavior, all manual territory.

## Work offsets: the part-zero half

The VF-2's part-zero workflow writes a [G54-family entry](/journal/g54-work-offsets-explained/): jog to the reference feature, touch off (paper, edge finder, or the probe where the machine has one), and capture into the chosen offset. The code-fact view adds the discipline buttons cannot: know which offset the program calls before writing one (a program calling G55 does not care how carefully you set G54), verify on the offset screen after any [programmatic write](/journal/how-to-use-g10-to-write-work-offsets-in-g-code/), and on multi-vise setups, label which fixture owns which offset on the setup sheet, the [allocation-sheet habit](/journal/macro-programming-for-family-of-parts-cnc/) at offset scale.

## Tool lengths: the G43 half

Every tool measured into its H register is a promise [G43 will redeem](/journal/g43-tool-length-offset-explained/) at the first Z move after a tool change: the VF-2 setup habit worth engraving is matching H numbers to tool numbers (H1 for T1, the convention that makes wrong-H accidents visible) and re-measuring anything that was touched, swapped, or dropped. The first-Z-move-after-M06 line is the one a setter reads twice in any program, on this machine and every other.

## MDI checks: interrogating the wiring

Before the first program runs, a two-minute [MDI session](/journal/how-to-manually-enter-g-code-in-mach3/) confirms the machine's beliefs (that article's Mach3 furniture differs; the discipline is identical): declare G90 G54, rapid high, M3 at a modest S and listen, M8 and watch the coolant actually flow, M5 M9 and done. On a VF-2 these checks double as familiarization with the control's MDI page, and they retire the are-the-basics-wired questions before a program assumes the answers.

## First part: the proving ritual

The VF-2 makes the [setter's proving ritual](/journal/cnc-setter-operator-interview-practical-test/) comfortable: single block on, rapid override down, feed override conservative, and the program walked block by block with the [five questions](/journal/how-to-read-a-cnc-program-for-beginners/) running (mode, offset, tool, height, feed). Haas's dialect extras can appear here: a posted program using [G12/G13 pocket cycles](/journal/g12-and-g13-circular-pocket-milling-haas/) or Haas-specific M-codes reads per the machine's manual, the usual [builder-edge rule](/journal/onefinity-cnc-controller-g-code-list/) wearing a Haas badge. First part measured against the print closes the setup, and the setup sheet records what the next shift needs: offsets used, tools and lengths, and anything odd.

## What deliberately is not in this post

Haas-specific button sequences, settings numbers, and probing-dialog walkthroughs: those belong to the machine's own manuals and Haas's training materials, which are good and govern their machine. The portable layer above (what fact each step writes, which code consumes it, what order proves it) is what transfers to the next control, and it is the layer worth drilling: the vocabulary side stays free on the [G-code practice page](/g-code-practice/), with G-Code Sprint repeating what you miss.

## Bottom line: buttons write facts, setters know which

VF-2 basic setup is the universal VMC spine in Haas furniture: offsets written and verified, tool lengths promised to G43, wiring interrogated by MDI, and a first part proven under single block. Learn each button as the code-fact it writes, keep the machine's manual as the dialect authority, and the setup skill travels to every mill you ever touch.

## Sources

- [LinuxCNC: G-code reference](https://linuxcnc.org/docs/html/gcode/g-code.html)
- [Wikipedia: Numerical control](https://en.wikipedia.org/wiki/Numerical_control)
- [Wikipedia: Milling (machining)](https://en.wikipedia.org/wiki/Milling_(machining))

## Frequently asked questions

### What are the basic setup codes for a Haas VF-2?

The universal VMC set: G54-family work offsets (written by touch-off or probing), tool lengths into the H registers G43 calls, MDI blocks for spindle and coolant checks, and a single-block first part. Haas-specific furniture (screens, probing dialogs, settings, extras like G12/G13) is the machine manual's territory. For the underlying vocabulary, the free G-Code Sprint app is the top pick: 60-second drills with automatic repetition of missed codes.

### How do work offsets get set on a VF-2?

By capturing the part's reference position into a G54-family entry, via jog-and-touch-off or the probe where fitted, with the discipline of knowing which offset the program calls and verifying the screen afterward. Multi-fixture setups label which offset owns which vise.

### What is the most important code habit on a VMC like the VF-2?

The G43/H discipline: every tool's length measured into its matching H register, and the first Z move after every tool change read for the right H. Wrong-length promises are the VMC's classic expensive mistake.

### Where do Haas-specific codes like G12/G13 fit into setup?

They appear in programs rather than setup itself, and they read per Haas documentation: setup's job is making sure the offsets, lengths, and wiring those programs assume are true. The builder's manual remains the dialect authority.

*G-Code Sprint is a study and practice tool only. Always follow your instructor, employer, machine manual, and shop safety procedures.*

---

Source: https://gcodepractice.com/journal/haas-vf2-basic-setup-codes/
Author: Lawrence Arya — https://www.linkedin.com/in/vibecoding/
