Skip to content

Zebra Futures Lab

Configuration Disclaimer: The configuration values shown here are based on repository reference files. Production configurations may differ. Always verify against the actual appsettings.json on the production machine.

Important: The repository config file for this site is a placeholder with TODO values. The actual production config is located at c:\temp\zfl\appsettings.json on the site machine.

Quick Reference

Field Value
Site Zebra Technologies -- Futures Lab
Validation Mode Zfl
Version zfl-v0.113
Config File appsettings-zebra-futureslab.json (placeholder)
Controller Mock (Portenta H7 failed on-site)

Hardware Inventory

Device Type Connection Address
Camera Zebra FS40 TCP (Hardware trigger) Verify in production
Controller Mock N/A Portenta H7 failed -- bypassed
Status Light ELO Status Light Kit USB HID Built-in display LEDs
Data Source ZflImporter TCP listener Port 6101

Note: The Portenta H7 controller failed on-site and has been permanently bypassed using a Mock controller configuration. This means no Arduino-based stack lights or reject signals are available -- visual feedback comes from the ELO Status Light Kit only.

Normal Operating State

When everything is working correctly at the Futures Lab:

  • Screen: GateKeeper application shows "Zfl" validation mode. The EPC queue panel shows the current queue of expected EPCs.
  • Status light: The ELO status light changes color based on validation results (green for pass, red for fail).
  • Data flow: ZPL label data arrives via TCP on port 6101. The FS40 camera reads barcodes triggered by a photo-eye hardwired directly to the camera.
  • No exports: No Mojix, MWE, or AIS exports are configured for this lab site.

Validation Flow

  1. A ZPL label is sent to port 6101. The ZflImporter parses the EPC from the ZPL data and adds it to the EPC queue (FIFO, max 12 entries).
  2. Validation auto-starts when the first ZPL is received.
  3. A case passes through the photo-eye, which triggers the FS40 camera directly (hardware trigger -- photo-eye is wired to the FS40 external trigger input).
  4. The camera reads the barcode and pushes the data to the application.
  5. The application compares the scanned barcode against the next EPC in the queue.
  6. PASS: ELO light turns green, EPC is dequeued. FAIL: ELO light turns red.
  7. After 5 seconds, the result display reverts to the queue view.

Common Issues

No EPC in Queue

What you see: The EPC queue panel shows empty. Validation is waiting for data.

What to check: - Is ZPL data being sent to port 6101? - Check that the port is listening: run netstat -an | findstr 6101 on the site machine. - Check the Windows firewall for an inbound rule allowing TCP port 6101. - Verify the ZPL sender is targeting the correct IP and port.

FS40 Camera Not Reading

What you see: EPCs are in the queue but no barcode data arrives from the camera.

What to check: - The FS40 uses hardware trigger mode -- the photo-eye must be wired directly to the camera's external trigger input. - Verify the photo-eye is working (LED indicator on the sensor, if available). - Check the camera's TCP connection in the Diagnostics panel. - The camera may be sending "HB" (heartbeat) messages -- these are normal and filtered out automatically.

EPC Queue Backing Up

What you see: Multiple EPCs accumulate in the queue without being consumed.

What to check: - The camera is likely not reading barcodes (see above). - The photo-eye may not be triggering the camera. - If the queue is stale, use the Clear Queue button in the UI to discard all pending EPCs and start fresh.

ELO Status Light Not Changing

What you see: The status light stays the same color regardless of pass/fail.

What to check: - EnableEloStatusLight must be true in appsettings. - Check that the ELO device is connected via USB and recognized by Windows (USB HID device). - Try unplugging and re-plugging the ELO device.

Heartbeat Messages in Logs

What you see: Logs show frequent "HB" messages from the camera.

This is normal. The FS40 sends periodic heartbeat ("HB") messages. The application automatically filters these out. They are not errors.

Known Quirks

  • Placeholder config file: The repository config file has TODO values for camera IP/port. The real config lives at c:\temp\zfl\appsettings.json on the site machine.
  • Mock controller: The Arduino Portenta H7 failed on-site and was never replaced. A Mock controller is used instead. This means there are no physical stack lights or reject signals -- only the ELO status light provides visual feedback.
  • Lab/demo site: This is not a production manufacturing site. It is a demonstration lab at Zebra Technologies. Uptime requirements are less strict than production sites.
  • FS40 heartbeat filtering: The camera sends "HB" messages which the application ignores. This is expected behavior.
  • 5-second result display: After a validation result, the display shows the result for 5 seconds before reverting to the queue view.
  • Max 12 EPCs in queue: The queue has a maximum of 12 entries. If it fills up, the oldest entries are pushed out (FIFO).