Skip to content

User Guide

ESP3D-X Firmware for PiBot Pendant - User Documentation

Section titled “ESP3D-X Firmware for PiBot Pendant - User Documentation”

This document provides a comprehensive guide to all screens available in the ESP3D-X Firmware for PIBot Pendant for FluidNC/GRBL CNC machines.

Version 2.0.0a13+ — May 2026



The ESP3D-X Pendant provides a touchscreen interface for controlling CNC machines running FluidNC or GRBL firmware. It combines multiple input methods to offer a versatile and efficient control experience, whether you prefer touch interaction or physical controls.

Pendant Overview

Pendant Overview

Key Features:

  • Touchscreen display with rotatable interface
  • Multiple physical input controls (buttons, encoder, switch, potentiometer)
  • Bluetooth and Serial connectivity to CNC firmware
  • SD card support for firmware updates and configuration
  • Battery-friendly power management

The pendant display is divided into two main areas: | Screen Layout | | Zone | Size | Description | |:-----|:-----|:------------| | Main Area (1) | 240 × 240 px | Primary content area displaying screens, menus, and controls | | Button Area (2) | 80 × 240 px | Virtual buttons mirroring the physical buttons below the screen | | |---|---|

Screen Rotation:

The entire display (both zones) can be rotated by 90°, 180°, or 270° in the Settings to accommodate different mounting orientations. The rotation applies to the complete 320 × 240 display area.

Rotation 0° Rotation 0°Rotation 90° Rotation 90°Rotation 180° Rotation 180°Rotation 270° Rotation 270°

Virtual Buttons:

The button area displays 0 to 3 virtual buttons depending on the current context. These buttons mirror the physical buttons and provide visual feedback when pressed. Common ones are:

Ok button Ok / Set button, to validate action or activate active controlback/cancel button Cancel / Back button, to cancel current action or move to previous screen

When the middle button displaying:

Switch button

Switch button

User when pressing it, to change the side buttons, allowing more actions than the number of physical available buttons . These additional actions can be assigned depending on screen and context. The buttons can also be disabled according context / firmware state.


The pendant offers five input methods that work together to provide efficient control: | device description | | # | Control | Location | Description | |:-:|:--------|:---------|:------------| | 1 | Touchscreen | Display surface | Direct interaction with UI elements. Tap buttons, scroll lists, and select items | | 2 | Physical Buttons | Between screen and encoder | 3 buttons for navigation, selection, and quick actions. Mirrored on screen as virtual buttons | | 3 | Rotary Encoder | Below the buttons | Rotate for navigation in lists, value adjustment, or sending successive commands. Press for selection | | 4 | 4-State Switch | Right side, below power button | Rotary switch for context-sensitive selection: view modes, active axis, or operation modes | | 5 | Potentiometer | Top right, near USB and RJ11 ports | Analog control that enables different action modes based on its position | | |---|---|

Control Usage by Context:

ControlMain/SettingsJogStatusSD/Macros
TouchscreenMenu selectionTap axis buttonsTap overridesFile selection
ButtonsNavigate/SelectJog +/-Navigate viewsNavigate/Select
EncoderScroll menusJog by stepsScroll viewsScroll file list
Switch-Select axisSelect position displaySelect mode
Potentiometer--Select detail view-

The pendant provides audio feedback for user interactions:

  • Button press - Confirmation beep
  • Selection - Distinct tone for selections
  • Errors/Warnings - Alert sounds for important notifications
  • Navigation - Subtle feedback when scrolling

Audio feedback can be enabled or disabled in the Settings Screen.


To preserve battery life and extend screen longevity, the pendant includes an automatic screen timeout feature:

  • After a configurable period of user inactivity, the screen backlight turns off automatically
  • Any user interaction (touch, button press, encoder rotation, change switch state, use potentiometer) wakes up the screen
  • The timeout duration can be configured or disabled entirely in the Time Out Screen

The pendant can communicate with CNC firmware through several methods:

Built-in Communication:

MethodDescription
SerialWired connection via RJ11 port to the CNC controller
Bluetooth SerialClassic Bluetooth wireless connection (SPP profile)
Bluetooth BLEBluetooth Low Energy wireless connection
WiFi and Socket TCPWireless TCP connection to a CNC controller running a Telnet/socket server

External Module (via Serial input):

MethodDescription
External ModuleExternal BT/BLE or other module connected via the UART extension port

WiFi limitations: Only the Socket TCP mode is supported. WebSocket client, WebUI (HTTP server), WebDAV, etc… are not supported in the pendant build — they are unnecessary for a CNC pendant and would consume too much RAM and MCU cycles on the ESP32.

Note: The communication method can be changed in the Output Selector Screen. A restart is required after changing the output method.


The SD card can be used to update the pendant firmware or restore user settings:

FilePurpose
esp3dfw.binFirmware update file
esp3dcnf.iniSettings configuration file

Update Process:

  1. Copy the update file(s) to the SD card root directory
  2. Insert the SD card and power on the pendant
  3. The Update Screen appears automatically
  4. Follow the on-screen instructions

⚠️ Firmware Update Limitations:

The SD card update only flashes the firmware partition. It does not update:

  • The bootloader
  • The partition table

This means the esp3dfw.bin file must be compatible with the current ESP-IDF version and partition layout already installed on the device.

For a complete update (including bootloader and partition table), use the Web Installer or perform a manual flash via USB.

See the Update Screen section for detailed behavior and status indicators.

For the configuration file format, see Configuration File Reference in the Appendix.


Shared Screens

Settings List Submenu

Settings Submenu

Main Navigation

Startup

Success/Fail

Auto

Tap Status Icon

Tap Connection Icon

Auth Fail WiFi

Tap Status Icon

Tap Status Icon

Tap Status Icon

Tap Status Icon

Tap Connection Icon

Tap Connection Icon

Tap Connection Icon

Tap Connection Icon

Optional

Update Screen

Splash Screen

Main Screen

Settings Screen

Information Screen

Status Screen

Jog Screen

SD Screen

Macros Screen

Probe Screen

Change Tool Screen

Languages

Output Selector

Scan Bluetooth

Baudrate

WiFi Scan

Server Scan

Settings List

Connection Status

Polling

Time Out

Message Box

Input Screen

Firmware Status


The Update screen appears automatically when firmware update files are detected on the SD card at startup.

Hardware Controls: Touch, Buttons

Supported Files:

  • esp3dfw.bin - Firmware update
  • esp3dcnf.ini - Settings configuration

Behavior:

  • On success: File renamed to .ok extension, automatic restart
  • On failure: File renamed to .bad extension, user confirmation required before restart
  • When both files are present: Firmware update applies first, then settings update after restart
Update Screen - FirmwareUpdate Screen - SettingsUpdate Screen - Failed
Firmware update in progressSettings update in progressUpdate failed

A brief information screen displaying firmware details. Automatically transitions to the Main screen after a few seconds while core features initialize in the background.

Hardware Controls: None (automatic transition)

Splash Screen Splash ScreenSplash Screen Splash Screen

The central hub of the pendant featuring a circular menu for task selection.

Hardware Controls: Touch, Buttons, Encoder

Features:

  • Circular navigation menu for screen selection
Main Screen

Main Screen

  • Clickable firmware status indicator (open Firmware Status screen)
  • Clickable connection indicator (open Connection Status detailed informations)
  • UI lock/unlock toggle to prevent accidental inputs

When locked (user choice or no connection), only the following screens are accessible:

  • Information
  • Status
  • Settings
Main Screen

Main Screen

When unlocked, all screens are accessible:

Main Screen Unlocked

Main Screen Unlocked

Note: Some screens are optionally displayed - user can show/hide: Tool Change, Macros, and Probe screens.


The connection status icon is displayed on the Main screen and other screens. Tapping it opens the Connection Status screen.

Status icons:

Not Connected Not ConnectedConnecting ConnectingConnected Connected

Hardware Controls: Touch, Buttons

Display:

The Connection Status screen shows a color-coded title bar and detailed transport information:

Title Bar ColorStateMeaning
GreenConnectedTransport and CNC server both connected
BlueConnectingConnection in progress (spinner shown)
OrangeAuth Failed / Read-onlyWrong credentials, or connected read-only
RedNot ConnectedTransport disconnected
GreyRadio OffRadio disabled

The screen always shows:

  • Transport protocol (Serial, Socket-TCP, Bluetooth, External Module)
  • Network layer (WiFi: SSID) — WiFi mode only, orange when WiFi is down
  • Device info (CNC host:port, BT device name + MAC, or serial baud rate)
  • Animated spinner — visible only while connecting
Connection Status Screen

Connection Status Screen

Button 0 (LEFT) — Transport action:

Depends on transport type and current state:

TransportStateIconAction
WiFiWiFi down(disabled)
WiFiNot connected / disconnectedWiFi connectReconnect WiFi
WiFiConnectedWiFi disconnectDisconnect WiFi
WiFiAuth failedUnlockOpen password input to correct credentials
SerialNot connectedSerial connectReconnect serial
SerialConnectedSerial disconnectDisconnect serial
Ext. ModuleNot connectedExt connectReconnect external module
Ext. ModuleConnectedBT connectDisconnect external module
BluetoothNot connectedBT disconnectConnect Bluetooth
BluetoothConnectedExt disconnectDisconnect Bluetooth
BluetoothAuth failedUnlockOpen PIN input to correct Bluetooth PIN/passkey

Button 1 (CENTER) — IP CNC action (WiFi + Socket TCP builds only):

StateIconAction
Not connectedTelnet connectConnect to CNC socket server
Connected / ConnectingTelnet disconnectDisconnect from CNC server
Auth failedUnlockCorrect server credentials
WiFi down(disabled)

For Serial and External Module outputs, Button 1 shows a Refresh icon (Refresh) when connected — tapping it resends initialisation commands to the CNC.

Button 2 (RIGHT) — Back: Returns to calling screen.

WiFi auth-fail unlock flow:

When the WiFi status is Auth Failed (wrong password):

  1. The title bar turns orange and Button 0 shows the Unlock icon
  2. Tap Button 0 → a password input screen opens, pre-filled with the saved password
  3. Edit the password and press OK → new password is saved, connection is retried
  4. Press Cancel → return to the WiFi scan screen without retrying

Bluetooth auth-fail / PIN change:

When Bluetooth connection shows Auth Failed:

  1. Button 0 shows the Unlock icon
  2. Tap Button 0 → a PIN input screen opens (4 digits for BT Classic, 6 for BLE)
  3. Enter the correct PIN → bonded devices are cleared and connection is retried

Serial/WiFi retry behaviour:

