Plain English

Configures the **memory-block geometry** the encoder uses for subsequent RFID operations. A "block" is the **fixed-bit unit of access** that the underlying Gen2 protocol opcodes (Write/BlockWrite/BlockErase/Lock) operate on — not arbitrary bytes. Setting `^RB` declares: how many bits in a block (`n`), where the first writable block starts (`b`), the per-bank read/write/lock policy (`r`/`m`/`w`). Most modern tags support per-word access (16-bit blocks) without `^RB`; `^RB` matters for older or specialised inlays whose firmware exposes blocks of 32/64/128 bits and refuses unaligned writes.

When to use

**Tag-class dependent — check the inlay datasheet first.** Class-1 Gen-2 tags (Impinj Monza, NXP UCODE, Alien Higgs) commonly support both per-word and BlockWrite (multi-word atomic), but the supported block sizes vary by chip family — `^RB32` works on some Monza variants and silently fails on others. Use `^RB` when (1) the inlay datasheet specifies a non-default block size, (2) you need atomic multi-word writes for tamper-evidence, (3) you are setting block-level lock policy (`m`/`w`) for compliance encoding. Skip it for typical SGTIN-96 EPC writes — those work fine on the default per-word geometry. Always pair with `^RS` (encoder setup) and verify with `^RT` after the first encode batch.

Syntax

^RBn,b,r,m,w

Parameters

ParameterDescription
nBlock bit length — typically 16 (default per-word), 32, 64, or 128. Inlay-firmware-dependent; sizes outside the supported set silently fail BlockWrite
bStarting bit position (offset within bank) for the configured block; defaults to 0
rRead access policy: `0` open, `1` permanent open, `2` secured (password required), `3` permanent secured
mMemory bank lock policy — same value space as `r`, applied at write time
wWrite access policy: `0` open, `1` permanent open, `2` secured, `3` permanent secured (lock — irreversible)

Example

^XA
^RS8
^RB32,16,0,2,2
^XZ

After Gen2 setup (`^RS8`), declare a **32-bit block** geometry starting at bit offset 16, with read open (`r=0`), bank locked-via-password on write (`m=2`), and write secured (`w=2`). Subsequent `^RF`/`^RT` will operate on 32-bit aligned blocks. Whether the tag honours this depends on its firmware — verify with `^RT` after encoding a test batch and confirm the readback matches.

Try it in the playground View all ZPL commands