Skip to main content

Zebra FX Configuration

Part of: Devices — detailed configuration reference for Zebra FX series readers

This guide covers the configuration options available for Zebra FX series RFID readers (FX7500, FX9600 and FXR90). The ATR7000 array reader has its own guide, Zebra ATR7000 Directionality. If Discover doesn't find your reader when you add it, see Reader Discovery. These settings control how the reader operates, which antennas are active, how tags are filtered, and how data is reported back to Tagnet.

Configuration lives in the Reader configuration section of a reader's edit page (Devices, open the reader, then Edit). Settings are grouped down that section, and each group appears only when the selected operating mode uses it: Operating mode, Antennas, and Tag ID filtering are always shown, and the rest are revealed by the mode you pick.

Changes are saved to Tagnet immediately, but they only reach the reader on the next deployment. Click Update and Tagnet offers to deploy right away; see Deploying Reader Configuration for the prompt, background deploys, and how to tell whether a reader is running what's saved here.

Operating Modes​

The operating mode determines the fundamental behavior of the reader. Select a mode that matches your deployment scenario.

ModeDescriptionBest For
SimpleRead and report all unique tags in the field of viewGeneral-purpose reading, workstations
ConveyorRead and report all unique tags for each antennaConveyor belts, assembly lines
InventoryPeriodically report unique tags with metadata (peak RSSI, read counts per antenna)Periodic stock checks, shelf monitoring
PortalGPI-triggered reading that stops after no new unique tags are detectedDoorways, dock doors with motion sensors
CustomFull low-level control over all radio settingsAdvanced deployments requiring fine-tuned behavior

Simple Mode​

The radio reads and reports all unique tags across all enabled antennas. This is the most straightforward mode: the reader continuously scans and reports what it sees.

  • Tags are reported once (per the default report filter)
  • Antenna selection and tag filtering can be customized

Conveyor Mode​

The radio reads and reports all unique tags for each antenna. Similar to Simple mode but optimized for scenarios where items pass by antennas sequentially.

  • Tags are reported once per antenna
  • Tag filtering can be customized

Inventory Mode​

The radio reads tags and reports all unique tags on a periodic interval. Each report includes additional metadata: peak RSSI and read count per antenna during the interval.

  • Tags are reported once per interval
  • The reporting interval is configurable (see Inventory Settings)
  • Tag filtering can be customized

Portal Mode​

The radio waits for a GPI (General Purpose Input) event, typically from a motion sensor or photo eye, then reads until no new unique tags are detected for a configurable stop interval.

  • FX7500, FX9600 and FXR90 only
  • Requires a GPI trigger (see Portal Settings)
  • Default: waits for a LOW signal on GPI port 1
  • Default stop interval: 3 seconds after the last new unique tag

Custom Mode​

Provides full access to all low-level radio configuration options. This mode is designed for advanced users who need precise control over start/stop conditions, antenna cycling, GPI triggers, and reporting behavior.

Custom mode reveals additional groups: Environment and RSSI filtering, Report filtering, Events, and Radio control.

Antennas​

The Antennas group controls which antenna ports are active and their transmit power. The meter beside each port shows the level at a glance: every bar is a 3 dB step, which is a doubling of conducted power.

SettingDescription
Enable/DisableToggle individual antennas on or off. At least one antenna must remain enabled.
Antenna NameOptional label for each port (defaults to "Antenna-1", "Antenna-2", etc.)
PowerTransmit power in dBm for each antenna
Bulk PowerSet the same power level across all enabled antennas at once. Shows "Mixed" when antennas have different power levels.

The range starts at 0 dBm and ends at the reader's own limit.

The reader's true maximum comes from its region configuration, not from its model: an FX9600 is rated to 33 dBm, but a reader whose region does not permit that rejects the setting, and a rejected configuration is discarded whole rather than clamped. So Tagnet asks the reader. Every full deployment, and every start, stop or status refresh from the Reader Control tab, ends with a Reader Status Sync that reads the reader's region, regulatory standard and supported power range and stores them on the device. The power slider and the save-time check then stop at the reported maximum. The caption under the Antennas title says which limit is in force: "Reader reports 30.0 dBm maximum for US FCC 15" once the reader has been read, or the model default until then. An operating-mode-only deployment does not run the sync, so it does not refresh these values.

Until a reader has been deployed or synced once, Tagnet offers the model default, 30 dBm on the FX7500, FX9600 and FXR90, which every region accepts. A reader whose region permits more raises the limit after its first deployment; a reader whose region permits less lowers it, and a saved power above the new limit is flagged at save time instead of failing the whole configuration at the reader. The region and regulatory standard appear with the reader's details on the device page, and the raw values are in the Connection Info tab. A cloud reader cannot be read from Tagnet, so it keeps the model default.

An FXR90's ceiling also depends on how it is powered. On the DC power brick it reaches 33 dBm; on PoE and PoE+ the reader limits its output to less (a lab FXR90 on a PoE+ injector reports 30.0 dBm). The device page shows the power source as POE, POE+ or DC, and the first status sync records the ceiling that source allows. If you move an FXR90 to a different power source, run a status sync from the Reader Control tab so the limit follows.

0 dBm is legal and the radio accepts it, but it transmits nothing, so Tagnet warns when an enabled antenna is left there rather than refusing to save it.

Cable loss compensation​

Every foot of coax between the reader port and the antenna eats some of the configured power. Tell the reader about each port's cable and it makes up the difference: it computes the loss and adds it to the power configured for the port, so the power reaching the antenna is what you set. Per the FX Series Integrator Guide, "the calculated cable loss is internally added to the power level configured on the read point."

Each antenna row carries a chip between its power slider and its power reading. A port with no cable loss shows Cable; click it to set one. A port with cable loss shows the computed loss, for example +1.9 dB. On the device page, hovering the same chip spells out the arithmetic and what the reader does with it: "25 ft × 7.6 dB per 100 ft = 1.9 dB. The reader drives the port at 31.9 dBm so 30.0 dBm reaches the antenna." The power slider stays at the configured value; the extra is the reader's compensation, not something you set.

Clicking the chip opens the cable loss dialog for that port:

FieldDescription
Cable length (ft)The length of the coax run from the reader port to the antenna, jumpers included. Chips above the field fill in the lengths cable vendors stock (6, 10, 20, 25, 50 ft); type any other length.
Loss per 100 ft (dB)The cable's attenuation at the reader's operating frequency. Chips above the field fill in typical values for common cable types (table below); the cable's specification sheet has the exact figure.

Apply needs both values. Clear removes both, which hands the port back to the reader's own value. The All antennas header row has the same chip: it shows the value the enabled antennas share, or Mixed when they differ, and its dialog sets or clears every enabled antenna at once, like the bulk power slider beside it. The typical values behind the cable type chips, at 900 MHz:

CableLoss per 100 ft
LMR-19511.1 dB
LMR-2407.6 dB
LMR-4003.9 dB
LMR-6002.5 dB

These are manufacturer figures for the genuine cable; "LMR-240 equivalent" cables from other makers can differ by a few tenths, and each connector adds around 0.1 to 0.2 dB that the per-100 ft figure does not include. Neither matters much: an error of half a dB at the antenna is below anything a tag read will show, but a long run of the wrong cable type is worth correcting from the datasheet.

Cable loss is reader configuration rather than operating mode, so it shows in every mode, and it only reaches the reader on a full deployment (a Cable Loss Compensation step runs after Reader Configuration). The step writes the values and then commits them, because the reader only stages a read-point change until it is committed: until then the radio keeps running the previous values, the staged ones are lost on a power cycle, and a reboot is refused with "Changes not committed". The Commit button in the reader's own web console does the same thing. Reader Status Sync warns when a reader is holding uncommitted changes, whatever put them there. Leave a port without cable loss and Tagnet does not manage that port: the deploy skips it, and the reader keeps whatever is set on it. If an installer already set cable loss in the reader's own admin console, Import cable loss from reader on the edit page adopts those values so they do not have to be retyped. The button appears while no port has cable loss in Tagnet.