When WiFi fails after 10 retries or when the SSID is not found, the state changes to Not Connected. Press Button 0 to start a new connection cycle.


Firmware Status Icon

Firmware Status Icon with unknown status

Status Icons:

StatusIconDescription
UnknownUnknownWaiting for system report
IDLEIdleMachine ready
RUNRunProgram executing
ALARMAlarmAlarm condition active
CHECKCheckCheck mode
DOORDoorDoor open
HOLDHoldFeed hold active
HOMEHomeHoming in progress
SLEEPSleepSleep mode
JOGJogJogging in progress
TOOLToolTool change in progress
ERRORErrorError condition

Real-time firmware state monitoring and control, accessible by tapping the status indicator on compatible screens.

Hardware Controls: Touch, Buttons, Encoder (scrolls message history)

Display:

  • Current firmware state
  • Scrollable list of the last 20 messages
  • Message color coding: Red = Error, Blue = Info
Firmware Status Screen

Firmware Status Screen

Available Commands by State:

StatePrimary ActionIconSecondary ActionIcon
ALARMUnlock ($X + ?)UnlockSoft Reset (0x18 + ?)Reset
HOLDResume (~)ResumeRefresh (?)Refresh
RUNFeed Hold (!)HoldRefresh (?)Refresh
JOGStop Jog (0x85)StopRefresh (?)Refresh
IDLESoft Reset (0x18 + ?)ResetRefresh (?)Refresh
ERRORSoft Reset (0x18 + ?)ResetRefresh (?)Refresh
OthersSoft Reset (0x18 + ?)ResetRefresh (?)Refresh

Information Icon

Information Icon

Displays firmware and system details.

Hardware Controls: Touch, Buttons

Content displayed:

FieldDescription
VersionESP3D-X firmware version
Target FirmwareCNC firmware name and version (FluidNC / grblHAL)
CommunicationActive output (Serial, WiFi Socket-TCP, Bluetooth, External Module…)
Board / MachineTarget board name
UI LanguageActive language pack
Lock StateLocked / Unlocked
Axis CountNumber of configured CNC axes
Information Screen

Information Screen


Status Icon

Status Icon

Provides a global overview of the CNC machine state.

Hardware Controls: Touch, Buttons, Switch, Encoder, Potentiometer

Position Display Modes (selected via 4-state switch):

  1. Machine Position (MPos)
Status Screen MPos

Status Screen MPos Mode

  1. Work Position (WPos)
Status Screen WPos

Status Screen WPos Mode

  1. Both MPos & WPos
Status Screen MPos & WPos

Status Screen MPos & WPos Mode

  1. UI Lock Mode
Status Screen Locked

Status Screen Locked Mode

Detail Views (selected via potentiometer):

  • Feed rate and spindle override controls
Status Screen MPos

Override view

  • Rapid override controls
Status Screen Rapid Override

Rapid override view

  • Control Spindle state / Coolant Actions
Status Screen control view

Control view

  • Workspace selector, G-code status, feed/spindle controls
Status Screen Workspace view Workspace viewStatus Screen GC status view GC Status
  • SD card job progress
Status Screen Job view

Job view

  • Fast access to Stop / Pause / Resume buttons

To have better control on job progression, the buttons mode can be switched to stop/pause or stop/resume according firmware state context anytime by using the middle button.

Stop button Stop buttonPause button Pause buttonResume button Resume button

Additional Features:

  • Real-time endstop state display
  • Clickable firmware status indicator (open Firmware Status screen)
  • Clickable connection indicator (open Connection Status detailed informations)

Jog  Screen Jog ScreenJog Screen Locked Jog Screen Locked

Manual machine movement control with multiple input options.

Hardware Controls: Touch, Buttons, Switch, Encoder

Axis Selection (via 4-state switch):

  • 3-axis machines: X, Y, Z, + Lock mode
  • 4-6 axis machines: X, Y, Z, + Button axis selector

Jog Modes:

  • Step mode - Discrete movements via encoder or buttons
Jog Screen steps

Discrete Jog screen

  • Continuous mode - Sustained movement while button held
Jog Screen continuous

Continuous Jog screen

Features:

  • Configurable step sizes and feed rates
  • Endstop state display (when enabled)
  • Zero axis function
  • Home per axis or all axes (depending on firmware configuration)
  • Real-time position display

Additional Features:

  • Real-time endstop state display
  • Clickable firmware status indicator (open Firmware Status screen)
  • Clickable connection indicator (open Connection Status detailed informations)

SD Icon

SD Icon

File browser for the CNC firmware’s SD card.

Hardware Controls: Touch, Buttons, Switch, Encoder

Operation Modes (selected via 4-state switch):

Features:

  • Manual refresh of file list
  • File extension filtering (configurable in settings)
ModeIconDescription
ProcessRun ModeProcess selected file as a job
Informations / Add Macro (if macros enabled in settings)Add Macro ModeDisplay file informations and Assign/Remove file as a macro for quick access
Informations (if macros not enabled in settings)informationDisplay file informations
RenameRename ModeRename the selected file
DeleteDelete ModeRemove file from SD card

Process mode

SD Screen

SD Screen Process Mode

Using set button start processing file if user confirm action

SD Screen Processing Confirmation

Processing Confirmation

Informations / Add Macro Mode (if macros enabled in settings)

SD Screen

Assign / Remove macro Mode

