Tag Studio

Tap the field and use the mic key on your keyboard, then read the piece out loud.
Setting this up — start here

1 · Make it yours

Open Logos & graphics and add your logo — a PNG or SVG of solid black line art works best; photographs turn to mud at 203 dpi. Then open Settings and set your website, your social handles, and a SKU prefix (two or three letters, e.g. AC). Name your workspace under Vendor profile.

2 · Tell it what labels you have

Open Label stock and pick your stock, or type its size. Two numbers matter: across the head is how wide the label is on the roll, and along the feed is how far the printer advances for one label. A folding jewellery tag also needs the length of the printable head and where it creases.

3 · Connect the printer

On a computer — plug in over USB and press USB in Chrome or Edge. Fastest and most reliable. If it says the device is in use, remove the printer from your operating system's print queue first; this app talks to it directly.

On an iPhone or iPad — Safari cannot use Bluetooth, and Apple has said it never will. Install Bluefy from the App Store, open this page in it, and press Bluetooth. Switch the printer on first, and close any manufacturer app — Bluetooth allows one connection at a time.

Press Self-test once connected. It prints a small black bar. If that works, the printer is talking to you and anything else is a layout problem.

4 · Add your pieces

Three ways, all the same underneath. + Piece adds an empty row. Talk me through my pieces asks you one short question at a time and reads them aloud, so you can keep your hands on the work. Or type a whole piece into the quick bar and press Add.

Click any row to open it. Ring sizes take a size and a count each, so one row covers a whole run. Anything at zero is treated as made-to-order rather than sold out.

5 · Print

Tick the pieces you want, then Print run. Test one prints a single label first — worth doing on new stock. Nothing prints if a selected piece is missing a name, a price or a quantity; you will get a list of what to fill in.

If the first label lands off-centre, use the two Nudge boxes in Settings to walk it onto the die-cut a quarter-millimetre at a time.

6 · Getting it into your shop

Exports gives you a Shopify product CSV and a Square item CSV. The Shopify one sets each variant's barcode to its SKU, which is the same string the tag's QR encodes — so scanning a tag at the register finds the right variant. Import a couple of rows first and check the columns before doing the lot.

Live two-way Square sync is possible but needs a small server of your own holding your Square token — a token can never live in a web page. Ask whoever set this up.

Things worth knowing

Everything is stored on this device. Nothing is uploaded. Use Vendor profile → Export to back up or move to another device.

A thermal head spreads ink. If heavy strokes bleed and fine text fades, do not turn the darkness up — lower Logo / price weight and raise Small text weight in Settings instead.

Vendor profile

A profile is one vendor's whole workspace — branding, artwork, defaults, custom fields and stock. New vendor starts neutral so nothing of yours carries over; Duplicate keeps your setup as a starting point. Export hands someone a file they can import on their own device.
Label stock

Pick your stock or type its dimensions. Across the head is the web width; along the feed is one label's pitch. A folding tag also needs the length of the printable head and where it creases. Everything is rounded to whole bytes across the head, because a thermal row has to be a whole number of bytes.
Custom fields
Extra attributes for your own pieces — wood type, chain length, edition number, whatever the trade needs. Choose whether each one prints on the tag and whether it travels to Square as part of the variation.
Round stickers — 2″ packaging
Include the QR


Sized for 2″ (50.8mm) circles. Everything is fitted to the width actually available at its own height — a circle is narrower at the top and bottom — and kept clear of the die-cut edge.
Stones in stock
Counts for inlay stock. Saying the same stone again adds to its count, so you can walk the bench and keep talking. Tap a count to correct it.
Logos & graphics
Add a PNG, JPEG or SVG and it becomes selectable as the mark on any piece (the Mark dropdown on each card). Artwork is stored on this device only. Solid black-on-white line art prints best — photographs turn to mud at 203 dpi.

Settings
Rotate back panel 180°
Head at far end
Print QR code on the back
Fast Bluetooth writes


Sizes × qty takes a per-size count: 7x8, 6x5 is eight size 7s and five size 6s. A bare list (7,8,9) or a range (6-9, half sizes included) uses the row's Qty. Leave it blank for a piece with no size.

A thermal head blooms, so heavy strokes print fat and hairlines wash out. Logo / price weight negative thins the mark, price and piece name; Small text weight positive fattens the metal and website lines. Move in steps of 5–10 and keep Darkness low — cranking darkness to rescue the small text is what closes up the cursive.

Fast Bluetooth writes is off on purpose. Unacknowledged writes are fire-and-forget, and iOS silently drops them once its queue fills — the printer waits for rows that never arrive and prints nothing at all. Leave it off unless printing works and you want more speed.
Square

Pushes only the selected rows, so you can filter to one artist or drop, tick those, and update just them. Creates each variation in Square with its SKU, price, spec and count — or updates it if the SKU already exists.

Your Square listing titles are never rewritten — the website and its SEO keep running on them. The tag prints the short Tag name instead, because a 25mm face cannot hold a full listing title. The tag's QR carries the same SKU, so scanning it in Square POS pulls up the item.

The Square token lives on the worker, never in this page. Set it once with wrangler secret put SQUARE_TOKEN.
Exports


Print history is every run this device has sent — date, SKU, piece, price and how many. That is the file to build other data from.

Shopify products is a ready-to-import product CSV. The Variant Barcode is set to the SKU, which is the same string the tag's QR encodes — so a scan in Shopify POS resolves to the right variant. Pieces at zero stock import with continue selling so they stay orderable as special orders. Shopify + EAN-13 instead generates a numeric barcode in the prefix-2 range reserved for in-store use, for vendors whose scanner only reads 1D — note that value will not match the printed QR.

Square items is a first pass at a catalog upload. Check the column names against a real export from your own Square account before importing — their format varies by account and a wrong header gets the whole file rejected.
Connection log

    
Everything the Bluetooth stack reports, including the services and characteristics your printer actually exposes. If Connect is not working, open this, tap Connect printer, then copy what appears here.

If Connect is not working
1. The printer must be switched ON, with the lid closed and a roll loaded.
2. Close the Phomemo app, and in iOS Settings → Bluetooth tap the ⓘ next to the M220 and Forget This Device. Bluetooth Low Energy allows exactly one connection at a time — if the Phomemo app or an iOS pairing holds it, nothing else can reach it.
3. Give Bluefy Bluetooth permission: iOS Settings → Bluefy → Bluetooth on.
4. The chooser lists every nearby device, not just printers. Look for M220; some units advertise as M22O, PT- or a bare MAC address.
5. Still nothing? Open the Connection log above and send me what it says.

Bluetooth on a Mac: Chrome needs permission — System Settings → Privacy & Security → Bluetooth → switch Chrome on, then restart Chrome. Without it the chooser opens and stays empty. Safari cannot do it at all.

USB on a Mac: plug the printer in and press USB. If it reports that the device is in use, macOS's own print queue is holding it — System Settings → Printers & Scanners, remove M220, then try again. You only need that queue for the old Python studio.
Printing from an iPad
Safari cannot talk to Bluetooth — Apple has never shipped Web Bluetooth and has said it will not. Open this file in Bluefy (free on the App Store), which ships its own Bluetooth stack, and Connect printer works normally. On the Mac, plain Chrome is fine. USB-C from an iPad is not an option at all: iOS gives apps no access to generic USB printers.

Everything here runs offline once the file is on the device — no server, no Mac.

On a computer you get both: Bluetooth or USB (WebUSB, Chrome and Edge). USB is faster and more reliable — 512-byte transfers against Bluetooth's 128 — so prefer it at the bench and keep Bluetooth for events.

Fill these in first