@thermal-label/brother-ql-core 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +83 -12
- package/data/devices.json +442 -24
- package/data/media.json +56 -56
- package/dist/__tests__/devices.test.js +1 -0
- package/dist/__tests__/devices.test.js.map +1 -1
- package/dist/__tests__/media.test.js +7 -7
- package/dist/__tests__/protocol.test.js +1 -1
- package/dist/__tests__/status.test.js +56 -15
- package/dist/__tests__/status.test.js.map +1 -1
- package/dist/devices.d.ts +711 -2
- package/dist/devices.d.ts.map +1 -1
- package/dist/devices.generated.d.ts +44 -11
- package/dist/devices.generated.d.ts.map +1 -1
- package/dist/devices.generated.js +77 -32
- package/dist/devices.generated.js.map +1 -1
- package/dist/devices.js +6 -2
- package/dist/devices.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/media.d.ts +1 -1
- package/dist/media.generated.d.ts.map +1 -1
- package/dist/media.generated.js +114 -112
- package/dist/media.generated.js.map +1 -1
- package/dist/media.js +3 -3
- package/dist/protocol.js +4 -4
- package/dist/status.d.ts +8 -5
- package/dist/status.d.ts.map +1 -1
- package/dist/status.js +43 -7
- package/dist/status.js.map +1 -1
- package/dist/types.d.ts +7 -14
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/__tests__/devices.test.ts +1 -0
- package/src/__tests__/media.test.ts +7 -7
- package/src/__tests__/protocol.test.ts +1 -1
- package/src/__tests__/status.test.ts +66 -16
- package/src/devices.generated.ts +98 -40
- package/src/devices.ts +7 -2
- package/src/index.ts +2 -0
- package/src/media.generated.ts +115 -114
- package/src/media.ts +3 -3
- package/src/protocol.ts +4 -4
- package/src/status.ts +47 -8
- package/src/types.ts +7 -14
package/dist/devices.d.ts
CHANGED
|
@@ -1,6 +1,715 @@
|
|
|
1
1
|
import type { BrotherQLDevice } from './types.js';
|
|
2
|
-
import { DEVICES
|
|
3
|
-
export
|
|
2
|
+
import { DEVICES } from './devices.generated.js';
|
|
3
|
+
export declare const DEVICE_REGISTRY: {
|
|
4
|
+
readonly schemaVersion: 1;
|
|
5
|
+
readonly driver: "brother-ql";
|
|
6
|
+
readonly devices: readonly [{
|
|
7
|
+
readonly key: "PT_E550W";
|
|
8
|
+
readonly name: "PT-E550W";
|
|
9
|
+
readonly family: "brother-ql";
|
|
10
|
+
readonly transports: {
|
|
11
|
+
readonly usb: {
|
|
12
|
+
readonly vid: "0x04f9";
|
|
13
|
+
readonly pid: "0x2060";
|
|
14
|
+
};
|
|
15
|
+
readonly tcp: {
|
|
16
|
+
readonly port: 9100;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
readonly engines: readonly [{
|
|
20
|
+
readonly role: "primary";
|
|
21
|
+
readonly protocol: "pt-raster";
|
|
22
|
+
readonly dpi: 180;
|
|
23
|
+
readonly headDots: 128;
|
|
24
|
+
readonly mediaCompatibility: readonly ["tze", "hse-2to1", "hse-3to1"];
|
|
25
|
+
readonly capabilities: {
|
|
26
|
+
readonly autocut: true;
|
|
27
|
+
readonly mediaDetection: true;
|
|
28
|
+
readonly highResDpi: 360;
|
|
29
|
+
};
|
|
30
|
+
}];
|
|
31
|
+
readonly hardwareQuirks: "Cutter requires compression to be enabled — encoder enforces this when (autocut: true && compress: false). Source: nbuchwitz/ptouch:PTE550W (\"E550W requires compression ON for cutting to work\"). Pin configurations from Brother spec cv_pte550wp750wp710bt_eng_raster_102.pdf p.20 §2.3, transcribed into media.json5 via nbuchwitz/ptouch.";
|
|
32
|
+
readonly support: {
|
|
33
|
+
readonly status: "untested";
|
|
34
|
+
};
|
|
35
|
+
readonly supportStatus: "unverified";
|
|
36
|
+
}, {
|
|
37
|
+
readonly key: "PT_P750W";
|
|
38
|
+
readonly name: "PT-P750W";
|
|
39
|
+
readonly family: "brother-ql";
|
|
40
|
+
readonly transports: {
|
|
41
|
+
readonly usb: {
|
|
42
|
+
readonly vid: "0x04f9";
|
|
43
|
+
readonly pid: "0x2062";
|
|
44
|
+
};
|
|
45
|
+
readonly tcp: {
|
|
46
|
+
readonly port: 9100;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
readonly engines: readonly [{
|
|
50
|
+
readonly role: "primary";
|
|
51
|
+
readonly protocol: "pt-raster";
|
|
52
|
+
readonly dpi: 180;
|
|
53
|
+
readonly headDots: 128;
|
|
54
|
+
readonly mediaCompatibility: readonly ["tze", "hse-2to1", "hse-3to1"];
|
|
55
|
+
readonly capabilities: {
|
|
56
|
+
readonly autocut: true;
|
|
57
|
+
readonly mediaDetection: true;
|
|
58
|
+
readonly highResDpi: 360;
|
|
59
|
+
};
|
|
60
|
+
}];
|
|
61
|
+
readonly capabilities: {
|
|
62
|
+
readonly massStoragePid: "0x2065";
|
|
63
|
+
};
|
|
64
|
+
readonly hardwareQuirks: "PID disagreement between driver projects on which mode 0x2062 vs 0x2065 represents: libptouch.c says 0x2062 is the printer PID and 0x2065 is PLite mass-storage; nbuchwitz/ptouch says 0x2065 is the printer PID. We treat libptouch.c as authoritative; flip via a contributor report if discovery fails on real hardware. Pin configurations from Brother spec cv_pte550wp750wp710bt_eng_raster_102.pdf p.20 §2.3.";
|
|
65
|
+
readonly support: {
|
|
66
|
+
readonly status: "untested";
|
|
67
|
+
};
|
|
68
|
+
readonly supportStatus: "unverified";
|
|
69
|
+
}, {
|
|
70
|
+
readonly key: "PT_P900";
|
|
71
|
+
readonly name: "PT-P900";
|
|
72
|
+
readonly family: "brother-ql";
|
|
73
|
+
readonly transports: {
|
|
74
|
+
readonly usb: {
|
|
75
|
+
readonly vid: "0x04f9";
|
|
76
|
+
readonly pid: "0x2083";
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
readonly engines: readonly [{
|
|
80
|
+
readonly role: "primary";
|
|
81
|
+
readonly protocol: "pt-raster";
|
|
82
|
+
readonly dpi: 360;
|
|
83
|
+
readonly headDots: 560;
|
|
84
|
+
readonly mediaCompatibility: readonly ["tze", "hse-2to1", "hse-3to1"];
|
|
85
|
+
readonly capabilities: {
|
|
86
|
+
readonly autocut: true;
|
|
87
|
+
readonly mediaDetection: true;
|
|
88
|
+
readonly highResDpi: 720;
|
|
89
|
+
};
|
|
90
|
+
}];
|
|
91
|
+
readonly hardwareQuirks: "Pin configurations from Brother spec cv_ptp900_eng_raster_102.pdf pp.23-24 §2.3.5, transcribed into media.json5 via nbuchwitz/ptouch:PTP900Series. Note nbuchwitz/ptouch:PTP900Series.DEFAULT_USE_COMPRESSION = False — unlike PT-E550W, P900 does NOT require compression for the cutter.";
|
|
92
|
+
readonly support: {
|
|
93
|
+
readonly status: "untested";
|
|
94
|
+
};
|
|
95
|
+
readonly supportStatus: "unverified";
|
|
96
|
+
}, {
|
|
97
|
+
readonly key: "PT_P900W";
|
|
98
|
+
readonly name: "PT-P900W";
|
|
99
|
+
readonly family: "brother-ql";
|
|
100
|
+
readonly transports: {
|
|
101
|
+
readonly usb: {
|
|
102
|
+
readonly vid: "0x04f9";
|
|
103
|
+
readonly pid: "0x2085";
|
|
104
|
+
};
|
|
105
|
+
readonly tcp: {
|
|
106
|
+
readonly port: 9100;
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
readonly engines: readonly [{
|
|
110
|
+
readonly role: "primary";
|
|
111
|
+
readonly protocol: "pt-raster";
|
|
112
|
+
readonly dpi: 360;
|
|
113
|
+
readonly headDots: 560;
|
|
114
|
+
readonly mediaCompatibility: readonly ["tze", "hse-2to1", "hse-3to1"];
|
|
115
|
+
readonly capabilities: {
|
|
116
|
+
readonly autocut: true;
|
|
117
|
+
readonly mediaDetection: true;
|
|
118
|
+
readonly highResDpi: 720;
|
|
119
|
+
};
|
|
120
|
+
}];
|
|
121
|
+
readonly hardwareQuirks: "PID 0x2085 sourced from nbuchwitz/ptouch:PTP900W; not in most public USB-ID databases — phase 4 hardware verification should confirm.";
|
|
122
|
+
readonly support: {
|
|
123
|
+
readonly status: "untested";
|
|
124
|
+
};
|
|
125
|
+
readonly supportStatus: "unverified";
|
|
126
|
+
}, {
|
|
127
|
+
readonly key: "PT_P910BT";
|
|
128
|
+
readonly name: "PT-P910BT";
|
|
129
|
+
readonly family: "brother-ql";
|
|
130
|
+
readonly transports: {
|
|
131
|
+
readonly usb: {
|
|
132
|
+
readonly vid: "0x04f9";
|
|
133
|
+
readonly pid: "0x20c7";
|
|
134
|
+
};
|
|
135
|
+
readonly "bluetooth-spp": {
|
|
136
|
+
readonly namePrefix: "PT-P910";
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
readonly engines: readonly [{
|
|
140
|
+
readonly role: "primary";
|
|
141
|
+
readonly protocol: "pt-raster";
|
|
142
|
+
readonly dpi: 360;
|
|
143
|
+
readonly headDots: 560;
|
|
144
|
+
readonly mediaCompatibility: readonly ["tze"];
|
|
145
|
+
readonly capabilities: {
|
|
146
|
+
readonly autocut: true;
|
|
147
|
+
readonly mediaDetection: true;
|
|
148
|
+
readonly highResDpi: 720;
|
|
149
|
+
};
|
|
150
|
+
}];
|
|
151
|
+
readonly hardwareQuirks: "Bluetooth assumed classic SPP per nbuchwitz/ptouch — phase 4 hardware verification should confirm classic vs BLE GATT before users rely on it. HSe heat-shrink unsupported (TZe-only); engine.mediaCompatibility excludes hse-2to1 and hse-3to1 so the lookup never returns those entries.";
|
|
152
|
+
readonly support: {
|
|
153
|
+
readonly status: "untested";
|
|
154
|
+
};
|
|
155
|
+
readonly supportStatus: "unverified";
|
|
156
|
+
}, {
|
|
157
|
+
readonly key: "PT_P950NW";
|
|
158
|
+
readonly name: "PT-P950NW";
|
|
159
|
+
readonly family: "brother-ql";
|
|
160
|
+
readonly transports: {
|
|
161
|
+
readonly usb: {
|
|
162
|
+
readonly vid: "0x04f9";
|
|
163
|
+
readonly pid: "0x2086";
|
|
164
|
+
};
|
|
165
|
+
readonly tcp: {
|
|
166
|
+
readonly port: 9100;
|
|
167
|
+
};
|
|
168
|
+
};
|
|
169
|
+
readonly engines: readonly [{
|
|
170
|
+
readonly role: "primary";
|
|
171
|
+
readonly protocol: "pt-raster";
|
|
172
|
+
readonly dpi: 360;
|
|
173
|
+
readonly headDots: 560;
|
|
174
|
+
readonly mediaCompatibility: readonly ["tze", "hse-2to1", "hse-3to1"];
|
|
175
|
+
readonly capabilities: {
|
|
176
|
+
readonly autocut: true;
|
|
177
|
+
readonly mediaDetection: true;
|
|
178
|
+
readonly highResDpi: 720;
|
|
179
|
+
};
|
|
180
|
+
}];
|
|
181
|
+
readonly hardwareQuirks: "PID 0x2086 sourced from nbuchwitz/ptouch:PTP950NW. Pin configurations from Brother spec cv_ptp900_eng_raster_102.pdf via nbuchwitz/ptouch.";
|
|
182
|
+
readonly support: {
|
|
183
|
+
readonly status: "untested";
|
|
184
|
+
};
|
|
185
|
+
readonly supportStatus: "unverified";
|
|
186
|
+
}, {
|
|
187
|
+
readonly key: "QL_1050";
|
|
188
|
+
readonly name: "QL-1050";
|
|
189
|
+
readonly family: "brother-ql";
|
|
190
|
+
readonly transports: {
|
|
191
|
+
readonly usb: {
|
|
192
|
+
readonly vid: "0x04f9";
|
|
193
|
+
readonly pid: "0x2027";
|
|
194
|
+
};
|
|
195
|
+
};
|
|
196
|
+
readonly engines: readonly [{
|
|
197
|
+
readonly role: "primary";
|
|
198
|
+
readonly protocol: "ql-raster";
|
|
199
|
+
readonly dpi: 300;
|
|
200
|
+
readonly headDots: 1296;
|
|
201
|
+
readonly mediaCompatibility: readonly ["dk", "dk-wide"];
|
|
202
|
+
readonly capabilities: {
|
|
203
|
+
readonly autocut: true;
|
|
204
|
+
readonly mediaDetection: true;
|
|
205
|
+
};
|
|
206
|
+
}];
|
|
207
|
+
readonly support: {
|
|
208
|
+
readonly status: "untested";
|
|
209
|
+
};
|
|
210
|
+
readonly supportStatus: "expected";
|
|
211
|
+
}, {
|
|
212
|
+
readonly key: "QL_1060N";
|
|
213
|
+
readonly name: "QL-1060N";
|
|
214
|
+
readonly family: "brother-ql";
|
|
215
|
+
readonly transports: {
|
|
216
|
+
readonly usb: {
|
|
217
|
+
readonly vid: "0x04f9";
|
|
218
|
+
readonly pid: "0x2028";
|
|
219
|
+
};
|
|
220
|
+
readonly tcp: {
|
|
221
|
+
readonly port: 9100;
|
|
222
|
+
};
|
|
223
|
+
};
|
|
224
|
+
readonly engines: readonly [{
|
|
225
|
+
readonly role: "primary";
|
|
226
|
+
readonly protocol: "ql-raster";
|
|
227
|
+
readonly dpi: 300;
|
|
228
|
+
readonly headDots: 1296;
|
|
229
|
+
readonly mediaCompatibility: readonly ["dk", "dk-wide"];
|
|
230
|
+
readonly capabilities: {
|
|
231
|
+
readonly autocut: true;
|
|
232
|
+
readonly mediaDetection: true;
|
|
233
|
+
};
|
|
234
|
+
}];
|
|
235
|
+
readonly support: {
|
|
236
|
+
readonly status: "untested";
|
|
237
|
+
};
|
|
238
|
+
readonly supportStatus: "expected";
|
|
239
|
+
}, {
|
|
240
|
+
readonly key: "QL_1100";
|
|
241
|
+
readonly name: "QL-1100";
|
|
242
|
+
readonly family: "brother-ql";
|
|
243
|
+
readonly transports: {
|
|
244
|
+
readonly usb: {
|
|
245
|
+
readonly vid: "0x04f9";
|
|
246
|
+
readonly pid: "0x20a7";
|
|
247
|
+
};
|
|
248
|
+
};
|
|
249
|
+
readonly engines: readonly [{
|
|
250
|
+
readonly role: "primary";
|
|
251
|
+
readonly protocol: "ql-raster";
|
|
252
|
+
readonly dpi: 300;
|
|
253
|
+
readonly headDots: 1296;
|
|
254
|
+
readonly mediaCompatibility: readonly ["dk", "dk-wide"];
|
|
255
|
+
readonly capabilities: {
|
|
256
|
+
readonly autocut: true;
|
|
257
|
+
readonly mediaDetection: true;
|
|
258
|
+
};
|
|
259
|
+
}];
|
|
260
|
+
readonly capabilities: {
|
|
261
|
+
readonly editorLite: true;
|
|
262
|
+
readonly massStoragePid: "0x20a9";
|
|
263
|
+
};
|
|
264
|
+
readonly support: {
|
|
265
|
+
readonly status: "untested";
|
|
266
|
+
};
|
|
267
|
+
readonly supportStatus: "expected";
|
|
268
|
+
}, {
|
|
269
|
+
readonly key: "QL_1110NWB";
|
|
270
|
+
readonly name: "QL-1110NWB";
|
|
271
|
+
readonly family: "brother-ql";
|
|
272
|
+
readonly transports: {
|
|
273
|
+
readonly usb: {
|
|
274
|
+
readonly vid: "0x04f9";
|
|
275
|
+
readonly pid: "0x20a8";
|
|
276
|
+
};
|
|
277
|
+
readonly tcp: {
|
|
278
|
+
readonly port: 9100;
|
|
279
|
+
};
|
|
280
|
+
};
|
|
281
|
+
readonly engines: readonly [{
|
|
282
|
+
readonly role: "primary";
|
|
283
|
+
readonly protocol: "ql-raster";
|
|
284
|
+
readonly dpi: 300;
|
|
285
|
+
readonly headDots: 1296;
|
|
286
|
+
readonly mediaCompatibility: readonly ["dk", "dk-wide"];
|
|
287
|
+
readonly capabilities: {
|
|
288
|
+
readonly autocut: true;
|
|
289
|
+
readonly mediaDetection: true;
|
|
290
|
+
};
|
|
291
|
+
}];
|
|
292
|
+
readonly capabilities: {
|
|
293
|
+
readonly editorLite: true;
|
|
294
|
+
readonly massStoragePid: "0x20aa";
|
|
295
|
+
};
|
|
296
|
+
readonly support: {
|
|
297
|
+
readonly status: "untested";
|
|
298
|
+
};
|
|
299
|
+
readonly supportStatus: "expected";
|
|
300
|
+
}, {
|
|
301
|
+
readonly key: "QL_1115NWB";
|
|
302
|
+
readonly name: "QL-1115NWB";
|
|
303
|
+
readonly family: "brother-ql";
|
|
304
|
+
readonly transports: {
|
|
305
|
+
readonly usb: {
|
|
306
|
+
readonly vid: "0x04f9";
|
|
307
|
+
readonly pid: "0x20ab";
|
|
308
|
+
};
|
|
309
|
+
readonly tcp: {
|
|
310
|
+
readonly port: 9100;
|
|
311
|
+
};
|
|
312
|
+
};
|
|
313
|
+
readonly engines: readonly [{
|
|
314
|
+
readonly role: "primary";
|
|
315
|
+
readonly protocol: "ql-raster";
|
|
316
|
+
readonly dpi: 300;
|
|
317
|
+
readonly headDots: 1296;
|
|
318
|
+
readonly mediaCompatibility: readonly ["dk", "dk-wide"];
|
|
319
|
+
readonly capabilities: {
|
|
320
|
+
readonly autocut: true;
|
|
321
|
+
readonly mediaDetection: true;
|
|
322
|
+
};
|
|
323
|
+
}];
|
|
324
|
+
readonly capabilities: {
|
|
325
|
+
readonly editorLite: true;
|
|
326
|
+
readonly massStoragePid: "0x20ac";
|
|
327
|
+
};
|
|
328
|
+
readonly support: {
|
|
329
|
+
readonly status: "untested";
|
|
330
|
+
};
|
|
331
|
+
readonly supportStatus: "expected";
|
|
332
|
+
}, {
|
|
333
|
+
readonly key: "QL_500";
|
|
334
|
+
readonly name: "QL-500";
|
|
335
|
+
readonly family: "brother-ql";
|
|
336
|
+
readonly transports: {
|
|
337
|
+
readonly usb: {
|
|
338
|
+
readonly vid: "0x04f9";
|
|
339
|
+
readonly pid: "0x2013";
|
|
340
|
+
};
|
|
341
|
+
};
|
|
342
|
+
readonly engines: readonly [{
|
|
343
|
+
readonly role: "primary";
|
|
344
|
+
readonly protocol: "ql-raster";
|
|
345
|
+
readonly dpi: 300;
|
|
346
|
+
readonly headDots: 720;
|
|
347
|
+
readonly mediaCompatibility: readonly ["dk"];
|
|
348
|
+
readonly capabilities: {
|
|
349
|
+
readonly mediaDetection: true;
|
|
350
|
+
};
|
|
351
|
+
}];
|
|
352
|
+
readonly support: {
|
|
353
|
+
readonly status: "untested";
|
|
354
|
+
};
|
|
355
|
+
readonly supportStatus: "expected";
|
|
356
|
+
}, {
|
|
357
|
+
readonly key: "QL_550";
|
|
358
|
+
readonly name: "QL-550";
|
|
359
|
+
readonly family: "brother-ql";
|
|
360
|
+
readonly transports: {
|
|
361
|
+
readonly usb: {
|
|
362
|
+
readonly vid: "0x04f9";
|
|
363
|
+
readonly pid: "0x2016";
|
|
364
|
+
};
|
|
365
|
+
};
|
|
366
|
+
readonly engines: readonly [{
|
|
367
|
+
readonly role: "primary";
|
|
368
|
+
readonly protocol: "ql-raster";
|
|
369
|
+
readonly dpi: 300;
|
|
370
|
+
readonly headDots: 720;
|
|
371
|
+
readonly mediaCompatibility: readonly ["dk"];
|
|
372
|
+
readonly capabilities: {
|
|
373
|
+
readonly mediaDetection: true;
|
|
374
|
+
};
|
|
375
|
+
}];
|
|
376
|
+
readonly support: {
|
|
377
|
+
readonly status: "untested";
|
|
378
|
+
};
|
|
379
|
+
readonly supportStatus: "expected";
|
|
380
|
+
}, {
|
|
381
|
+
readonly key: "QL_560";
|
|
382
|
+
readonly name: "QL-560";
|
|
383
|
+
readonly family: "brother-ql";
|
|
384
|
+
readonly transports: {
|
|
385
|
+
readonly usb: {
|
|
386
|
+
readonly vid: "0x04f9";
|
|
387
|
+
readonly pid: "0x2018";
|
|
388
|
+
};
|
|
389
|
+
};
|
|
390
|
+
readonly engines: readonly [{
|
|
391
|
+
readonly role: "primary";
|
|
392
|
+
readonly protocol: "ql-raster";
|
|
393
|
+
readonly dpi: 300;
|
|
394
|
+
readonly headDots: 720;
|
|
395
|
+
readonly mediaCompatibility: readonly ["dk"];
|
|
396
|
+
readonly capabilities: {
|
|
397
|
+
readonly autocut: true;
|
|
398
|
+
readonly mediaDetection: true;
|
|
399
|
+
};
|
|
400
|
+
}];
|
|
401
|
+
readonly support: {
|
|
402
|
+
readonly status: "untested";
|
|
403
|
+
};
|
|
404
|
+
readonly supportStatus: "expected";
|
|
405
|
+
}, {
|
|
406
|
+
readonly key: "QL_570";
|
|
407
|
+
readonly name: "QL-570";
|
|
408
|
+
readonly family: "brother-ql";
|
|
409
|
+
readonly transports: {
|
|
410
|
+
readonly usb: {
|
|
411
|
+
readonly vid: "0x04f9";
|
|
412
|
+
readonly pid: "0x2019";
|
|
413
|
+
};
|
|
414
|
+
};
|
|
415
|
+
readonly engines: readonly [{
|
|
416
|
+
readonly role: "primary";
|
|
417
|
+
readonly protocol: "ql-raster";
|
|
418
|
+
readonly dpi: 300;
|
|
419
|
+
readonly headDots: 720;
|
|
420
|
+
readonly mediaCompatibility: readonly ["dk"];
|
|
421
|
+
readonly capabilities: {
|
|
422
|
+
readonly autocut: true;
|
|
423
|
+
readonly mediaDetection: true;
|
|
424
|
+
};
|
|
425
|
+
}];
|
|
426
|
+
readonly support: {
|
|
427
|
+
readonly status: "untested";
|
|
428
|
+
};
|
|
429
|
+
readonly supportStatus: "expected";
|
|
430
|
+
}, {
|
|
431
|
+
readonly key: "QL_580N";
|
|
432
|
+
readonly name: "QL-580N";
|
|
433
|
+
readonly family: "brother-ql";
|
|
434
|
+
readonly transports: {
|
|
435
|
+
readonly usb: {
|
|
436
|
+
readonly vid: "0x04f9";
|
|
437
|
+
readonly pid: "0x201b";
|
|
438
|
+
};
|
|
439
|
+
readonly tcp: {
|
|
440
|
+
readonly port: 9100;
|
|
441
|
+
};
|
|
442
|
+
};
|
|
443
|
+
readonly engines: readonly [{
|
|
444
|
+
readonly role: "primary";
|
|
445
|
+
readonly protocol: "ql-raster";
|
|
446
|
+
readonly dpi: 300;
|
|
447
|
+
readonly headDots: 720;
|
|
448
|
+
readonly mediaCompatibility: readonly ["dk"];
|
|
449
|
+
readonly capabilities: {
|
|
450
|
+
readonly autocut: true;
|
|
451
|
+
readonly mediaDetection: true;
|
|
452
|
+
};
|
|
453
|
+
}];
|
|
454
|
+
readonly support: {
|
|
455
|
+
readonly status: "untested";
|
|
456
|
+
};
|
|
457
|
+
readonly supportStatus: "expected";
|
|
458
|
+
}, {
|
|
459
|
+
readonly key: "QL_600";
|
|
460
|
+
readonly name: "QL-600";
|
|
461
|
+
readonly family: "brother-ql";
|
|
462
|
+
readonly transports: {
|
|
463
|
+
readonly usb: {
|
|
464
|
+
readonly vid: "0x04f9";
|
|
465
|
+
readonly pid: "0x2100";
|
|
466
|
+
};
|
|
467
|
+
};
|
|
468
|
+
readonly engines: readonly [{
|
|
469
|
+
readonly role: "primary";
|
|
470
|
+
readonly protocol: "ql-raster";
|
|
471
|
+
readonly dpi: 300;
|
|
472
|
+
readonly headDots: 720;
|
|
473
|
+
readonly mediaCompatibility: readonly ["dk"];
|
|
474
|
+
readonly capabilities: {
|
|
475
|
+
readonly autocut: true;
|
|
476
|
+
readonly mediaDetection: true;
|
|
477
|
+
};
|
|
478
|
+
}];
|
|
479
|
+
readonly support: {
|
|
480
|
+
readonly status: "untested";
|
|
481
|
+
};
|
|
482
|
+
readonly supportStatus: "expected";
|
|
483
|
+
}, {
|
|
484
|
+
readonly key: "QL_650TD";
|
|
485
|
+
readonly name: "QL-650TD";
|
|
486
|
+
readonly family: "brother-ql";
|
|
487
|
+
readonly transports: {
|
|
488
|
+
readonly usb: {
|
|
489
|
+
readonly vid: "0x04f9";
|
|
490
|
+
readonly pid: "0x201c";
|
|
491
|
+
};
|
|
492
|
+
};
|
|
493
|
+
readonly engines: readonly [{
|
|
494
|
+
readonly role: "primary";
|
|
495
|
+
readonly protocol: "ql-raster";
|
|
496
|
+
readonly dpi: 300;
|
|
497
|
+
readonly headDots: 720;
|
|
498
|
+
readonly mediaCompatibility: readonly ["dk"];
|
|
499
|
+
readonly capabilities: {
|
|
500
|
+
readonly autocut: true;
|
|
501
|
+
readonly mediaDetection: true;
|
|
502
|
+
};
|
|
503
|
+
}];
|
|
504
|
+
readonly support: {
|
|
505
|
+
readonly status: "untested";
|
|
506
|
+
};
|
|
507
|
+
readonly supportStatus: "expected";
|
|
508
|
+
}, {
|
|
509
|
+
readonly key: "QL_700";
|
|
510
|
+
readonly name: "QL-700";
|
|
511
|
+
readonly family: "brother-ql";
|
|
512
|
+
readonly transports: {
|
|
513
|
+
readonly usb: {
|
|
514
|
+
readonly vid: "0x04f9";
|
|
515
|
+
readonly pid: "0x2042";
|
|
516
|
+
};
|
|
517
|
+
};
|
|
518
|
+
readonly engines: readonly [{
|
|
519
|
+
readonly role: "primary";
|
|
520
|
+
readonly protocol: "ql-raster";
|
|
521
|
+
readonly dpi: 300;
|
|
522
|
+
readonly headDots: 720;
|
|
523
|
+
readonly mediaCompatibility: readonly ["dk"];
|
|
524
|
+
readonly capabilities: {
|
|
525
|
+
readonly autocut: true;
|
|
526
|
+
readonly mediaDetection: true;
|
|
527
|
+
};
|
|
528
|
+
}];
|
|
529
|
+
readonly capabilities: {
|
|
530
|
+
readonly editorLite: true;
|
|
531
|
+
};
|
|
532
|
+
readonly hardwareQuirks: "Cassette-based media detection. Printer hard-rejects with an error code if the host job dimensions do not match the loaded DK cassette. Apps that compare detected vs selected media should switch to the matching cassette before sending.";
|
|
533
|
+
readonly support: {
|
|
534
|
+
readonly status: "untested";
|
|
535
|
+
};
|
|
536
|
+
readonly supportStatus: "expected";
|
|
537
|
+
}, {
|
|
538
|
+
readonly key: "QL_710W";
|
|
539
|
+
readonly name: "QL-710W";
|
|
540
|
+
readonly family: "brother-ql";
|
|
541
|
+
readonly transports: {
|
|
542
|
+
readonly usb: {
|
|
543
|
+
readonly vid: "0x04f9";
|
|
544
|
+
readonly pid: "0x2044";
|
|
545
|
+
};
|
|
546
|
+
readonly tcp: {
|
|
547
|
+
readonly port: 9100;
|
|
548
|
+
};
|
|
549
|
+
};
|
|
550
|
+
readonly engines: readonly [{
|
|
551
|
+
readonly role: "primary";
|
|
552
|
+
readonly protocol: "ql-raster";
|
|
553
|
+
readonly dpi: 300;
|
|
554
|
+
readonly headDots: 720;
|
|
555
|
+
readonly mediaCompatibility: readonly ["dk"];
|
|
556
|
+
readonly capabilities: {
|
|
557
|
+
readonly autocut: true;
|
|
558
|
+
readonly mediaDetection: true;
|
|
559
|
+
};
|
|
560
|
+
}];
|
|
561
|
+
readonly capabilities: {
|
|
562
|
+
readonly editorLite: true;
|
|
563
|
+
};
|
|
564
|
+
readonly support: {
|
|
565
|
+
readonly status: "untested";
|
|
566
|
+
};
|
|
567
|
+
readonly supportStatus: "expected";
|
|
568
|
+
}, {
|
|
569
|
+
readonly key: "QL_720NW";
|
|
570
|
+
readonly name: "QL-720NW";
|
|
571
|
+
readonly family: "brother-ql";
|
|
572
|
+
readonly transports: {
|
|
573
|
+
readonly usb: {
|
|
574
|
+
readonly vid: "0x04f9";
|
|
575
|
+
readonly pid: "0x2045";
|
|
576
|
+
};
|
|
577
|
+
readonly tcp: {
|
|
578
|
+
readonly port: 9100;
|
|
579
|
+
};
|
|
580
|
+
};
|
|
581
|
+
readonly engines: readonly [{
|
|
582
|
+
readonly role: "primary";
|
|
583
|
+
readonly protocol: "ql-raster";
|
|
584
|
+
readonly dpi: 300;
|
|
585
|
+
readonly headDots: 720;
|
|
586
|
+
readonly mediaCompatibility: readonly ["dk"];
|
|
587
|
+
readonly capabilities: {
|
|
588
|
+
readonly autocut: true;
|
|
589
|
+
readonly mediaDetection: true;
|
|
590
|
+
};
|
|
591
|
+
}];
|
|
592
|
+
readonly support: {
|
|
593
|
+
readonly status: "untested";
|
|
594
|
+
};
|
|
595
|
+
readonly supportStatus: "expected";
|
|
596
|
+
}, {
|
|
597
|
+
readonly key: "QL_800";
|
|
598
|
+
readonly name: "QL-800";
|
|
599
|
+
readonly family: "brother-ql";
|
|
600
|
+
readonly transports: {
|
|
601
|
+
readonly usb: {
|
|
602
|
+
readonly vid: "0x04f9";
|
|
603
|
+
readonly pid: "0x209b";
|
|
604
|
+
};
|
|
605
|
+
};
|
|
606
|
+
readonly engines: readonly [{
|
|
607
|
+
readonly role: "primary";
|
|
608
|
+
readonly protocol: "ql-raster";
|
|
609
|
+
readonly dpi: 300;
|
|
610
|
+
readonly headDots: 720;
|
|
611
|
+
readonly mediaCompatibility: readonly ["dk"];
|
|
612
|
+
readonly capabilities: {
|
|
613
|
+
readonly autocut: true;
|
|
614
|
+
readonly mediaDetection: true;
|
|
615
|
+
readonly twoColor: true;
|
|
616
|
+
};
|
|
617
|
+
}];
|
|
618
|
+
readonly capabilities: {
|
|
619
|
+
readonly editorLite: true;
|
|
620
|
+
};
|
|
621
|
+
readonly support: {
|
|
622
|
+
readonly status: "untested";
|
|
623
|
+
};
|
|
624
|
+
readonly supportStatus: "expected";
|
|
625
|
+
}, {
|
|
626
|
+
readonly key: "QL_810W";
|
|
627
|
+
readonly name: "QL-810W";
|
|
628
|
+
readonly family: "brother-ql";
|
|
629
|
+
readonly transports: {
|
|
630
|
+
readonly usb: {
|
|
631
|
+
readonly vid: "0x04f9";
|
|
632
|
+
readonly pid: "0x209c";
|
|
633
|
+
};
|
|
634
|
+
readonly tcp: {
|
|
635
|
+
readonly port: 9100;
|
|
636
|
+
};
|
|
637
|
+
};
|
|
638
|
+
readonly engines: readonly [{
|
|
639
|
+
readonly role: "primary";
|
|
640
|
+
readonly protocol: "ql-raster";
|
|
641
|
+
readonly dpi: 300;
|
|
642
|
+
readonly headDots: 720;
|
|
643
|
+
readonly mediaCompatibility: readonly ["dk"];
|
|
644
|
+
readonly capabilities: {
|
|
645
|
+
readonly autocut: true;
|
|
646
|
+
readonly mediaDetection: true;
|
|
647
|
+
readonly twoColor: true;
|
|
648
|
+
};
|
|
649
|
+
}];
|
|
650
|
+
readonly capabilities: {
|
|
651
|
+
readonly editorLite: true;
|
|
652
|
+
};
|
|
653
|
+
readonly support: {
|
|
654
|
+
readonly status: "untested";
|
|
655
|
+
};
|
|
656
|
+
readonly supportStatus: "expected";
|
|
657
|
+
}, {
|
|
658
|
+
readonly key: "QL_820NWBc";
|
|
659
|
+
readonly name: "QL-820NWBc";
|
|
660
|
+
readonly family: "brother-ql";
|
|
661
|
+
readonly transports: {
|
|
662
|
+
readonly usb: {
|
|
663
|
+
readonly vid: "0x04f9";
|
|
664
|
+
readonly pid: "0x209d";
|
|
665
|
+
};
|
|
666
|
+
readonly tcp: {
|
|
667
|
+
readonly port: 9100;
|
|
668
|
+
};
|
|
669
|
+
readonly "bluetooth-spp": {
|
|
670
|
+
readonly namePrefix: "QL-820NWB";
|
|
671
|
+
};
|
|
672
|
+
};
|
|
673
|
+
readonly engines: readonly [{
|
|
674
|
+
readonly role: "primary";
|
|
675
|
+
readonly protocol: "ql-raster";
|
|
676
|
+
readonly dpi: 300;
|
|
677
|
+
readonly headDots: 720;
|
|
678
|
+
readonly mediaCompatibility: readonly ["dk"];
|
|
679
|
+
readonly capabilities: {
|
|
680
|
+
readonly autocut: true;
|
|
681
|
+
readonly mediaDetection: true;
|
|
682
|
+
readonly twoColor: true;
|
|
683
|
+
};
|
|
684
|
+
}];
|
|
685
|
+
readonly capabilities: {
|
|
686
|
+
readonly editorLite: true;
|
|
687
|
+
};
|
|
688
|
+
readonly hardwareQuirks: "QL-820NWB and QL-820NWBc share PID 0x209d; this entry covers both marketing names. Bluetooth on this device is classic SPP (paired at the OS level via RFCOMM), not GATT — the runtime serial implementation opens the OS-paired RFCOMM device path. macOS dropped classic Bluetooth SPP support so that route is unavailable there; Linux and Windows both work.";
|
|
689
|
+
readonly support: {
|
|
690
|
+
readonly status: "verified";
|
|
691
|
+
readonly transports: {
|
|
692
|
+
readonly usb: "verified";
|
|
693
|
+
readonly tcp: "verified";
|
|
694
|
+
readonly "bluetooth-spp": "untested";
|
|
695
|
+
};
|
|
696
|
+
readonly lastVerified: "2026-04-27";
|
|
697
|
+
readonly packageVersion: "0.2.1";
|
|
698
|
+
readonly quirks: "Reference test device. Two-colour printing on DK-22251 confirmed, auto-cut works on USB and TCP, WebUSB demo prints correctly. The QL-820NWB and QL-820NWBc share PID 0x209d; this entry covers both marketing names.";
|
|
699
|
+
readonly reports: readonly [{
|
|
700
|
+
readonly issue: 0;
|
|
701
|
+
readonly reporter: "@mannes";
|
|
702
|
+
readonly date: "2026-04-27";
|
|
703
|
+
readonly result: "verified";
|
|
704
|
+
readonly os: "Linux";
|
|
705
|
+
readonly selfVerified: true;
|
|
706
|
+
readonly notes: "Bench verification by the maintainer at the time of seeding this entry. Issue #0 is a placeholder — replace with the real issue number when a public verification report is filed.";
|
|
707
|
+
}];
|
|
708
|
+
};
|
|
709
|
+
readonly supportStatus: "verified";
|
|
710
|
+
}];
|
|
711
|
+
};
|
|
712
|
+
export { DEVICES };
|
|
4
713
|
/**
|
|
5
714
|
* Numeric VID/PID extracted from a device's USB transport.
|
|
6
715
|
*
|