Skip to main content

Zebra Hardware Setup Guide

This guide covers the complete setup for integrating Zebra hardware with the Goods platform.

Hardware Overview

ZD421 Printer Setup

1. Network Configuration

  1. Connect the printer to your local network via Ethernet
  2. Print a configuration label by pressing and holding the Feed button for 2 seconds
  3. Note the current IP address
Using the printer’s web interface:
  1. Navigate to http://{printer-ip} in a browser
  2. Go to Network SettingsWired
  3. Set IP mode to Static
  4. Configure:
    • IP Address: 192.168.1.100 (or your preferred address)
    • Subnet Mask: 255.255.255.0
    • Gateway: 192.168.1.1
  5. Save and restart the printer

2. Media Configuration

Bag Labels (Fold-Over)

  • Size: 2.5” × 6”
  • Type: Direct Thermal
  • Gap/Mark: Black mark sensing (recommended) or gap sensing
  • Calibration: Press Feed button 2 times after loading media

Tote Labels

  • Size: 3” × 3”
  • Type: Direct Thermal
  • Gap/Mark: Gap sensing

Shelf Labels

  • Size: 2.5” × 1.25”
  • Type: Continuous roll (non-adhesive)
  • Gap/Mark: Continuous mode

3. Test Printing

From the admin dashboard:
  1. Go to SettingsHardware
  2. Click Check Printer Connection
  3. Click Print Test Label
Or via API:

TC58 Scanner Setup

1. Device Configuration

  1. Power on the TC58
  2. Complete initial Android setup
  3. Connect to your WiFi network
  4. Note the device IP address

2. DataWedge Configuration

DataWedge broadcasts scanned barcodes as Android intents.

Create Profile

  1. Open DataWedge app
  2. Tap MenuNew Profile
  3. Name: Goods Scanner
  4. Tap the new profile to configure

Configure Profile

Associated Apps:
  • App name: com.goodsgrocery.scanner
  • Activity: *
Barcode Input:
  • Enabled: ✓
  • Scanner: Internal Imager (or your preferred)
Keystroke Output:
  • Enabled: ✗ (we use intents instead)
Intent Output:
  • Enabled: ✓
  • Intent Action: com.goodsgrocery.scanner.SCAN
  • Intent Category: android.intent.category.DEFAULT
  • Intent Delivery: Broadcast Intent
Data Formatting:
  • Basic data formatting: ✓
  • Enable new line at end: ✗

3. Install Scanner App

Or install directly from your CI/CD pipeline.

4. App Configuration

On first launch:
  1. Sign in with your Goods credentials
  2. Go to Settings
  3. Configure:
    • API URL: Your Switchyard backend URL
    • Printer IP: The ZD421’s static IP
    • Printer Port: 9100
  4. Tap Check Connection to verify printer
  5. Tap Print Test Label to confirm

Label Specifications

Bag Label (2.5” × 6”)

Fold-over design that displays on both sides of a sealed bag.

Tote Label (3” × 3”)

Large QR code for tote identification.

Shelf Label (2.5” × 1.25”)

Product identification for gondola shelves.

API Endpoints

Scanner API

Troubleshooting

Printer Not Connecting

  1. Verify network connectivity with ping {printer-ip}
  2. Check firewall allows port 9100
  3. Restart printer
  4. Confirm static IP hasn’t changed

Labels Not Printing Correctly

  1. Calibrate media (press Feed 2x)
  2. Verify label size in ZPL (^PW and ^LL commands)
  3. Check darkness setting in printer web UI
  4. Use Labelary.com to preview ZPL

Scanner Not Sending Barcodes

  1. Verify DataWedge profile is active
  2. Check intent action matches exactly
  3. Test with DataWedge Demo app first
  4. Review Android logs: adb logcat | grep DataWedge

App Authentication Failing

  1. Verify Supabase credentials
  2. Check user has appropriate role
  3. Ensure API URL is correct
  4. Check network connectivity

Environment Variables

Backend (Switchyard)

Scanner App

Create apps/scanner-app/.env: