The test kit: find your printer's limit
By Tiehl Roberto Matías · 6 min read · Updated 26 October 2026
The minimum size calculation gives you a number, and it is a good number: it stops you throwing filament away blind. But it is a general number, and your printer is one particular printer, with its own first layer, its own flow and its own worn nozzle. This kit swaps the general number for yours, in a single print of thirty-five grams.
In this guide
What the kit is
Six tags with exactly the same QR code, the same 0.6 mm relief and the same 2.6 mm base. The only thing that changes from one to the next is the width of the piece, and with it the module size: the little squares the code is made of.
| Piece | Side | Module | 0.4 mm beads | Weight |
|---|---|---|---|---|
| 1 | 28 mm | 0.59 mm | 1.49 | 3.3 g |
| 2 | 32 mm | 0.70 mm | 1.76 | 4.1 g |
| 3 | 36 mm | 0.81 mm | 2.03 | 5.0 g |
| 4 | 39 mm | 0.89 mm | 2.23 | 5.8 g |
| 5 | 43 mm | 0.99 mm | 2.47 | 6.8 g |
| 6 | 52 mm | 1.19 mm | 2.99 | 9.8 g |
Each tag has its own module size embossed on it, so after you peel them off the bed you still know which is which. All six together are 34.7 grams and fit with room to spare on any bed of 180 × 180 or larger. They all have the ring hole, so you can keep them on a keyring and have them to hand.
The two smallest are below what the generator allows, which starts at 35 mm. That is deliberate: a kit where everything works measures nothing. You need pieces that fail to find out where the line is.
Download the pieces
Two formats of each. The 3MF carries the base and the code as two objects with their colours already assigned, ready for multi-material or for a single filament change. The STL is a one-colour solid, in case your slicer does not get on with 3MF.
| Piece | Module | 3MF (two colours) | STL (one colour) |
|---|---|---|---|
| 1 | 0.59 mm | download | download |
| 2 | 0.70 mm | download | download |
| 3 | 0.81 mm | download | download |
| 4 | 0.89 mm | download | download |
| 5 | 0.99 mm | download | download |
| 6 | 1.19 mm | download | download |
All six carry the same link, and it is worth saying so rather than asking you to scan a code blind: they point at the minimum size guide, which is the one that explains what the result means. It is a 33 × 33 code, version 4, correction level Q.
How to print it
All six at once, no supports and no raft. 0.2 mm layers, 15 % infill, matte PLA: glossy and silk throw reflections exactly where the reader needs shadow, and they would falsify the test.
Three things invalidate it, and they are worth knowing beforehand:
- Do not scale anything. Not even to 99 %. The module size is what we are measuring; if you scale, the number you get is worth nothing.
- Do not use your «nice» profile. Print them with your everyday profile, the one you will use when you make real keychains. The number has to describe your machine in its normal state, not on its best day.
- Print them in two colours if you can. This matters more than it sounds and it gets its own note.
Why two colours is not a fussy preference. A code printed in one colour does not read by colour: it reads by the shadow the relief casts. That works, but it depends on the light in the room. If you print the kit in one colour, what you will be measuring is your lamp, not your printer, and the small pieces will fail for the wrong reason. It is set out in the relief and engraving guide (in Spanish).
If you only have one filament, there is a decent way out: print in a light colour and run a dark permanent marker over the relief. Because the code is the tallest part of the piece, the ink takes only there and you get real contrast.
With a single extruder, the filament change goes at layer 14: the base is 2.6 mm, which at 0.2 mm layers is exactly thirteen layers. The step by step for each slicer is in the colour change guide (in Spanish).
How to read the result
Put all six on a ring, in order, and scan them one at a time starting with the smallest. For each one note two things: whether it catches, and from how far.
The smallest one that scans quickly and from a normal distance is your limit. That is the number you were after, and from there sizing any piece with a code on it is one multiplication:
side of the piece = (modules in the code + 8) × your module size
If you would rather not do it by hand, the calculator (in Spanish) does it with your exact content.
One detail that changes the result: scan where the real pieces are going to be, not on the workshop table with the lamp overhead. A keychain gets looked at in a badly lit pocket and a wall plate from two metres away. It is the last of the four tests in the testing guide (in Spanish), and it is where the reflections that did not exist in the workshop show up.
What the maths predicts
It is worth looking at the prediction before printing, because the value of the kit lies precisely in comparing your result against it.
A printer lays down a bead roughly as wide as its nozzle diameter. For a module to come out as a square with straight edges, rather than as a blob, two beads have to fit inside it. That is where the minimum comes from: 0.8 mm with a 0.4 nozzle and 1.2 mm with a 0.6.
With a 0.4 mm nozzle, the maths says pieces 1 and 2 should fail, that 3 is on the edge and that from 4 onwards they should read. With a 0.6 mm nozzle the bar rises to 1.2 and only 6 clears it.
Watch that last one, because it is why a lot of people stop being able to print codes without understanding what changed: fitting a 0.6 nozzle to go faster forces you to make the pieces 50 % bigger for the same code.
If your result does not match
A mismatch is not a failure of the kit: it is information, and it is the reason for printing it.
If smaller pieces work than expected, congratulations: your first layer and your flow are well calibrated and your machine performs above the general rule. You can use your real number and make more compact pieces than everybody else.
If pieces fail that should have worked, there are three suspects, in this order:
- The first layer squashed too flat. It is the most frequent cause. As it spreads, the bottom layer widens and the dark modules eat into the gap between the light ones. That is elephant foot, and on a code it shows up sooner than on any other piece.
- Too much flow. The same effect but on every layer.
- Not enough contrast. If you used two colours that look different but are similar in greyscale, the reader cannot separate them. The list of pairs that work is in the filament guide.
To tell the first case from the third there is a ten-second check: look at a piece that failed, close up and with light from the side. If the lone modules appear joined to their neighbours by a bridge of material, it is the printer. If they look well separated and the phone still will not catch, it is the contrast. The full diagnosis, with nine causes ordered from most to least likely, is in the guide to why it does not scan.
Now you know your number: make your piece
Put your link into the generator and move the width until the module it shows you reaches the number you just measured. That is your piece, and you take it away as a 3MF with both colours already separated.
Open the generatorKeep reading
- 3MF or STL: what actually changes when you print a QRWhat each format stores, why STL loses the colours, and when it is still worth using.
- Which filament pairs work and which ones ruin the scanWhy red on black does not read even though it looks different, and the list of pairs that do work.