This is also how an FX9600 reaches its 33 dBm hardware maximum: the configured power stops at the regional cap, and the compensation is added on top of it at the port. A large portal with long coax runs is exactly where that pays.

Filtering​

Tag ID Filtering​

Tag ID filters let you include or exclude tags based on their EPC identifier. You can filter by prefix, suffix, or regular expression.

SettingDescription
Filter Match TypeThe segment of the tag ID to match: Prefix, Suffix, or Regex
Filter OperationWhether to include only matching tags or exclude matching tags
Filter ValueThe value to match against

Value format by match type:

Match TypeFormatExample
PrefixHex digits only, even number of digitse280, 3008
SuffixHex digits only, even number of digitse280, 3008
RegexC++ STL regex format^e280.*

Filter values must be lowercase​

The reader compares filters against a lowercase EPC, so uppercase hex never matches. A pattern like ^E280.* matches nothing, and it fails silently: an include filter reports no tags at all, and an exclude filter excludes nothing. This regex flavor has no case-insensitive option, so lowercase is the only way to write it.

Tagnet flags uppercase hex in the filter value and offers a one-click conversion. Note that Tagnet displays EPCs in uppercase everywhere else, so this is the one place where the casing you type has to differ from the casing you read.

Regex examples​

A regex filter can express what prefix and suffix filters cannot: more than one prefix, a prefix and a suffix together, or a length check. The patterns below are written as whole-EPC matches, in lowercase hex, and assume a 96-bit EPC, which is 24 hex characters. Adjust the counts for other tag lengths (a 128-bit EPC is 32 characters).

Prefix. EPCs that start with a or with cab, of any length:

(a|cab)[0-9a-f]+

The same, but only when the EPC is exactly 24 characters long:

(a[0-9a-f]{23}|cab[0-9a-f]{21})

Suffix. EPCs that end with d8 or with 92, of any length:

[0-9a-f]+(d8|92)

The same, but only when the EPC is exactly 24 characters long:

([0-9a-f]{22}d8|[0-9a-f]{22}92)

Prefix and suffix. EPCs that start with c and end with d8, or start with ad1 and end with 92, of any length:

(c[0-9a-f]*d8|ad1[0-9a-f]*92)

The same, but only when the EPC is exactly 24 characters long:

(c[0-9a-f]{21}d8|ad1[0-9a-f]{19}92)

How the pieces fit:

  • [0-9a-f] is one hex character. + means one or more of them, * means zero or more, and {21} means exactly 21.
  • (a|cab) is an alternation: either a or cab. The whole filter is wrapped in parentheses when it has alternatives, so the choice applies to the entire EPC rather than to the last character before the bar.
  • In the length-constrained forms, the count in braces is 24 minus the characters already spelled out: a plus 23, cab plus 21, c and d8 plus 21, ad1 and 92 plus 19.

Choose the length-constrained form when tags of other lengths can be in range and share the prefix or suffix. A yard with 96-bit asset tags next to 128-bit case tags that happen to start with the same company prefix is the usual case: the unconstrained pattern reads both, the constrained one reads only the asset tags. When every tag in range is the same length, the simpler pattern is easier to read and maintain.

If a pattern reads more than you expect, anchor it: ^ at the start and $ at the end restrict it to the whole EPC on every regex engine.

The reader does not accept a prefix filter together with session control settings. If you need both, write the filter as a regex (^e280.* matches the same tags as the prefix e280) or address the tags with a Select command instead.

Environment and RSSI Filtering​

Available in Custom mode only.

SettingDescription
Operating EnvironmentThe RF environment the reader operates in
RSSI FilterA single slider running from Off through the reader's cutoff range, -88.0 to -26.0 dBm. Reads weaker than the cutoff are discarded before the reader reports them. FX9600 and FXR90 only, see below.

The RSSI filter is implemented on the FX9600 and FXR90, which report that they support it. On an FX7500 the setting is hidden, because the reader rejects the entire configuration if one is sent: a deployment carrying an RSSI filter fails with "RSSI filter not supported" and none of the other settings apply either.

The RSSI slider is monotonic: the further right you drag it, the more the reader throws away. The far-left position is Off, which removes the filter entirely rather than setting a cutoff at the floor. Just right of Off, -88.0 dBm filters the least; -26.0 dBm filters the most, keeping only strong, nearby reads.

