Skip to content

[REQUEST] Extending support for Ablemark M60 aka. Marklife X2 thermal printer #17

@TC-Patrick

Description

@TC-Patrick

Hey,

I just got a Marklife X2 thermal printer (also sold as the Ablemark M60 on amaz*n) and wanted to see if I could get it working. Thanks to the profile guide, I was able to find the BLE device and connect to it, but I haven't been able to actually print anything yet.

Here's the profile I'm using:

import type { DeviceProfile } from "../types.js";

export const m60Profile: DeviceProfile = {
  modelId: "m60",
  protocolId: "l11",                          // reuse existing protocol
  serviceUuid: "0000ff00-0000-1000-8000-00805f9b34fb",
  characteristics: {
    tx: "0000ff02-0000-1000-8000-00805f9b34fb",
    rx: "0000ff01-0000-1000-8000-00805f9b34fb",
    cx: "0000ff03-0000-1000-8000-00805f9b34fb", // optional — omit if no flow control char
  },
  packetSize: 95,                              // BLE write chunk size in bytes
  flowControl: {
    starvationTimeoutMs: 1000,
    packetDelayMs: 30,
  },
  defaults: { density: 2, paperType: "gap" },  // "gap" for label paper, "continuous" for receipt
  namePrefixes: ["X2", "M60"],                 // BLE advertised name prefixes
};

thermoprint-debug-2026-04-30T19-45-37.zip

The reason I'm looking into this is that the printer is set up for sticky thermal labels, but I want to use standard 58mm thermal paper instead.
When I print on regular paper, I get small gaps between the printed images and text. Not sure if that's a hardware limitation or something configurable. I did notice some print settings in the reverse-engineered SDK that might help fix the gaps.

I'm happy to help with testing and adding support for this printer. If you're on Discord, we could probably figure this out pretty quickly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions