Edge computing layer for SMRT Payments — bridging barcode scanners, payment terminals, and NCR POS systems for intelligent pricing, cash-discount logic, and EBT eligibility handling.
Designed for Raspberry Pi 4 / 8 GB hardware with headless install and OTA updates.
smrt-pi/
├── README.md
├── LICENSE
├── docs/
│ ├── setup_guide.md
│ ├── headless_install.md
│ ├── AGENTS.md
│ └── architecture_overview.md
├── src/
│ ├── scanner_bridge/
│ ├── tender_logic/
│ ├── ui_bridge/
│ └── systemd/
├── tools/
│ ├── flash_image.sh
│ └── diagnostics.py
├── sample_catalog.json
└── tests/
└── test_scanner_bridge.py
SMRT-Pi is a modular edge-service platform that:
- Intercepts and transforms barcode data before it reaches the POS
- Applies business logic (cash discount, EBT splits, tax)
- Communicates with encrypted pinpads/terminals
- Posts back payment results as if from native POS hardware
- Supports headless deployment and remote management
- Barcode-level logic and rewriting
- Automatic 4% PX15 markup with per-transaction EBT vs. non-EBT tracking
- Local computation of discounts, EBT & non-EBT subtotals
- Secure integration with pinpads for all tender types
- JSON-based message contracts with the POS
- OTA / headless install support (Tailscale, Zerotier, etc.)
- Raspberry Pi 4 (4 GB or 8 GB recommended)
- Official 5 V 3 A USB-C power supply
- MicroSD 64 GB (A1 / V30 class or better)
- Case with fan + heatsinks (recommended for stability)
git clone https://github.com/SMRTCall/smrt-edge-pi.git
cd smrt-edge-pi/tools
sudo ./flash_image.shInsert the SD card into the Pi, power it on, and it will self-register on your network.
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# Seed catalog with sample data
python -m scanner_bridge.main --seed sample_catalog.json < /dev/null
# Run services (separate terminals)
python -m tender_logic.main
python -m ui_bridge.main
---
## Headless Setup
1. Copy your `wpa_supplicant.conf` and an empty file named `ssh` into `/boot`.
2. Boot the Pi; it auto-connects, clones the repo, and configures itself.
3. `systemd` starts `earthpi.service`, launching all agents.
4. Access via SSH:
```bash
ssh [email protected]Detailed instructions in docs/headless_install.md.
- scanner_bridge — Reads raw barcode data, transforms payloads, and forwards to the POS.
- tender_logic — Calculates totals, applies cash-discount rules, splits EBT-eligible / non-EBT subtotals.
- ui_bridge — Provides local UI (display or HTTP) for selecting payment type and displaying totals.
- earthpi-agent — Supervisor, OTA manager, and telemetry service.
See docs/AGENTS.md for detailed specifications.
MIT License — see LICENSE for details.
- Use feature branches:
feature/<name> - Submit pull requests with corresponding tests in
/tests - Keep modules decoupled — each agent should run stand-alone
SMRT Payments / Kote — [email protected]
Vancouver / Portland area, WA / OR