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
- Connect the printer to your local network via Ethernet
- Print a configuration label by pressing and holding the Feed button for 2 seconds
- Note the current IP address
Set Static IP (Recommended)
Using the printer’s web interface:- Navigate to
http://{printer-ip}in a browser - Go to Network Settings → Wired
- Set IP mode to Static
- Configure:
- IP Address:
192.168.1.100(or your preferred address) - Subnet Mask:
255.255.255.0 - Gateway:
192.168.1.1
- IP Address:
- 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:- Go to Settings → Hardware
- Click Check Printer Connection
- Click Print Test Label
TC58 Scanner Setup
1. Device Configuration
- Power on the TC58
- Complete initial Android setup
- Connect to your WiFi network
- Note the device IP address
2. DataWedge Configuration
DataWedge broadcasts scanned barcodes as Android intents.Create Profile
- Open DataWedge app
- Tap Menu → New Profile
- Name:
Goods Scanner - Tap the new profile to configure
Configure Profile
Associated Apps:- App name:
com.goodsgrocery.scanner - Activity:
*
- Enabled: ✓
- Scanner: Internal Imager (or your preferred)
- Enabled: ✗ (we use intents instead)
- Enabled: ✓
- Intent Action:
com.goodsgrocery.scanner.SCAN - Intent Category:
android.intent.category.DEFAULT - Intent Delivery:
Broadcast Intent
- Basic data formatting: ✓
- Enable new line at end: ✗
3. Install Scanner App
4. App Configuration
On first launch:- Sign in with your Goods credentials
- Go to Settings
- Configure:
- API URL: Your Switchyard backend URL
- Printer IP: The ZD421’s static IP
- Printer Port:
9100
- Tap Check Connection to verify printer
- 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
Print API (Admin Dashboard)
Scanner API
Troubleshooting
Printer Not Connecting
- Verify network connectivity with
ping {printer-ip} - Check firewall allows port 9100
- Restart printer
- Confirm static IP hasn’t changed
Labels Not Printing Correctly
- Calibrate media (press Feed 2x)
- Verify label size in ZPL (
^PWand^LLcommands) - Check darkness setting in printer web UI
- Use Labelary.com to preview ZPL
Scanner Not Sending Barcodes
- Verify DataWedge profile is active
- Check intent action matches exactly
- Test with DataWedge Demo app first
- Review Android logs:
adb logcat | grep DataWedge
App Authentication Failing
- Verify Supabase credentials
- Check user has appropriate role
- Ensure API URL is correct
- Check network connectivity
Environment Variables
Backend (Switchyard)
Scanner App
Createapps/scanner-app/.env: