Stack Lights¶
What They Are¶
Stack lights are the colored signal lights (Green, Yellow, Red) mounted on or near the conveyor. They provide visual feedback to operators about the system status and validation results. A horn may also be included for audible alerts.
How They Work¶
Stack lights are controlled by the Arduino Portenta H7 or LattePanda Delta 3 controller. The GateKeeper application sends commands to the controller, which turns the lights on or off. The specific behavior depends on the stack light profile configured for each site.
Stack Light Profiles¶
Teasdale Profile¶
Used at: Teasdale Carrollton
| State | Green | Yellow | Red | Horn | Description |
|---|---|---|---|---|---|
| Idle (validation OFF) | ON | ON | ON | -- | All lights on = system standby |
| Validation ON (ready) | OFF | ON | OFF | -- | Yellow only = ready for scanning |
| Pass | FLASH | OFF | OFF | -- | Green flashes for configurable duration (default 5 seconds) |
| Fail | OFF | OFF | FLASH | YES | Red flashes + horn sounds |
| Warning/NOREAD | OFF | BLINK OFF | OFF | -- | Yellow turns OFF briefly then back on |
| System Problem | OFF | OFF | FAST FLASH | -- | Red fast flash (250ms) = hardware disconnection detected |
CargillRfid Profile (Default)¶
Used at: Cargill St. Clair, Sidney, Gainesville, Fullerton
| State | Green | Yellow | Red | Horn | Description |
|---|---|---|---|---|---|
| Idle (validation OFF) | OFF | OFF | OFF | -- | All lights off = not validating |
| Validation ON (ready) | ON | OFF | OFF | -- | Green on = system ready |
| Pass | BLINK OFF | OFF | OFF | -- | Green turns OFF briefly then back on |
| Fail | ON | OFF | ON | -- | Green + Red STAY ON until next scan |
| Warning/NOREAD | OFF | FLASH | OFF | -- | Yellow flashes |
| System Problem | OFF | ON | OFF | -- | Yellow stays on until problem resolved |
Important: In this profile, fail is persistent. Green and Red both stay ON until the next case is scanned. This makes it very clear that the last case failed.
AV50 Profile¶
Used at: Hormel Austin, Beloit, Barron
| State | Green | Yellow | Red | Horn | Description |
|---|---|---|---|---|---|
| Idle (validation OFF) | ON | ON | ON | -- | All lights on = system standby |
| Validation ON (ready) | ON | OFF | OFF | -- | Green on = system ready |
| Pass | BLINK OFF | OFF | OFF | -- | Green turns OFF briefly then back on |
| Fail | OFF | FLASH | OFF | -- | Yellow flash only (no red, no horn) |
| Warning/NOREAD | OFF | FLASH | OFF | -- | Yellow flash |
| System Problem | OFF | ON | OFF | -- | Yellow stays on until problem resolved |
Note: The AV50 profile is intentionally subtle. Failures show yellow (not red) and there is no horn. This is because AV50 validates barcode presence only, and occasional NOREADs are expected.
Off Profile¶
Used when: Stack lights are not installed or should be disabled
All lights remain OFF in all states. No horn activity.
Profile by Site¶
| Site | Profile | Horn Enabled |
|---|---|---|
| Teasdale Carrollton | Teasdale | Yes (on fail) |
| Cargill St. Clair | CargillRfid | No |
| Cargill Oil sites | CargillRfid | No |
| Hormel Austin | AV50 | No |
| Hormel Beloit | AV50 | No |
| Hormel Barron | AV50 | No |
| Zebra Futures Lab | Off | No |
Configurable Timing¶
| Setting | Default | What It Controls |
|---|---|---|
StackLightPassDurationMs |
5000 (5 seconds) | How long the pass flash lasts |
StackLightFailDurationMs |
5000 (5 seconds) | How long the fail flash lasts |
StackLightWarningDurationMs |
500 (0.5 seconds) | How long the warning flash lasts |
StackLightHornDurationMs |
500 (0.5 seconds) | How long the horn sounds |
SystemProblemFlashDurationMs |
250 (0.25 seconds) | Speed of system problem flash (Teasdale) |
Troubleshooting¶
Lights Not Responding At All¶
- Check the controller connection in the diagnostics panel (Arduino or LattePanda).
- Verify the controller shows "Connected."
- Use the stack light test buttons in the diagnostics panel.
- Check the
StackLightProfilesetting inappsettings.json-- make sure it is notOff. - Check log for
[STACK-LIGHT]entries.
Wrong Light Behavior¶
- Verify the correct profile is set for the site.
- Confirm the profile name is spelled correctly (case-sensitive).
- Check the startup log for:
StackLightOrchestrator configured with profile: {Profile} - Restart the application after any configuration change.
Lights Occasionally Stuck¶
The system includes a reinforcement timer that re-sends the intended light state every 300-500ms. This corrects dropped serial or TCP commands. If lights stay incorrect for more than a second:
- Check USB cable quality (for LattePanda serial connections).
- Try a different USB port.
- Check for repeated connection/disconnection messages in the log.
Horn Not Sounding¶
- Check the
StackLightHornOnFailsetting -- it must betrue. - Verify the horn is connected to the correct pin on the controller.
- Check if the profile supports horn (only Teasdale enables horn by default).
- Test the horn pin directly using the diagnostics panel.
When to Escalate¶
- Lights respond in diagnostics but not during validation (software issue)
- All lights stuck ON or OFF regardless of state
- Profile change has no effect after application restart
- Horn works in test but not during actual validation failures