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.
Active Drivers & Protocol Matrix
Supported protocol adapters and community bridge drivers running inside MakerSpell:
Verified Fleet
Full bidirectional control: dynamic print preparation, exclude-objects, live extruder temps, filament runout, and camera streaming.
Community Safe-Mode
Local MQTT broker connection for real-time telemetry, stage tracking, AMS slot monitoring, and FTPS file transmission without cloud dependency.
Verified Fleet
Standard OctoPrint v1 REST API support: live telemetry polling, SD/local file uploads, job slicing triggers, and MJPEG webcams.
Verified Fleet
Native CrealityOS Moonraker bridge with verified automated print safety, lidar calibration checks, and chamber temperature telemetry.
Verified Fleet
Verified fleet adapter for Snapmaker high-combo series. Multi-toolhead support, automated calibration, and G-code execution.
Community Safe-Mode
Prusa MK4, XL, and MINI telemetry polling, background G-code upload via Digest authentication, and print stage reporting.
Verified Fleet
Active chamber heating telemetry, high-temp nozzle monitoring, and Moonraker protocol compliance for engineering-grade materials.
Experimental Safe-Mode
Elegoo Smart Device Control Protocol (SDCP) over WebSocket. Safe-Mode enabled: Upload-Only transfer without unverified auto-starts.
Experimental Safe-Mode
Community-developed adapter for Anycubic Kobra series. Strictly defaults to Safe-Mode (Upload-Only) to protect user hardware.
Schema & Variable Reference Dictionary
Detailed reference for all profile-v2 properties, types, constraints, and valid enum values:
| Property / Variable | Type | Description | Constraints & Enums | Examples |
|---|---|---|---|---|
| idREQUIRED | string | Unique identifier for the printer bridge profile. | Regex pattern: ^community\.[a-z0-9-]+\.bridge$ | community.moonraker-v2.bridgecommunity.bambu-lan-v2.bridge |
| schemaVersionREQUIRED | integer | Specification version of the driver contract. | Must equal exactly 2. | 2 |
| versionREQUIRED | string | SemVer release version of the profile definition. | SemVer format (MAJOR.MINOR.PATCH) | 1.0.02.0.0 |
| identity.nameREQUIRED | string | Human-readable title displayed in MakerSpell printer selector. | Length: 3 to 64 characters. | Moonraker v2 Compatibility BridgeBambu Lab LAN Mode |
| identity.statusREQUIRED | enum | Lifecycle safety tier determining execution privileges. | Strictly evaluated against AGENTS.md Hardware Safety Rule 3. verifiedcompatibilityBridgecommunitySafeModeexperimentaldeprecated | verifiedcommunitySafeMode |
| identity.delegateContracts | string[] | Capabilities delegated to the native protocol handler. | Subset of valid capability contracts. statusuploadjobControlprintPreparationcameraReadexcludeObjectstimelapses | ["status", "upload", "jobControl", "timelapses"] |
| permissionsREQUIRED | string[] | Explicit actions the adapter is permitted to trigger on the machine. | Unverified community hardware cannot declare "unrestrictedAutoStart". statusReadfileListReadfileUploaddeviceControlprintControlprintStartcameraRead | ["statusRead", "fileUpload", "cameraRead"] |
| credentials.typeREQUIRED | enum | Network authentication handshake requirement. | One of the supported auth mechanisms. noneoptionalTokenrequiredTokenbasicAuthdigestAuthlanCodeAndSerialapiKey | optionalTokendigestAuth |
| supportedFileTypesREQUIRED | string[] | Array of file extensions the printer firmware accepts. | Must declare at least one 3D printing file extension. | ["gcode"]["gcode", "gcode.gz", "bgcode", "3mf"] |
| discovery.serviceTypes | string[] | Zero-configuration mDNS service names for local network scan. | Must end with ._tcp.local or ._udp.local | ["_moonraker._tcp.local"]["_octoprint._tcp.local"] |
| discovery.portsREQUIRED | integer[] | 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.json2
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.mjs4
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-driverexample-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]
}
}