Using set button display informations screen where user can assign/remove file as a macro

SD Screen Add File to macros listSD Screen Remove File from macros list

Informations Mode (if macros not enabled in settings)

SD Screen

Informations Mode

Using set button display file informations screen

SD Screen

File Informations

Rename Mode

SD Screen

Rename Mode

Using set button display input editor screen to rename file or cancel action

SD Screen

Input Editor for renaming

Delete Mode

SD Screen

Delete Mode

Using set button delete file if user confirm action

SD Screen

Delete Confirmation


Macros Icon

Macros Icon

Quick access to assigned macro files for frequently used operations.

Hardware Controls: Touch, Buttons, Switch, Encoder

Operation Modes (selected via 4-state switch):

ModeIconDescription
ProcessProcess ModeExecute the macro
RenameRename ModeChange macro display name (does not affect actual file name)
ReorderReorder ModeChange macro position in list
RemoveRemove ModeRemove from macro list (includes clear all option)

Process Mode

Macros Screen Macros Screen no description editedMacros Screen Macros Screen with descriptions

Using set button start processing macro file if user confirm action

Macros Screen

Confirm Processing

Rename Mode

Macros Screen

Rename Mode

Using set button display input editor screen change file description or cancel action

Macros Screen

Change Description

Reorder Mode

Macros Screen

Reorder Mode

Delete Mode

Macros Screen

Delete Mode

Using set button remove selected file from macros list if user confirm

Macros Screen

Delete Mode

Using clear button clear the full macros list if user confirm

Macros Screen

Delete Mode


Probe Icon

Probe Icon

Axis probing interface for tool measurement and workpiece setup.

Hardware Controls: Touch, Buttons, Switch, Encoder

Features:

  • Per-axis probe configuration
  • Automatic saving of probe settings per axis
  • Integration with Change Tool workflow
  • Clickable firmware status indicator (opens Firmware Status screen)
  • Clickable connection indicator (open Connection Status detailed informations)

Axis Selection (via 4-state switch):

  • 3-axis machines: X, Y, Z, + Lock mode
  • 4-6 axis machines: X, Y, Z, + Button axis selector
Probe Screen Probe ScreenProbe Screen Locked State

Yes

No

Enter Probe Screen

Select Axis

Configure Probe Settings

Position Tool

Execute Probe

Success?

Save Reference

Adjust & Retry

Exit


Change Tool Icon

Change Tool Icon

Guided tool change procedure compatible with FluidNC and grblHAL settings.

Hardware Controls: Touch, Buttons, Encoder

Features:

  • Current tool display and selection
  • Manual tool change guidance
  • Optional integrated probe workflow
  • Clickable firmware status indicator (open Firmware Status screen)
  • Clickable connection indicator (open Connection Status detailed informations)

Yes

No

Start Tool Change

Select New Tool

Probe Required?

Manual Tool Change

Probe Screen

Set Tool Reference

Tool Change Complete

  1. Set current tool if not done and apply by pressing play, or go to 3 directly
Change Tool Screen

Set current Tool

  1. Press Play and process probing if necessary or ignore it
Change Tool Screen

Probe Current tool

  1. Switch to Change tool mode
Change Tool Screen

Set Current Tool

  1. Select new tool using input editor
Change Tool Screen

Set New Tool Index

  1. Press Play and Follow manual change procedure
  2. (Optional) Probe new tool length
  3. Confirm tool change

Settings Icon

Settings Icon

Comprehensive configuration interface for customizing the pendant behavior.

Hardware Controls: Touch, Buttons, Encoder, Virtual Hardware

Access to:

  • Reset Settings
  • Theme selection
  • Language selection
  • Backlight level
  • Orientation selection
  • Sound control
  • Lock button display
  • Output selector (communication method)
    • Bluetooth Serial
    • Bluetooth Ble
    • Serial
  • Output mode configuration:
    • Bluetooth scanning
    • Baudrate configuration
  • Additional settings list

See Settings Reference for the complete list of available settings.

Settings Screen

Settings Screen


Reset settings Icon

Reset Settings Icon

Hardware Controls: Touch, Buttons

This will reset all setting to their default state, a restart is mandatory to be properly applied.

Reset setting menu Icon

Reset Settings menu

Restart confirmation

Apply Reset Confirmation


Theme Icon

Theme Icon

Hardware Controls: Touch, Buttons, Encoder

This allow to change the color scheme of the UI.

1 - Go tho theme menu

theme menu

Theme Menu

2 - Activate the setting selection pressing menu or set button

Theme Selector

Activate Theme Selector

3 - Change theme using encoder

Change Theme

Change Theme

4 - Choose theme by pressing menu or set button

Change Theme

Apply Theme

Setting is saved automaticaly when you press menu or set button, if you press cancel button instead of set button, operation is canceled.


Languages Icon

Languages Icon

Language pack selection for the UI.

Hardware Controls: Touch, Buttons, Encoder

Languages setting

Languages Menu

Features:

  • Lists all available language packs from SD card
  • Immediate language switching

Note: The language pack file must be present on the SD card at startup to be loaded.

Languages Screen

Languages Screen


Backlight Icon

Backlight Icon

Change the level of screen backlight.

Hardware Controls: Touch, Buttons, Encoder

Backlight setting

Backlight Menu

Once menu activated, the backlight level can be changed using encoder from 0% to 100%

Backlight setting

Backlight Level Modification

