SporelineSporeline
Sign InStart free

Getting Started

  • Help Center
  • Getting Started

Operations

  • Dashboard
  • Scan
  • Blocks
  • Batches
  • Recipes

Printing

  • Label Templates

Lab

  • Cultures
  • Cryo Storage
  • Agar Plates
  • Liquid Cultures
  • Trials
  • Strains

Analytics

  • KPIs
  • Data Health
  • AI Insights

Logistics

  • Locations
  • Customers
  • Deliveries

Admin

  • Team
  • Settings
  • Billing
  • API Keys
  • Configuration
  • Enumerables
  • Integrations
  • Notifications
  • Import
  • Brand Profile
  • Products
  • Traceability
  • Compliance
  • Reports
  • Log Transcription
  • Switchboard

Guides

  • Your First Batch
  • Moving Blocks
  • Import from Spreadsheets
  • Lots and Spawn
  • Room Readings
  • The New Sporeline Look
  • Lots on Orders
  • Lot Transactions and Lot Audits
  • The Sterilization Log
  • Reports and Their Numbers
  • Auto-assign Lots and Pick Lists
  • Recipes and Planning a NOC Day
  • Stage Schedules and Due Today
  • Planning
  • Notification Rules
  • QC Checkpoints and Release
  • The Lab: Cultures, Cryo, Plates and Liquid Cultures
  • Traceability and Recall
  • Sporeline: Explore Your Lineage
  • Scanning on the Floor
  • Counts by Scan
  • Shared Handhelds
  • Zebra Handhelds
  • Orders and Packing Slips
  • QuickBooks Customers and Products
  • Accounting Export
  • Site Transfers
  • Raw Materials
  • Optional Features
  • Approve AI Changes
  • Configuration Tabs
  • Harvest Workflow
  • Contamination Alerts and the Weekly Digest
  • Label Printing
  • Team Setup
  • The Free Plan
  • Usage Recording
  • Signing Up and Farmhand on Free
  • Start Your Farm from an AI Assistant
  • Privacy and Your Data
  • Connect an AI Assistant
  • Ask Your Assistant
  • Appearance and Dark Mode
  • API Quickstart
  • Shopify Setup
  • Shopify Troubleshooting
  • Migrate With an AI Assistant
  • Spreadsheet Templates for Importing
  • Photos and Files

API

  • Reference
  • Authentication
  • Rate Limits
  • Error Codes

Zebra Handhelds

Set up DataWedge on a Zebra Android handheld so the trigger scans straight into the Sporeline app.

Zebra Handhelds

Zebra rugged handhelds (TC22, TC52, ET40 and similar) read barcodes with a scanner behind a physical trigger, not the camera. Zebra’s DataWedge app takes each read and hands it to whichever app is open. The Sporeline app accepts it in two ways:

DataWedge outputHow it reaches SporelineWhen to use it
Intent output (recommended)A broadcast the app listens forMost IT teams already use it; it does not depend on a text field having focus
Keystroke outputTyped into the app like a keyboard, ending with EnterThe fallback, and what DataWedge does on a new device before any profile is set up

Both work on the Scan, Move by Scan, Scan Session and kiosk screens. If a profile has both outputs on, the same code arriving twice within half a second counts as one scan.

Who can do it

Anyone with the handheld. The scanner settings are saved on the device, not on your farm, so each device can be set up differently.


What the app needs from DataWedge

A DataWedge profile that:

  1. Is associated with the app com.mycoops.grower (all activities, *).
  2. Has Barcode input on, with at least QR Code enabled. Turn on Code 128 and Data Matrix if your labels use them.
  3. Has Intent output on, Intent delivery: Broadcast intent, and an Intent action that matches the one shown in the app under Scanner settings. The default is com.mycoops.grower.SCAN.
  4. Has Keystroke output off (or on, as the fallback below).

The quick way: let the app write the profile

  1. Open Scan in the app. The scanner status at the top of the screen reads No Scanner until a scan arrives, then turns green.
  2. Tap the scanner status. Scanner settings opens. You can also open it from More, then Settings, then Scanner.
  3. Check the first line says This device can receive DataWedge intents.
  4. Leave the intent action as com.mycoops.grower.SCAN unless your IT team uses a different one. If you change it, tap Save.
  5. Tap Write the Sporeline profile to DataWedge. You’ll see DataWedge took the profile. Pull the trigger to test. If DataWedge refuses it, the screen says why instead. The most common reason is that this app is already linked to another DataWedge profile on the device: remove that link in DataWedge, or set up the profile by hand below.
  6. Pull the trigger. Last intent scan shows the time of that scan.

The app only writes the profile when you press the button. If the device has no profile named Sporeline, it creates one. If it already has one, only these settings in it change: barcode input on with QR Code, Code 128 and Datamatrix, intent output on with the action shown, and keystroke output off. Everything else in that profile stays as your IT team set it. Profiles with other names are never touched.

Setting up the profile by hand (intent output)

  1. Open DataWedge, tap ⋮ > New profile, and name it Sporeline.
  2. Associated apps > ⋮ > New app/activity: pick com.mycoops.grower, then *.
  3. Barcode input: on. Under Decoders, turn on QR Code, plus Code 128 and Datamatrix if you need them.
  4. Keystroke output: off.
  5. Intent output: on.
    • Intent action: com.mycoops.grower.SCAN (or the action shown in the app’s Scanner settings)
    • Intent category: android.intent.category.DEFAULT
    • Intent delivery: Broadcast intent
  6. Open Sporeline, go to Scan, and pull the trigger.

Your IT team can also apply the same settings through the DataWedge SET_CONFIG API. The exact bundle the app sends is kept in the Sporeline source at mobile/packages/grower-app/datawedge/sporeline-datawedge-profile.json; ask us for a copy.

The fallback: keystroke output

If intent output isn’t allowed on your devices, use keystrokes instead:

  1. In the Sporeline profile, turn Intent output off and Keystroke output on.
  2. Under Keystroke output > Key event options, turn Send ENTER key on. The app treats Enter as the end of a scan.
  3. Under Basic data formatting, leave the prefix and suffix empty.

The app still reads a scan with no Enter after a short pause, but Enter is faster and more reliable.

Setting up a fleet

Set up one device first, test it, then copy its profile to the rest:

  1. On the first device, open DataWedge > ⋮ > Settings > Export > Export profile, and pick Sporeline. This saves dwprofile_Sporeline.db.
  2. With StageNow or your MDM, push that file to /enterprise/device/settings/datawedge/autoimport/ on every other device. DataWedge imports it as soon as it lands.
  3. If your fleet uses a different intent action, set the same action in each device’s Scanner settings in the app.

Troubleshooting

The trigger does nothing

  • The intent action in DataWedge and the one in the app’s Scanner settings must match exactly, including capitals.
  • Check the profile is associated with com.mycoops.grower. A read goes to the profile of whichever app is open.
  • With keystroke output, check Send ENTER key is on and nothing adds a prefix.
  • Not available in Scanner settings means this app build is older than intent support, or this isn’t a Zebra Android device. Keystroke output still works; update the app to use intents.

A code scans twice

  • The app counts the same code arriving by both outputs within half a second once. Scanning the same label again after that counts again, on purpose.

The scan opens nothing

  • Only Sporeline labels open something in the app. Check the label was printed by Sporeline.

Try this on your own farm. Free for up to 100 blocks a month.

Start free

© 2026 Sporeline · Built by a mushroom farmer, for mushroom farmers.

iPhone app on the App StoreWhat's newSupportNeed help? Email chase@sporeline.com