Skip to content

Communication Protocol

Nikos Siatras edited this page Mar 23, 2026 · 5 revisions

Rabbit GRBL communicates through either a serial interface or a WiFi network connection.

All interaction with the controller is performed using the same GRBL-compatible text protocol, whether the connection is made over a serial port (USB-to-Serial) or over TCP via WiFi.

When connected over USB, the controller appears on the host system as a standard COM port.
When connected over WiFi, the controller is accessible through its IP address and TCP port.

Rabbit GRBL’s communication protocol is deterministic, text-based, and fully compatible with GRBL 1.1-style communication, enabling standard G-code senders to communicate without modification.

Communication Interfaces

Rabbit GRBL supports the following communication methods:

  • USB-to-Serial
  • WiFi / TCP

Both interfaces use the same command syntax and response format.

Serial Communication

Serial communication is text-based and follows a simple request–response model:

  • The host (G-code sender, terminal, or custom software) sends ASCII commands.
  • Rabbit GRBL parses the incoming line.
  • The controller responds with a status message, result (ok / error:), or structured feedback.

Typical serial parameters:

  • Baud rate: 115200
  • Data bits: 8
  • Parity: None
  • Stop bits: 1

(8N1 configuration)

WiFi Communication

Starting from Rabbit GRBL v1.6.0, Rabbit GRBL can also communicate over a WiFi network.

Once WiFi is configured and enabled, the controller becomes reachable over TCP using its assigned IP address.

Typical WiFi connection parameters:

  • Protocol: TCP
  • Default TCP port: 5001

The host software connects to the controller using:

  • IP address assigned by your router
  • TCP port 5001 by default

WiFi communication uses the same line-based GRBL-compatible protocol as the serial interface.

Message Format

All commands and responses are line-based.

Each message must be terminated with a newline character:

\n

In most systems this corresponds to:

  • LF (Line Feed, \n)
  • or CR+LF (\r\n)

Rabbit GRBL processes input only after receiving the newline character.
If a newline is not sent, the command will not be executed.

Example

Sending:

G0 X10\n

Rabbit GRBL will respond:

ok\n

Key Rules

  • One command per line
  • Commands are case-insensitive
  • Each line must end with \n
  • The controller replies after each complete line

These rules apply to both Serial and WiFi/TCP communication.

Real-Time Commands

In addition to line-based commands, Rabbit GRBL also supports single-character real-time commands (such as ?, ~, !) which do not require a newline and are processed immediately.

These real-time commands are supported across the communication interface in use, provided the client transmits them correctly.

Read more here--> https://github.com/SourceRabbit/RabbitGRBL/wiki/Real-Time-Commands

Clone this wiki locally