Setting is saved automaticaly when you press menu or set button, if you press cancel button instead of set button, operation is canceled.


orientation Icon

Orientation Icon

Change the screen orientation by 0, 90 , 180 and 270 angular degres.

Hardware Controls: Touch, Buttons, Encoder

Orientation menu

Orientation Menu

Once menu activated, the orientation can be changed using encoder.

orientation setting 0 degreesorientation setting 90 degrees

Setting is saved automaticaly when you press menu or set button, if you press cancel button instead of set button, operation is canceled.


Sound Icon Sound IconMute Icon No Sound Icon

Enable or Mute Sound by toggle, the displayed icon represent the current state.

Hardware Controls: Touch, Buttons

Sound menu Mute MenuSound menu Enable Menu

Setting is saved automaticaly when you press menu or set button.


Lock UI Icon Lock IconMute Icon Unlock Icon

Allow to show / hide the lock control, the icon displayed represent the current state

Hardware Controls: Touch, Buttons

Sound menu Hide Lock UI ControlSound menu Show Lock UI Control

Setting is saved automaticaly when you press menu or set button.


Serial Icon SerialBT Serial Icon BTSerialBT Ble Icon BTBLEWiFi Icon WiFiExt Module Icon ExternalModule

Communication method selection. The menu icon shows the currently active mode.

Hardware Controls: Touch, Buttons, Encoder

Available Options:

OptionDescription
SerialWired connection via RJ11 port
Bluetooth SerialClassic Bluetooth SPP
Bluetooth BLEBluetooth Low Energy
WiFi Socket TCPWireless TCP/telnet connection to a CNC controller (if WiFi build)
External ModuleExternal BT/BLE or other UART module (if Ext Module build)
Serial selected Serial selectedBT Serial selected BT Serial selected
WiFi selected WiFi selectedExt Module selected Ext Module selected
Output Selection Screen Output Selection Screen(BT Firmware)Output Selection Screen WiFi Output Selection Screen(WiFi Firmware)

Note: A restart is required after changing the output method. A confirmation message will be displayed.

Output Selection Confirmation

Restart Confirmation


The configuration icon in the Settings screen adapts to the active output mode:

Active OutputConfiguration IconOpens
SerialBaudrateBaudrate Screen
BT Serial / BT BLEScan BTScan Bluetooth Screen
WiFi (WiFi Part 1)Scan WiFiWiFi Scan Screen
Socket TCP (WiFi Part 2)Scan ServerScan Server
External ModuleBaudrateBaudrate Screen (Ext module baud)

WiFi — Two-step connection model:

WiFi mode requires two separate connection steps, unlike Serial or Bluetooth where a single connection reaches the CNC controller directly.

StepActionScreen
1Connect the pendant to a WiFi access point (the network transport)WiFi Scan Screen → selects the AP and saves credentials
2Connect to the CNC controller’s TCP socket server (the CNC link)Server Scan Screen → selects the host:port; or use Button 1 in Connection Status

WiFi is only the remote communication layer — it replaces the cable. The actual CNC link is the TCP socket connection in step 2. Both steps must succeed for the pendant to communicate with the CNC.

Hardware Controls: Touch, Buttons, Encoder

Baudrate Menu Baudrate (Serial)Scan BT Menu Scan BT (BT BLE)
Scan BT Serial Menu Scan BT (BT Serial)WiFi Scan Menu WiFi Scan
Server Scan Menu Scan Server (WiFi)Baudrate Menu Baudrate (External Module)

Baudrate Icon

Baudrate Icon

Serial communication speed configuration.

Hardware Controls: Touch, Buttons, Encoder

Visibility: Available when current output is Serial or External Module

Features:

  • Select from available baud rates
  • Changes apply immediately
Baudrate Screen

Baudrate Screen


Scan Bluetooth Icon

Scan Bluetooth Icon

Bluetooth device discovery and pairing.

Hardware Controls: Touch, Buttons, Encoder

Visibility: Only available when current output is Bluetooth Serial or Bluetooth BLE

Features:

  • Scan for available Bluetooth devices (up to 30 s)
  • Select and pair with a device
  • Save target BT host for automatic connection on subsequent startups
Scan Bluetooth Screen

Scan Bluetooth Screen

Bluetooth PIN / Passkey:

If the CNC controller requires a PIN (BT Classic) or passkey (BLE), you will be prompted on the Connection Status Screen when connection fails with Auth Failed. Tap the Unlock button to enter or correct the PIN.

  • BT Classic: 4-digit PIN
  • BLE: 6-digit passkey
  • Empty = no authentication (SEC_NONE)

WiFi access point discovery and credential configuration.

Step 1 of 2 — Network transport only. This screen connects the pendant to a WiFi network. After this step the pendant has network access, but it is not yet connected to the CNC controller. Proceed to the Server Scan Screen (step 2) to establish the CNC socket link.

Hardware Controls: Touch, Buttons, Encoder

Visibility: Only available when current output is WiFi

Features:

  • Asynchronous scan (UI stays responsive during scan)
  • APs sorted by signal strength (strongest first)
  • Signal percentage displayed for each AP
  • Lock icon lock for password-protected networks
  • Checkmark for currently configured SSID
  • Scan results reused when returning from password input (no re-scan needed)

Buttons:

