Skip to content

SilverPi, a modular edge service that intercepts and transforms live data streams between retail hardware and POS systems. It applies business logic locally—cash discounting, EBT eligibility, and split-tender calculations—before passing data through securely. Built for reliability, low latency, and hands-free deployment in distributed environments

License

Notifications You must be signed in to change notification settings

SMRTCall/smrt-pi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SMRT-Pi

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.


Repository Structure

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

Purpose

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

Features

  • 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.)

Hardware Requirements

  • 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)

Quick Start

git clone https://github.com/SMRTCall/smrt-edge-pi.git
cd smrt-edge-pi/tools
sudo ./flash_image.sh

Insert the SD card into the Pi, power it on, and it will self-register on your network.

Local Development

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.


Agents

  • 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.


License

MIT License — see LICENSE for details.


Contributing

  • Use feature branches: feature/<name>
  • Submit pull requests with corresponding tests in /tests
  • Keep modules decoupled — each agent should run stand-alone

Contact

SMRT Payments / Kote — [email protected]
Vancouver / Portland area, WA / OR

About

SilverPi, a modular edge service that intercepts and transforms live data streams between retail hardware and POS systems. It applies business logic locally—cash discounting, EBT eligibility, and split-tender calculations—before passing data through securely. Built for reliability, low latency, and hands-free deployment in distributed environments

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published