The bar beside the slider shows the split: the hatched portion is the part of the reader's range being discarded, and the solid portion is what still gets reported. Distant and poorly-oriented tags are the first to drop out as the cutoff rises, so raise it gradually and watch your read counts.

Operating environment options:

EnvironmentDescription
Low InterferenceSingle interrogator environment: no other reader, or one that interferes only briefly
High InterferenceMulti-interrogator environment (the reader default)
Very High InterferenceMore readers than available channels, or readers operating close together
Auto DetectReader assesses the environment and adjusts automatically
DemoMaximum performance (fastest read rate), assumes no other readers nearby

What the environment changes: modulation and speed​

The environment is not just a label. Zebra documents that, together with the reader's region, it sets the link profile the radio runs (the tag-to-reader modulation, backscatter link frequency and Tari) and the receiver dynamic range, which is the reader's tolerance of other transmitters. You cannot pick a link profile directly on an FX reader; the environment is the knob.

The profiles the FX7500, FX9600 and FXR90 can run (Zebra's FX Series Integrator Guide, RF Air Link Configuration appendix, FCC readers) fall into four families, named by how many subcarrier cycles encode each tag bit:

Tag modulationTag data rateTrade
FM0640 kbps (6.25 microsecond Tari) or 320 kbpsFastest. Least tolerant of noise and of other readers.
Miller 2120 to 160 kbps
Miller 460 to 80 kbps
Miller 830 to 40 kbpsSlowest. Most sensitive and most tolerant of interference.

Each step down the table roughly halves the data rate and buys a few dB of receive sensitivity, so a slower profile reads a weaker tag the faster one cannot hear. The reader also has an automatic profile that varies these parameters itself, and it is the factory default air-link setting.

Zebra does not publish which profile each environment selects, so treat the following as the direction each setting leans rather than a specification: Demo runs the fastest profile with the least interference immunity; Low Interference a fast profile with some; High Interference a dense-reader profile that gives up speed for immunity; Very High Interference the slowest and most sensitive; Auto Detect the reader's own automatic profile.

Two things follow for choosing one:

  • Speed is rarely the limit for a moving read. A vehicle at 10 mph crosses a 3 m read zone in under a second. Even at Miller 8 a single tag is singulated in a few milliseconds, so a truck carrying tens of tags gets many inventory rounds per pass at any profile. What usually decides whether the far side of the load is read is sensitivity and shadowing, which the slower profiles help with, not the data rate. Reach for Demo or Low Interference when the population per pass is in the hundreds, or when the tags are close and strong and you are counting reads per second; otherwise start from High Interference or Auto Detect and compare.
  • Demo trades sensitivity for speed. Its reduced receiver dynamic range makes it the first profile to lose weak tags when transmit power is high and the reflections are strong, which is exactly a bench full of static tags a few feet from the antenna. Use it for demonstrations and for small, strong populations, and verify with a real pass before leaving it on a portal.

Report Filtering​

Available in Custom mode only. Cannot be used in Inventory mode.

Report filtering controls how frequently unique tags are reported, reducing the volume of data sent by the reader.

SettingDescription
Report Filter DurationTime in seconds to wait before reporting a tag again after it has already been reported. As long as the tag is being read, it will not be reported again until this duration has elapsed since the previous report on the same antenna. Defaults to 1 second on a new configuration.
Report Filter TypeWhether the timeout applies per antenna or across the entire radio

Report filter type options:

TypeDescription
Radio WideA single timer applies across all antennas
Per AntennaEach antenna maintains its own report timer

Default behavior when no report filter is set:

ModeDefault Behavior
SimpleReport each tag read once
Portal / ConveyorReport each tag the first time it is read on each antenna

Report filtering and motion detection​

Any report filter duration above 0 makes the reader send one summary per tag instead of reporting every individual read, and a summary carries no phase or channel data. Tagnet's tag motion detection depends on per-read phase to tell a tag moving through a portal apart from one sitting stationary nearby. Without it, every tag resolves to unknown motion, so a movement rule with a motion filter never matches and Live Reads shows no direction.

This is the default state, not an edge case you have to configure your way into. The report filter duration defaults to 1 second, and Inventory mode has no report filter at all, so a reader left on either default never reports motion. If a reader's tag motion state matters, set its report filter duration to 0 in Custom mode. Inventory mode can't supply phase no matter how it's configured.

Storage cost of reporting every read​

At a report filter duration of 0 the reader posts every read of every tag it sees, and Tagnet stores each one. That is what motion detection needs, and it is fine where tags pass through in bursts: a portal, a dock door, or any reading started by a GPI trigger. In a read zone that sees tags constantly, such as a staging lane or an antenna facing stored stock, it fills the database fast. On a test system, one FX7500 in Custom mode at 0 posted about 4.7 million reads of 33 tags in under six hours (about 220 reads a second) and grew the database to 6.8 GB. Plan on roughly 1 GB of database an hour for each busy reader at this setting, until retention removes the old reads.

The session decides how often a resting tag answers. In S0 or S1 (the reader default), or with target AB, a tag sitting in front of the antenna is read round after round, and at report filter 0 every one of those reads is reported. S2 or S3 with target A reads a resting tag once and keeps it quiet while it stays in the field. That cuts the repeats, but it also stops a stationary tag from reporting again until it leaves the field.

Tagnet shows a warning in the configuration editor and on the reader's detail page whenever the report filter duration is 0 outside Inventory mode. If the reader does not need motion detection, set the duration to 1 second or more.

Session Control​

Session control sets how the reader runs the Gen2 inventory round: which persistence flag it uses, which tags take part, and how many tags it expects. The group is shown in every operating mode. Every field starts at Reader default, which leaves the reader's own setting in place, so a reader you never touch here behaves exactly as it did before.

The defaults suit a desk or a small shelf. A dock door, a drive-through portal, a dense pallet, or two readers covering the same area usually want something else; Reader Setup Recipes has starting points for each.

SettingReader defaultWhat it does
SessionS1Which of the tag's four inventory flags the round uses. The flag's persistence decides how soon a tag answers again after it has been read (see below).
TargetAReads tags whose flag is in state A, and flips each one to B as it is read. AB alternates, so tags keep answering round after round.
Select optionAllWhich tags take part, by their SL flag. SL reads only tags a Select command asserted; Not SL the rest. Only meaningful with a Select command.
Tag population1How many tags the reader should expect in the field at once. Seeds the Q algorithm, which sizes the inventory round.

Choosing a session​

Each session flag persists for a different time once a tag has been read. That persistence is the whole difference between them.

SessionFlag persistsUse it for
S0Only while the tag is powered; resets the instant it leaves the fieldPortals and conveyors where every pass must be a fresh read
S1About half a second to five seconds, then reverts on its ownSteady streams where tags in view should be re-read continuously
S2For as long as the tag stays powered, typically a minute or more after it leavesDense populations and exhaustive sweeps: each tag is read once, then goes quiet so weaker tags get their turn
S3Same as S2, on a separate flagA second reader covering the same area, so the two do not interfere

With S2 or S3 and target A, a tag that has been read stays silent until it leaves the field. That is what you want for a dense load that moves slowly past a portal: the loud tags drop out after one read and the shadowed ones get air time. It is not what you want if the same tags sit in front of the reader and should keep reporting; use S0 or S1, or target AB, for that. It is also a risk on a fast pass, because a tag goes quiet when the reader acknowledges it, not when the reader has decoded its EPC, so one lost reply silences that tag for the rest of the pass. Session choice for a moving load in the recipes weighs S2 with A against S1 with AB for that case.

Tag population​

The reader's anti-collision algorithm starts each round sized for the expected number of tags and adjusts from there. With the default of 1, a vehicle carrying a hundred tags opens every round with a burst of collisions before the reader catches up. Set it close to the number of tags typically in the field at once. Too high wastes time on empty slots; too low costs a few rounds of collisions. Either is recoverable, so an estimate is fine.

Select commands​

A Select command is sent before each inventory round and sets or clears a flag on the tags whose memory matches a mask. The usual use is to read only one family of tags, such as those whose EPC starts with a given company prefix, by asserting the SL flag on matching tags and deasserting it on the rest, then setting Select option to SL.

FieldDescription
FlagWhich flag the command acts on: SL, or one of the session flags S0 to S3
ActionWhat happens to matching tags, then to non-matching tags. The default, assert SL / deassert SL, marks the matching tags and unmarks everyone else.
Memory bankEPC, TID, User, or Reserved
PointerBit offset into the bank where the comparison starts. The EPC itself begins at bit 32, after the CRC and PC words.
LengthHow many bits to compare. Tagnet fills this to cover the mask you type until you edit it by hand.
MaskThe value to match, in hex, an even number of digits. The reader expects lowercase; Tagnet lowercases the mask when it saves, so either case can be typed.
TruncateLeave at 0 unless you know the Gen2 truncation rules

Several commands run in the order listed. Delay after selects adds a pause, 0 to 65 ms, between the last Select and the query; leave it empty for the reader's minimum.

When to use a Select instead of a tag ID filter​

A tag ID filter is applied after the tag has been read: every tag still answers, the reader just does not report the ones that fail the filter. A Select is applied over the air before the round starts: tags that fail the mask never answer, so they take no air time at all. That difference does not matter at a desk. It matters when the population in range is large and most of it is not yours, because every foreign tag that answers is a slot your own tags did not get.

Masks compare raw memory bits, so you need to know how your tags are encoded. The EPC bank starts with a 16-bit CRC and a 16-bit PC word, which is why the EPC itself begins at bit 32. A mask is written as the hex you would see in the EPC, starting at the pointer.

GoalMemory bankPointerLengthMaskActionSelect option
Read only your own tags, whose EPCs all start with 3034EPC32163034Assert SL / deassert SLSL
Read only GS1 SGTIN-96 tags (header 30), ignoring everything else in the yardEPC32830Assert SL / deassert SLSL
Ignore a neighbor's tags that start with e2c0 and read all the restEPC3216e2c0Deassert SL / assert SLSL
Read only tags from one chip family, for example Impinj Monza (TID begins e2801)TID020e2801 (write as e28010, length 20)Assert SL / deassert SLSL
Read only items a customer process has marked in user memory, for example byte 0 set to 01User0801Assert SL / deassert SLSL

Typical situations:

  • A portal in a shared yard. Trailers from another company pass the same gate, or a neighboring tenant's inventory sits within range. A Select on your company prefix keeps those tags silent instead of letting them fill every inventory round.
  • A retail back room next to the sales floor. Hundreds of item tags on the floor are in range of a receiving reader. A Select on the case-level header, or on a user-memory marker written at receiving, keeps the floor out of the round.
  • Mixed tag hardware. A deployment that mixes an older tag family with a new one can address one family by TID while the other is phased out.
  • Returnable assets among consumables. Totes, racks, and pallets carry a marker in user memory; a Select on that byte lets a dock reader count assets without inventorying everything on them.

Two cautions. A Select is only as good as the encoding behind it: if some of your tags were commissioned with a different header or prefix, they vanish from the reads with no error anywhere, so check the mask against a known tag before relying on it. And a Select with Select option left at All does nothing useful; the round still reads every tag, the flag just gets set.

A prefix tag ID filter cannot be combined with session control (see Tag ID Filtering). Tagnet refuses the save and says which filter to change.

GPS Position​

Available in every operating mode. FXR90 only: the FX7500 and FX9600 have no GPS, hide the setting, and reject a configuration that asks for it.

The FXR90 has a built-in GPS receiver. Turn on Include GPS position and every tag read the reader reports carries the reader's own position. That turns a fixed reader's reads into a record of where they happened, which is useful when the reader moves: mounted on a forklift, a yard truck or a delivery vehicle, or carried between sites. Tagnet shows the position on the read, on the device and on the inventory items the reader reads (see Where positions appear).

Switching it on adds the READERLOCATION tag metadata value to the reader's operating mode. Like the rest of the configuration, it reaches the reader on the next deployment.

What the reader needs​

GPS does not work from a bare reader. Check both of these before you rely on positions:

  • DC power. Run the FXR90 on its DC power supply. On PoE or PoE+ the reader turns its GPS off at boot (along with cellular, WLAN and Bluetooth), so reads arrive with no position. When the reader's last heartbeat reported PoE power, the editor shows a warning under the switch.
  • A GPS antenna with a view of the sky. Connect Zebra's 4G/5G/GPS antenna (P/N ANT-4G5GGPS010-SMA) to the WWAN ports. Indoors, behind metal roofing or inside a trailer, the reader may never get a fix. After power-up, a first fix can take several minutes.

Without a fix the reads still arrive normally, just without a position. Nothing is lost or delayed while the reader searches for satellites.

Where positions appear​

Wherever coordinates appear, select them to open the spot on a map in Tagnet. The map also has an Open in OpenStreetMap link, for directions or to share the spot outside Tagnet. The map needs internet access, as the location map does.

PlaceWhat you see
Tag read detailA GPS Position section with the coordinates. Select them to see the spot on a map. See Tag Read Details
Device page, Ingest data tabA GPS column on the reader's tag reads. See Devices
Live ReadsEach tag row shows the position of its latest read that had a fix. See Live Reads
Device pageA GPS position section with the reader's last known position and when it was reported. See Devices
Inventory item pageLast seen position for items whose tag the reader read. See Inventory

Tagnet ignores invalid positions: a missing coordinate, a value outside the valid latitude or longitude range, and exactly 0,0 are all ignored, so a bad reading never overwrites a good one.

Privacy​

A position is where the reader was, and on a vehicle-mounted reader that can indirectly show where a driver went. Treat it as location data about people when you decide who can see device and inventory pages. Each tag read keeps its own position for as long as the TagRead retention policy keeps the read. The device and each inventory item keep only their latest position.

What this does not do​

Positions are an observation about where a reader was. They do not appear on inventory transactions, and Tagnet does not turn a position into a Tagnet location or trigger anything when a reader enters or leaves an area (geofencing). To move an item between locations, use the Move Inventory workflow action.

Inventory Settings​

Available in Inventory mode only.

SettingDescription
Interval ValueHow often to report each tag
Interval UnitTime unit: Seconds, Minutes, Hours, or Days

Each interval, the reader reports all unique tags seen during that period along with per-antenna metadata (peak RSSI, read count).

Portal Settings​

Available in Portal mode only.

Portal mode requires a start trigger: a GPI (General Purpose Input) signal that tells the reader to begin scanning. Typically, a motion sensor, photo eye, or similar input device is wired to a GPI port on the reader.

SettingDescription
GPI PortWhich GPI port to monitor (1 to 2)
Signal LevelTrigger on HIGH or LOW signal
Stop IntervalSeconds to continue reading after the last unique tag is detected (default: 3)

The reader waits for the configured GPI signal, begins scanning, and continues until no new unique tags have been read for the stop interval duration. It then waits for the next GPI event.

Events Settings​

Available in Custom mode only.

Telemetry​

SettingDescription
Heartbeat IntervalHow frequently the reader sends heartbeat/telemetry data (in seconds)

Tag Data Batching​

Batching groups multiple tag data events into a single network payload, reducing network and CPU usage.

SettingDefaultDescription
Max Payload Size256,000 bytesMaximum batch size in bytes
Reporting Interval2,000 msHow often batched data is sent

Set both values to 0 to disable batching.

Tag Data Retention​

The reader can buffer tag events locally during network outages or server failures, then replay them when connectivity is restored.

SettingDefaultDescription
Max Retention TimeNoneMaximum time window in minutes to retain events. Set to 0 to retain indefinitely.
Max Events150,000Maximum number of events to buffer. Set to 0 to disable retention.
Throttle500 tags/secRate at which retained events are replayed after reconnection

Note: Retained messages are lost on reader reboot.

If the reader replays retained reads after Tagnet was stopped (for example during an upgrade), they reach Tagnet as new reads and Tagnet runs workflows for them normally. Tagnet does not yet filter stale buffered reads. If a site only acts on current reads, set Max Events to 0 to disable retention. See Reads while the service is stopped.

Radio Control Settings​

Available in Custom mode only.

Radio Start Conditions​

Controls when the radio begins inventorying tags after a "start" command is issued. If no start condition is configured, the radio begins immediately on start.

Start condition types:

TypeDescription
GPI with restartThe radio re-arms when a run ends, so every GPI transition starts another read. This is the default and is what a permanently installed reader normally wants.
GPIThe radio arms once. It reads until the stop condition is met, and then further GPI transitions are ignored.

The difference matters more than it looks. With plain GPI, once that first run finishes the trigger is dead: you can activate the sensor as many times as you like and nothing happens. The radio only arms again when it is stopped and started (from the reader's Reader Control tab, or by whatever software drives the IoT Connector) or when the reader reboots. Plain GPI is for a session an external system controls, where exactly one read per session is wanted and a second trigger must not silently start another. For a dock door, portal, or any standing installation, use GPI with restart.

Note that Portal mode's start trigger behaves differently again: it re-arms on its own after each read period, so it does not have this distinction.

When using a GPI start condition:

SettingDescription
GPI PortWhich GPI port to monitor (1 to 2)
Signal LevelTrigger on High or Low signal
Debounce TimeHow long the signal must hold before it counts as a transition, in milliseconds. See below.

Debounce time​

Debounce filters a signal that flickers on its way between states, so one physical event does not register as several.

Sensor typeSuggested debounce
Photo eye, proximity sensor, or any solid-state output0 ms. These switch cleanly and do not bounce.
Relay, limit switch, push button, or any mechanical contact10 to 50 ms. Contacts chatter for a few milliseconds as they close.

Two things worth knowing before you raise it:

  • The reader already applies its own debounce filter of 50 ms per pin, separately from this setting, so 0 here does not mean the signal is unfiltered.
  • Debounce delays the trigger by the time you set. That is harmless at a dock door, where a few tens of milliseconds is nothing next to how fast a pallet moves, but it is real if you are timing something tightly.

Start at 0. If a single physical event produces more reads than it should, raise the debounce until it does not.

Radio Stop Conditions​

Controls when an ongoing inventory operation completes. If no stop condition is configured, the radio continues until a manual "stop" is issued. Multiple conditions can be set; the radio stops when any condition is met.

Time-based conditions:

SettingDescription
DurationTime in seconds to run before stopping
Antenna CyclesNumber of complete cycles through all antennas before stopping

Tag-based conditions:

SettingDescription
Tag CountStop after inventorying this many tags
Duration After No Unique TagsStop after this many seconds with no new unique tags

Note: Tag Count and Duration After No Unique Tags cannot be used at the same time.

GPI stop trigger (optional):

SettingDescription
GPI PortWhich GPI port to monitor (1 to 2)
Signal LevelStop on High or Low signal
Debounce TimeDebounce duration in milliseconds. See Debounce time for how to choose one.

Antenna Stop Conditions​

Controls when the reader moves from one antenna to the next during inventory. If not configured, the default is a single inventory round for no longer than 1/N seconds (where N is the number of enabled antennas).

Stop Condition TypeDescription
DurationRun each antenna for a fixed number of milliseconds
Inventory CountRun each antenna until a specific number of tags are inventoried
Single Inventory Limited DurationRun a single inventory round per antenna with a maximum duration in milliseconds
GPI TriggerSwitch antennas on a GPI event (port, signal level, and debounce configurable)

Delay Between Antenna Cycles​

Introduces a delay between antenna cycles when no tags are detected, allowing the reader to share the RF spectrum with nearby readers.

SettingDescription
Delay Condition TypeWhen to introduce the delay
Delay DurationDelay in milliseconds (0 to 255, default: 75 ms)

Delay condition types:

TypeDescription
DisabledNo delay between cycles
No TagsDelay when no tags are read in a cycle
No Unique TagsDelay when no new unique tags are read in a cycle

Defaults by reader model:

ReaderDefault ConditionDefault Duration
FX9600 / ATR7000No Unique Tags75 ms
FX7500No Tags75 ms