ButtonIconAction
Select / OKOKConnect to selected AP
RefreshRefreshRestart scan
BackBackReturn to Settings
WiFi Scan - Results Scan resultsAP List AP ListWiFi Scan - Password entry Password entry

Selection flow:

  1. Select an AP from the list and press OK (or tap the item)
  2. Open network: SSID saved, connection starts immediately → navigates to Connection Status
  3. Protected network: Password input opens (pre-filled with saved password)
    • Press OK → saves password, starts connection → navigates to Connection Status
    • Press Cancel → returns to scan results (no reconnect attempt)

TCP server discovery and selection.

Step 2 of 2 — CNC socket link. This screen connects the pendant to the CNC controller’s TCP socket server (telnet/Telnet port). The pendant must already be connected to a WiFi network (WiFi Scan Screen, step 1) before using this screen. Once a server is selected the pendant establishes the actual CNC communication link.

Hardware Controls: Touch, Buttons, Encoder

Visibility: Only available when current output is WiFi

Features:

  • Asynchronous scan (UI stays responsive during scan)
  • Search using mDNS telnet service availability
  • Checkmark for currently selectected server

Buttons:

ButtonIconAction
Select / OKOKConnect to selected AP
RefreshRefreshRestart scan
BackBackReturn to Settings
Scan Server Scan ServerServers List Servers List

Selection flow:

  1. Select an AP from the list and press OK (or tap the item)
  2. Open network: SSID saved, connection starts immediately → navigates to Connection Status
  3. Protected network: Password input opens (pre-filled with saved password)
    • Press OK → saves password, starts connection → navigates to Connection Status
    • Press Cancel → returns to scan results (no reconnect attempt)

Settings List Icon

Settings List Icon

Additional UI and hardware configuration options menu.

Hardware Controls: Touch, Buttons, Encoder

Provides Access to:

  • Polling interval configuration
  • Screen timeout settings
  • Files extensions list
  • Show/Hide Macro menu
  • Show/Hide Probe menu
  • Show/Hide Change Tool menu
  • Enable/Disable the bypass of safety focus
  • X~C axis list of usable steps for jog
  • X~C axis list of usable feedrate for jog
  • Enable/Disable the Rx/Tx swap
Settings Editor menu

Settings Editor menu

Settings Editor List

Settings Editor List


Settings Editor List

Polling Interval

Configure the automatic status reporting interval.

Hardware Controls: Touch, Buttons, Encoder

Usage:

  • FluidNC: Auto-report time
  • grblHAL: Polling period

For FluidNC it configure the Autoreporting interval which is set when the firmware confirm communication with FluidNC. Set 0 disable the autoreporting request and use existing one if setup.

Settings Editor List

Polling Interval Screen

Note: The pendant need periodical report to display up to date informations, if you disable it in pendant, please ensure there are frequent update from firmware to maintain UI consistency.


Timeout Screen

Timeout Screen

Screen backlight auto-power-off configuration.

Hardware Controls: Touch, Buttons, Encoder

Features:

  • Select inactivity timeout duration from predefined list
  • Option to disable auto-power-off entirely
Timeout screen

Timeout Screen


Extensions Menu

Files Extentions Menu

Edit the files extensions list used to filter usables files.

Hardware Controls: Touch, Buttons

Extensions screen

Files Extensions Editor Screen

the extensions are separated by ; and are not case sensitive.


wifi ssid menu

Manualy change SSID Access point

This allow to edit the WiFi Access Point SSID

Hardware Controls: Touch, Buttonson est

SSID Editor screen

SSID Editor Screen


wifi password menu

Manualy change WiFi password

This allow to edit the WiFi password

Hardware Controls: Touch, Buttons

WiFi Password Editor screen

WiFi Password Editor Screen


forget connection menu

Delete all connections parameters

This allow to delete all current connection parameters: Bluetooth host, password, WiFi SSID, password, connecting server ip and port/

Hardware Controls: Touch, Buttons

The action is destructive so it request a user’s confirmation.

Confirmation of forget connection screen

Confirmation Dialog


TCP Server address menu

Manualy change the TCP server address

This allow to edit the WiFi TCP Socket address

Hardware Controls: Touch, Buttons

TCP Server Address Editor screen

TCP Socket Server Address Editor Screen


TCP Server port menu

Manualy change the TCP server port

This allow to edit the WiFi TCP Socket port

Hardware Controls: Touch, Buttons

TCP Server Port Editor screen

TCP Socket Server Port Editor Screen


Macros Menu

Show / Hide Macros Menu

Toggle the display of macros menu.

Hardware Controls: Touch, Buttons


Extensions Menu

Show / Hide Probe Menu

Toggle the display of probe menu.

Hardware Controls: Touch, Buttons


Change Tool Menu

Show / Hide Change Tool Menu

Toggle the display of change tool menu.

Hardware Controls: Touch, Buttons


Change Tool Menu

Enable / Disable The Bypass of Safety Focus Control

Toggle the Safety Focus Control. If bypass is disabled, the user need to manually enable focus on control to use (e.g: Jog). If enabled the working control got auto focus and is activated when entering screen (e.g: Jog control, user can directly use buttons / encoder to jog when entering in Jog screen).

Note: The recommendation is to keep this setting disabled.

Hardware Controls: Touch, Buttons


Steps List Editor Menu

Steps List Editor Menu

Edit the steps list used by jog screen. Each axis has its own list.

Hardware Controls: Touch, Buttons

Steps List Editor screen

