Open Hardware Standard & Modular Driver Architecture

Community Printer Drivers & Open Protocol Hub

Instead of a walled garden, MakerSpell provides an open hardware protocol specification. Hardware engineers and makers can build, debug, and contribute custom drivers for any 3D printer — empowering the global maker community.

Two-Tier Physical Hardware Safety Shield

Protecting physical 3D printers and preventing fire or collision hazards is our highest priority. All community drivers adhere to a strict two-tier safety lifecycle:

Tier 1: Safe-ModeUpload-Only
All new and community-submitted drivers default to Safe-Mode. MakerSpell transmits G-code files to the printer storage only. Physical heating and print ignition must be physically confirmed by the operator.
Tier 2: Verified FleetFull Autonomy
Printers verified across physical test prints with validated emergency-stop and thermal runaway safety (Creality K1, Snapmaker U1, QIDI Klipper) earn Verified Fleet status for full autonomous print queues.

Active Drivers & Protocol Matrix

Supported protocol adapters and community bridge drivers running inside MakerSpell:

⚡Moonraker (Klipper / Mainsail / Fluidd)
Verified Fleet
Full bidirectional control: dynamic print preparation, exclude-objects, live extruder temps, filament runout, and camera streaming.
HTTP RESTWebSocket JSON-RPCPort: 7125
🎋Bambu Lab LAN Mode (X1, P1, A1)
Community Safe-Mode
Local MQTT broker connection for real-time telemetry, stage tracking, AMS slot monitoring, and FTPS file transmission without cloud dependency.
MQTT (TLS 8883)FTPS (990)Port: 8883Port: 990
🐙OctoPrint / OctoPi API
Verified Fleet
Standard OctoPrint v1 REST API support: live telemetry polling, SD/local file uploads, job slicing triggers, and MJPEG webcams.
HTTP REST APIPort: 80Port: 5000
🚀Creality K1 / Ender-3 V3 (Local)
Verified Fleet
Native CrealityOS Moonraker bridge with verified automated print safety, lidar calibration checks, and chamber temperature telemetry.
Moonraker HTTPWebSocketPort: 7125Port: 4409
📐Snapmaker U1 / Luban Bridge
Verified Fleet
Verified fleet adapter for Snapmaker high-combo series. Multi-toolhead support, automated calibration, and G-code execution.
HTTP RESTUDP Broadcast DiscoveryPort: 8080
🟧PrusaLink / Prusa Connect
Community Safe-Mode
Prusa MK4, XL, and MINI telemetry polling, background G-code upload via Digest authentication, and print stage reporting.
HTTP REST (Digest Auth)Port: 80
🛡️QIDI Tech (Q1 Pro / X-Max 3)
Verified Fleet
Active chamber heating telemetry, high-temp nozzle monitoring, and Moonraker protocol compliance for engineering-grade materials.
Moonraker HTTPWebSocketPort: 7125
🪐Elegoo SDCP (Centauri Carbon / Saturn)
Experimental Safe-Mode
Elegoo Smart Device Control Protocol (SDCP) over WebSocket. Safe-Mode enabled: Upload-Only transfer without unverified auto-starts.
WebSocket SDCP JSONUDP DiscoveryPort: 3000
🧊Anycubic Kobra OS / LAN
Experimental Safe-Mode
Community-developed adapter for Anycubic Kobra series. Strictly defaults to Safe-Mode (Upload-Only) to protect user hardware.
MQTT / Local RESTPort: 80Port: 1883

Schema & Variable Reference Dictionary

Detailed reference for all profile-v2 properties, types, constraints, and valid enum values:

Property / VariableTypeDescriptionConstraints & EnumsExamples
idREQUIREDstringUnique identifier for the printer bridge profile.
Regex pattern: ^community\.[a-z0-9-]+\.bridge$
community.moonraker-v2.bridgecommunity.bambu-lan-v2.bridge
schemaVersionREQUIREDintegerSpecification version of the driver contract.
Must equal exactly 2.
2
versionREQUIREDstringSemVer release version of the profile definition.
SemVer format (MAJOR.MINOR.PATCH)
1.0.02.0.0
identity.nameREQUIREDstringHuman-readable title displayed in MakerSpell printer selector.
Length: 3 to 64 characters.
Moonraker v2 Compatibility BridgeBambu Lab LAN Mode
identity.statusREQUIREDenumLifecycle safety tier determining execution privileges.
Strictly evaluated against AGENTS.md Hardware Safety Rule 3.
verifiedcompatibilityBridgecommunitySafeModeexperimentaldeprecated
verifiedcommunitySafeMode
identity.delegateContractsstring[]Capabilities delegated to the native protocol handler.
Subset of valid capability contracts.
statusuploadjobControlprintPreparationcameraReadexcludeObjectstimelapses
["status", "upload", "jobControl", "timelapses"]
permissionsREQUIREDstring[]Explicit actions the adapter is permitted to trigger on the machine.
Unverified community hardware cannot declare "unrestrictedAutoStart".
statusReadfileListReadfileUploaddeviceControlprintControlprintStartcameraRead
["statusRead", "fileUpload", "cameraRead"]
credentials.typeREQUIREDenumNetwork authentication handshake requirement.
One of the supported auth mechanisms.
noneoptionalTokenrequiredTokenbasicAuthdigestAuthlanCodeAndSerialapiKey
optionalTokendigestAuth
supportedFileTypesREQUIREDstring[]Array of file extensions the printer firmware accepts.
Must declare at least one 3D printing file extension.
["gcode"]["gcode", "gcode.gz", "bgcode", "3mf"]
discovery.serviceTypesstring[]Zero-configuration mDNS service names for local network scan.
Must end with ._tcp.local or ._udp.local
["_moonraker._tcp.local"]["_octoprint._tcp.local"]
discovery.portsREQUIREDinteger[]Standard TCP/UDP ports scanned during network probe.
Valid network port integer range: 1 to 65535.
[7125][8883, 990][80, 5000]

How to Build & Contribute a Driver in 4 Steps

Add native support for any 3D printer without modifying the core engine, using declarative JSON Schema v2:

1
Create Profile
Create a new JSON file inside makersync_app/assets/community_printers/profiles/.
bridge-myprinter-v2.json
2
Define Protocol
Declare mDNS discovery service types, default ports, authentication mode, and telemetry contracts.
"discovery": { "ports": [7125] }
3
Validate Locally
Run our validation CLI tool to verify syntax and ensure Hardware Safety compliance.
node tools/validate-printer-profile.mjs
4
Submit PR
Open a Pull Request on GitHub. Once CI tests pass, your driver ships to all web and mobile users.
git push origin feat/printer-driver
example-printer-v2.json
{
  "$schema": "../profile-v2.schema.json",
  "schemaVersion": 2,
  "id": "community.custom-printer-v2.bridge",
  "version": "1.0.0",
  "identity": {
    "name": "My Custom 3D Printer Adapter",
    "status": "communitySafeMode",
    "author": "YourGitHubUsername",
    "supportedModels": ["Custom Klipper Voron 2.4", "RatRig V-Core"]
  },
  "permissions": [
    "statusRead",
    "fileUpload",
    "cameraRead"
  ],
  "credentials": {
    "type": "optionalToken"
  },
  "supportedFileTypes": ["gcode", "gcode.gz"],
  "discovery": {
    "serviceTypes": ["_moonraker._tcp.local"],
    "ports": [7125]
  }
}