Zebra ATR7000 Directionality
Part of: Devices — configuration reference for the Zebra ATR7000 array reader
The Zebra ATR7000 is an overhead array reader. Instead of antenna ports it steers beams across the floor beneath it, works out where each tag is, and reports which zone the tag is in. Tagnet runs the ATR7000 in Directionality mode only: the reader sends an event when a tag appears, when it moves from one zone to another, and when it has not been seen for a while (with the direction it was heading). That is the information a dock door or doorway needs to tell shipping from receiving, without the raw read volume the reader's other modes produce.
The ATR7000 is added, deployed and controlled exactly like an FX reader. Pick Zebra FX / ATR series in the add-reader wizard, connect to the reader, and Tagnet detects the model and shows the directionality editor instead of the antenna editor. Deploy, start, stop, status refresh and factory reset work the same way; see Deploying Reader Configuration.
Configuration lives in the Reader configuration section of the reader's edit page. The groups are described below in the order they appear. To go straight to shipping and receiving, see Shipping and receiving at a dock door.
Operating mode
Fixed to Directionality. The reader's other modes are not offered: they map the array onto dozens of virtual antennas and report every read, which Tagnet has no use for on this reader.
Zone layout
Describes where the reader is mounted and how the floor beneath it is divided. All distances are in feet. The editor shows these settings in three groups, Transmit power, Heights and Zone layout, with a drawing beside the heights and another beside the zone layout (see Layout drawing).
| Setting | What it does | Range |
|---|---|---|
| Reader height | How high the reader is mounted, measured from the floor to the seam where the radome meets the top cover (the antenna array sits there, about 4 inches above the bottom of the radome) | 10 to 20 |
| Tag height | The height tags are expected to pass at (a pallet, a cart, a badge) | 0 to 20 |
| Orientation | How far the zone map is rotated clockwise, seen from above, from the reader's True-North mark. See Which way is in | 0 to 360 degrees |
| Inner zone width | The width of the strip that zones 1 and 2 share, centered on the reader and running along the in-out axis, with zones 3 and 4 on either side of it (as the positions a reader reports show). For a doorway, about the width of the door | 0 to 50 |
| Zone extension | Moves the line between zone 1 and zone 2 off the reader's center, so the line can sit at the door when the reader cannot be mounted directly over it. In Zebra's configuration tool a positive value moves it toward zone 1. Check with a walk after changing it | -50 to 50 |
| Zone plan | Four or six zones around the reader | 4 or 6 |
| Beam density and polarization | How the reader sweeps its beams. The defaults suit most installations | |
| Transmit power | One power for the whole array, in dBm EIRP. With Reader default on, the reader uses its default of 36 dBm EIRP. Turn it off and use the slider to lower the power when a doorway reader also sees tags in the aisle beyond the door | 16 to 36 dBm EIRP |
The reader works out each tag's position on a plane at the tag height, so what matters is the distance between the two heights. Measure both: a wrong gap stretches or shrinks every position the reader computes, and with it the zone boundaries.
The gap also sets how far the reader can see. Its beams steer up to 60 degrees from straight down, so it places tags out to about 1.7 times the gap from the point under the reader, and most accurately within about 1.4 times the gap. A tag farther out is placed at the edge. With the reader at 15 feet and tags at 3 feet (a 12 foot gap), that is about 20 feet, and most accurate within about 17 feet. Zebra's deployment guide for its multi-reader location system suggests 15 to 17 feet, and at least 3 feet from metal such as trusses, ducts and fans (or 6 inches below them). That advice is for location accuracy across a grid of readers. A single doorway reader works anywhere in the 10 to 20 foot range, and the gap sets how much of the floor it covers.
Layout drawing
The layout is drawn beside the settings and redraws as you change a value, in the editor and on the reader's detail page. Beside Reader height and Tag height, a side view shows the reader at its height, the tag plane, the 60 degree beam, the zone 1 and zone 2 bands split at the zone extension, and how far the reader reads along the floor, out to 25 feet each way. Beside the zone layout settings, an overhead map shows the zone plan on a 40 by 40 foot square centered on the reader, rotated by Orientation, with each zone's name, number and linked location, the in/out arrow, and the reach circles. The solid circle marks where positions are most accurate and the dashed circle marks where the reader reads out to.
Change a value and watch the boundaries, reach and in/out arrow move; the Orientation spinner turns the map 15 degrees at a time. To check Orientation, match the notch in the map to the True-North notch on the reader overhead.
Note: The drawings show your configured zone map and its geometric reach. They do not predict reads, because transmit power, metal and other site conditions are not modeled. Confirm the result with a walk test.
Zones
Each zone in the plan has a row with two fields.
- Name: deployed to the reader and reported on every event as the zone name. Names must be distinct. A name is only a label: it does not change which way the reader calls in or out.
- Location: the inventory location this zone stands for, used by the Read point's location target of a Move Inventory action. The list offers inventory-allowed locations in the reader's own scope. Leave it as None and the zone uses the reader's own location.
Renaming a zone changes what the reader reports, so it counts as a configuration change and needs a deploy. Relinking a zone to another location does not.
Changing the zone plan from six zones to four removes zones five and six. Tagnet asks before removing a zone that is linked to a location.
Which way is in
The reader decides direction along one axis of its zone map, the line from zone 2 to zone 1:
- Out: the tag crossed toward zone 1.
- In: the tag crossed toward zone 2.
In the four-zone plan, zone 1 and zone 2 face each other across the reader, inside the strip set by Inner zone width, and zones 3 and 4 sit on either side of that strip.
The zone map's starting point is the reader's True-North: a direction set by the reader's housing, not compass north. Five small notches by the top cover screws mark the reader's orientation, and Zebra's ATR7000 Integration Guide shows which one is True-North. The safety cable standoff sits 24 degrees counterclockwise of True-North, seen from above, and both are visible from the floor. Angles run clockwise seen from above, the way a compass reads: 90 degrees is a quarter turn clockwise from True-North. With Orientation at 0, zone 1 is on the True-North side. Orientation turns the whole map, zone 1 and the in-out axis together, so zone 1 stays the out side and zone 2 the in side: at 180, a tag carried from the reader's True-North side to the opposite side is reported Out, where at 0 the same walk is In. Zone names turn with the map. The walk in step 3 below confirms the result on each install.
For a doorway or dock door:
- Mount the reader with True-North pointing straight out through the door and leave Orientation at 0. If the mounting does not allow that, set Orientation to the angle, clockwise seen from above, from True-North to the outward direction. Get the angle right: the further off it is, the more of every pass looks like sideways movement, and sideways movement has no direction.
- Name zone 1 for the outside (for example Ship) and zone 2 for the inside (Receive). Zones 3 and 4 then lie at the two ends of the doorway.
- After deploying, carry a tag through once each way and check the reader reports Out leaving and In entering. Clockwise and counterclockwise swap when you look up at a reader from below, so this one walk is worth doing on every install.
Reporting
Which events the reader sends.
| Setting | What it does |
|---|---|
| Report new tags | An event when a tag is first seen |
| Report zone transitions | An event each time a tag moves from one zone to another |
| Report timed-out tags | An event when a tag has not been seen for its timeout, carrying its final zone and the direction it was heading. This is the event that moves inventory |
| Directions reported on time-out | Only timed-out events with one of these directions are sent: In, Out, None, Unknown, Error |
| Update interval | Report a tag again after this many seconds even if it has not changed zone. -1 (the default) never does |
| Raw bearings, location history, zone history | Extra detail on each timed-out event, described below. Off by default |
Turning all three event kinds off is allowed but means the reader sends nothing, and Tagnet warns when you save.
Raw bearings has the reader also send each raw bearing sample as a read of its own. Each of these reads carries a beam id (shown in the antenna column) and a signal strength (RSSI). The beam id identifies a beam the reader steered, not an antenna port, because the ATR7000 has no ports.
Zone history adds the zones the tag passed through, with times. Location history adds the tag's computed positions: a few hundred points, which makes each timed-out event many times larger. Both build up across the tag's visits rather than starting fresh each time it appears. Tagnet keeps both on the timed-out read and draws them as the Tag trail in the read's details (see Tag read details): an overhead map of where the reader placed the tag, a replay of the pass, and a timeline of the zones it was in. Zone history is cheap, so leaving it on is reasonable. Location history is the tool for setting up and troubleshooting a doorway: the map shows whether a pass that reported no direction ever crossed the zone boundary, and how far from the reader the tag was read. Expect the last half-second of positions to scatter as the reads fade, so the last-seen position is the least trustworthy one. Turn location history off once the doorway works.
For a doorway in production:
- Under Directions reported on time-out, report In, Out, None and Unknown, and leave Error off. The dock door recipe moves items on every time-out it receives, None and Unknown included, so filtering those out on the reader drops moves. Error means the reader failed to work the tag out, so its final zone is not worth acting on.
- New and transition events do not move anything in the recipe. Keep them while setting up, because they show the tag moving between zones in the Event Viewer. Turn them off afterwards for one event per pass.
Tag timeouts
How long after its last read a tag is deemed gone, and the window the reader uses to decide which way it went.
| Setting | What it does |
|---|---|
| Minimum, default and maximum timeout | The reader adapts each tag's timeout between the minimum and maximum, starting from the default. Minimum must not exceed default, and default must not exceed maximum |
| Adaptive timeout multiplier | How many standard deviations of the time between reads the reader allows before timing a tag out |
| Hysteresis distance | How far into a zone a tag must travel before it can be reported back in the previous zone. Raise it if a tag resting near a boundary flips between zones |
| Direction lookback | How many seconds of reads before the time-out the reader considers when deciding direction |
| Moving average window | Smoothing applied to the tag's position. Must be shorter than the default timeout |
A tag only times out once it has stopped being read, so the final event for a tag passing through a door arrives a timeout after it went through, not as it crosses. Moves and transactions are recorded when that event arrives.
The timeout is also how long an item can be out of view and still count as not having left. A pallet carried out and straight back before its timeout is one visit, and only the final crossing counts. Out of view for longer, and it is an Out followed later by an In. A default timeout of 15 to 30 seconds suits most doorways.
Advanced
The reader's direction regression and processing settings, collapsed by default. The defaults suit most doorways; change them only with Zebra's Portal Directionality Deployment Guide at hand. Tagnet checks each value against the range the reader accepts and keeps any setting newer reader firmware adds, so a configuration exported from the reader's own tool round-trips without loss.
Tag ID filtering
The same include or exclude filter the FX readers have, by EPC prefix, suffix or regex. Empty reports every tag. The reader matches in lowercase, so write hex as e280, not E280. A suffix filter on a single test tag is a quick way to watch one tag while setting up a doorway. See Zebra FX Configuration for the details and regex examples.
Session control
The Gen2 session, target, select option and tag population, as on the FX readers. Leave a field at its reader default unless the installation calls for a change. The reader rejects session control alongside a prefix filter, so use a regex filter if you need both. Select commands are not offered for the ATR7000.
Keep Session at the reader default (S1) or S0. The reader works out direction from many bearings taken as the tag moves, and in S2 or S3 a tag answers once and then stays quiet for the rest of the pass. In a test walking one tag through a doorway five times per session, the default and S0 each gave about 70 bearings per pass and the right direction every time, while S2 gave one bearing per pass and reported every pass as Unknown, mostly in the wrong final zone. Tagnet warns when you save S2 or S3.
Telemetry
The Heartbeat interval (15 to 300 seconds) sets how often the reader reports its status. Tagnet also uses it to decide when the reader is offline: a silence longer than three heartbeat intervals counts as a gap. See Zebra FX Configuration for the field meaning. The heartbeat interval reaches the reader as part of its configuration, so it needs a full deployment, not Deploy Operating Mode.
Tag data batching
Max payload size (bytes) and Reporting interval (ms) control how the reader groups tag data into each post to Tagnet. The fields mean the same as on the FX readers; see Zebra FX Configuration. These values reach the reader with its endpoint on a full deployment, not on Deploy Operating Mode.
Tag data retention
Max retention time (minutes, 0 for forever), Max events (0 disables retention) and Throttle (tags per second, at least 1) control how the reader buffers events during an outage and replays them afterwards. See Zebra FX Configuration for the field meanings. Like batching, retention reaches the reader with its endpoint on a full deployment, not on Deploy Operating Mode.
What Tagnet records
Each directionality event is stored as a tag read with the zone number, zone name, direction and state (New, Transition, Timed out or Update). The Event Viewer shows them like any other read, and the read's detail dialog has a Direction & Zone section. Directionality events carry no antenna or signal strength, so those columns stay blank on them. The extra reads that Raw bearings adds carry a beam id and an RSSI instead. Read signatures do not apply to an ATR7000.
On the reader's analytics page, the connection history lists the reader's 14 internal array elements (Element 0 to Element 13) rather than antenna ports. Tag read activity shows totals, and the Data Explorer breaks reads down by the beams the reader reported.
With Raw bearings on, the reader also posts DIRECTIONALITY_RAW and BEARING reads, the per-beam samples behind each conclusion, and they outnumber the directionality events many times over. In Ingest History, set Event type to Tag reads: DIRECTIONALITY to see only the zone and direction events, or search for a type by name. The Type chip on each row names which kind of read it is.
The ATR7000 always processes reads Immediately, so each batch the reader posts becomes a scan event. Each tag in the scan event keeps its latest directionality event, except that a Timed out event wins over anything after it in the same batch: a tag that times out and is carried straight back under the reader still shows the Timed out event, so its move is not lost.
That latest event shows in the Zone, State and Direction columns of the scan event's Tags tab and of a workflow run's Tags tab, so you can check a doorway pass without switching to the reader's ingest data. Workflow templates read the same values as tag.zone, tag.zone_name, tag.direction and tag.directionality_state (see Direction and Zone in Templates). Runs recorded before Tagnet carried these values show no extra columns.
Moving inventory through a doorway
A workflow turns the reader's events into inventory moves with the ordinary Move Inventory action. Four tag condition fields read the tag's latest event:
| Field | Shown as | Values |
|---|---|---|
Tag.State | Directionality state | NEW, TRANSITION, TIMED_OUT, UPDATE |
Tag.Direction | Direction | IN, OUT, NONE, UNKNOWN, ERROR. Only a timed-out event has one |
Tag.Zone | Zone | The zone number, 1 to 6 |
Tag.ZoneName | Zone name | The zone's name as deployed |
How the reader decides direction
When a tag times out, the reader looks at the tag's positions over the Direction lookback (5 seconds by default) before its last read:
| What the tag did in those seconds | Direction |
|---|---|
| Crossed from the zone 2 side to the zone 1 side | OUT |
| Crossed from the zone 1 side to the zone 2 side | IN |
| Was read well but did not cross: it sat still, drifted within a zone, or left sideways | NONE |
| Was read too little to tell | UNKNOWN |
Only those last seconds count. A tag that wanders under the reader for minutes, then crosses to the zone 1 side and leaves, is OUT. A tag that sits in the zone 1 side and is then lifted away is NONE, because it never crossed. So is a pallet that comes through the door, is set down just inside for longer than the lookback, and is moved away later: the reader saw it cross, but not in its last seconds. A direction needs the tag to cross and leave the field within a few seconds.
Which events to use
Move inventory on timed-out events, using the tag's final zone. The final zone is where the reader last placed the tag before it went out of view, which is where the item ended up, whichever direction the reader reported.
- New and transition events say where a tag is on its way through, not where it ended up. An action that moves items on them writes a transaction for every zone a pallet crosses. A receipt carried from the outside zone to the inside one would first be recorded in the outside location, then in the inside one, and an integration listening for shipments would see one.
- Direction is optional. Requiring In or Out skips every pass the reader reports as None, including the pallet that came through and was set down inside for a while. Use direction only for the refinements in Telling shipments from receipts.
Shipping and receiving at a dock door
- On the reader's edit page, set up the zones as described in Which way is in: zone 1 outside, zone 2 inside.
- Link zone 1 to the location outside the door (for example Dock or Shipped) and zone 2 to the location inside (Receiving).
- Zones 3 and 4 lie along the door line, straddling both sides, so leave them at None and give neither the reader nor its device group a location. A tag that ends there is then skipped, and the workflow run says the read point has no location, rather than landing on the wrong side.
- Keep Report timed-out tags on, deploy, and walk a tag through each way to check that it ends up in the right zone.
- Create a workflow for this reader (or for its device type, to share one workflow between several doors), with one Move Inventory action:
- Tag conditions: Directionality state is
TIMED_OUT. - Target: Read point's location, which for an ATR7000 is the location linked to the tag's final zone.
- Transaction type: one that does not close the item, for example Transfer.
- Tag conditions: Directionality state is
When a tag times out, its item moves to the location of its final zone. An item already there is left alone and counts as handled, so a tag that is read again on the side it is already on writes no transaction. One transaction is written per pass through the door, and only when the item's recorded location disagrees with where the reader last saw it.
What this setup does not do:
- It cannot tell a pass from a tag that was only near the door. A pallet staged on the outside of the door, never going through, is moved to the outside location, because that is where the reader saw it. Name the outside location for the place (Dock), not the outcome (Shipped), if that can happen at your door.
- It writes one transaction type for both directions. Integrations tell shipments from receipts by the destination location.
Telling shipments from receipts
To record shipments and receipts with different transaction types, or to close an item out when it ships, use two Move Inventory actions gated on the direction. The trade-off: a pass the reader reports as None, such as a pallet set down inside the door for a while before moving on, matches neither action and moves nothing.
- Received: Directionality state is
TIMED_OUTand Direction isIN; target Specific location, the location inside the door; transaction type Receive. - Shipped: Directionality state is
TIMED_OUTand Direction isOUT. Then choose what shipped means:- The item leaves tracking: target Remove from inventory with transaction type Ship. The item becomes Closed. If it comes back through the door, Received moves it back into a location and it becomes Active again (see Inventory Lifecycle).
- The item stays tracked, for example in a yard: target Specific location, the location outside the door, with a type that does not close the item, such as Transfer.
These actions choose the location by the direction rather than by the final zone, so zone links do not matter to them.
The Read point's location target and the Within read point condition both use the tag's final zone. A zone left at None uses the reader's own location, and a reader without one uses its device group's.
Tag cooldown
An ATR7000 never applies a tag cooldown, whether one is set on the reader or inherited from its device group, and the cooldown field on its edit page is disabled. A tag's Timed out event follows its New event within seconds, and a cooldown started by the New event would drop the Timed out event that does the move.
Cloud-managed readers
A cloud-managed ATR7000 cannot be deployed to from Tagnet. Its Connection info tab shows the operating mode JSON to paste into the reader's IoT Connector, with the zone names filled in. The user_defined value in that JSON is the reader's external identifier; the reader echoes it on every event and Tagnet uses it to confirm which reader is posting, so keep it as shown.