Steps List Editor Screen

the values are separated by ;


Feedrates  List Editor Menu

Feedrates List Editor Menu

Edit the steps list used by jog screen. Each axis has its own list.

Hardware Controls: Touch, Buttons

Feedrates List Editor screen

Feedrates List Editor Screen

the values are separated by ;


Macros Menu

Enable / Disable Rx/Tx swap

Toggle the pins definitions used for Rx and TX in serial communications.

Hardware Controls: Touch, Buttons


Complete list of available settings:

IconSettingDescription
LanguageLanguage Pack SelectionUI language
ThemeTheme SelectionVisual theme
OrientationScreen OrientationDisplay rotation (0°, 90°, 180°, 270°)
BacklightBacklight %Screen brightness
TimeoutScreen Time OutAuto-off delay
IconSettingDescription
SoundSound On/OffEnable/disable audio feedback
IconSettingDescription
Output Output Output Output OutputOutput SelectorSerial / BT Serial / BT BLE / WiFi Socket TCP / External Module
BaudrateBaudrate ConfigurationSerial or External Module communication speed
BluetoothScan Bluetooth DevicesBT device discovery and pairing
wifiWiFi ScanWiFi AP discovery and credential setup
wifiServer ScanTCP Socket Server discovery using mDNS (telnet)
WiFi SSIDStored WiFi network name (set via WiFi scan)
WiFi PasswordStored WiFi password (set via WiFi scan or unlock flow)
HostnameDevice network name (used for WiFi, mDNS)
Macros MacrosSwap Rx/Tx PinsHardware pin configuration
PollingPolling IntervalStatus update frequency
IconSettingDescription
Lock LockShow/Hide Lock Screen ControlUI lock feature
Macros MacrosShow/Hide Macros FeatureMacros screen access
Macros MacrosShow/Hide Probe FeatureProbe screen access
Macros MacrosShow/Hide Change Tool FeatureTool change screen access
IconSettingDescription
ExtensionsFiles Extensions FilterVisible file types in SD browser
IconSettingDescription
Macros MacrosBypass Safety FocusSkip safety confirmations

Each axis (X, Y, Z, A, B, C) has:

IconSettingDescription
StepsSteps Supported ListAvailable step increments
FeedrateFeedrate Supported ListAvailable feed rates
IconSettingDescription
ResetReset SettingsRestore default configuration

ScreenTouchButtonsSwitchEncoderPotentiometerVirtual HW
Update
Splash
Main
Settings
Information
Status
Jog
SD
Macros
Probe
Change Tool
Firmware Status
Connection Status
Message Box
Input Screen
Languages
WiFi Scan
Server Scan
Scan Bluetooth
Baudrate
Output Selector
Settings List
Polling
Time Out

Legend:

  • Touch - Touchscreen interaction enabled
  • Buttons - Physical buttons active
  • Switch - 4-state switch used for mode selection
  • Encoder - Rotary encoder for navigation/adjustment
  • Potentiometer - Analog input active
  • Virtual HW - On-screen virtual hardware controls available

ScreenParent(s)Child Screen(s)
Update--
Splash-Main
MainSplashSettings, Information, Status, Jog, SD, Macros, Probe, Change Tool, Message Box, Firmware Status, Connection Status
SettingsMainMessage Box, Languages, Settings List, Scan Bluetooth, WiFi Scan, Server Scan, Baudrate, Output Selector, Connection Status
InformationMain-
StatusMainMessage Box, Input Screen, Firmware Status, Connection Status
JogMainMessage Box, Input Screen, Firmware Status, Connection Status
SDMainMessage Box, Input Screen
MacrosMainMessage Box, Input Screen
ProbeMain, Change ToolMessage Box, Input Screen, Firmware Status, Connection Status
Change ToolMainProbe, Message Box, Input Screen, Firmware Status, Connection Status
Firmware StatusMain, Probe, Status, Change Tool, Jog-
Connection StatusMultiple (tap icon)Input Screen (WiFi pwd), WiFi Scan (auth-fail)
Message BoxMultiple-
Input ScreenMultiple-
LanguagesSettings-
WiFi ScanSettings, Connection StatusInput Screen (password), Connection Status
Server ScanSettingsConnection Status
Scan BluetoothSettings-
BaudrateSettings-
Output SelectorSettingsMessage Box
Settings ListSettingsPolling, Time Out, Input Screen
PollingSettings List-
Time OutSettings List-

The esp3dcnf.ini file allows you to configure pendant settings via SD card. Place this file on the SD card root directory, and it will be processed on boot.

File Format:

  • INI format with sections in brackets [section]
  • Comments start with semicolon ;
  • Boolean values: yes/no, on/off, true/false, 1/0
  • Protected values (passwords/tokens) are replaced with ******** in the .ok file after processing

Example Configuration File:

