Releases: minlux/dymon
Release list
v2.5.0
USB Printer Discovery (Windows)
Both dymon_srv and dymon_pbm now accept --usb discover on Windows.
It lists all USB printers registered with usbprint.sys, showing the
friendly name, device path, and the exact --usb argument to use.
Useful for diagnosing USB connectivity issues when the printer is not found.
Fix USB Printer Usage (Windows)
dymon_srv --usb vid_XXXX was always failing with "Can't find any USB
connected DYMO" due to a stale &argv[1][4] left over from before the
argtable3 refactor. The correct dev variable (from argUsb->sval[0])
is now passed to usbprint_get_devicename. dymon_pbm was unaffected.
error: no signature found
v2.4.0
Changelog
V2.4.0
Synchronous operation
dymon_srv now processes POST /labels and POST /pbm synchronously.
Requests block until printing completes and the HTTP response reflects the
actual outcome of the operation.
Meaningful HTTP status codes
200 OK— label(s) printed successfully503 Service Unavailable— printer could not be reached (connect failed)500 Internal Server Error— printer was reached but print job failed mid-way
The JSON response body mirrors the status:
{"status":"OK"}, {"status":"Service Unavailable"}, {"status":"Internal Server Error"}
Printer reachability test (ping)
New test requests allow callers to check whether a printer is available
without actually printing anything:
POST /labelswith body[{}]or[{"ip":"<address>"}](no"text"field)POST /pbmwith an empty body
Both return 200 if the printer is reachable, 503 if not.
Internally this uses a new Dymon::ping() method implemented in the base
class, which does a connect + immediate disconnect with no side effects.
It works across all backends (network, USB, file) without any per-class
changes.
v2.3.1
Changelog
V2.3.1
Hostname support for --net and POST /labels
The --net option now accepts hostnames (e.g. my-printer.local) in addition
to IP addresses. Previously only dotted-decimal IP addresses were accepted.
The same applies to the "ip" property of JSON objects sent to POST /labels
on dymon_srv — hostnames are resolved there as well.
Internally, inet_addr() was replaced with getaddrinfo() in both the Linux
and Win32 network backends, enabling DNS/mDNS resolution before connecting on
port 9100.
macOS support
- Fixed the build on macOS (Linux sources are used, Apple Clang compatibility).
- Added
macos-setup.sh: a setup script that auto-installs Xcode Command Line
Tools, Homebrew, and CMake, then builds the project and runs a mock print
test end-to-end.
Addon: Deutsche Post Internetmarke (addons/briefmarke/)
New Python helper script extract_datamatrix.py that extracts the DataMatrix
code from a Deutsche Post Internetmarke PDF and converts it to a P4 PBM file.
The resulting PBM can be printed directly with dymon_pbm, effectively
printing a postage stamp on a label.
v2.3.0
V2.3.0
First tagged release.
Automated Windows builds via GitHub Actions
A GitHub Actions workflow (.github/workflows/release.yml) was introduced.
Pushing a v* tag now automatically cross-compiles Windows x64 binaries
(dymon_pbm.exe, dymon_srv.exe, txt2pbm.exe) using MinGW-w64, packages
them into dymon-windows-x64.zip, and publishes a GitHub release with the
zip attached as a download asset.
Key features at this release
dymon_srvHTTP print server withPOST /labels(JSON) andPOST /pbm
(raw or base64 P4 PBM) endpoints; accepts a single object or array of objects.txt2pbmtool to convert formatted text (with markup) into a P4 PBM file.dymon_pbmtool to print a P4 PBM file directly from the command line.--dirflag ondymon_srvto write labels as PBM files to a directory
instead of printing (useful for testing without hardware).metafield inPOST /labelspayload, stored as a PBM comment when using
--dirmode.- LabelWriter 450 support via
--model 450. /wpmproxy endpoint to reach the REST API from an HTTPS context via
window.postMessage.- OpenAPI description of the REST endpoints (
doc/dymon_srv.yaml).