; =============================================================================
; ESP3D-X Configuration File
; =============================================================================
;
; Place this file on the SD card root as: esp3dcnf.ini
; The firmware will process it on boot and rename it to esp3dcnf.ok
;
; Boolean values: yes/no, on/off, true/false, 1/0
; Protected values (passwords/tokens) will be replaced with ******** in .ok file
;
; =============================================================================
; =============================================================================
; [system] - Core system settings
; =============================================================================
[system]
; Serial baud rate (9600, 19200, 38400, 57600, 74880, 115200, 230400, 250000, 500000, 921600, 1000000)
Baud_rate = 115200
; Target firmware: None, GRBL, GRBLHAL, MARLIN, SMOOTHIEWARE, REPETIER, HP_GL, FLUIDNC
TargetFW = FLUIDNC
; Output client: SERIAL or USB
output = SERIAL
; USB serial baud rate (if USB_SERIAL feature enabled)
; USB_Serial_Baud_rate = 115200
; Swap RX/TX pins (hardware configuration)
Swap_RX_TX = no
; =============================================================================
; [network] - Network and connectivity settings
; =============================================================================
[network]
; Device hostname (max 32 characters)
hostname = ESP3D-X
; Radio mode: OFF, BT, STA, AP, SETUP
radio_mode = BT
; WiFi Station settings (if WIFI feature enabled)
; sta_fallback = WIFI-SETUP
; STA_SSID = MyNetwork
; STA_Password = MyPassword
; STA_IP_mode = DHCP
; STA_IP = 192.168.1.100
; STA_MSK = 255.255.255.0
; STA_GW = 192.168.1.1
; STA_DNS = 192.168.1.1
; WiFi Access Point settings (if WIFI feature enabled)
; AP_SSID = ESP3D-X
; AP_Password = 12345678
; AP_IP = 192.168.0.1
; AP_channel = 2
; Bluetooth settings (if BT feature enabled)
BT_Address = 00:00:00:00:00:00
BT_Pin = 1234
BT_Name = ESP3D-Pendant
BLE_Address = 00:00:00:00:00:00
BLE_Passkey = 123456
BLE_Name = ESP3D-BLE
; =============================================================================
; [services] - Services configuration
; =============================================================================
[services]
; Enable radio at boot
Radio_enabled = yes
; Check for update files on SD card at boot
CHECK_FOR_UPDATE = yes
; HTTP server (if WIFI feature enabled)
; HTTP_Port = 80
; HTTP_active = yes
; Telnet server (if TELNET feature enabled)
; TELNET_Port = 23
; TELNET_active = yes
; WebSocket (if WEBSOCKET feature enabled)
; WebSocket_active = yes
; WebDAV (if WEBDAV feature enabled)
; WebDav_active = yes
; Authentication (if AUTHENTICATION feature enabled)
; ADMIN_PASSWORD = admin
; USER_PASSWORD = user
; Session_timeout = 3
; Notifications (if NOTIFICATIONS feature enabled)
; NOTIF_TYPE = None
; AUTONOTIFICATION = no
; NOTIF_TOKEN1 =
; NOTIF_TOKEN2 =
; NOTIF_TOKEN_Settings =
; Time settings (if TIMESTAMP feature enabled)
; Active_Internet_time = yes
; Time_server1 = 0.pool.ntp.org
; Time_server2 = 1.pool.ntp.org
; Time_server3 = 2.pool.ntp.org
; Time_zone = +00:00
; =============================================================================
; [screen] - Display and UI settings
; =============================================================================
[screen]
; UI language (default, en, fr, de, es, it, etc.)
UI_language = default
; Status polling interval in milliseconds (0, 50, 75, 100, 200, 300, 500, 1000, 3000, 10000, 30000)
Polling_interval = 200
; Buzzer enabled
Buzzer_on = yes
; Brightness level (0-100)
Brightness = 100
; Screen timeout in seconds (0 = disabled)
Screen_timeout = 0
; Display orientation (0=portrait, 1=landscape, 2=portrait_inverted, 3=landscape_inverted)
Orientation = 1
; UI lock enabled
UI_lock = no
; Hide lock icon when unlocked
Hide_lock_icon = no
; Theme color index (0-n depending on available themes)
Theme = 0
; File extensions filter (semicolon-separated, uppercase)
Files_extensions = GCODE;GCO;NC;TAP;TXT
; =============================================================================
; [scripts] - GCode scripts
; =============================================================================
[scripts]
; Script to run on pause (semicolon-separated GCode commands)
Pause_script =
; Script to run on stop
Stop_script =
; Script to run on resume
Resume_script =
; =============================================================================
; [pendant] - CNC Pendant specific settings
; =============================================================================
[pendant]
; Enable probe feature in UI
Probe_enabled = yes
; Enable macros feature in UI
Macros_enabled = yes
; Enable tool change feature in UI
Tool_change_enabled = yes
; Bypass safety focus check (advanced users only)
Bypass_safety_focus = no
; Jog step values (semicolon-separated, in mm or degrees for rotary)
X_jog_steps = 0.01;0.1;1;10;50;100
Y_jog_steps = 0.01;0.1;1;10;50;100
Z_jog_steps = 0.01;0.1;1;10;50
A_jog_steps = 0.1;1;5;15;45;90
B_jog_steps = 0.1;1;5;15;45;90
C_jog_steps = 0.1;1;5;15;45;90
; Jog feedrate values (semicolon-separated, mm/min or deg/min for rotary)
X_jog_feedrates = 100;500;1000;2000;5000
Y_jog_feedrates = 100;500;1000;2000;5000
Z_jog_feedrates = 100;500;1000;2000;5000
A_jog_feedrates = 60;180;360;720;1440
B_jog_feedrates = 60;180;360;720;1440
C_jog_feedrates = 60;180;360;720;1440

Note: Settings marked with comments (;) are optional or depend on features enabled in your firmware build. Uncomment and modify only the settings you need.